diff options
author | Hong Guan <hg4105@att.com> | 2017-08-14 13:28:23 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2017-08-14 13:28:23 +0000 |
commit | ca98432389ae8b432bafdf53ffa9b6b077883b91 (patch) | |
tree | bdf2d381dd640c53a526296ae0aa04b4b7c949a4 /cloudify/scripts/create.py | |
parent | 5197e2e88144a536068fb75e912f91b20e39db2e (diff) | |
parent | 5e1853a28f9ca1d13280db06fdb9edaf33fd7354 (diff) |
Merge "[OOM-71] Message Router Kubernetes-Tosca Templates"
Diffstat (limited to 'cloudify/scripts/create.py')
-rw-r--r-- | cloudify/scripts/create.py | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/cloudify/scripts/create.py b/cloudify/scripts/create.py new file mode 100644 index 0000000000..eb362a4558 --- /dev/null +++ b/cloudify/scripts/create.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python + +import subprocess +from cloudify import ctx +from cloudify.exceptions import OperationRetry + + +def check_command(command): + + try: + process = subprocess.Popen( + command.split() + ) + except OSError: + return False + + output, error = process.communicate() + + ctx.logger.debug('command: {0} '.format(command)) + ctx.logger.debug('output: {0} '.format(output)) + ctx.logger.debug('error: {0} '.format(error)) + ctx.logger.debug('process.returncode: {0} '.format(process.returncode)) + + if process.returncode: + ctx.logger.error('Running `{0}` returns error.'.format(command)) + return False + + return True + + +def execute_command(_command): + + ctx.logger.debug('_command {0}.'.format(_command)) + + subprocess_args = { + 'args': _command.split(), + 'stdout': subprocess.PIPE, + 'stderr': subprocess.PIPE + } + + ctx.logger.debug('subprocess_args {0}.'.format(subprocess_args)) + + process = subprocess.Popen(**subprocess_args) + output, error = process.communicate() + + ctx.logger.debug('command: {0} '.format(_command)) + ctx.logger.debug('output: {0} '.format(output)) + ctx.logger.debug('error: {0} '.format(error)) + ctx.logger.debug('process.returncode: {0} '.format(process.returncode)) + + if process.returncode: + ctx.logger.error('Running `{0}` returns error.'.format(_command)) + return False + + return output + + +if __name__ == '__main__': + + docker_command = 'docker ps' + + if not check_command(docker_command): + raise OperationRetry('Waiting for docker to be installed.') + + finished = False + ps = execute_command('ps -ef') + for line in ps.split('\n'): + if '/usr/bin/python /usr/bin/cloud-init modules' in line: + ctx.logger.error('in line') + raise OperationRetry('Waiting for Cloud Init to finish.') + + ctx.logger.info('Docker is ready and Cloud Init finished.') |