Beispiel #1
0
    def get_resource_manager(self):
        resource_type = self.data.get('resource')

        provider = clouds.get(self.provider_name)
        if provider is None:
            raise ValueError("Invalid cloud provider: %s" % self.provider_name)

        factory = provider.resources.get(resource_type.rsplit('.', 1)[-1])
        if not factory:
            raise ValueError("Invalid resource type: %s" % resource_type)
        return factory(self.ctx, self.data)
Beispiel #2
0
    def load_resource_manager(self):
        resource_type = self.data.get('resource')

        provider = clouds.get(self.provider_name)
        if provider is None:
            raise ValueError(
                "Invalid cloud provider: %s" % self.provider_name)

        factory = provider.resources.get(
            resource_type.rsplit('.', 1)[-1])
        if not factory:
            raise ValueError(
                "Invalid resource type: %s" % resource_type)
        return factory(self.ctx, self.data)
def test_doc_examples(provider_name):
    load_resources()
    loader = PolicyLoader(Config.empty())
    provider = clouds.get(provider_name)
    policies = get_doc_policies(provider.resources)

    for p in policies.values():
        loader.load_data({'policies': [p]}, 'memory://')

    for p in policies.values():
        # Note max name size here is 54 if it a lambda policy given
        # our default prefix custodian- to stay under 64 char limit on
        # lambda function names.  This applies to AWS and GCP, and
        # afaict Azure.
        if len(p['name']) >= 54 and 'mode' in p:
            raise ValueError(
                "doc policy exceeds name limit policy:%s" % (p['name']))