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)
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']))