def _cloud_update(cs, args, type=None): cloud = utils.find_cloud(cs, args.cloud, type=type) if type and type != cloud.type: raise exceptions.CommandError("No %s cloud exist with %s." % (type, args.cloud)) updates = {} if args.name: updates['name'] = args.name if args.driver: updates['driver'] = args.driver if args.capabilities: capabilities = _extract_list(args.capabilities) updates['capabilities'] = capabilities if args.params: try: params = _extract_dict(args.params) except Exception: raise exceptions.CommandError("Unable to convert params to " "dict: %s" % args.params) updates['params'] = params if not updates: raise exceptions.CommandError("Nothing to update.") result = cloud.update(**updates) info = dict() info.update(result._info) info['params'] = _dict_to_string(info['params']) info['capabilities'] = _list_to_string(info['capabilities']) if info['type'] == 'destination': info['properties'] = _extract_props(info['properties']) utils.print_dict(info)
def do_create(cs, args): """Creates a new migration process""" try: properties = _extract_dict(args.properties) except Exception: raise exceptions.CommandError("Unable to convert properties to dict: " "%s" % params) resource = utils.find_cloud_resource(cs, args.resource) destination = utils.find_cloud(cs, args.destination, type='destination') if destination.type != "destination": raise exceptions.CommandError("No destination cloud exist with %s." % args.destination) kwargs = {'name': args.name, 'description': args.description, 'resource': resource.id, 'destination': destination.id, 'properties': properties} migration = cs.migrations.create(**kwargs) info = dict() info.update(migration._info) info['properties'] = _dict_to_string(info['properties']) utils.print_dict(info)
def _cloud_create(cs, args, cloud_type=None): try: params = _extract_dict(args.params) except Exception: raise exceptions.CommandError("Unable to convert params to dict: %s" % params) enabled = strutils.bool_from_string(args.enabled) capabilities = _extract_list(args.capabilities) if not params: raise exceptions.CommandError("Connection parameters can't be empty.") kwargs = {'name': args.name, 'driver': args.driver, 'type': cloud_type, 'capabilities': capabilities, 'enabled': enabled, 'params': params} cloud = cs.clouds.create(**kwargs) info = dict() info.update(cloud._info) info['params'] = _dict_to_string(info['params']) info['capabilities'] = _list_to_string(info['capabilities']) if info['type'] == 'destination': info['properties'] = _extract_props(info['properties']) utils.print_dict(info)
def do_show(cs, args): info = dict() migration = utils.find_migration(cs, args.migration) info.update(migration._info) info['properties'] = _dict_to_string(info['properties']) utils.print_dict(info)
def do_resource_show(cs, args): """Shows resource details""" info = dict() resource = utils.find_cloud_resource(cs, args.resource) info.update(resource._info) info['properties'] = _dict_to_string(info['properties']) utils.print_dict(info)
def _cloud_show(cs, args, type=None): info = dict() cloud = utils.find_cloud(cs, args.cloud, type=type) if type and type != cloud.type: raise exceptions.CommandError("No %s cloud exist with %s." % (type, args.cloud)) info.update(cloud._info) info['params'] = _dict_to_string(info['params']) info['capabilities'] = _list_to_string(info['capabilities']) if info['type'] == 'destination': info['properties'] = _extract_props(info['properties']) utils.print_dict(info)
def _cloud_disable(cs, args, type=None): cloud = utils.find_cloud(cs, args.cloud, type=type) if type and type != cloud.type: raise exceptions.CommandError("No %s cloud exist with %s." % (type, args.cloud)) if cloud.enabled is False: raise exceptions.CommandError("Cloud already disabled.") result = cloud.disable() info = dict() info.update(result._info) info['params'] = _dict_to_string(info['params']) info['capabilities'] = _list_to_string(info['capabilities']) if info['type'] == 'destination': info['properties'] = _extract_props(info['properties']) utils.print_dict(info)
def do_driver_info(cs, args): """Prints driver information""" driver_info = cs.clouds.driver_info(args.driver) info = dict() info.update(driver_info._info) info['capabilities'] = _list_to_string(info['capabilities']) info['optionals'] = _dict_to_string(info['optionals']) if isinstance(info['params'], dict): for key, value in info['params'].items(): set_name = "%s param set:" % key info[set_name] = _list_to_string(value) del info['params'] elif isinstance(info['params'], list): info['params'] = _list_to_string(info['params']) utils.print_dict(info)