def conductor_commandline():
sys.stderr.write('Parsing conductor CLI args.\n')
parser = argparse.ArgumentParser(description=u'This should not be invoked '
u'except in a container by '
u'Ansible Container.')
parser.add_argument('command', action='store', help=u'Command to run.',
choices=['build', 'deploy', 'install', 'push', 'run', 'restart',
'stop', 'destroy'])
parser.add_argument('--project-name', action='store', help=u'Project name.', required=True)
parser.add_argument('--engine', action='store', help=u'Engine name.', required=True)
parser.add_argument('--params', action='store', required=False,
help=u'Encoded parameters for command.')
parser.add_argument('--config', action='store', required=True,
help=u'Encoded Ansible Container config.')
parser.add_argument('--encoding', action='store', choices=['b64json'],
help=u'Encoding used for parameters.', default='b64json')
args = parser.parse_args()
decoding_fn = globals()['decode_%s' % args.encoding]
if args.params:
params = decoding_fn(args.params)
else:
params = {}
if params.get('debug'):
LOGGING['loggers']['container']['level'] = 'DEBUG'
config.dictConfig(LOGGING)
containers_config = decoding_fn(args.config)
conductor_config = AnsibleContainerConductorConfig(list_to_ordereddict(containers_config))
logger.debug('Starting Ansible Container Conductor: %s', args.command, services=conductor_config.services)
getattr(core, 'conductorcmd_%s' % args.command)(
args.engine,
args.project_name,
conductor_config.services,
volume_data=conductor_config.volumes,
repository_data=conductor_config.registries,
secrets=conductor_config.secrets,
**params)
评论列表
文章目录