Ejemplo n.º 1
0
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)
        rows = []
        columns = [
            'ID', 'Stack Name', 'Stack Status', 'Creation Time', 'Updated Time'
        ]
        heat_client = self.app.client_manager.orchestration

        for stack in parsed_args.stack:
            try:
                data = heat_client.stacks.get(stack_id=stack)
            except heat_exc.HTTPNotFound:
                raise exc.CommandError('Stack not found: %s' % stack)

            status = getattr(data, 'stack_status').lower()
            if status == 'update_in_progress':
                data = _stack_action(stack, parsed_args, heat_client,
                                     heat_client.actions.cancel_update)
                rows += [utils.get_dict_properties(data.to_dict(), columns)]
            else:
                err = _("Stack %(id)s with status \'%(status)s\' "
                        "not in cancelable state") % {
                            'id': stack,
                            'status': status
                        }
                raise exc.CommandError(err)

        return (columns, rows)
Ejemplo n.º 2
0
def _show_config(heat_client, config_id, config_only):
    try:
        sc = heat_client.software_configs.get(config_id=config_id)
    except heat_exc.HTTPNotFound:
        raise exc.CommandError(_('Configuration not found: %s') % config_id)

    columns = None
    rows = None

    if config_only:
        print(sc.config)
    else:
        columns = (
            'id',
            'name',
            'group',
            'config',
            'inputs',
            'outputs',
            'options',
            'creation_time',
        )
        rows = utils.get_dict_properties(sc.to_dict(), columns)

    return columns, rows
Ejemplo n.º 3
0
 def take_action(self, parsed_args):
     self.log.debug("take_action(%s)", parsed_args)
     senlin_client = self.app.client_manager.clustering
     policy = senlin_client.get_cluster_policy(parsed_args.policy,
                                               parsed_args.cluster)
     columns = list(six.iterkeys(policy))
     return columns, utils.get_dict_properties(policy.to_dict(), columns)
Ejemplo n.º 4
0
def _stack_action(parsed_args, heat_client, action, good_status, bad_status):
    rows = []
    for stack in parsed_args.stack:
        try:
            action(stack)
        except heat_exc.HTTPNotFound:
            msg = _('Stack not found: %s') % stack
            raise exc.CommandError(msg)

        if parsed_args.wait:
            if not utils.wait_for_status(heat_client.stacks.get, stack,
                                         status_field='stack_status',
                                         success_status=good_status,
                                         error_status=bad_status):
                err = _("Error waiting for status from stack %s") % stack
                raise exc.CommandError(err)

        data = heat_client.stacks.get(stack)
        columns = [
            'ID',
            'Stack Name',
            'Stack Status',
            'Creation Time',
            'Updated Time'
        ]
        rows += [utils.get_dict_properties(data.to_dict(), columns)]

    return (columns, rows)
Ejemplo n.º 5
0
def _show_profile(senlin_client, profile_id):
    try:
        data = senlin_client.get_profile(profile_id)
    except sdk_exc.ResourceNotFound:
        raise exc.CommandError('Profile not found: %s' % profile_id)
    else:
        formatters = {}
        formatters['metadata'] = senlin_utils.json_formatter
        formatters['spec'] = senlin_utils.nested_dict_formatter(
            ['type', 'version', 'properties'],
            ['property', 'value'])

        columns = [
            'created_at',
            'domain',
            'id',
            'metadata',
            'name',
            'project',
            'spec',
            'type',
            'updated_at',
            'user'
        ]
        return columns, utils.get_dict_properties(data.to_dict(), columns,
                                                  formatters=formatters)
Ejemplo n.º 6
0
 def take_action(self, parsed_args):
     self.log.debug('take_action(%s)' % parsed_args)
     client = self.app.client_manager.network
     if parsed_args.dhcp:
         list_method = getattr(client, 'list_networks_on_dhcp_agent')
         resources = 'networks_on_dhcp_agent'
         report_filter = {'dhcp_agent': parsed_args.dhcp}
         data = list_method(**report_filter)[resources]
     else:
         list_method = getattr(client, "list_networks")
         report_filter = {}
         if parsed_args.external:
             report_filter = {'router:external': True}
         data = list_method(**report_filter)['networks']
     columns = len(data) > 0 and sorted(data[0].keys()) or []
     if parsed_args.columns:
         list_columns = parsed_args.columns
     else:
         list_columns = ['id', 'name', 'subnets']
     if not parsed_args.long and not parsed_args.dhcp:
         columns = [x for x in list_columns if x in columns]
     formatters = {'subnets': utils.format_list}
     return (columns, (utils.get_dict_properties(s,
                                                 columns,
                                                 formatters=formatters)
                       for s in data))
