def test_restore_crypto_key_version(self):
        # Setup Expected Response
        name_2 = "name2-1052831874"
        expected_response = {"name": name_2}
        expected_response = resources_pb2.CryptoKeyVersion(**expected_response)

        # Mock the API response
        channel = ChannelStub(responses=[expected_response])
        patch = mock.patch("google.api_core.grpc_helpers.create_channel")
        with patch as create_channel:
            create_channel.return_value = channel
            client = kms_v1.KeyManagementServiceClient()

        # Setup Request
        name = client.crypto_key_version_path(
            "[PROJECT]",
            "[LOCATION]",
            "[KEY_RING]",
            "[CRYPTO_KEY]",
            "[CRYPTO_KEY_VERSION]",
        )

        response = client.restore_crypto_key_version(name)
        assert expected_response == response

        assert len(channel.requests) == 1
        expected_request = service_pb2.RestoreCryptoKeyVersionRequest(
            name=name)
        actual_request = channel.requests[0][1]
        assert expected_request == actual_request
    def test_update_crypto_key_version(self):
        # Setup Expected Response
        name = "name3373707"
        expected_response = {"name": name}
        expected_response = resources_pb2.CryptoKeyVersion(**expected_response)

        # Mock the API response
        channel = ChannelStub(responses=[expected_response])
        patch = mock.patch("google.api_core.grpc_helpers.create_channel")
        with patch as create_channel:
            create_channel.return_value = channel
            client = kms_v1.KeyManagementServiceClient()

        # Setup Request
        crypto_key_version = {}
        update_mask = {}

        response = client.update_crypto_key_version(crypto_key_version,
                                                    update_mask)
        assert expected_response == response

        assert len(channel.requests) == 1
        expected_request = service_pb2.UpdateCryptoKeyVersionRequest(
            crypto_key_version=crypto_key_version, update_mask=update_mask)
        actual_request = channel.requests[0][1]
        assert expected_request == actual_request
    def test_import_crypto_key_version(self):
        # Setup Expected Response
        name = "name3373707"
        import_job_2 = "importJob2-1714851050"
        import_failure_reason = "importFailureReason-494073229"
        expected_response = {
            "name": name,
            "import_job": import_job_2,
            "import_failure_reason": import_failure_reason,
        }
        expected_response = resources_pb2.CryptoKeyVersion(**expected_response)

        # Mock the API response
        channel = ChannelStub(responses=[expected_response])
        patch = mock.patch("google.api_core.grpc_helpers.create_channel")
        with patch as create_channel:
            create_channel.return_value = channel
            client = kms_v1.KeyManagementServiceClient()

        # Setup Request
        parent = client.crypto_key_path("[PROJECT]", "[LOCATION]",
                                        "[KEY_RING]", "[CRYPTO_KEY]")
        algorithm = (enums.CryptoKeyVersion.CryptoKeyVersionAlgorithm.
                     CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED)
        import_job = "importJob2125587491"

        response = client.import_crypto_key_version(parent, algorithm,
                                                    import_job)
        assert expected_response == response

        assert len(channel.requests) == 1
        expected_request = service_pb2.ImportCryptoKeyVersionRequest(
            parent=parent, algorithm=algorithm, import_job=import_job)
        actual_request = channel.requests[0][1]
        assert expected_request == actual_request
    def test_create_crypto_key_version(self):
        # Setup Expected Response
        name = "name3373707"
        import_job = "importJob2125587491"
        import_failure_reason = "importFailureReason-494073229"
        expected_response = {
            "name": name,
            "import_job": import_job,
            "import_failure_reason": import_failure_reason,
        }
        expected_response = resources_pb2.CryptoKeyVersion(**expected_response)

        # Mock the API response
        channel = ChannelStub(responses=[expected_response])
        patch = mock.patch("google.api_core.grpc_helpers.create_channel")
        with patch as create_channel:
            create_channel.return_value = channel
            client = kms_v1.KeyManagementServiceClient()

        # Setup Request
        parent = client.crypto_key_path("[PROJECT]", "[LOCATION]",
                                        "[KEY_RING]", "[CRYPTO_KEY]")
        crypto_key_version = {}

        response = client.create_crypto_key_version(parent, crypto_key_version)
        assert expected_response == response

        assert len(channel.requests) == 1
        expected_request = service_pb2.CreateCryptoKeyVersionRequest(
            parent=parent, crypto_key_version=crypto_key_version)
        actual_request = channel.requests[0][1]
        assert expected_request == actual_request
    def test_create_crypto_key_version(self):
        # Setup Expected Response
        name = 'name3373707'
        expected_response = {'name': name}
        expected_response = resources_pb2.CryptoKeyVersion(**expected_response)

        # Mock the API response
        channel = ChannelStub(responses=[expected_response])
        patch = mock.patch('google.api_core.grpc_helpers.create_channel')
        with patch as create_channel:
            create_channel.return_value = channel
            client = kms_v1.KeyManagementServiceClient()

        # Setup Request
        parent = client.crypto_key_path('[PROJECT]', '[LOCATION]',
                                        '[KEY_RING]', '[CRYPTO_KEY]')
        crypto_key_version = {}

        response = client.create_crypto_key_version(parent, crypto_key_version)
        assert expected_response == response

        assert len(channel.requests) == 1
        expected_request = service_pb2.CreateCryptoKeyVersionRequest(
            parent=parent, crypto_key_version=crypto_key_version)
        actual_request = channel.requests[0][1]
        assert expected_request == actual_request
