Esempio n. 1
0
def do_user_list(cc, args={}):
    '''List the users.'''
    kwargs = {'source': args.source}
    users = cc.users.list(**kwargs)
    field_labels = ['User ID']
    fields = ['user_id']
    utils.print_list(users, fields, field_labels, sortby=0)
Esempio n. 2
0
def do_resource_list(cc, args={}):
    '''List the resources.'''
    resources = cc.resources.list(q=options.cli_to_array(args.query))

    field_labels = ['Resource ID', 'Source', 'User ID', 'Project ID']
    fields = ['resource_id', 'source', 'user_id', 'project_id']
    utils.print_list(resources, fields, field_labels, sortby=1)
Esempio n. 3
0
def do_archive_policy_list(cc, args={}):
    """List archive policy """
    aps = cc.archive_policy.list()
    field_labels = ['Name', 'Aggregation methods', 'Back Window', 'Definition']
    fields = ['name', 'aggregation_methods', 'back_window', 'definition']
    utils.print_list(aps, fields, field_labels,
                     sortby=0)
Esempio n. 4
0
def do_metric_list(cc, args={}):
    """List metrics."""
    meters = cc.metrics.list()
    field_labels = ['Archive Policy Name', 'Name', 'Metric ID', 'User ID', 'Project ID']
    fields = ['archive_policy_name', 'name', 'id',
              'created_by_user_id', 'created_by_project_id']
    utils.print_list(meters, fields, field_labels,
                     sortby=0)
Esempio n. 5
0
def do_meter_list(cc, args={}):
    '''List the user's meters.'''
    meters = cc.meters.list(q=options.cli_to_array(args.query))
    field_labels = [
        'Name', 'Type', 'Unit', 'Resource ID', 'User ID', 'Project ID'
    ]
    fields = ['name', 'type', 'unit', 'resource_id', 'user_id', 'project_id']
    utils.print_list(meters, fields, field_labels, sortby=0)
Esempio n. 6
0
def do_trait_list(cc, args={}):
    '''List trait all traits with name <trait_name> for Event Type
    <event_type>.
    '''
    traits = cc.traits.list(args.event_type, args.trait_name)
    field_labels = ['Trait Name', 'Value', 'Data Type']
    fields = ['name', 'value', 'type']
    utils.print_list(traits, fields, field_labels)
Esempio n. 7
0
def do_resource_list(cc, args={}):
    '''List the resources.'''
    resources = cc.resources.list(q=options.cli_to_array(args.query))

    field_labels = ['Resource ID', 'Source', 'User ID', 'Project ID']
    fields = ['resource_id', 'source', 'user_id', 'project_id']
    utils.print_list(resources, fields, field_labels,
                     sortby=1)
Esempio n. 8
0
def do_user_list(cc, args={}):
    '''List the users.'''
    kwargs = {'source': args.source}
    users = cc.users.list(**kwargs)
    field_labels = ['User ID']
    fields = ['user_id']
    utils.print_list(users, fields, field_labels,
                     sortby=0)
Esempio n. 9
0
def do_trait_list(cc, args={}):
    '''List trait all traits with name <trait_name> for Event Type
    <event_type>.
    '''
    traits = cc.traits.list(args.event_type, args.trait_name)
    field_labels = ['Trait Name', 'Value', 'Data Type']
    fields = ['name', 'value', 'type']
    utils.print_list(traits, fields, field_labels)
Esempio n. 10
0
def do_project_list(cc, args={}):
    '''List the projects.'''
    kwargs = {'source': args.source}
    projects = cc.projects.list(**kwargs)

    field_labels = ['Project ID']
    fields = ['project_id']
    utils.print_list(projects, fields, field_labels, sortby=0)
Esempio n. 11
0
def do_project_list(cc, args={}):
    '''List the projects.'''
    kwargs = {'source': args.source}
    projects = cc.projects.list(**kwargs)

    field_labels = ['Project ID']
    fields = ['project_id']
    utils.print_list(projects, fields, field_labels,
                     sortby=0)
Esempio n. 12
0
def do_meter_list(cc, args={}):
    '''List the user's meters.'''
    meters = cc.meters.list(q=options.cli_to_array(args.query))
    field_labels = ['Name', 'Type', 'Unit', 'Resource ID', 'User ID',
                    'Project ID']
    fields = ['name', 'type', 'unit', 'resource_id', 'user_id',
              'project_id']
    utils.print_list(meters, fields, field_labels,
                     sortby=0)