Ejemplo n.º 7
0
 def take_action(self, parsed_args):
     self.log.debug("take_action(%s)", parsed_args)
     senlin_client = self.app.client_manager.clustering
     policy = senlin_client.get_cluster_policy(parsed_args.policy,
                                               parsed_args.cluster)
     columns = list(six.iterkeys(policy))
     return columns, utils.get_dict_properties(policy.to_dict(), columns)
Ejemplo n.º 8
0
 def take_action(self, parsed_args):
     self.log.debug('take_action(%s)' % parsed_args)
     client = self.app.client_manager.network
     if parsed_args.dhcp:
         list_method = getattr(client, 'list_networks_on_dhcp_agent')
         resources = 'networks_on_dhcp_agent'
         report_filter = {'dhcp_agent': parsed_args.dhcp}
         data = list_method(**report_filter)[resources]
     else:
         list_method = getattr(client, "list_networks")
         report_filter = {}
         if parsed_args.external:
             report_filter = {'router:external': True}
         data = list_method(**report_filter)['networks']
     columns = len(data) > 0 and sorted(data[0].keys()) or []
     if parsed_args.columns:
         list_columns = parsed_args.columns
     else:
         list_columns = ['id', 'name', 'subnets']
     if not parsed_args.long and not parsed_args.dhcp:
         columns = [x for x in list_columns if x in columns]
     formatters = {'subnets': utils.format_list}
     return (columns,
             (utils.get_dict_properties(s, columns, formatters=formatters)
              for s in data))
    def take_action(self, parsed_args):

        if parsed_args.long:
            columns = ('Zone Name', 'Zone Status', 'Zone Resource',
                       'Host Name', 'Service Name', 'Service Status')
        else:
            columns = ('Zone Name', 'Zone Status')

        # Show everything by default.
        show_all = (not parsed_args.compute and
                    not parsed_args.volume and
                    not parsed_args.network)

        result = []
        if parsed_args.compute or show_all:
            result += self._get_compute_availability_zones(parsed_args)
        if parsed_args.volume or show_all:
            result += self._get_volume_availability_zones(parsed_args)
        if parsed_args.network or show_all:
            result += self._get_network_availability_zones(parsed_args)

        return (columns,
                (utils.get_dict_properties(
                    s, columns
                ) for s in result))
Ejemplo n.º 10
0
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        search_client = self.app.client_manager.search
        columns = (
            "Resource Type",
            "Type",
            "Name",
            "Options"
        )
        params = {
            "type": parsed_args.type,
            "limit_terms": parsed_args.limit_terms,
            "all_projects": parsed_args.all_projects
        }
        data = search_client.facets.list(**params)
        result = []
        for resource_type, values in six.iteritems(data):
            for s in values:
                options = []
                for o in s.get('options', []):
                    options.append(
                        str(o['key']) + '(' + str(o['doc_count']) + ')')
                s["options"] = ', '.join(options)
                s["resource_type"] = resource_type
                result.append(utils.get_dict_properties(s, columns))
        return (columns, result)
    def take_action(self, parsed_args):

        if parsed_args.long:
            columns = ('Zone Name', 'Zone Status',
                       'Host Name', 'Service Name', 'Service Status')
        else:
            columns = ('Zone Name', 'Zone Status')

        compute_client = self.app.client_manager.compute
        try:
            data = compute_client.availability_zones.list()
        except nova_exceptions.Forbidden as e:  # policy doesn't allow
            try:
                data = compute_client.availability_zones.list(detailed=False)
            except Exception:
                raise e

        # Argh, the availability zones are not iterable...
        result = []
        for zone in data:
            result += _xform_availability_zone(zone, parsed_args.long)

        return (columns,
                (utils.get_dict_properties(
                    s, columns
                ) for s in result))
