From 7cbda238a37b4cfdc3716456ac22de744c101ef5 Mon Sep 17 00:00:00 2001 From: nataliesalvati <105504539+nataliesalvati@users.noreply.github.com> Date: Mon, 8 Aug 2022 17:18:12 -0400 Subject: [PATCH] docs(samples): add sample to update secret with alias (#307) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update code samples for Access By alias Launch Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [ ] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/python-secret-manager/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [ ] Ensure the tests and linter pass - [ ] Code coverage does not decrease (if any source code was changed) - [ ] Appropriate docs were updated (if necessary) Fixes # 🦕 --- secretmanager/snippets/snippets_test.py | 7 +++ .../snippets/update_secret_with_alias.py | 56 +++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 secretmanager/snippets/update_secret_with_alias.py diff --git a/secretmanager/snippets/snippets_test.py b/secretmanager/snippets/snippets_test.py index 71243991ed6b..297aded9ca85 100644 --- a/secretmanager/snippets/snippets_test.py +++ b/secretmanager/snippets/snippets_test.py @@ -41,6 +41,7 @@ from list_secrets_with_filter import list_secrets_with_filter from quickstart import quickstart from update_secret import update_secret +from update_secret_with_alias import update_secret_with_alias from update_secret_with_etag import update_secret_with_etag @@ -290,3 +291,9 @@ def test_update_secret_with_etag(secret): project_id, secret_id, etag = secret secret = update_secret_with_etag(project_id, secret_id, etag) assert secret.labels["secretmanager"] == "rocks" + + +def test_update_secret_with_alias(secret_version): + project_id, secret_id, version_id, _ = secret_version + secret = update_secret_with_alias(project_id, secret_id) + assert secret.version_aliases["test"] == 1 diff --git a/secretmanager/snippets/update_secret_with_alias.py b/secretmanager/snippets/update_secret_with_alias.py new file mode 100644 index 000000000000..e0344942e289 --- /dev/null +++ b/secretmanager/snippets/update_secret_with_alias.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python + +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and + +import argparse + + +# [START secretmanager_update_secret_with_alias] +def update_secret_with_alias(project_id, secret_id): + """ + Update the metadata about an existing secret. + """ + + # Import the Secret Manager client library. + from google.cloud import secretmanager + + # Create the Secret Manager client. + client = secretmanager.SecretManagerServiceClient() + + # Build the resource name of the secret. + name = client.secret_path(project_id, secret_id) + + # Update the secret. + secret = {"name": name, "version_aliases": {"test": 1}} + update_mask = {"paths": ["version_aliases"]} + response = client.update_secret( + request={"secret": secret, "update_mask": update_mask} + ) + + # Print the new secret name. + print("Updated secret: {}".format(response.name)) + # [END secretmanager_update_secret_with_alias] + + return response + + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter + ) + parser.add_argument("project_id", help="id of the GCP project") + parser.add_argument("--secret-id", required=True) + args = parser.parse_args() + + update_secret_with_alias(args.project_id, args.secret_id)