summaryrefslogtreecommitdiffstats
path: root/patches/opnfv-fuel/0010-deployment.py-stdout-not-consumed-when-deploying-cha.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/opnfv-fuel/0010-deployment.py-stdout-not-consumed-when-deploying-cha.patch')
-rw-r--r--patches/opnfv-fuel/0010-deployment.py-stdout-not-consumed-when-deploying-cha.patch66
1 files changed, 0 insertions, 66 deletions
diff --git a/patches/opnfv-fuel/0010-deployment.py-stdout-not-consumed-when-deploying-cha.patch b/patches/opnfv-fuel/0010-deployment.py-stdout-not-consumed-when-deploying-cha.patch
deleted file mode 100644
index 584413ec..00000000
--- a/patches/opnfv-fuel/0010-deployment.py-stdout-not-consumed-when-deploying-cha.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From: Josep Puigdemont <josep.puigdemont@enea.com>
-Date: Wed, 4 May 2016 14:27:23 +0200
-Subject: [PATCH] deployment.py: stdout not consumed when deploying changes
-
-During the automatic deployment, when the environment is ready to be
-deployed, the deploy.py script will spawn a shell process that will
-perform the command "fuel deploy-changes". The standard output of this
-process is then piped to a "tee" process, which redirects the output
-to the standard output of the shell process, and to a file named
-cloud.log. The file is monitored by the deploy script to find out the
-status of the deployment, and print it to the log file of the automatic
-deployment script, including percentages for each node being
-provisioned. However, the deploy script never consumes the standard
-output of the shell process. If the shell process produces enough
-output, its standard output buffer will fill up, thus making the tee
-process block trying to write to its standard output, and the cloud.log
-file will not be updated. At this point, the deploy process, which is
-monitoring cloud.log, will not detect any progress in the deployment,
-and eventually it will time out and assume the deployment failed,
-although it might have finished fine after that.
-
-The solution here is to remove the "tee" process from the shell command,
-and instead redirect standard output to the cloud.log file.
-Another solution would be to actually parse the standard output of the
-shell command from the deploy script itself, but that would require a
-bit more work, as reading a line at a time might block the script.
-
-Finally, with this patch the cloud.log file won't be deleted unless the
-shell process has already finished.
-
-Change-Id: I03a77be42d220b1606e48fc4ca35e22d73a6e583
-Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
----
- deploy/cloud/deployment.py | 12 +++++++++---
- 1 file changed, 9 insertions(+), 3 deletions(-)
-
-diff --git a/deploy/cloud/deployment.py b/deploy/cloud/deployment.py
-index 306abf0..0127d2a 100644
---- a/deploy/cloud/deployment.py
-+++ b/deploy/cloud/deployment.py
-@@ -101,8 +101,8 @@ class Deployment(object):
- LOG_FILE = 'cloud.log'
-
- log('Starting deployment of environment %s' % self.env_id)
-- run_proc('fuel --env %s deploy-changes | strings | tee %s'
-- % (self.env_id, LOG_FILE))
-+ p = run_proc('fuel --env %s deploy-changes | strings > %s'
-+ % (self.env_id, LOG_FILE))
-
- ready = False
- for i in range(int(self.deploy_timeout)):
-@@ -119,7 +119,13 @@ class Deployment(object):
- break
- else:
- time.sleep(SLEEP_TIME)
-- delete(LOG_FILE)
-+
-+ p.poll()
-+ if p.returncode == None:
-+ log('The process deploying the changes has not yet finished.')
-+ log('''The file %s won't be deleted''' % LOG_FILE)
-+ else:
-+ delete(LOG_FILE)
-
- if ready:
- log('Environment %s successfully deployed' % self.env_id)