Ejemplo n.º 12
0
    def take_action(self, parsed_args):
        self.log.debug('take_action(%s)', parsed_args)

        if parsed_args.long:
            columns = ('Zone Name', 'Zone Status', 'Host Name', 'Service Name',
                       'Service Status')
        else:
            columns = ('Zone Name', 'Zone Status')

        compute_client = self.app.client_manager.compute
        try:
            data = compute_client.availability_zones.list()
        except nova_exceptions.Forbidden as e:  # policy doesn't allow
            try:
                data = compute_client.availability_zones.list(detailed=False)
            except Exception:
                raise e

        # Argh, the availability zones are not iterable...
        result = []
        for zone in data:
            result += _xform_availability_zone(zone, parsed_args.long)

        return (columns, (utils.get_dict_properties(s, columns)
                          for s in result))
Ejemplo n.º 13
0
    def take_action(self, parsed_args):
        self.log.debug('take_action(%s)', parsed_args)

        if parsed_args.long:
            columns = ('Name', 'Bytes', 'Count')
        else:
            columns = ('Name',)

        kwargs = {}
        if parsed_args.prefix:
            kwargs['prefix'] = parsed_args.prefix
        if parsed_args.marker:
            kwargs['marker'] = parsed_args.marker
        if parsed_args.end_marker:
            kwargs['end_marker'] = parsed_args.end_marker
        if parsed_args.limit:
            kwargs['limit'] = parsed_args.limit
        if parsed_args.all:
            kwargs['full_listing'] = True

        data = lib_container.list_containers(
            self.app.restapi,
            self.app.client_manager.object_store.endpoint,
            **kwargs
        )

        return (columns,
                (utils.get_dict_properties(
                    s, columns,
                    formatters={},
                ) for s in data))
Ejemplo n.º 14
0
    def take_action(self, parsed_args):

        if parsed_args.long:
            columns = ('Name', 'Bytes', 'Count')
        else:
            columns = ('Name', )

        kwargs = {}
        if parsed_args.prefix:
            kwargs['prefix'] = parsed_args.prefix
        if parsed_args.marker:
            kwargs['marker'] = parsed_args.marker
        if parsed_args.end_marker:
            kwargs['end_marker'] = parsed_args.end_marker
        if parsed_args.limit:
            kwargs['limit'] = parsed_args.limit
        if parsed_args.all:
            kwargs['full_listing'] = True

        data = self.app.client_manager.object_store.container_list(**kwargs)

        return (columns, (utils.get_dict_properties(
            s,
            columns,
            formatters={},
        ) for s in data))
Ejemplo n.º 15
0
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)
        rows = []
        columns = [
            'ID',
            'Stack Name',
            'Stack Status',
            'Creation Time',
            'Updated Time'
        ]
        heat_client = self.app.client_manager.orchestration

        for stack in parsed_args.stack:
            try:
                data = heat_client.stacks.get(stack_id=stack)
            except heat_exc.HTTPNotFound:
                raise exc.CommandError('Stack not found: %s' % stack)

            status = getattr(data, 'stack_status').lower()
            if status == 'update_in_progress':
                data = _stack_action(
                    stack,
                    parsed_args,
                    heat_client,
                    heat_client.actions.cancel_update
                )
                rows += [utils.get_dict_properties(data.to_dict(), columns)]
            else:
                err = _("Stack %(id)s with status \'%(status)s\' "
                        "not in cancelable state") % {
                    'id': stack, 'status': status}
                raise exc.CommandError(err)

        return (columns, rows)
Ejemplo n.º 16
0
def _show_config(heat_client, config_id, config_only):
    try:
        sc = heat_client.software_configs.get(config_id=config_id)
    except heat_exc.HTTPNotFound:
        raise exc.CommandError(_('Configuration not found: %s') % config_id)

    columns = None
    rows = None

    if config_only:
        print(sc.config)
    else:
        columns = (
            'id',
            'name',
            'group',
            'config',
            'inputs',
            'outputs',
            'options',
            'creation_time',
        )
        rows = utils.get_dict_properties(sc.to_dict(), columns)

    return columns, rows
 def take_action_compute(self, client, parsed_args):
     obj = utils.find_resource(
         client.floating_ips,
         parsed_args.floating_ip,
     )
     columns = _get_columns(obj._info)
     data = utils.get_dict_properties(obj._info, columns)
     return (columns, data)
