示例#1
0
    def test_test_iam_permissions(self):
        from google.cloud.bigtable.client import Client
        from google.cloud.bigtable_admin_v2.services.bigtable_table_admin import (
            BigtableTableAdminClient,
        )
        from google.iam.v1 import iam_policy_pb2

        credentials = _make_credentials()
        client = Client(project=self.PROJECT_ID, credentials=credentials, admin=True)

        instance = client.instance(instance_id=self.INSTANCE_ID)
        backup = self._make_one(self.BACKUP_ID, instance, cluster_id=self.CLUSTER_ID)

        permissions = ["bigtable.backups.create", "bigtable.backups.list"]

        response = iam_policy_pb2.TestIamPermissionsResponse(permissions=permissions)

        table_api = mock.create_autospec(BigtableTableAdminClient)
        table_api.test_iam_permissions.return_value = response
        client._table_admin_client = table_api

        result = backup.test_iam_permissions(permissions)

        self.assertEqual(result, permissions)
        table_api.test_iam_permissions.assert_called_once_with(
            request={"resource": backup.name, "permissions": permissions}
        )
示例#2
0
    def test_property_source_table_valid(self):
        from google.cloud.bigtable.client import Client
        from google.cloud.bigtable_admin_v2.gapic import bigtable_table_admin_client

        api = bigtable_table_admin_client.BigtableTableAdminClient(mock.Mock())
        credentials = _make_credentials()
        client = Client(project=self.PROJECT_ID, credentials=credentials, admin=True)
        client._table_admin_client = api
        instance = _Instance(self.INSTANCE_NAME, client)

        backup = self._make_one(self.BACKUP_ID, instance, table_id=self.TABLE_ID)
        self.assertEqual(backup.source_table, self.TABLE_NAME)
示例#3
0
    def test_set_iam_policy(self):
        from google.cloud.bigtable.client import Client
        from google.cloud.bigtable_admin_v2.services.bigtable_table_admin import (
            BigtableTableAdminClient, )
        from google.iam.v1 import policy_pb2
        from google.cloud.bigtable.policy import Policy
        from google.cloud.bigtable.policy import BIGTABLE_ADMIN_ROLE

        credentials = _make_credentials()
        client = Client(project=self.PROJECT_ID,
                        credentials=credentials,
                        admin=True)

        instance = client.instance(instance_id=self.INSTANCE_ID)
        backup = self._make_one(self.BACKUP_ID,
                                instance,
                                cluster_id=self.CLUSTER_ID)

        version = 1
        etag = b"etag_v1"
        members = [
            "serviceAccount:[email protected]", "user:[email protected]"
        ]
        bindings = [{"role": BIGTABLE_ADMIN_ROLE, "members": sorted(members)}]
        iam_policy_pb = policy_pb2.Policy(version=version,
                                          etag=etag,
                                          bindings=bindings)

        table_api = mock.create_autospec(BigtableTableAdminClient)
        client._table_admin_client = table_api
        table_api.set_iam_policy.return_value = iam_policy_pb

        iam_policy = Policy(etag=etag, version=version)
        iam_policy[BIGTABLE_ADMIN_ROLE] = [
            Policy.user("*****@*****.**"),
            Policy.service_account("*****@*****.**"),
        ]

        result = backup.set_iam_policy(iam_policy)

        table_api.set_iam_policy.assert_called_once_with(
            request={
                "resource": backup.name,
                "policy": iam_policy_pb
            })
        self.assertEqual(result.version, version)
        self.assertEqual(result.etag, etag)

        admins = result.bigtable_admins
        self.assertEqual(len(admins), len(members))
        for found, expected in zip(sorted(admins), sorted(members)):
            self.assertEqual(found, expected)
