def create_command(self, provider_name):
config = node_manager.valid_node_types['providers'].get(provider_name)
if not config:
return
provider_options = [
click.Option(param_decls=['--name'], help='Compute node name', required=True)
]
for param, param_data in node_manager.get_node_params(provider_name).items():
argument_params = dict()
argument_params['help'] = ''
description = param_data.get('description', {}).get(DEFAULT_LANG)
default = param_data.get('default')
arg_type = param_data.get('type')
if description:
argument_params['help'] += '{} '.format(description)
if arg_type:
argument_params['help'] += '(type: {}) '.format(arg_type)
if default:
argument_params.update({
'default': default,
'required': False
})
argument_params['help'] += '(default: {}) '.format(default)
else:
argument_params['required'] = True
provider_options.append(click.Option(
param_decls=['--{}'.format(param)],
help=argument_params['help'],
default=default,
required=False if default else True
))
cmd = click.Command(
name=provider_name,
params=provider_options,
help=click.style(config['description'], fg='cyan'),
short_help=click.style(config['description'], fg='cyan'),
callback=self.create_node_callback
)
return cmd
评论列表
文章目录