def __new__(cls, name, parents, attrs): if 'resource_type' not in attrs: return super(QueryMeta, cls).__new__(cls, name, parents, attrs) if 'filter_registry' not in attrs: attrs['filter_registry'] = FilterRegistry( '%s.filters' % name.lower()) if 'action_registry' not in attrs: attrs['action_registry'] = ActionRegistry( '%s.actions' % name.lower()) if attrs['resource_type']: m = ResourceQuery.resolve(attrs['resource_type']) # Generic cloud watch metrics support if m.dimension: attrs['filter_registry'].register('metrics', MetricsFilter) # EC2 Service boilerplate ... if m.service == 'ec2': # Generic ec2 resource tag support if getattr(m, 'taggable', True): register_ec2_tags( attrs['filter_registry'], attrs['action_registry']) if getattr(m, 'universal_taggable', False): register_universal_tags( attrs['filter_registry'], attrs['action_registry']) return super(QueryMeta, cls).__new__(cls, name, parents, attrs)
def __new__(cls, name, parents, attrs): if 'resource_type' not in attrs: return super(QueryMeta, cls).__new__(cls, name, parents, attrs) if 'filter_registry' not in attrs: attrs['filter_registry'] = FilterRegistry('%s.filters' % name.lower()) if 'action_registry' not in attrs: attrs['action_registry'] = ActionRegistry('%s.actions' % name.lower()) if attrs['resource_type']: m = ResourceQuery.resolve(attrs['resource_type']) # Generic cloud watch metrics support if m.dimension: attrs['filter_registry'].register('metrics', MetricsFilter) # EC2 Service boilerplate ... if m.service == 'ec2': # Generic ec2 resource tag support if getattr(m, 'taggable', True): register_ec2_tags(attrs['filter_registry'], attrs['action_registry']) if getattr(m, 'universal_taggable', False): register_universal_tags(attrs['filter_registry'], attrs['action_registry']) return super(QueryMeta, cls).__new__(cls, name, parents, attrs)