def _convert_cloudsqlinstance(self, cloudsqlinstance): """Convert a cloudsqlinstance to a database object. Args: cloudsqlinstance (object): Cloudsql to store. """ data = cloudsqlinstance.get_resource_data() parent, full_res_name, type_name = self._full_resource_name( cloudsqlinstance) parent_key = get_resource_id_from_type_name(parent.type_name) resource_identifier = '{}:{}'.format(parent_key, cloudsqlinstance.get_resource_id()) type_name = to_type_name(cloudsqlinstance.get_resource_type(), resource_identifier) resource = self.dao.TBL_RESOURCE( cai_resource_name=cloudsqlinstance.get_cai_resource_name(), cai_resource_type=cloudsqlinstance.get_cai_resource_type(), full_name=full_res_name, type_name=type_name, name=cloudsqlinstance.get_resource_id(), type=cloudsqlinstance.get_resource_type(), display_name=data.get('name', ''), email=data.get('email', ''), data=cloudsqlinstance.get_resource_data_raw(), parent=parent) self.session.add(resource)
def _convert_iam_policy(self, iam_policy): """Convert an IAM policy to a database object. Args: iam_policy (object): IAM policy to store. """ _, full_res_name = self._get_parent(iam_policy) parent_type_name = self._type_name(iam_policy) iam_policy_type_name = to_type_name( iam_policy.get_category(), ':'.join(parent_type_name.split('/'))) iam_policy_full_res_name = to_full_resource_name( full_res_name, iam_policy_type_name) resource = self.dao.TBL_RESOURCE( cai_resource_name=iam_policy.get_cai_resource_name(), cai_resource_type=iam_policy.get_cai_resource_type(), full_name=iam_policy_full_res_name, type_name=iam_policy_type_name, name=iam_policy.get_resource_id(), type=iam_policy.get_category(), data=iam_policy.get_resource_data_raw(), parent_type_name=parent_type_name) self.session.add(resource)
def _type_name(resource): """Return the type/name for that resource. This is a simple wrapper for the to_type_name function. Args: resource (object): Resource to retrieve type/name for. Returns: str: type/name representation of the resource. """ return to_type_name(resource.get_resource_type(), resource.get_resource_id())
def _get_policy_full_name(cls, resource, policy_name): """Create a full name for a resource policy. Args: resource (Resource): Crawled resource. policy_name (str): The category name for the policy data. Returns: str: A full name for the policy. """ type_name = utils.to_type_name(policy_name, resource.key()) return utils.to_full_resource_name(resource.get_full_resource_name(), type_name)
def _convert_service_config(self, service_config): """Convert Kubernetes Service Config to a database object. Args: service_config (dict): A Service Config resource to store. """ parent, full_res_name = self._get_parent(service_config) sc_type_name = to_type_name(service_config.get_category(), parent.type_name) sc_res_name = to_full_resource_name(full_res_name, sc_type_name) resource = self.dao.TBL_RESOURCE( full_name=sc_res_name, type_name=sc_type_name, name=service_config.get_resource_id(), type=service_config.get_category(), data=service_config.get_resource_data_raw(), parent=parent) self.session.add(resource)
def _convert_enabled_apis(self, enabled_apis): """Convert a description of enabled APIs to a database object. Args: enabled_apis (object): Enabled APIs description to store. """ parent, full_res_name = self._get_parent(enabled_apis) apis_type_name = to_type_name(enabled_apis.get_category(), ':'.join(parent.type_name.split('/'))) apis_res_name = to_full_resource_name(full_res_name, apis_type_name) resource = self.dao.TBL_RESOURCE( full_name=apis_res_name, type_name=apis_type_name, name=enabled_apis.get_resource_id(), type=enabled_apis.get_category(), data=enabled_apis.get_resource_data_raw(), parent=parent) self.session.add(resource)
def _convert_gcs_policy(self, gcs_policy): """Convert a gcs policy to a database object. Args: gcs_policy (object): Cloud Storage Bucket ACL policy to store. """ parent, full_res_name = self._get_parent(gcs_policy) policy_type_name = to_type_name(gcs_policy.get_category(), gcs_policy.get_resource_id()) policy_res_name = to_full_resource_name(full_res_name, policy_type_name) resource = self.dao.TBL_RESOURCE( full_name=policy_res_name, type_name=policy_type_name, name=gcs_policy.get_resource_id(), type=gcs_policy.get_category(), data=gcs_policy.get_resource_data_raw(), parent=parent) self.session.add(resource)
def _convert_dataset_policy(self, dataset_policy): """Convert a dataset policy to a database object. Args: dataset_policy (object): Dataset policy to store. """ # TODO: Dataset policies should be integrated in the model, not stored # as a resource. parent, full_res_name = self._get_parent(dataset_policy) policy_type_name = to_type_name(dataset_policy.get_category(), dataset_policy.get_resource_id()) policy_res_name = to_full_resource_name(full_res_name, policy_type_name) resource = self.dao.TBL_RESOURCE( full_name=policy_res_name, type_name=policy_type_name, name=dataset_policy.get_resource_id(), type=dataset_policy.get_category(), data=dataset_policy.get_resource_data_raw(), parent=parent) self.session.add(resource)
def test_to_type_name(self): """Test to_type_name.""" self.assertEqual( to_type_name('foo', 'bar'), 'foo/bar')