예제 #1
0
    def test_trim_runtime_filters(self):
        filter_data = [{
            'and': [{
                'not': [{
                    'type': 'event',
                    'key': 'xyz',
                    'value': 'bar'
                }]
            }, {
                'key': 'value'
            }]
        }]

        p = self.load_policy({
            'name': 'xyz',
            'resource': 'aws.ec2',
            'mode': {
                'type': 'config-rule',
                'role': 'xyz'
            },
            'filters': deepcopy(filter_data)
        })
        m = p.resource_manager
        trim_runtime(m.filters)
        self.assertEqual([
            n is not None and n.type or n
            for n in m.iter_filters(block_end=True)
        ], ['and', 'value', None])
        # we modify filters array in place on resource manager
        # but we don't touch the underlying policy data structure
        self.assertEqual(m.data['filters'], filter_data)
예제 #2
0
 def _trim_runtime_filters(self):
     from c7n.filters.core import trim_runtime
     trim_runtime(self.conditions.filters)
     trim_runtime(self.resource_manager.filters)