示例#1
0
    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)
示例#2
0
    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())
示例#4
0
    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)
示例#5
0
    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)
示例#6
0
    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)
示例#7
0
    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)
示例#8
0
    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')