Ejemplo n.º 18
0
 def take_action_compute(self, client, parsed_args):
     obj = utils.find_resource(
         client.floating_ips,
         parsed_args.floating_ip,
     )
     columns = _get_columns(obj._info)
     data = utils.get_dict_properties(obj._info, columns)
     return (columns, data)
Ejemplo n.º 19
0
 def take_action_compute(self, client, parsed_args):
     network = utils.find_resource(
         client.networks,
         parsed_args.network,
     )
     columns = sorted(network._info.keys())
     data = utils.get_dict_properties(network._info, columns)
     return (columns, data)
Ejemplo n.º 20
0
 def take_action_compute(self, client, parsed_args):
     network = utils.find_resource(
         client.networks,
         parsed_args.network,
     )
     columns = sorted(network._info.keys())
     data = utils.get_dict_properties(network._info, columns)
     return (columns, data)
 def take_action(self, parsed_args):
     compute_client = self.app.client_manager.compute
     group = utils.find_resource(compute_client.server_groups,
                                 parsed_args.server_group)
     info = {}
     info.update(group._info)
     columns = _get_columns(info)
     data = utils.get_dict_properties(info, columns, formatters=_formatters)
     return columns, data
    def take_action(self, parsed_args):
        compute_client = self.app.client_manager.compute
        info = {}
        server_group = compute_client.server_groups.create(
            name=parsed_args.name, policies=parsed_args.policy)
        info.update(server_group._info)

        columns = _get_columns(info)
        data = utils.get_dict_properties(info, columns, formatters=_formatters)
        return columns, data
Ejemplo n.º 23
0
 def take_action_compute(self, client, parsed_args):
     obj = utils.find_resource(
         client.security_groups,
         parsed_args.group,
     )
     display_columns, property_columns = _get_columns(obj._info)
     data = utils.get_dict_properties(obj._info,
                                      property_columns,
                                      formatters=_formatters_compute)
     return (display_columns, data)
 def take_action(self, parsed_args):
     compute_client = self.app.client_manager.compute
     group = utils.find_resource(compute_client.server_groups,
                                 parsed_args.server_group)
     info = {}
     info.update(group._info)
     columns = _get_columns(info)
     data = utils.get_dict_properties(info, columns,
                                      formatters=_formatters)
     return columns, data
Ejemplo n.º 25
0
def _stacks_action(parsed_args, heat_client, action, action_name=None):
    rows = []
    columns = [
        'ID', 'Stack Name', 'Stack Status', 'Creation Time', 'Updated Time'
    ]
    for stack in parsed_args.stack:
        data = _stack_action(stack, parsed_args, heat_client, action,
                             action_name)
        rows += [utils.get_dict_properties(data.to_dict(), columns)]
    return (columns, rows)
Ejemplo n.º 26
0
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)" % parsed_args)

        client = self.app.client_manager.messaging

        queue_name = parsed_args.queue_name
        queue = client.queue(queue_name, auto_create=False)

        columns = ('Exists',)
        data = dict(exists=queue.exists())
        return columns, utils.get_dict_properties(data, columns)
Ejemplo n.º 27
0
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        senlin_client = self.app.client_manager.clustering
        try:
            event = senlin_client.get_event(parsed_args.event)
        except sdk_exc.ResourceNotFound:
            raise exc.CommandError(_("Event not found: %s")
                                   % parsed_args.event)
        columns = sorted(list(six.iterkeys(event)))
        return columns, utils.get_dict_properties(event.to_dict(), columns)
Ejemplo n.º 28
0
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        senlin_client = self.app.client_manager.clustering
        try:
            event = senlin_client.get_event(parsed_args.event)
        except sdk_exc.ResourceNotFound:
            raise exc.CommandError(
                _("Event not found: %s") % parsed_args.event)
        columns = list(six.iterkeys(event))
        return columns, utils.get_dict_properties(event.to_dict(), columns)
