def get_context(self, config=None, session_factory=None, policy=None): if config is None: self.context_output_dir = self.get_temp_dir() config = Config.empty(output_dir=self.context_output_dir) ctx = ExecutionContext(session_factory, policy or Bag({'name': 'test-policy'}), config) return ctx
def get_dir_output(self, location): work_dir = self.change_cwd() return work_dir, DirectoryOutput( ExecutionContext(None, Bag(name="xyz", provider_name="ostack"), Config.empty(output_dir=location)), {'url': location}, )
def test_verify_parent_filter(self): manager = KeyVaultKeys( ExecutionContext(None, Bag(name="xyz", provider_name='azure'), Config.empty()), { 'name': 'test-policy', 'resource': 'azure.keyvault-keys', 'filters': [{ 'type': 'parent', 'filter': { 'type': 'value', 'key': 'name', 'op': 'glob', 'value': 'cctestkv*' } }] }) self.assertEqual(len(manager.filters), 1) filter = manager.filters[0] self.assertTrue(isinstance(filter, ParentFilter)) self.assertTrue(isinstance(filter.parent_manager, KeyVault)) self.assertTrue(isinstance(filter.parent_filter, ValueFilter))
def get_context(self, config=None, session_factory=None, policy=None): if config is None: self.context_output_dir = self.mkdtemp() self.addCleanup(shutil.rmtree, self.context_output_dir) config = Config.empty(output_dir=self.context_output_dir) ctx = ExecutionContext(session_factory, policy or Bag({'name': 'test-policy'}), config) return ctx
def get_related(self, resources): ctx = ExecutionContext(local_session(Session), self.data, Config.empty()) manager = self.factory(ctx, self.data) related = manager.source.get_resources(None) if self.data.get('op'): return [r['id'] for r in related if self.match(r)] else: return [r['id'] for r in related]
def get_context(self, config=None, session_factory=None, policy=None): if config is None: self.context_output_dir = self.get_temp_dir() config = Config.empty(output_dir=self.context_output_dir) ctx = ExecutionContext( session_factory, policy or Bag({ "name": "test-policy", "provider_name": "aws"}), config) return ctx
def get_s3_output(self): output = S3Output( ExecutionContext( None, Bag(name="xyz"), Config.empty(output_dir="s3://cloud-custodian/policies"))) self.addCleanup(shutil.rmtree, output.root_dir) return output
def get_manager(self, data, config=None, session_factory=None): ctx = ExecutionContext( session_factory, Bag({ "name": "test-policy", 'provider_name': 'aws' }), config or Config.empty()) return EC2(ctx, data)
def __init__(self, data, options, session_factory=None): self.data = data self.options = options assert "name" in self.data if session_factory is None: session_factory = get_session_factory(self.provider_name, options) self.session_factory = session_factory self.ctx = ExecutionContext(self.session_factory, self, self.options) self.resource_manager = self.load_resource_manager()
def get_log_output(request, output_url): log = StackDriverLogging( ExecutionContext(lambda assume=False: mock.MagicMock(), Bag(name="xyz", provider_name="gcp", resource_type='gcp.function'), Config.empty(account_id='custodian-test')), parse_url_config(output_url)) request.addfinalizer(reset_session_cache) return log
def get_resource_manager(self, session, region, resource_id, policy=None): def session_factory(assume=False, region=None): if region: session.set_config_variable('region', region) return session ctx = ExecutionContext( session_factory, Config({"name": "sphere11"}), Config.empty(verbose=True)) cls = self.get_resource_class(resource_id) return cls(ctx, policy and policy or {})
def get_s3_output(self): output_dir = "s3://cloud-custodian/policies" output = S3Output( ExecutionContext(None, Bag(name="xyz", provider_name="ostack"), Config.empty(output_dir=output_dir)), {'url': output_dir}) self.addCleanup(shutil.rmtree, output.root_dir) return output
def __init__(self, data, options, session_factory=None): self.data = data self.options = options assert "name" in self.data if session_factory is None: session_factory = SessionFactory(options.region, options.profile, options.assume_role) self.session_factory = session_factory self.ctx = ExecutionContext(self.session_factory, self, self.options) self.resource_manager = self.get_resource_manager()
def get_azure_output(self): output = AzureStorageOutput( ExecutionContext( None, Bag(name="xyz"), Config.empty( output_dir="azure://mystorage.blob.core.windows.net/logs"), )) self.addCleanup(shutil.rmtree, output.root_dir) return output
def get_azure_output(self, custom_pyformat=None): output_dir = "azure://mystorage.blob.core.windows.net/logs" if custom_pyformat: output_dir = AzureStorageOutput.join(output_dir, custom_pyformat) output = AzureStorageOutput( ExecutionContext(None, Bag(name="xyz", provider_name='azure'), Config.empty(output_dir=output_dir)), {'url': output_dir}, ) self.addCleanup(shutil.rmtree, output.root_dir) return output
def get_blob_output(request, output_url=None, cleanup=True): if output_url is None: output_url = "gs://cloud-custodian/policies" output = GCPStorageOutput( ExecutionContext(lambda assume=False: mock.MagicMock(), Bag(name="xyz", provider_name="gcp"), Config.empty(output_dir=output_url, account_id='custodian-test')), parse_url_config(output_url)) if cleanup: request.addfinalizer(lambda: shutil.rmtree(output.root_dir)) # noqa request.addfinalizer(reset_session_cache) return output
def get_s3_output(self, output_url=None, cleanup=True, klass=S3Output): if output_url is None: output_url = "s3://cloud-custodian/policies" output = klass( ExecutionContext( lambda assume=False: mock.MagicMock(), Bag(name="xyz", provider_name="ostack"), Config.empty(output_dir=output_url, account_id='112233445566')), {'url': output_url, 'test': True}) if cleanup: self.addCleanup(shutil.rmtree, output.root_dir) return output
def get_manager(self, data, config=None, session_factory=None): ctx = ExecutionContext(session_factory, Bag({'name': 'test-policy'}), config or Config.empty()) return EC2(ctx, data)
def get_dir_output(self, location): work_dir = self.change_cwd() return work_dir, DirectoryOutput( ExecutionContext(None, Bag(name="xyz"), Config.empty(output_dir=location)))