Esempio n. 1
0
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)
Esempio n. 2
0
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)
Esempio n. 3
0
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)
Esempio n. 4
0
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)
Esempio n. 5
0
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)
Esempio n. 6
0
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)
Esempio n. 7
0
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)
Esempio n. 8
0
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)