Ejemplo n.º 29
0
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)" % parsed_args)

        client = self.app.client_manager.messaging

        queue_name = parsed_args.queue_name
        queue = client.queue(queue_name, auto_create=False)

        columns = ('Exists', )
        data = dict(exists=queue.exists())
        return columns, utils.get_dict_properties(data, columns)
Ejemplo n.º 30
0
 def take_action_compute(self, client, parsed_args):
     description = self._get_description(parsed_args)
     obj = client.security_groups.create(
         parsed_args.name,
         description,
     )
     display_columns, property_columns = _get_columns(obj._info)
     data = utils.get_dict_properties(obj._info,
                                      property_columns,
                                      formatters=_formatters_compute)
     return (display_columns, data)
    def take_action(self, parsed_args):
        compute_client = self.app.client_manager.compute
        info = {}
        server_group = compute_client.server_groups.create(
            name=parsed_args.name,
            policies=parsed_args.policy)
        info.update(server_group._info)

        columns = _get_columns(info)
        data = utils.get_dict_properties(info, columns,
                                         formatters=_formatters)
        return columns, data
 def take_action_compute(self, client, parsed_args):
     obj = utils.find_resource(
         client.security_groups,
         parsed_args.group,
     )
     display_columns, property_columns = _get_columns(obj._info)
     data = utils.get_dict_properties(
         obj._info,
         property_columns,
         formatters=_formatters_compute
     )
     return (display_columns, data)
Ejemplo n.º 33
0
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        heat_client = self.app.client_manager.orchestration
        result = heat_client.build_info.build_info()

        formatters = {
            'api': heat_utils.json_formatter,
            'engine': heat_utils.json_formatter,
        }
        columns = sorted(list(six.iterkeys(result)))
        return columns, utils.get_dict_properties(result, columns,
                                                  formatters=formatters)
Ejemplo n.º 34
0
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        # This is ugly because if auth hasn't happened yet we need
        # to trigger it here.
        sc = self.app.client_manager.session.auth.get_auth_ref(self.app.client_manager.session).service_catalog

        data = sc.get_data()
        columns = ("Name", "Type", "Endpoints")
        return (
            columns,
            (utils.get_dict_properties(s, columns, formatters={"Endpoints": _format_endpoints}) for s in data),
        )
 def take_action_compute(self, client, parsed_args):
     description = self._get_description(parsed_args)
     obj = client.security_groups.create(
         parsed_args.name,
         description,
     )
     display_columns, property_columns = _get_columns(obj._info)
     data = utils.get_dict_properties(
         obj._info,
         property_columns,
         formatters=_formatters_compute
     )
     return (display_columns, data)
Ejemplo n.º 36
0
def _show_cluster(senlin_client, cluster_id):
    try:
        cluster = senlin_client.get_cluster(cluster_id)
    except sdk_exc.ResourceNotFound:
        raise exc.CommandError(_('Cluster not found: %s') % cluster_id)

    formatters = {
        'metadata': senlin_utils.json_formatter,
        'nodes': senlin_utils.list_formatter
    }
    columns = list(six.iterkeys(cluster))
    return columns, utils.get_dict_properties(cluster.to_dict(), columns,
                                              formatters=formatters)
Ejemplo n.º 37
0
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        senlin_client = self.app.client_manager.clustering
        result = senlin_client.get_build_info()

        formatters = {
            'api': senlin_utils.json_formatter,
            'engine': senlin_utils.json_formatter,
        }
        columns = sorted(list(six.iterkeys(result)))
        return columns, utils.get_dict_properties(result.to_dict(), columns,
                                                  formatters=formatters)
Ejemplo n.º 38
0
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        search_client = self.app.client_manager.search
        mapping = {"_score": "score", "_type": "type", "_id": "id",
                   "_index": "index", "_source": "source"}

        params = {
            "type": parsed_args.type,
            "all_projects": parsed_args.all_projects
        }
        source = parsed_args.source
        if source:
            columns = ("ID", "Score", "Type", "Source")
            if source != "all_sources":
                params["_source"] = (["id"] +
                    [s for s in source.split(",") if s != 'id'])
        else:
            columns = ("ID", "Name", "Score", "Type", "Updated")
            # Only return the required fields when source not specified.
            params["_source"] = ["id", "name", "updated_at"]

        if parsed_args.query:
            if parsed_args.json:
                query = json.loads(parsed_args.query)
            else:
                try:
                    json.loads(parsed_args.query)
                    print("You should use the --json flag when specifying "
                          "a JSON object.")
                    exit(1)
                except Exception:
                    qs = self._modify_query_string(parsed_args.query)
                    query = {"query_string": {"query": qs}}

            params['query'] = query

        data = search_client.search.search(**params)
        result = []
        for r in data.hits['hits']:
            converted = {}
            # hit._id may include extra information appended after _,
            # so use r['_source']['id'] for safe.
            r['_id'] = r.get('_source', {}).get('id')
            for k, v in six.iteritems(r):
                converted[mapping[k]] = v
                if k == "_source" and not parsed_args.source:
                    converted["name"] = v.get("name")
                    converted["updated"] = v.get("updated_at")
            result.append(utils.get_dict_properties(converted, columns))
        return (columns, result)
Ejemplo n.º 39
0
    def _list_snapshot(self, heat_client, parsed_args):
        fields = {'stack_id': parsed_args.stack}
        try:
            snapshots = heat_client.stacks.snapshot_list(**fields)
        except heat_exc.HTTPNotFound:
            raise exc.CommandError(_('Stack not found: %s') %
                                   parsed_args.stack)

        columns = ['id', 'name', 'status', 'status_reason', 'creation_time']
        return (
            columns,
            (utils.get_dict_properties(s, columns)
             for s in snapshots['snapshots'])
        )
Ejemplo n.º 40
0
    def take_action(self, parsed_args):

        results = []
        for container in parsed_args.containers:
            data = self.app.client_manager.object_store.container_create(
                container=container, )
            results.append(data)

        columns = ("account", "container", "x-trans-id")
        return (columns, (utils.get_dict_properties(
            s,
            columns,
            formatters={},
        ) for s in results))
Ejemplo n.º 41
0
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)" % parsed_args)

        client = self.app.client_manager.messaging

        queue_name = parsed_args.queue_name
        queue = client.queue(queue_name, auto_create=False)

        if not queue.exists():
            raise RuntimeError('Queue(%s) does not exist.' % queue_name)

        columns = ("Stats", )
        data = dict(stats=queue.stats)
        return columns, utils.get_dict_properties(data, columns)
Ejemplo n.º 42
0
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)" % parsed_args)

        client = self.app.client_manager.messaging

        queue_name = parsed_args.queue_name
        queue = client.queue(queue_name, auto_create=False)

        if not queue.exists():
            raise RuntimeError('Queue(%s) does not exist.' % queue_name)

        columns = ("Stats",)
        data = dict(stats=queue.stats)
        return columns, utils.get_dict_properties(data, columns)
Ejemplo n.º 43
0
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        heat_client = self.app.client_manager.orchestration
        result = heat_client.build_info.build_info()

        formatters = {
            'api': heat_utils.json_formatter,
            'engine': heat_utils.json_formatter,
        }
        columns = sorted(list(six.iterkeys(result)))
        return columns, utils.get_dict_properties(result,
                                                  columns,
                                                  formatters=formatters)
Ejemplo n.º 44
0
def _show_policy(senlin_client, policy_id):
    try:
        policy = senlin_client.get_policy(policy_id)
    except sdk_exc.ResourceNotFound:
        raise exc.CommandError(_('Policy not found: %s') % policy_id)

    formatters = {'spec': senlin_utils.json_formatter}
    columns = [
        'created_at', 'data', 'domain', 'id', 'name', 'project', 'spec',
        'type', 'updated_at', 'user'
    ]
    return columns, utils.get_dict_properties(policy.to_dict(),
                                              columns,
                                              formatters=formatters)
Ejemplo n.º 45
0
def _stacks_action(parsed_args, heat_client, action, action_name=None):
    rows = []
    columns = [
        'ID',
        'Stack Name',
        'Stack Status',
        'Creation Time',
        'Updated Time'
    ]
    for stack in parsed_args.stack:
        data = _stack_action(stack, parsed_args, heat_client, action,
                             action_name)
        rows += [utils.get_dict_properties(data.to_dict(), columns)]
    return (columns, rows)