Esempio n. 13
0
 def do_print_list(sortby):
     saved_stdout = sys.stdout
     try:
         sys.stdout = output = six.StringIO()
         utils.print_list(foo_list, ['one', 'two', 'three'],
                          ['1st', '2nd', '3rd'],
                          {'one': lambda o: o.one * 10}, sortby)
     finally:
         sys.stdout = saved_stdout
     return output.getvalue()
Esempio n. 14
0
def do_event_list(cc, args={}):
    '''List events.'''
    events = cc.events.list(q=options.cli_to_array(args.query))
    field_labels = ['Message ID', 'Event Type', 'Generated', 'Traits']
    fields = ['message_id', 'event_type', 'generated', 'traits']
    utils.print_list(events, fields, field_labels,
                     formatters={
                         'traits': utils.nested_list_of_dict_formatter(
                             'traits', ['name', 'type', 'value']
                         )})
Esempio n. 15
0
 def do_print_list(sortby):
     saved_stdout = sys.stdout
     try:
         sys.stdout = output = six.StringIO()
         utils.print_list(foo_list,
                          ['one', 'two', 'three'],
                          ['1st', '2nd', '3rd'],
                          {'one': lambda o: o.one * 10},
                          sortby)
     finally:
         sys.stdout = saved_stdout
     return output.getvalue()
Esempio n. 16
0
def do_meter_list(cc, args={}):
    '''List the user's meter'''
    fields = {
        'resource_id': args.resource_id,
        'user_id': args.user_id,
        'project_id': args.project_id,
        'source': args.source
    }
    meters = cc.meters.list(**fields)
    field_labels = ['Name', 'Type', 'Resource ID', 'User ID', 'Project ID']
    fields = ['name', 'type', 'resource_id', 'user_id', 'project_id']
    utils.print_list(meters, fields, field_labels, sortby=0)
Esempio n. 17
0
def do_meter_list(cc, args={}):
    '''List the user's meter'''
    fields = {'resource_id': args.resource_id,
              'user_id': args.user_id,
              'project_id': args.project_id,
              'source': args.source}
    meters = cc.meters.list(**fields)
    field_labels = ['Name', 'Type', 'Resource ID', 'User ID', 'Project ID']
    fields = ['name', 'type', 'resource_id',
              'user_id', 'project_id']
    utils.print_list(meters, fields, field_labels,
                     sortby=0)
Esempio n. 18
0
def do_alarm_list(cc, args={}):
    '''List the user's alarms.'''
    alarms = cc.alarms.list(q=options.cli_to_array(args.query))
    # omit action initially to keep output width sane
    # (can switch over to vertical formatting when available from CLIFF)
    field_labels = ['Alarm ID', 'Name', 'State', 'Enabled', 'Continuous',
                    'Alarm condition', 'Time constraints']
    fields = ['alarm_id', 'name', 'state', 'enabled', 'repeat_actions',
              'rule', 'time_constraints']
    utils.print_list(
        alarms, fields, field_labels,
        formatters={'rule': alarm_rule_formatter,
                    'time_constraints': time_constraints_formatter}, sortby=0)
Esempio n. 19
0
def do_alarm_history(cc, args={}):
    '''Display the change history of an alarm.'''
    kwargs = dict(alarm_id=args.alarm_id,
                  q=options.cli_to_array(args.query))
    try:
        history = cc.alarms.get_history(**kwargs)
    except exc.HTTPNotFound:
        raise exc.CommandError('Alarm not found: %s' % args.alarm_id)
    field_labels = ['Type', 'Timestamp', 'Detail']
    fields = ['type', 'timestamp', 'detail']
    utils.print_list(history, fields, field_labels,
                     formatters={'detail': alarm_change_detail_formatter},
                     sortby=1)
Esempio n. 20
0
def do_event_list(cc, args={}):
    '''List events.'''
    events = cc.events.list(q=options.cli_to_array(args.query))
    field_labels = ['Message ID', 'Event Type', 'Generated', 'Traits']
    fields = ['message_id', 'event_type', 'generated', 'traits']
    utils.print_list(events,
                     fields,
                     field_labels,
                     formatters={
                         'traits':
                         utils.nested_list_of_dict_formatter(
                             'traits', ['name', 'type', 'value'])
                     })
Esempio n. 21
0
def do_alarm_history(cc, args={}):
    '''Display the change history of an alarm.'''
    kwargs = dict(alarm_id=args.alarm_id, q=options.cli_to_array(args.query))
    try:
        history = cc.alarms.get_history(**kwargs)
    except exc.HTTPNotFound:
        raise exc.CommandError('Alarm not found: %s' % args.alarm_id)
    field_labels = ['Type', 'Timestamp', 'Detail']
    fields = ['type', 'timestamp', 'detail']
    utils.print_list(history,
                     fields,
                     field_labels,
                     formatters={'detail': alarm_change_detail_formatter},
                     sortby=1)
Esempio n. 22
0
def do_resource_list(cc, args={}):
    '''List the resources.'''
    kwargs = {'source': args.source,
              'user_id': args.user_id,
              'project_id': args.project_id,
              'start_timestamp': args.start,
              'end_timestamp': args.end,
              'metaquery': args.metaquery}
    resources = cc.resources.list(**kwargs)

    field_labels = ['Resource ID', 'Source', 'User ID', 'Project ID']
    fields = ['resource_id', 'source', 'user_id', 'project_id']
    utils.print_list(resources, fields, field_labels,
                     sortby=1)
Esempio n. 23
0
def do_query_alarm_history(cc, args):
    '''Query Alarm History.'''
    fields = {'filter': args.filter,
              'orderby': args.orderby,
              'limit': args.limit}
    try:
        alarm_history = cc.query_alarm_history.query(**fields)
    except exc.HTTPNotFound:
        raise exc.CommandError('Alarm history not found')
    else:
        field_labels = ['Alarm ID', 'Event ID', 'Type', 'Detail', 'Timestamp']
        fields = ['alarm_id', 'event_id', 'type', 'detail', 'timestamp']
        utils.print_list(alarm_history, fields, field_labels,
                         formatters={'rule': alarm_change_detail_formatter},
                         sortby=None)
Esempio n. 24
0
def do_resource_list(cc, args={}):
    '''List the resources.'''
    kwargs = {
        'source': args.source,
        'user_id': args.user_id,
        'project_id': args.project_id,
        'start_timestamp': args.start,
        'end_timestamp': args.end,
        'metaquery': args.metaquery
    }
    resources = cc.resources.list(**kwargs)

    field_labels = ['Resource ID', 'Source', 'User ID', 'Project ID']
    fields = ['resource_id', 'source', 'user_id', 'project_id']
    utils.print_list(resources, fields, field_labels, sortby=1)
Esempio n. 25
0
def do_query_samples(cc, args):
    '''Query samples.'''
    fields = {'filter': args.filter,
              'orderby': args.orderby,
              'limit': args.limit}
    try:
        samples = cc.query_samples.query(**fields)
    except exc.HTTPNotFound:
        raise exc.CommandError('Samples not found')
    else:
        field_labels = ['Resource ID', 'Meter', 'Type', 'Volume', 'Unit',
                        'Timestamp']
        fields = ['resource_id', 'meter', 'type',
                  'volume', 'unit', 'timestamp']
        utils.print_list(samples, fields, field_labels,
                         sortby=None)
Esempio n. 26
0
def do_sample_list(cc, args):
    '''List the samples for a meter.'''
    fields = {'meter_name': args.meter,
              'q': options.cli_to_array(args.query),
              'limit': args.limit}
    try:
        samples = cc.samples.list(**fields)
    except exc.HTTPNotFound:
        raise exc.CommandError('Samples not found: %s' % args.meter)
    else:
        field_labels = ['Resource ID', 'Name', 'Type', 'Volume', 'Unit',
                        'Timestamp']
        fields = ['resource_id', 'counter_name', 'counter_type',
                  'counter_volume', 'counter_unit', 'timestamp']
        utils.print_list(samples, fields, field_labels,
                         sortby=None)
Esempio n. 27
0
def do_query_alarms(cc, args):
    '''Query Alarms.'''
    fields = {'filter': args.filter,
              'orderby': args.orderby,
              'limit': args.limit}
    try:
        alarms = cc.query_alarms.query(**fields)
    except exc.HTTPNotFound:
        raise exc.CommandError('Alarms not found')
    else:
        field_labels = ['Alarm ID', 'Name', 'State', 'Enabled', 'Continuous',
                        'Alarm condition']
        fields = ['alarm_id', 'name', 'state', 'enabled', 'repeat_actions',
                  'rule']
        utils.print_list(alarms, fields, field_labels,
                         formatters={'rule': alarm_rule_formatter},
                         sortby=None)
Esempio n. 28
0
def do_query_samples(cc, args):
    '''Query samples.'''
    fields = {
        'filter': args.filter,
        'orderby': args.orderby,
        'limit': args.limit
    }
    try:
        samples = cc.query_samples.query(**fields)
    except exc.HTTPNotFound:
        raise exc.CommandError('Samples not found')
    else:
        field_labels = [
            'Resource ID', 'Meter', 'Type', 'Volume', 'Unit', 'Timestamp'
        ]
        fields = [
            'resource_id', 'meter', 'type', 'volume', 'unit', 'timestamp'
        ]
        utils.print_list(samples, fields, field_labels, sortby=None)
Esempio n. 29
0
def do_statistics(cc, args):
    '''List the statistics for a meter.'''
    aggregates = []
    for a in args.aggregate:
        aggregates.append(dict(zip(('func', 'param'), a.split("<-"))))
    api_args = {
        'meter_name': args.meter,
        'q': options.cli_to_array(args.query),
        'period': args.period,
        'groupby': args.groupby,
        'aggregates': aggregates
    }
    try:
        statistics = cc.statistics.list(**api_args)
    except exc.HTTPNotFound:
        raise exc.CommandError('Samples not found: %s' % args.meter)
    else:
        fields_display = {
            'duration': 'Duration',
            'duration_end': 'Duration End',
            'duration_start': 'Duration Start',
            'period': 'Period',
            'period_end': 'Period End',
            'period_start': 'Period Start',
            'groupby': 'Group By'
        }
        fields_display.update(AGGREGATES)
        fields = ['period', 'period_start', 'period_end']
        if args.groupby:
            fields.append('groupby')
        if args.aggregate:
            for a in aggregates:
                if 'param' in a:
                    fields.append("%(func)s/%(param)s" % a)
                else:
                    fields.append(a['func'])
            for stat in statistics:
                stat.__dict__.update(stat.aggregate)
        else:
            fields.extend(['max', 'min', 'avg', 'sum', 'count'])
        fields.extend(['duration', 'duration_start', 'duration_end'])
        cols = [fields_display.get(f, f) for f in fields]
        utils.print_list(statistics, fields, cols)
Esempio n. 30
0
def do_query_alarm_history(cc, args):
    '''Query Alarm History.'''
    fields = {
        'filter': args.filter,
        'orderby': args.orderby,
        'limit': args.limit
    }
    try:
        alarm_history = cc.query_alarm_history.query(**fields)
    except exc.HTTPNotFound:
        raise exc.CommandError('Alarm history not found')
    else:
        field_labels = ['Alarm ID', 'Event ID', 'Type', 'Detail', 'Timestamp']
        fields = ['alarm_id', 'event_id', 'type', 'detail', 'timestamp']
        utils.print_list(alarm_history,
                         fields,
                         field_labels,
                         formatters={'rule': alarm_change_detail_formatter},
                         sortby=None)
Esempio n. 31
0
def do_sample_list(cc, args):
    '''List the samples for this meters.'''
    fields = {'counter_name': args.counter_name,
              'resource_id': args.resource_id,
              'user_id': args.user_id,
              'project_id': args.project_id,
              'source': args.source,
              'start_timestamp': args.start,
              'end_timestamp': args.end,
              'metaquery': args.metaquery}
    try:
        samples = cc.samples.list(**fields)
    except exc.HTTPNotFound:
        raise exc.CommandError('Samples not found: %s' % args.counter_name)
    else:
        field_labels = ['Resource ID', 'Name', 'Type', 'Volume', 'Timestamp']
        fields = ['resource_id', 'counter_name', 'counter_type',
                  'counter_volume', 'timestamp']
        utils.print_list(samples, fields, field_labels,
                         sortby=0)
Esempio n. 32
0
def do_sample_list(cc, args):
    '''List the samples for a meter.'''
    fields = {
        'meter_name': args.meter,
        'q': options.cli_to_array(args.query),
        'limit': args.limit
    }
    try:
        samples = cc.samples.list(**fields)
    except exc.HTTPNotFound:
        raise exc.CommandError('Samples not found: %s' % args.meter)
    else:
        field_labels = [
            'Resource ID', 'Name', 'Type', 'Volume', 'Unit', 'Timestamp'
        ]
        fields = [
            'resource_id', 'counter_name', 'counter_type', 'counter_volume',
            'counter_unit', 'timestamp'
        ]
        utils.print_list(samples, fields, field_labels, sortby=None)
Esempio n. 33
0
def do_alarm_list(cc, args={}):
    '''List the user's alarms.'''
    alarms = cc.alarms.list(q=options.cli_to_array(args.query))
    # omit action initially to keep output width sane
    # (can switch over to vertical formatting when available from CLIFF)
    field_labels = [
        'Alarm ID', 'Name', 'State', 'Enabled', 'Continuous',
        'Alarm condition', 'Time constraints'
    ]
    fields = [
        'alarm_id', 'name', 'state', 'enabled', 'repeat_actions', 'rule',
        'time_constraints'
    ]
    utils.print_list(alarms,
                     fields,
                     field_labels,
                     formatters={
                         'rule': alarm_rule_formatter,
                         'time_constraints': time_constraints_formatter
                     },
                     sortby=0)
Esempio n. 34
0
def do_statistics(cc, args):
    '''List the statistics for a meter.'''
    aggregates = []
    for a in args.aggregate:
        aggregates.append(dict(zip(('func', 'param'), a.split("<-"))))
    api_args = {'meter_name': args.meter,
                'q': options.cli_to_array(args.query),
                'period': args.period,
                'groupby': args.groupby,
                'aggregates': aggregates}
    try:
        statistics = cc.statistics.list(**api_args)
    except exc.HTTPNotFound:
        raise exc.CommandError('Samples not found: %s' % args.meter)
    else:
        fields_display = {'duration': 'Duration',
                          'duration_end': 'Duration End',
                          'duration_start': 'Duration Start',
                          'period': 'Period',
                          'period_end': 'Period End',
                          'period_start': 'Period Start',
                          'groupby': 'Group By'}
        fields_display.update(AGGREGATES)
        fields = ['period', 'period_start', 'period_end']
        if args.groupby:
            fields.append('groupby')
        if args.aggregate:
            for a in aggregates:
                if 'param' in a:
                    fields.append("%(func)s/%(param)s" % a)
                else:
                    fields.append(a['func'])
            for stat in statistics:
                stat.__dict__.update(stat.aggregate)
        else:
            fields.extend(['max', 'min', 'avg', 'sum', 'count'])
        fields.extend(['duration', 'duration_start', 'duration_end'])
        cols = [fields_display.get(f, f) for f in fields]
        utils.print_list(statistics, fields, cols)
Esempio n. 35
0
def do_sample_list(cc, args):
    '''List the samples for this meters.'''
    fields = {
        'counter_name': args.counter_name,
        'resource_id': args.resource_id,
        'user_id': args.user_id,
        'project_id': args.project_id,
        'source': args.source,
        'start_timestamp': args.start,
        'end_timestamp': args.end,
        'metaquery': args.metaquery
    }
    try:
        samples = cc.samples.list(**fields)
    except exc.HTTPNotFound:
        raise exc.CommandError('Samples not found: %s' % args.counter_name)
    else:
        field_labels = ['Resource ID', 'Name', 'Type', 'Volume', 'Timestamp']
        fields = [
            'resource_id', 'counter_name', 'counter_type', 'counter_volume',
            'timestamp'
        ]
        utils.print_list(samples, fields, field_labels, sortby=0)
Esempio n. 36
0
def do_query_alarms(cc, args):
    '''Query Alarms.'''
    fields = {
        'filter': args.filter,
        'orderby': args.orderby,
        'limit': args.limit
    }
    try:
        alarms = cc.query_alarms.query(**fields)
    except exc.HTTPNotFound:
        raise exc.CommandError('Alarms not found')
    else:
        field_labels = [
            'Alarm ID', 'Name', 'State', 'Enabled', 'Continuous',
            'Alarm condition'
        ]
        fields = [
            'alarm_id', 'name', 'state', 'enabled', 'repeat_actions', 'rule'
        ]
        utils.print_list(alarms,
                         fields,
                         field_labels,
                         formatters={'rule': alarm_rule_formatter},
                         sortby=None)
Esempio n. 37
0
def do_trait_description_list(cc, args={}):
    '''List trait info for an event type.'''
    trait_descriptions = cc.trait_descriptions.list(args.event_type)
    field_labels = ['Trait Name', 'Data Type']
    fields = ['name', 'type']
    utils.print_list(trait_descriptions, fields, field_labels)
Esempio n. 38
0
def do_event_type_list(cc, args={}):
    '''List event types.'''
    event_types = cc.event_types.list()
    utils.print_list(event_types, ['event_type'], ['Event Type'])
Esempio n. 39
0
def do_event_type_list(cc, args={}):
    '''List event types.'''
    event_types = cc.event_types.list()
    utils.print_list(event_types, ['event_type'], ['Event Type'])
Esempio n. 40
0
def do_trait_description_list(cc, args={}):
    '''List trait info for an event type.'''
    trait_descriptions = cc.trait_descriptions.list(args.event_type)
    field_labels = ['Trait Name', 'Data Type']
    fields = ['name', 'type']
    utils.print_list(trait_descriptions, fields, field_labels)