def __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.filters' % name.lower()) if attrs['resource_type']: m = ResourceQuery.resolve(attrs['resource_type']) # Generic cloud watch metrics support if m.dimension and 'metrics': attrs['filter_registry'].register('metrics', MetricsFilter) # Generic ec2 resource tag support if m.service == 'ec2' and getattr(m, 'taggable', True): register_tags(attrs['filter_registry'], attrs['action_registry']) return super(QueryMeta, cls).__new__(cls, name, parents, attrs)
def __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.filters' % name.lower()) if attrs['resource_type']: m = ResourceQuery.resolve(attrs['resource_type']) # Generic cloud watch metrics support if m.dimension and 'metrics': attrs['filter_registry'].register('metrics', MetricsFilter) # EC2 Service boilerplate ... if m.service == 'ec2': # Generic ec2 retry attrs['retry'] = staticmethod(get_retry(( 'RequestLimitExceeded', 'Client.RequestLimitExceeded'))) # Generic ec2 resource tag support if getattr(m, 'taggable', True): register_tags( attrs['filter_registry'], attrs['action_registry']) return super(QueryMeta, cls).__new__(cls, name, parents, attrs)
def __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.filters' % name.lower()) if attrs['resource_type']: m = ResourceQuery.resolve(attrs['resource_type']) # Generic cloud watch metrics support if m.dimension and 'metrics': attrs['filter_registry'].register('metrics', MetricsFilter) # EC2 Service boilerplate ... if m.service == 'ec2': # Generic ec2 retry attrs['retry'] = staticmethod(get_retry(( 'RequestLimitExceeded', 'Client.RequestLimitExceeded'))) # Generic ec2 resource tag support if getattr(m, 'taggable', True): register_tags( attrs['filter_registry'], attrs['action_registry']) return super(QueryMeta, cls).__new__(cls, name, parents, attrs)
FilterValidationError, OPERATORS) from c7n.manager import resources from c7n.resources.kms import ResourceKmsKeyAlias from c7n.query import QueryResourceManager, ResourceQuery from c7n import tags from c7n.utils import ( local_session, set_annotation, query_instances, chunks, type_schema) log = logging.getLogger('custodian.ebs') filters = FilterRegistry('ebs.filters') actions = ActionRegistry('ebs.actions') tags.register_tags(filters, actions) @resources.register('ebs-snapshot') class Snapshot(QueryResourceManager): resource_type = "aws.ec2.snapshot" filter_registry = FilterRegistry('ebs-snapshot.filters') action_registry = ActionRegistry('ebs-snapshot.actions') @Snapshot.filter_registry.register('age') class SnapshotAge(AgeFilter): schema = type_schema( 'age',
from c7n.actions import ActionRegistry, BaseAction from c7n.filters import (FilterRegistry, AgeFilter, ValueFilter, ANNOTATION_KEY, FilterValidationError, OPERATORS) from c7n.manager import resources from c7n.query import QueryResourceManager, ResourceQuery from c7n import tags from c7n.utils import (local_session, set_annotation, query_instances, chunks, type_schema) log = logging.getLogger('custodian.ebs') filters = FilterRegistry('ebs.filters') actions = ActionRegistry('ebs.actions') tags.register_tags(filters, actions) @resources.register('ebs-snapshot') class Snapshot(QueryResourceManager): resource_type = "aws.ec2.snapshot" filter_registry = FilterRegistry('ebs-snapshot.filters') action_registry = ActionRegistry('ebs-snapshot.actions') @Snapshot.filter_registry.register('age') class SnapshotAge(AgeFilter): schema = type_schema('age', days={'type': 'number'},
from c7n.actions import ActionRegistry, BaseAction from c7n.filters import ( FilterRegistry, AgeFilter, ValueFilter, Filter, OPERATORS ) from c7n.manager import resources from c7n.query import QueryResourceManager from c7n.offhours import OffHour, OnHour from c7n import tags, utils from c7n.utils import type_schema filters = FilterRegistry('ec2.filters') actions = ActionRegistry('ec2.actions') tags.register_tags(filters, actions, 'InstanceId') @resources.register('ec2') class EC2(QueryResourceManager): resource_type = "aws.ec2.instance" filter_registry = filters action_registry = actions def __init__(self, ctx, data): super(EC2, self).__init__(ctx, data) self.queries = QueryFilter.parse(self.data.get('query', [])) def resources(self, query=None): q = self.resource_query()
from c7n.actions import ActionRegistry, BaseAction from c7n.filters import ( FilterRegistry, AgeFilter, ValueFilter, Filter, OPERATORS ) from c7n.manager import resources from c7n.query import QueryResourceManager from c7n.offhours import OffHour, OnHour from c7n import tags, utils from c7n.utils import type_schema filters = FilterRegistry('ec2.filters') actions = ActionRegistry('ec2.actions') tags.register_tags(filters, actions, 'InstanceId') @resources.register('ec2') class EC2(QueryResourceManager): resource_type = "aws.ec2.instance" filter_registry = filters action_registry = actions def __init__(self, ctx, data): super(EC2, self).__init__(ctx, data) self.queries = QueryFilter.parse(self.data.get('query', [])) def resources(self, query=None): q = self.resource_query()
from c7n.filters import ( FilterRegistry, AgeFilter, ValueFilter, ANNOTATION_KEY) from c7n.manager import resources from c7n.query import QueryResourceManager from c7n import tags from c7n.utils import ( local_session, set_annotation, query_instances, chunks, type_schema) log = logging.getLogger('custodian.ebs') filters = FilterRegistry('ebs.filters') actions = ActionRegistry('ebs.actions') tags.register_tags(filters, actions, 'VolumeId') @resources.register('ebs-snapshot') class Snapshot(QueryResourceManager): resource_type = "aws.ec2.snapshot" filter_registry = FilterRegistry('ebs-snapshot.filters') action_registry = ActionRegistry('ebs-snapshot.actions') @Snapshot.filter_registry.register('age') class SnapshotAge(AgeFilter): schema = type_schema('age', days={'type': 'number'}) date_attribute = 'StartTime'
from c7n.actions import ActionRegistry, BaseAction from c7n.filters import (FilterRegistry, AgeFilter, ValueFilter, ANNOTATION_KEY) from c7n.manager import ResourceManager, resources from c7n import tags from c7n.utils import (local_session, set_annotation, query_instances, chunks, type_schema) log = logging.getLogger('custodian.ebs') filters = FilterRegistry('ebs.filters') actions = ActionRegistry('ebs.actions') tags.register_tags(filters, actions, 'VolumeId') @resources.register('ebs-snapshot') class Snapshot(ResourceManager): filter_registry = FilterRegistry('ebs-snapshot.filters') action_registry = ActionRegistry('ebs-snapshot.actions') def resources(self): c = self.session_factory().client('ec2') query = self.resource_query() if self._cache.load(): snaps = self._cache.get({ 'region': self.config.region, 'resource': 'ebs-snapshot',
import logging from c7n.actions import ActionRegistry, BaseAction from c7n.filters import FilterRegistry, AgeFilter, OPERATORS from c7n.manager import resources from c7n.query import QueryResourceManager, ResourceQuery from c7n.tags import register_tags from c7n.utils import local_session, type_schema log = logging.getLogger('custodian.ami') filters = FilterRegistry('ami.filters') actions = ActionRegistry('ami.actions') register_tags(filters, actions, 'AmiId') @resources.register('ami') class AMI(QueryResourceManager): class resource_type(ResourceQuery.resolve('aws.ec2.image')): date = 'CreationDate' filter_registry = filters action_registry = actions @actions.register('deregister') class Deregister(BaseAction): schema = type_schema('deregister')
from c7n.actions import ActionRegistry, BaseAction from c7n.filters import FilterRegistry, AgeFilter, OPERATORS from c7n.manager import resources from c7n.query import QueryResourceManager, ResourceQuery from c7n.tags import register_tags from c7n.utils import local_session, type_schema log = logging.getLogger('custodian.ami') filters = FilterRegistry('ami.filters') actions = ActionRegistry('ami.actions') register_tags(filters, actions) @resources.register('ami') class AMI(QueryResourceManager): class resource_type(ResourceQuery.resolve('aws.ec2.image')): date = 'CreationDate' filter_registry = filters action_registry = actions @actions.register('deregister') class Deregister(BaseAction):
from c7n.actions import ActionRegistry, BaseAction from c7n.filters import FilterRegistry, AgeFilter, OPERATORS from c7n.manager import resources from c7n.query import QueryResourceManager, ResourceQuery from c7n.tags import register_tags from c7n.utils import local_session, type_schema log = logging.getLogger('custodian.ami') filters = FilterRegistry('ami.filters') actions = ActionRegistry('ami.actions') register_tags(filters, actions, 'AmiId') @resources.register('ami') class AMI(QueryResourceManager): class resource_type(ResourceQuery.resolve('aws.ec2.image')): date = 'CreationDate' filter_registry = filters action_registry = actions @actions.register('deregister') class Deregister(BaseAction):