Catching exit status from remote deployment process 58/858/5
authorSzilard Cserey <szilard.cserey@ericsson.com>
Thu, 18 Jun 2015 09:32:57 +0000 (11:32 +0200)
committerSzilard Cserey <szilard.cserey@ericsson.com>
Thu, 18 Jun 2015 11:29:46 +0000 (13:29 +0200)
JIRA: [BGS-2] Create Fuel deployment script

Change-Id: I21997df2534ef3cb0ae9ed47a01e6625b8404af9
Signed-off-by: Szilard Cserey <szilard.cserey@ericsson.com>
fuel/deploy/deploy.py
fuel/deploy/deploy_env.py
fuel/deploy/ssh_client.py

index 3305aed..402d0f2 100644 (file)
@@ -2,6 +2,7 @@ import os
 import shutil
 import io
 import re
+import sys
 import netaddr
 import uuid
 import yaml
@@ -138,7 +139,7 @@ class AutoDeploy(object):
     def deploy_env(self):
         dep = CloudDeploy(self.dha, self.fuel_conf['ip'], self.fuel_username,
                           self.fuel_password, self.dea_file, WORK_DIR)
-        dep.deploy()
+        return dep.deploy()
 
     def setup_execution_environment(self):
         exec_env = ExecutionEnvironment(self.storage_dir, self.pxe_bridge,
@@ -157,7 +158,7 @@ class AutoDeploy(object):
             self.create_tmp_dir()
             self.install_fuel_master()
             shutil.rmtree(self.tmp_dir)
-        self.deploy_env()
+        return self.deploy_env()
 
 def check_bridge(pxe_bridge, dha_path):
     with io.open(dha_path) as yaml_file:
@@ -215,7 +216,7 @@ def main():
 
     d = AutoDeploy(without_fuel, storage_dir, pxe_bridge, iso_file,
                    dea_file, dha_file)
-    d.deploy()
+    sys.exit(d.deploy())
 
 if __name__ == '__main__':
     main()
\ No newline at end of file
index 48aec18..084f37e 100644 (file)
@@ -68,7 +68,9 @@ class CloudDeploy(object):
         dea_file = '%s/%s' % (self.work_dir, os.path.basename(self.dea_file))
         macs_file = '%s/%s' % (self.work_dir, os.path.basename(self.macs_file))
         with self.ssh as s:
-            s.run('python %s %s %s' % (deploy_app, dea_file, macs_file))
+            status = s.run('python %s %s %s'
+                           % (deploy_app, dea_file, macs_file))
+        return status
 
     def deploy(self):
 
@@ -84,4 +86,4 @@ class CloudDeploy(object):
 
         self.upload_cloud_deployment_files()
 
-        self.run_cloud_deploy(CLOUD_DEPLOY_FILE)
+        return self.run_cloud_deploy(CLOUD_DEPLOY_FILE)
index 8bf87bc..0ec2edc 100644 (file)
@@ -70,6 +70,7 @@ class SSHClient(object):
                 while error_buff:
                     log(error_buff.strip())
                     error_buff = chan.recv_stderr(1024)
+        return chan.recv_exit_status()
 
     def scp_get(self, remote, local='.', dir=False):
         try: