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)
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)
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)
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)
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)
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)
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)
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)
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()
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'] )})
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)
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)
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)
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)
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']) })
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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'])