From: Mathieu Baudier Date: Tue, 6 Jul 2010 20:41:00 +0000 (+0000) Subject: Improve Linux support X-Git-Tag: argeo-slc-2.1.7~1263 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=18baf4f5c5aec6593ea09c99839f6839d88b2618;p=gpl%2Fargeo-slc.git Improve Linux support git-svn-id: https://svn.argeo.org/slc/trunk@3651 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/jsch/SshTarget.java b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/jsch/SshTarget.java index 80e49bb92..58ac9cbd3 100644 --- a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/jsch/SshTarget.java +++ b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/jsch/SshTarget.java @@ -25,7 +25,7 @@ public class SshTarget { private String host; private Integer port = 22; private String user; - private UserInfo userInfo; + private UserInfo userInfo = new SimpleUserInfo(); private Boolean usePrivateKey = true; private File localPrivateKey = new File(System.getProperty("user.home") diff --git a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/lib/linux/DefaultRedhatDeploymentData.java b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/lib/linux/DefaultRedhatDeploymentData.java new file mode 100644 index 000000000..a6b0379bb --- /dev/null +++ b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/lib/linux/DefaultRedhatDeploymentData.java @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2010 Mathieu Baudier + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.argeo.slc.lib.linux; + +import org.argeo.slc.core.deploy.MultiResourceSet; +import org.argeo.slc.core.deploy.ResourceSet; + +public class DefaultRedhatDeploymentData implements RedhatDeploymentData { + private ResourceSet configurationFiles; + private String runlevelsScript; + private String permissionsScript; + + private RedhatDeploymentData parent; + + public ResourceSet getConfigurationFiles() { + if (parent != null && parent.getConfigurationFiles() != null) { + MultiResourceSet mrs = new MultiResourceSet(); + mrs.getResourceSets().add(parent.getConfigurationFiles()); + mrs.getResourceSets().add(configurationFiles); + return mrs; + } else { + return configurationFiles; + } + } + + public String getRunlevelsScript() { + if (parent != null && parent.getRunlevelsScript() != null) + return parent.getRunlevelsScript() + "\n" + runlevelsScript; + else + return runlevelsScript; + } + + public String getPermissionsScript() { + if (parent != null && parent.getPermissionsScript() != null) + return parent.getPermissionsScript() + "\n" + permissionsScript; + else + return permissionsScript; + } + + public void setRunlevelsScript(String runlevelsScript) { + this.runlevelsScript = runlevelsScript; + } + + public void setConfigurationFiles(ResourceSet configurationFiles) { + this.configurationFiles = configurationFiles; + } + + public void setPermissionsScript(String permissionsScript) { + this.permissionsScript = permissionsScript; + } + + public void setParent(RedhatDeploymentData parentDeploymentData) { + this.parent = parentDeploymentData; + } + +} diff --git a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/lib/linux/DefaultRpmDistribution.java b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/lib/linux/DefaultRpmDistribution.java new file mode 100644 index 000000000..3e0a9c1b0 --- /dev/null +++ b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/lib/linux/DefaultRpmDistribution.java @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2010 Mathieu Baudier + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.argeo.slc.lib.linux; + +import java.util.List; + +public class DefaultRpmDistribution implements RpmDistribution { + private List additionalPackages; + + public String getDistributionId() { + // TODO Auto-generated method stub + return null; + } + + public List getAdditionalPackages() { + return additionalPackages; + } + + public void setAdditionalPackages(List additionalPackages) { + this.additionalPackages = additionalPackages; + } + +} diff --git a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/lib/linux/RedhatDeploymentData.java b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/lib/linux/RedhatDeploymentData.java index 484378a43..cb735022b 100644 --- a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/lib/linux/RedhatDeploymentData.java +++ b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/lib/linux/RedhatDeploymentData.java @@ -16,56 +16,13 @@ package org.argeo.slc.lib.linux; -import org.argeo.slc.core.deploy.MultiResourceSet; import org.argeo.slc.core.deploy.ResourceSet; import org.argeo.slc.deploy.DeploymentData; -public class RedhatDeploymentData implements DeploymentData { - private ResourceSet configurationFiles; - private String runlevelsScript; - private String permissionsScript; +public interface RedhatDeploymentData extends DeploymentData { + public ResourceSet getConfigurationFiles(); - private RedhatDeploymentData parent; - - public ResourceSet getConfigurationFiles() { - if (parent != null && parent.getConfigurationFiles() != null) { - MultiResourceSet mrs = new MultiResourceSet(); - mrs.getResourceSets().add(parent.getConfigurationFiles()); - mrs.getResourceSets().add(configurationFiles); - return mrs; - } else { - return configurationFiles; - } - } - - public String getRunlevelsScript() { - if (parent != null && parent.getRunlevelsScript() != null) - return parent.getRunlevelsScript() + "\n" + runlevelsScript; - else - return runlevelsScript; - } - - public String getPermissionsScript() { - if (parent != null && parent.getPermissionsScript() != null) - return parent.getPermissionsScript() + "\n" + permissionsScript; - else - return permissionsScript; - } - - public void setRunlevelsScript(String runlevelsScript) { - this.runlevelsScript = runlevelsScript; - } - - public void setConfigurationFiles(ResourceSet configurationFiles) { - this.configurationFiles = configurationFiles; - } - - public void setPermissionsScript(String permissionsScript) { - this.permissionsScript = permissionsScript; - } - - public void setParent(RedhatDeploymentData parentDeploymentData) { - this.parent = parentDeploymentData; - } + public String getRunlevelsScript(); + public String getPermissionsScript(); } diff --git a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/lib/linux/RedhatHostManager.java b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/lib/linux/RedhatHostManager.java index a58392193..f4e0076b3 100644 --- a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/lib/linux/RedhatHostManager.java +++ b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/lib/linux/RedhatHostManager.java @@ -62,9 +62,14 @@ public class RedhatHostManager { } protected void executeCommand(String command) { - if (useSsh) - new RemoteExec(getSshTarget(), command).run(); - else + if (command == null) + return; + + if (useSsh) { + RemoteExec rExec = new RemoteExec(getSshTarget(), command); + rExec.setFailOnBadExitStatus(false); + rExec.run(); + } else new SystemCall(command).run(); } diff --git a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/lib/linux/RpmDistribution.java b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/lib/linux/RpmDistribution.java index e9ff8db86..ebe028693 100644 --- a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/lib/linux/RpmDistribution.java +++ b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/lib/linux/RpmDistribution.java @@ -20,20 +20,9 @@ import java.util.List; import org.argeo.slc.build.Distribution; -public class RpmDistribution implements Distribution { - private List additionalPackages; +public interface RpmDistribution extends Distribution { + public List getAdditionalPackages(); - public String getDistributionId() { - // TODO Auto-generated method stub - return null; - } - - public List getAdditionalPackages() { - return additionalPackages; - } - - public void setAdditionalPackages(List additionalPackages) { - this.additionalPackages = additionalPackages; - } + public void setAdditionalPackages(List additionalPackages); }