diff options
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.patch | 66 |
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) |