-
Notifications
You must be signed in to change notification settings - Fork 6.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
Co-authored-by: Miroslava Sotakova <mirka@google.com>
- Loading branch information
Showing
6 changed files
with
360 additions
and
17 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
#!/usr/bin/env python | ||
|
||
# Copyright 2021 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 | ||
""" | ||
command line application and sample code for deleting an existing secret. | ||
""" | ||
|
||
import argparse | ||
|
||
|
||
# [START secretmanager_delete_secret_with_etag] | ||
def delete_secret_with_etag(project_id, secret_id, etag): | ||
""" | ||
Delete the secret with the given name, etag, and all of its versions. | ||
""" | ||
|
||
# Import the Secret Manager client library and types. | ||
from google.cloud import secretmanager | ||
from google.cloud.secretmanager_v1.types import service | ||
|
||
# Create the Secret Manager client. | ||
client = secretmanager.SecretManagerServiceClient() | ||
|
||
# Build the resource name of the secret. | ||
name = client.secret_path(project_id, secret_id) | ||
|
||
# Build the request | ||
request = service.DeleteSecretRequest() | ||
request.name = name | ||
request.etag = etag | ||
|
||
# Delete the secret. | ||
client.delete_secret(request=request) | ||
|
||
|
||
# [END secretmanager_delete_secret_with_etag] | ||
|
||
|
||
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", help="id of the secret to delete") | ||
parser.add_argument("etag", help="current etag of the secret to delete") | ||
args = parser.parse_args() | ||
|
||
delete_secret_with_etag(args.project_id, args.secret_id, args.etag) |
64 changes: 64 additions & 0 deletions
64
secretmanager/snippets/destroy_secret_version_with_etag.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
#!/usr/bin/env python | ||
|
||
# Copyright 2021 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 | ||
""" | ||
command line application and sample code for destroying a secret verison. | ||
""" | ||
|
||
import argparse | ||
|
||
|
||
# [START secretmanager_destroy_secret_version_with_etag] | ||
def destroy_secret_version_with_etag(project_id, secret_id, version_id, etag): | ||
""" | ||
Destroy the given secret version, making the payload irrecoverable. Other | ||
secrets versions are unaffected. | ||
""" | ||
|
||
# Import the Secret Manager client library. | ||
from google.cloud import secretmanager | ||
from google.cloud.secretmanager_v1.types import service | ||
|
||
# Create the Secret Manager client. | ||
client = secretmanager.SecretManagerServiceClient() | ||
|
||
# Build the resource name of the secret version | ||
name = f"projects/{project_id}/secrets/{secret_id}/versions/{version_id}" | ||
|
||
# Build the request | ||
request = service.DestroySecretVersionRequest() | ||
request.name = name | ||
request.etag = etag | ||
|
||
# Destroy the secret version. | ||
response = client.destroy_secret_version(request=request) | ||
|
||
print("Destroyed secret version: {}".format(response.name)) | ||
# [END secretmanager_destroy_secret_version_with_etag] | ||
|
||
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", help="id of the secret from which to act") | ||
parser.add_argument("version_id", help="id of the version to destroy") | ||
parser.add_argument("etag", help="current etag of the version") | ||
args = parser.parse_args() | ||
|
||
destroy_secret_version_with_etag( | ||
args.project_id, args.secret_id, args.version_id, args.etag) |
64 changes: 64 additions & 0 deletions
64
secretmanager/snippets/disable_secret_version_with_etag.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
#!/usr/bin/env python | ||
|
||
# Copyright 2021 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 | ||
""" | ||
command line application and sample code for disabling a secret version. | ||
""" | ||
|
||
import argparse | ||
|
||
|
||
# [START secretmanager_disable_secret_version_with_etag] | ||
def disable_secret_version_with_etag(project_id, secret_id, version_id, etag): | ||
""" | ||
Disable the given secret version. Future requests will throw an error until | ||
the secret version is enabled. Other secrets versions are unaffected. | ||
""" | ||
|
||
# Import the Secret Manager client library. | ||
from google.cloud import secretmanager | ||
from google.cloud.secretmanager_v1.types import service | ||
|
||
# Create the Secret Manager client. | ||
client = secretmanager.SecretManagerServiceClient() | ||
|
||
# Build the resource name of the secret version | ||
name = f"projects/{project_id}/secrets/{secret_id}/versions/{version_id}" | ||
|
||
# Build the request | ||
request = service.DisableSecretVersionRequest() | ||
request.name = name | ||
request.etag = etag | ||
|
||
# Disable the secret version. | ||
response = client.disable_secret_version(request=request) | ||
|
||
print("Disabled secret version: {}".format(response.name)) | ||
# [END secretmanager_disable_secret_version_with_etag] | ||
|
||
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", help="id of the secret from which to act") | ||
parser.add_argument("version_id", help="id of the version to disable") | ||
parser.add_argument("etag", help="current etag of the version") | ||
args = parser.parse_args() | ||
|
||
disable_secret_version_with_etag( | ||
args.project_id, args.secret_id, args.version_id, args.etag) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
#!/usr/bin/env python | ||
|
||
# Copyright 2021 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 | ||
""" | ||
command line application and sample code for enabling a secret version. | ||
""" | ||
|
||
import argparse | ||
|
||
|
||
# [START secretmanager_enable_secret_version_with_etag] | ||
def enable_secret_version_with_etag(project_id, secret_id, version_id, etag): | ||
""" | ||
Enable the given secret version, enabling it to be accessed after | ||
previously being disabled. Other secrets versions are unaffected. | ||
""" | ||
|
||
# Import the Secret Manager client library. | ||
from google.cloud import secretmanager | ||
from google.cloud.secretmanager_v1.types import service | ||
|
||
# Create the Secret Manager client. | ||
client = secretmanager.SecretManagerServiceClient() | ||
|
||
# Build the resource name of the secret version | ||
name = f"projects/{project_id}/secrets/{secret_id}/versions/{version_id}" | ||
|
||
# Build the request | ||
request = service.EnableSecretVersionRequest() | ||
request.name = name | ||
request.etag = etag | ||
|
||
# Disable the secret version. | ||
response = client.enable_secret_version(request=request) | ||
|
||
print("Enabled secret version: {}".format(response.name)) | ||
# [END secretmanager_enable_secret_version_with_etag] | ||
|
||
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", help="id of the secret from which to act") | ||
parser.add_argument("version_id", help="id of the version to enable") | ||
parser.add_argument("etag", help="current etag of the version") | ||
args = parser.parse_args() | ||
|
||
enable_secret_version_with_etag( | ||
args.project_id, args.secret_id, args.version_id, args.etag) |
Oops, something went wrong.