Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit f7179af

Browse filesBrowse files
ryanmatsdpebot
authored andcommitted
Python KMS Apiary P1 samples (GoogleCloudPlatform#779)
* Draft of first half of KMS samples * reversed wrong change * KMS Apiary Python samples - P1 * Few minor style issues * Adding back in space i accidentally deleted * Addressed all code review comments * Renamed api directory to api-client * Addressed more code review comments * Formatting change * Fix quickstart test Change-Id: Ib79dc1345c9c40547f3fd4e9c3c9a48963a3b399 * Update readme Change-Id: Icf4a66083f56d6f51be76ba1cf3b5dc8daf2c4c1 * Add readme Change-Id: I2fbaa55092ef8787f1423d499aa310cab258c0c1 * Added parsers * Final minor changes to parsers * Added autogenerated README * Changed snippets_test keyring name and cryptokey name
1 parent faddda1 commit f7179af
Copy full SHA for f7179af

File tree

Expand file treeCollapse file tree

8 files changed

+638
-10
lines changed
Filter options
Expand file treeCollapse file tree

8 files changed

+638
-10
lines changed

‎conftest.py

Copy file name to clipboardExpand all lines: conftest.py
+7-7Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -80,13 +80,13 @@ def api_client_inject_project_id(cloud_config):
8080
the project ID from cloud_config."""
8181
import googleapiclient.http
8282

83-
class ProjectIdInjectingHttpRequest(googleapiclient.http.HttpRequest):
84-
def __init__(self, http, postproc, uri, *args, **kwargs):
85-
uri = uri.replace('YOUR_PROJECT_ID', cloud_config.project)
86-
super(ProjectIdInjectingHttpRequest, self).__init__(
87-
http, postproc, uri, *args, **kwargs)
83+
old_execute = googleapiclient.http.HttpRequest.execute
84+
85+
def new_execute(self, http=None, num_retries=0):
86+
self.uri = self.uri.replace('YOUR_PROJECT_ID', cloud_config.project)
87+
return old_execute(self, http=http, num_retries=num_retries)
8888

8989
with mock.patch(
90-
'googleapiclient.http.HttpRequest',
91-
new=ProjectIdInjectingHttpRequest):
90+
'googleapiclient.http.HttpRequest.execute',
91+
new=new_execute):
9292
yield

‎kms/api-client/README.rst

Copy file name to clipboard
+109Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
.. This file is automatically generated. Do not edit this file directly.
2+
3+
Google Cloud KMS API Python Samples
4+
===============================================================================
5+
6+
This directory contains samples for Google Cloud KMS API. The `Google Cloud KMS API`_ is a service that allows you to keep encryption keys centrally in the cloud, for direct use by cloud services.
7+
8+
9+
10+
11+
.. _Google Cloud KMS API: https://cloud.google.com/kms/docs/
12+
13+
Setup
14+
-------------------------------------------------------------------------------
15+
16+
17+
Authentication
18+
++++++++++++++
19+
20+
Authentication is typically done through `Application Default Credentials`_,
21+
which means you do not have to change the code to authenticate as long as
22+
your environment has credentials. You have a few options for setting up
23+
authentication:
24+
25+
#. When running locally, use the `Google Cloud SDK`_
26+
27+
.. code-block:: bash
28+
29+
gcloud beta auth application-default login
30+
31+
32+
#. When running on App Engine or Compute Engine, credentials are already
33+
set-up. However, you may need to configure your Compute Engine instance
34+
with `additional scopes`_.
35+
36+
#. You can create a `Service Account key file`_. This file can be used to
37+
authenticate to Google Cloud Platform services from any environment. To use
38+
the file, set the ``GOOGLE_APPLICATION_CREDENTIALS`` environment variable to
39+
the path to the key file, for example:
40+
41+
.. code-block:: bash
42+
43+
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service_account.json
44+
45+
.. _Application Default Credentials: https://cloud.google.com/docs/authentication#getting_credentials_for_server-centric_flow
46+
.. _additional scopes: https://cloud.google.com/compute/docs/authentication#using
47+
.. _Service Account key file: https://developers.google.com/identity/protocols/OAuth2ServiceAccount#creatinganaccount
48+
49+
Install Dependencies
50+
++++++++++++++++++++
51+
52+
#. Install `pip`_ and `virtualenv`_ if you do not already have them.
53+
54+
#. Create a virtualenv. Samples are compatible with Python 2.7 and 3.4+.
55+
56+
.. code-block:: bash
57+
58+
$ virtualenv env
59+
$ source env/bin/activate
60+
61+
#. Install the dependencies needed to run the samples.
62+
63+
.. code-block:: bash
64+
65+
$ pip install -r requirements.txt
66+
67+
.. _pip: https://pip.pypa.io/
68+
.. _virtualenv: https://virtualenv.pypa.io/
69+
70+
Samples
71+
-------------------------------------------------------------------------------
72+
73+
Quickstart
74+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
75+
76+
77+
78+
To run this sample:
79+
80+
.. code-block:: bash
81+
82+
$ python quickstart.py
83+
84+
85+
Snippets
86+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
87+
88+
89+
90+
To run this sample:
91+
92+
.. code-block:: bash
93+
94+
$ python snippets.py
95+
96+
usage: snippets.py [-h]
97+
{create_keyring,create_cryptokey,encrypt,decrypt,disable_cryptokey_version,destroy_cryptokey_version,add_member_to_cryptokey_policy,get_keyring_policy}
98+
...
99+
100+
positional arguments:
101+
{create_keyring,create_cryptokey,encrypt,decrypt,disable_cryptokey_version,destroy_cryptokey_version,add_member_to_cryptokey_policy,get_keyring_policy}
102+
103+
optional arguments:
104+
-h, --help show this help message and exit
105+
106+
107+
108+
109+
.. _Google Cloud SDK: https://cloud.google.com/sdk/

‎kms/api/README.rst.in renamed to ‎kms/api-client/README.rst.in

Copy file name to clipboardExpand all lines: kms/api-client/README.rst.in
+3Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,6 @@ setup:
1515
samples:
1616
- name: Quickstart
1717
file: quickstart.py
18+
- name: Snippets
19+
file: snippets.py
20+
show_help: True
File renamed without changes.

‎kms/api/quickstart_test.py renamed to ‎kms/api-client/quickstart_test.py

Copy file name to clipboardExpand all lines: kms/api-client/quickstart_test.py
+1-3Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,7 @@
1313
# limitations under the License.
1414

1515

16-
def test_quickstart(api_client_inject_project_id, capsys):
16+
def test_quickstart(api_client_inject_project_id):
1717
import quickstart
1818

1919
quickstart.run_quickstart()
20-
out, _ = capsys.readouterr()
21-
assert 'No key rings found' in out
File renamed without changes.

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.