Ejemplo n.º 6
0
def enable_key_version(project_id, location_id, key_ring_id, key_id,
                       version_id):
    """
    Enable a key.

    Args:
        project_id (string): Google Cloud project ID (e.g. 'my-project').
        location_id (string): Cloud KMS location (e.g. 'us-east1').
        key_ring_id (string): ID of the Cloud KMS key ring (e.g. 'my-key-ring').
        key_id (string): ID of the key to use (e.g. 'my-key').
        version_id (string): ID of the key version to enable (e.g. '1').

    Returns:
        CryptoKeyVersion: The version.

    """

    # Import the client library.
    from google.cloud import kms

    # Create the client.
    client = kms.KeyManagementServiceClient()

    # Build the key version name.
    key_version_name = client.crypto_key_version_path(project_id, location_id,
                                                      key_ring_id, key_id,
                                                      version_id)

    # Build the key version. We need to build a full proto instead of a dict due
    # to https://github.com/googleapis/gapic-generator-python/issues/364.
    from google.cloud.kms_v1.proto import resources_pb2
    key_version = resources_pb2.CryptoKeyVersion()
    key_version.name = key_version_name
    key_version.state = kms.enums.CryptoKeyVersion.CryptoKeyVersionState.ENABLED

    # Build the update mask.
    update_mask = {'paths': ['state']}

    # Call the API.
    enabled_version = client.update_crypto_key_version(key_version,
                                                       update_mask)
    print('Enabled key version: {}'.format(enabled_version.name))
    return enabled_version
Ejemplo n.º 7
0
    def test_get_crypto_key_version(self):
        # Setup Expected Response
        name_2 = 'name2-1052831874'
        expected_response = {'name': name_2}
        expected_response = resources_pb2.CryptoKeyVersion(**expected_response)

        # Mock the API response
        channel = ChannelStub(responses=[expected_response])
        client = kms_v1.KeyManagementServiceClient(channel=channel)

        # Setup Request
        name = client.crypto_key_version_path('[PROJECT]', '[LOCATION]',
                                              '[KEY_RING]', '[CRYPTO_KEY]',
                                              '[CRYPTO_KEY_VERSION]')

        response = client.get_crypto_key_version(name)
        assert expected_response == response

        assert len(channel.requests) == 1
        expected_request = service_pb2.GetCryptoKeyVersionRequest(name=name)
        actual_request = channel.requests[0][1]
        assert expected_request == actual_request
Ejemplo n.º 8
0
    def test_update_crypto_key_version(self):
        # Setup Expected Response
        name = 'name3373707'
        expected_response = {'name': name}
        expected_response = resources_pb2.CryptoKeyVersion(**expected_response)

        # Mock the API response
        channel = ChannelStub(responses=[expected_response])
        client = kms_v1.KeyManagementServiceClient(channel=channel)

        # Setup Request
        crypto_key_version = {}
        update_mask = {}

        response = client.update_crypto_key_version(crypto_key_version,
                                                    update_mask)
        assert expected_response == response

        assert len(channel.requests) == 1
        expected_request = service_pb2.UpdateCryptoKeyVersionRequest(
            crypto_key_version=crypto_key_version, update_mask=update_mask)
        actual_request = channel.requests[0][1]
        assert expected_request == actual_request