Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/c7n_gcp/resources/dataproc.py: 83%

30 statements  

« prev     ^ index     » next       coverage.py v7.3.2, created at 2023-12-08 06:51 +0000

1# Copyright The Cloud Custodian Authors. 

2# SPDX-License-Identifier: Apache-2.0 

3 

4from c7n_gcp.filters import IamPolicyFilter 

5from c7n_gcp.filters.iampolicy import IamPolicyValueFilter 

6from c7n_gcp.query import ChildResourceManager, ChildTypeInfo 

7from c7n_gcp.provider import resources 

8 

9 

10@resources.register('dataproc-clusters') 

11class DataprocClusters(ChildResourceManager): 

12 

13 class resource_type(ChildTypeInfo): 

14 service = 'dataproc' 

15 version = 'v1' 

16 component = 'projects.regions.clusters' 

17 enum_spec = ('list', 'clusters[]', None) 

18 scope_key = 'projectId' 

19 name = id = 'clusterName' 

20 parent_spec = { 

21 'resource': 'region', 

22 'child_enum_params': { 

23 ('name', 'region')}, 

24 'use_child_query': True, 

25 } 

26 default_report_fields = ['clusterName', 'status.state', 'status.stateStartTime'] 

27 asset_type = "dataproc.googleapis.com/Dataproc" 

28 urn_component = "dataproc" 

29 urn_id_segments = (-1,) 

30 

31 @classmethod 

32 def _get_location(cls, resource): 

33 return resource['labels']['goog-dataproc-location'] 

34 

35 

36@DataprocClusters.filter_registry.register('iam-policy') 

37class DataprocClustersIamPolicyFilter(IamPolicyFilter): 

38 """ 

39 Overrides the base implementation to process dataproc cluster resources correctly. 

40 """ 

41 permissions = ('dataproc.clusters.getIamPolicy',) 

42 

43 def _verb_arguments(self, resource): 

44 return {'resource': 'projects/{}/regions/{}/clusters/{}'.format( 

45 resource['projectId'], 

46 resource['c7n:region']['name'], 

47 resource['clusterName'])} 

48 

49 def process_resources(self, resources): 

50 value_filter = IamPolicyValueFilter(self.data['doc'], self.manager) 

51 value_filter._verb_arguments = self._verb_arguments 

52 return value_filter.process(resources)