Ejemplo n.º 46
0
def _show_receiver(senlin_client, receiver_id):
    try:
        receiver = senlin_client.get_receiver(receiver_id)
    except sdk_exc.ResourceNotFound:
        raise exc.CommandError(_('Receiver not found: %s') % receiver_id)

    formatters = {
        'actor': senlin_utils.json_formatter,
        'params': senlin_utils.json_formatter,
        'channel': senlin_utils.json_formatter,
    }
    columns = sorted(list(six.iterkeys(receiver)))
    return columns, utils.get_dict_properties(receiver.to_dict(), columns,
                                              formatters=formatters)
Ejemplo n.º 47
0
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        senlin_client = self.app.client_manager.clustering
        result = senlin_client.get_build_info()

        formatters = {
            'api': senlin_utils.json_formatter,
            'engine': senlin_utils.json_formatter,
        }
        columns = list(six.iterkeys(result))
        return columns, utils.get_dict_properties(result.to_dict(),
                                                  columns,
                                                  formatters=formatters)
Ejemplo n.º 48
0
def _show_receiver(senlin_client, receiver_id):
    try:
        receiver = senlin_client.get_receiver(receiver_id)
    except sdk_exc.ResourceNotFound:
        raise exc.CommandError(_('Receiver not found: %s') % receiver_id)

    formatters = {
        'actor': senlin_utils.json_formatter,
        'params': senlin_utils.json_formatter,
        'channel': senlin_utils.json_formatter,
    }
    columns = list(six.iterkeys(receiver))
    return columns, utils.get_dict_properties(receiver.to_dict(), columns,
                                              formatters=formatters)
Ejemplo n.º 49
0
def _show_cluster(senlin_client, cluster_id):
    try:
        cluster = senlin_client.get_cluster(cluster_id)
    except sdk_exc.ResourceNotFound:
        raise exc.CommandError(_('Cluster not found: %s') % cluster_id)

    formatters = {
        'metadata': senlin_utils.json_formatter,
        'nodes': senlin_utils.list_formatter
    }
    columns = list(six.iterkeys(cluster))
    return columns, utils.get_dict_properties(cluster.to_dict(),
                                              columns,
                                              formatters=formatters)
Ejemplo n.º 50
0
    def take_action(self, parsed_args):

        results = []
        for container in parsed_args.containers:
            data = self.app.client_manager.object_store.container_create(
                container=container,
            )
            results.append(data)

        columns = ("account", "container", "x-trans-id")
        return (columns,
                (utils.get_dict_properties(
                    s, columns,
                    formatters={},
                ) for s in results))
Ejemplo n.º 51
0
    def take_action(self, parsed_args):
        self.log.debug('take_action(%s)', parsed_args)

        client = self.app.client_manager.orchestration

        try:
            outputs = client.stacks.output_list(parsed_args.stack)['outputs']
        except heat_exc.HTTPNotFound:
            msg = _('Stack not found: %s') % parsed_args.stack
            raise exc.CommandError(msg)

        columns = ['output_key', 'description']

        return (columns, (utils.get_dict_properties(s, columns)
                          for s in outputs))
Ejemplo n.º 52
0
    def take_action(self, parsed_args):

        results = []
        for obj in parsed_args.objects:
            data = self.app.client_manager.object_store.object_create(
                container=parsed_args.container,
                object=obj,
            )
            results.append(data)

        columns = ("object", "container", "etag")
        return (columns, (utils.get_dict_properties(
            s,
            columns,
            formatters={},
        ) for s in results))
    def take_action(self, parsed_args):

        # This is ugly because if auth hasn't happened yet we need
        # to trigger it here.
        sc = self.app.client_manager.session.auth.get_auth_ref(
            self.app.client_manager.session, ).service_catalog

        data = sc.get_data()
        columns = ('Name', 'Type', 'Endpoints')
        return (columns, (utils.get_dict_properties(
            s,
            columns,
            formatters={
                'Endpoints': _format_endpoints,
            },
        ) for s in data))
Ejemplo n.º 54
0
    def take_action(self, parsed_args):

        results = []
        for obj in parsed_args.objects:
            data = self.app.client_manager.object_store.object_create(
                container=parsed_args.container,
                object=obj,
            )
            results.append(data)

        columns = ("object", "container", "etag")
        return (columns,
                (utils.get_dict_properties(
                    s, columns,
                    formatters={},
                ) for s in results))
