Beispiel #1
0
 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
Beispiel #2
0
 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))
Beispiel #4
0
 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
Beispiel #5
0
 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]
Beispiel #6
0
 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
Beispiel #7
0
    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)
Beispiel #9
0
 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()
Beispiel #10
0
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
Beispiel #11
0
 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 {})
Beispiel #12
0
    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
Beispiel #13
0
 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()
Beispiel #14
0
    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
Beispiel #15
0
    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
Beispiel #16
0
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
Beispiel #17
0
    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
Beispiel #18
0
 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)
Beispiel #19
0
 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)))