示例#4
0
def test_backup_source_table_valid():
    from google.cloud.bigtable.client import Client
    from google.cloud.bigtable_admin_v2.services.bigtable_instance_admin import (
        BigtableInstanceAdminClient, )

    api = mock.create_autospec(BigtableInstanceAdminClient)
    credentials = _make_credentials()
    client = Client(project=PROJECT_ID, credentials=credentials, admin=True)
    client._table_admin_client = api
    instance = _Instance(INSTANCE_NAME, client)

    backup = _make_backup(BACKUP_ID, instance, table_id=TABLE_ID)
    assert backup.source_table == TABLE_NAME
示例#5
0
    def test_property_parent_w_cluster(self):
        from google.cloud.bigtable.client import Client
        from google.cloud.bigtable_admin_v2.gapic import bigtable_table_admin_client

        api = bigtable_table_admin_client.BigtableTableAdminClient(mock.Mock())
        credentials = _make_credentials()
        client = Client(project=self.PROJECT_ID, credentials=credentials, admin=True)
        client._table_admin_client = api
        instance = _Instance(self.INSTANCE_NAME, client)

        backup = self._make_one(self.BACKUP_ID, instance, cluster_id=self.CLUSTER_ID)
        self.assertEqual(backup._cluster, self.CLUSTER_ID)
        self.assertEqual(backup.parent, self.CLUSTER_NAME)
示例#6
0
    def test_property_source_table_valid(self):
        from google.cloud.bigtable.client import Client
        from google.cloud.bigtable_admin_v2.services.bigtable_instance_admin import (
            BigtableInstanceAdminClient,
        )

        api = mock.create_autospec(BigtableInstanceAdminClient)
        credentials = _make_credentials()
        client = Client(project=self.PROJECT_ID, credentials=credentials, admin=True)
        client._table_admin_client = api
        instance = _Instance(self.INSTANCE_NAME, client)

        backup = self._make_one(self.BACKUP_ID, instance, table_id=self.TABLE_ID)
        self.assertEqual(backup.source_table, self.TABLE_NAME)
示例#7
0
def test_backup_parent_w_cluster():
    from google.cloud.bigtable.client import Client
    from google.cloud.bigtable_admin_v2.services.bigtable_instance_admin import (
        BigtableInstanceAdminClient, )

    api = mock.create_autospec(BigtableInstanceAdminClient)
    credentials = _make_credentials()
    client = Client(project=PROJECT_ID, credentials=credentials, admin=True)
    client._table_admin_client = api
    instance = _Instance(INSTANCE_NAME, client)

    backup = _make_backup(BACKUP_ID, instance, cluster_id=CLUSTER_ID)
    assert backup._cluster == CLUSTER_ID
    assert backup.parent == CLUSTER_NAME
示例#8
0
def test_backup_get_iam_policy():
    from google.cloud.bigtable.client import Client
    from google.cloud.bigtable_admin_v2.services.bigtable_table_admin import (
        BigtableTableAdminClient, )
    from google.iam.v1 import policy_pb2
    from google.cloud.bigtable.policy import BIGTABLE_ADMIN_ROLE

    credentials = _make_credentials()
    client = Client(project=PROJECT_ID, credentials=credentials, admin=True)

    instance = client.instance(instance_id=INSTANCE_ID)
    backup = _make_backup(BACKUP_ID, instance, cluster_id=CLUSTER_ID)

    version = 1
    etag = b"etag_v1"
    members = ["serviceAccount:[email protected]", "user:[email protected]"]
    bindings = [{"role": BIGTABLE_ADMIN_ROLE, "members": members}]
    iam_policy = policy_pb2.Policy(version=version,
                                   etag=etag,
                                   bindings=bindings)

    table_api = mock.create_autospec(BigtableTableAdminClient)
    client._table_admin_client = table_api
    table_api.get_iam_policy.return_value = iam_policy

    result = backup.get_iam_policy()

    table_api.get_iam_policy.assert_called_once_with(
        request={"resource": backup.name})
    assert result.version == version
    assert result.etag == etag

    admins = result.bigtable_admins
    assert len(admins) == len(members)
    for found, expected in zip(sorted(admins), sorted(members)):
        assert found == expected