Ejemplo n.º 55
0
    def take_action(self, parsed_args):
        self.log.debug('take_action(%s)' % parsed_args)
        client = self.app.client_manager.network

        if parsed_args.dhcp:
            data = client.api.dhcp_agent_list(dhcp_id=parsed_args.dhcp)

            columns = ('ID', )
            column_headers = columns
        else:
            data = client.api.network_list(external=parsed_args.external)

            if parsed_args.long:
                columns = (
                    'ID',
                    'Name',
                    'Status',
                    'project_id',
                    'state',
                    'Shared',
                    'Subnets',
                    'provider:network_type',
                    'router_type',
                )
                column_headers = (
                    'ID',
                    'Name',
                    'Status',
                    'Project',
                    'State',
                    'Shared',
                    'Subnets',
                    'Network Type',
                    'Router Type',
                )
            else:
                columns = ('ID', 'Name', 'Subnets')
                column_headers = columns

        for d in data:
            d = _prep_network_detail(d)

        return (column_headers, (utils.get_dict_properties(
            s,
            columns,
            formatters={'subnets': utils.format_list},
        ) for s in data))
Ejemplo n.º 56
0
    def take_action(self, parsed_args):
        self.log.debug('take_action(%s)' % parsed_args)
        client = self.app.client_manager.network

        if parsed_args.dhcp:
            data = client.api.dhcp_agent_list(dhcp_id=parsed_args.dhcp)

            columns = ('ID',)
            column_headers = columns
        else:
            data = client.api.network_list(external=parsed_args.external)

            if parsed_args.long:
                columns = (
                    'ID',
                    'Name',
                    'Status',
                    'project_id',
                    'state',
                    'Shared',
                    'Subnets',
                    'provider:network_type',
                    'router_type',
                )
                column_headers = (
                    'ID',
                    'Name',
                    'Status',
                    'Project',
                    'State',
                    'Shared',
                    'Subnets',
                    'Network Type',
                    'Router Type',
                )
            else:
                columns = ('ID', 'Name', 'Subnets')
                column_headers = columns

        for d in data:
            d = _prep_network_detail(d)

        return (column_headers,
                (utils.get_dict_properties(
                    s, columns,
                    formatters={'subnets': utils.format_list},
                ) for s in data))
Ejemplo n.º 57
0
    def take_action(self, parsed_args):
        self.log.debug('take_action(%s)', parsed_args)

        results = []
        for container in parsed_args.containers:
            data = lib_container.create_container(
                self.app.client_manager.session,
                self.app.client_manager.object_store.endpoint,
                container,
            )
            results.append(data)

        columns = ("account", "container", "x-trans-id")
        return (columns, (utils.get_dict_properties(
            s,
            columns,
            formatters={},
        ) for s in results))
Ejemplo n.º 58
0
def _show_profile(senlin_client, profile_id):
    try:
        data = senlin_client.get_profile(profile_id)
    except sdk_exc.ResourceNotFound:
        raise exc.CommandError('Profile not found: %s' % profile_id)
    else:
        formatters = {}
        formatters['metadata'] = senlin_utils.json_formatter
        formatters['spec'] = senlin_utils.nested_dict_formatter(
            ['type', 'version', 'properties'], ['property', 'value'])

        columns = [
            'created_at', 'domain', 'id', 'metadata', 'name', 'project',
            'spec', 'type', 'updated_at', 'user'
        ]
        return columns, utils.get_dict_properties(data.to_dict(),
                                                  columns,
                                                  formatters=formatters)
Ejemplo n.º 59
0
    def take_action(self, parsed_args):
        self.log.debug('take_action(%s)', parsed_args)

        results = []
        for obj in parsed_args.objects:
            data = lib_object.create_object(
                self.app.client_manager.session,
                self.app.client_manager.object_store.endpoint,
                parsed_args.container,
                obj,
            )
            results.append(data)

        columns = ("object", "container", "etag")
        return (columns, (utils.get_dict_properties(
            s,
            columns,
            formatters={},
        ) for s in results))