Skip to content

Commit 592d129

Browse files
authored
Add latest Gen2 API updates including Blobstore and Mail APIs (GoogleCloudPlatform#33)
1 parent 42c99c7 commit 592d129

56 files changed

Lines changed: 3572 additions & 17386 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"google-auth>=1.31.0",
2020
"mock>=4.0.3",
2121
"Pillow>=8.3.1",
22-
"protobuf>=3.18.0",
22+
"protobuf>=3.19.0",
2323
"pytz>=2021.1",
2424
"requests>=2.25.1",
2525
"ruamel.yaml>=0.15,<0.16",

src/google/appengine/api/api_base_pb2.py

Lines changed: 29 additions & 237 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
"""Generated protocol buffer code."""
2121
from google.protobuf import descriptor as _descriptor
22+
from google.protobuf import descriptor_pool as _descriptor_pool
2223
from google.protobuf import message as _message
2324
from google.protobuf import reflection as _reflection
2425
from google.protobuf import symbol_database as _symbol_database
@@ -29,243 +30,17 @@
2930

3031

3132

32-
DESCRIPTOR = _descriptor.FileDescriptor(
33-
name='google/appengine/api/api_base.proto',
34-
package='google.appengine.base',
35-
syntax='proto2',
36-
serialized_options=b'\n\037com.google.google.appengine.apiB\tApiBasePb',
37-
create_key=_descriptor._internal_create_key,
38-
serialized_pb=b'\n#google/appengine/api/api_base.proto\x12\x15google.appengine.base\"\x1c\n\x0bStringProto\x12\r\n\x05value\x18\x01 \x02(\t\"\x1f\n\x0eInteger32Proto\x12\r\n\x05value\x18\x01 \x02(\x05\"\x1f\n\x0eInteger64Proto\x12\r\n\x05value\x18\x01 \x02(\x03\"\x1a\n\tBoolProto\x12\r\n\x05value\x18\x01 \x02(\x08\"\x1c\n\x0b\x44oubleProto\x12\r\n\x05value\x18\x01 \x02(\x01\"\x1f\n\nBytesProto\x12\x11\n\x05value\x18\x01 \x02(\x0c\x42\x02\x08\x01\"\x0b\n\tVoidProtoB,\n\x1f\x63om.google.google.appengine.apiB\tApiBasePb'
39-
)
33+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#google/appengine/api/api_base.proto\x12\x15google.appengine.base\"\x1c\n\x0bStringProto\x12\r\n\x05value\x18\x01 \x02(\t\"\x1f\n\x0eInteger32Proto\x12\r\n\x05value\x18\x01 \x02(\x05\"\x1f\n\x0eInteger64Proto\x12\r\n\x05value\x18\x01 \x02(\x03\"\x1a\n\tBoolProto\x12\r\n\x05value\x18\x01 \x02(\x08\"\x1c\n\x0b\x44oubleProto\x12\r\n\x05value\x18\x01 \x02(\x01\"\x1f\n\nBytesProto\x12\x11\n\x05value\x18\x01 \x02(\x0c\x42\x02\x08\x01\"\x0b\n\tVoidProtoB,\n\x1f\x63om.google.google.appengine.apiB\tApiBasePb')
4034

4135

4236

43-
44-
_STRINGPROTO = _descriptor.Descriptor(
45-
name='StringProto',
46-
full_name='google.appengine.base.StringProto',
47-
filename=None,
48-
file=DESCRIPTOR,
49-
containing_type=None,
50-
create_key=_descriptor._internal_create_key,
51-
fields=[
52-
_descriptor.FieldDescriptor(
53-
name='value', full_name='google.appengine.base.StringProto.value', index=0,
54-
number=1, type=9, cpp_type=9, label=2,
55-
has_default_value=False, default_value=b"".decode('utf-8'),
56-
message_type=None, enum_type=None, containing_type=None,
57-
is_extension=False, extension_scope=None,
58-
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
59-
],
60-
extensions=[
61-
],
62-
nested_types=[],
63-
enum_types=[
64-
],
65-
serialized_options=None,
66-
is_extendable=False,
67-
syntax='proto2',
68-
extension_ranges=[],
69-
oneofs=[
70-
],
71-
serialized_start=62,
72-
serialized_end=90,
73-
)
74-
75-
76-
_INTEGER32PROTO = _descriptor.Descriptor(
77-
name='Integer32Proto',
78-
full_name='google.appengine.base.Integer32Proto',
79-
filename=None,
80-
file=DESCRIPTOR,
81-
containing_type=None,
82-
create_key=_descriptor._internal_create_key,
83-
fields=[
84-
_descriptor.FieldDescriptor(
85-
name='value', full_name='google.appengine.base.Integer32Proto.value', index=0,
86-
number=1, type=5, cpp_type=1, label=2,
87-
has_default_value=False, default_value=0,
88-
message_type=None, enum_type=None, containing_type=None,
89-
is_extension=False, extension_scope=None,
90-
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
91-
],
92-
extensions=[
93-
],
94-
nested_types=[],
95-
enum_types=[
96-
],
97-
serialized_options=None,
98-
is_extendable=False,
99-
syntax='proto2',
100-
extension_ranges=[],
101-
oneofs=[
102-
],
103-
serialized_start=92,
104-
serialized_end=123,
105-
)
106-
107-
108-
_INTEGER64PROTO = _descriptor.Descriptor(
109-
name='Integer64Proto',
110-
full_name='google.appengine.base.Integer64Proto',
111-
filename=None,
112-
file=DESCRIPTOR,
113-
containing_type=None,
114-
create_key=_descriptor._internal_create_key,
115-
fields=[
116-
_descriptor.FieldDescriptor(
117-
name='value', full_name='google.appengine.base.Integer64Proto.value', index=0,
118-
number=1, type=3, cpp_type=2, label=2,
119-
has_default_value=False, default_value=0,
120-
message_type=None, enum_type=None, containing_type=None,
121-
is_extension=False, extension_scope=None,
122-
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
123-
],
124-
extensions=[
125-
],
126-
nested_types=[],
127-
enum_types=[
128-
],
129-
serialized_options=None,
130-
is_extendable=False,
131-
syntax='proto2',
132-
extension_ranges=[],
133-
oneofs=[
134-
],
135-
serialized_start=125,
136-
serialized_end=156,
137-
)
138-
139-
140-
_BOOLPROTO = _descriptor.Descriptor(
141-
name='BoolProto',
142-
full_name='google.appengine.base.BoolProto',
143-
filename=None,
144-
file=DESCRIPTOR,
145-
containing_type=None,
146-
create_key=_descriptor._internal_create_key,
147-
fields=[
148-
_descriptor.FieldDescriptor(
149-
name='value', full_name='google.appengine.base.BoolProto.value', index=0,
150-
number=1, type=8, cpp_type=7, label=2,
151-
has_default_value=False, default_value=False,
152-
message_type=None, enum_type=None, containing_type=None,
153-
is_extension=False, extension_scope=None,
154-
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
155-
],
156-
extensions=[
157-
],
158-
nested_types=[],
159-
enum_types=[
160-
],
161-
serialized_options=None,
162-
is_extendable=False,
163-
syntax='proto2',
164-
extension_ranges=[],
165-
oneofs=[
166-
],
167-
serialized_start=158,
168-
serialized_end=184,
169-
)
170-
171-
172-
_DOUBLEPROTO = _descriptor.Descriptor(
173-
name='DoubleProto',
174-
full_name='google.appengine.base.DoubleProto',
175-
filename=None,
176-
file=DESCRIPTOR,
177-
containing_type=None,
178-
create_key=_descriptor._internal_create_key,
179-
fields=[
180-
_descriptor.FieldDescriptor(
181-
name='value', full_name='google.appengine.base.DoubleProto.value', index=0,
182-
number=1, type=1, cpp_type=5, label=2,
183-
has_default_value=False, default_value=float(0),
184-
message_type=None, enum_type=None, containing_type=None,
185-
is_extension=False, extension_scope=None,
186-
serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
187-
],
188-
extensions=[
189-
],
190-
nested_types=[],
191-
enum_types=[
192-
],
193-
serialized_options=None,
194-
is_extendable=False,
195-
syntax='proto2',
196-
extension_ranges=[],
197-
oneofs=[
198-
],
199-
serialized_start=186,
200-
serialized_end=214,
201-
)
202-
203-
204-
_BYTESPROTO = _descriptor.Descriptor(
205-
name='BytesProto',
206-
full_name='google.appengine.base.BytesProto',
207-
filename=None,
208-
file=DESCRIPTOR,
209-
containing_type=None,
210-
create_key=_descriptor._internal_create_key,
211-
fields=[
212-
_descriptor.FieldDescriptor(
213-
name='value', full_name='google.appengine.base.BytesProto.value', index=0,
214-
number=1, type=12, cpp_type=9, label=2,
215-
has_default_value=False, default_value=b"",
216-
message_type=None, enum_type=None, containing_type=None,
217-
is_extension=False, extension_scope=None,
218-
serialized_options=b'\010\001', file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
219-
],
220-
extensions=[
221-
],
222-
nested_types=[],
223-
enum_types=[
224-
],
225-
serialized_options=None,
226-
is_extendable=False,
227-
syntax='proto2',
228-
extension_ranges=[],
229-
oneofs=[
230-
],
231-
serialized_start=216,
232-
serialized_end=247,
233-
)
234-
235-
236-
_VOIDPROTO = _descriptor.Descriptor(
237-
name='VoidProto',
238-
full_name='google.appengine.base.VoidProto',
239-
filename=None,
240-
file=DESCRIPTOR,
241-
containing_type=None,
242-
create_key=_descriptor._internal_create_key,
243-
fields=[
244-
],
245-
extensions=[
246-
],
247-
nested_types=[],
248-
enum_types=[
249-
],
250-
serialized_options=None,
251-
is_extendable=False,
252-
syntax='proto2',
253-
extension_ranges=[],
254-
oneofs=[
255-
],
256-
serialized_start=249,
257-
serialized_end=260,
258-
)
259-
260-
DESCRIPTOR.message_types_by_name['StringProto'] = _STRINGPROTO
261-
DESCRIPTOR.message_types_by_name['Integer32Proto'] = _INTEGER32PROTO
262-
DESCRIPTOR.message_types_by_name['Integer64Proto'] = _INTEGER64PROTO
263-
DESCRIPTOR.message_types_by_name['BoolProto'] = _BOOLPROTO
264-
DESCRIPTOR.message_types_by_name['DoubleProto'] = _DOUBLEPROTO
265-
DESCRIPTOR.message_types_by_name['BytesProto'] = _BYTESPROTO
266-
DESCRIPTOR.message_types_by_name['VoidProto'] = _VOIDPROTO
267-
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
268-
37+
_STRINGPROTO = DESCRIPTOR.message_types_by_name['StringProto']
38+
_INTEGER32PROTO = DESCRIPTOR.message_types_by_name['Integer32Proto']
39+
_INTEGER64PROTO = DESCRIPTOR.message_types_by_name['Integer64Proto']
40+
_BOOLPROTO = DESCRIPTOR.message_types_by_name['BoolProto']
41+
_DOUBLEPROTO = DESCRIPTOR.message_types_by_name['DoubleProto']
42+
_BYTESPROTO = DESCRIPTOR.message_types_by_name['BytesProto']
43+
_VOIDPROTO = DESCRIPTOR.message_types_by_name['VoidProto']
26944
StringProto = _reflection.GeneratedProtocolMessageType('StringProto', (_message.Message,), {
27045
'DESCRIPTOR' : _STRINGPROTO,
27146
'__module__' : 'google.appengine.api.api_base_pb2'
@@ -315,7 +90,24 @@
31590
})
31691
_sym_db.RegisterMessage(VoidProto)
31792

318-
319-
DESCRIPTOR._options = None
320-
_BYTESPROTO.fields_by_name['value']._options = None
93+
if _descriptor._USE_C_DESCRIPTORS == False:
94+
95+
DESCRIPTOR._options = None
96+
DESCRIPTOR._serialized_options = b'\n\037com.google.google.appengine.apiB\tApiBasePb'
97+
_BYTESPROTO.fields_by_name['value']._options = None
98+
_BYTESPROTO.fields_by_name['value']._serialized_options = b'\010\001'
99+
_STRINGPROTO._serialized_start=62
100+
_STRINGPROTO._serialized_end=90
101+
_INTEGER32PROTO._serialized_start=92
102+
_INTEGER32PROTO._serialized_end=123
103+
_INTEGER64PROTO._serialized_start=125
104+
_INTEGER64PROTO._serialized_end=156
105+
_BOOLPROTO._serialized_start=158
106+
_BOOLPROTO._serialized_end=184
107+
_DOUBLEPROTO._serialized_start=186
108+
_DOUBLEPROTO._serialized_end=214
109+
_BYTESPROTO._serialized_start=216
110+
_BYTESPROTO._serialized_end=247
111+
_VOIDPROTO._serialized_start=249
112+
_VOIDPROTO._serialized_end=260
321113

src/google/appengine/api/app_identity/app_identity_defaultcredentialsbased_stub.py

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,6 @@
2626
import time
2727
import typing
2828

29-
from pyasn1.codec.der import decoder
30-
from pyasn1_modules.rfc2459 import Certificate
31-
import rsa
32-
import six
33-
from six.moves import range
34-
from six.moves import urllib
35-
3629
from google.appengine.api import urlfetch
3730
from google.appengine.api.app_identity import app_identity_service_pb2
3831
from google.appengine.api.app_identity import app_identity_stub_base
@@ -45,6 +38,13 @@
4538
from google.auth.transport import requests as transport
4639
from google.oauth2 import service_account as oauth2_service_account
4740

41+
from pyasn1.codec.der import decoder
42+
from pyasn1_modules.rfc2459 import Certificate
43+
import rsa
44+
import six
45+
from six.moves import range
46+
from six.moves import urllib
47+
4848

4949
def BitStringToByteString(bs):
5050
"""Convert a pyasn1.type.univ.BitString object to a string of bytes."""
@@ -162,12 +162,7 @@ def _Dynamic_GetPublicCertificatesForApp(self, request, response):
162162

163163
def _Dynamic_GetServiceAccountName(self, request, response):
164164
"""Implementation of AppIdentityService::GetServiceAccountName."""
165-
if self._non_service_account_credentials:
166-
167-
168-
response.service_account_name = ''
169-
else:
170-
response.service_account_name = self._credentials.service_account_email
165+
response.service_account_name = self.get_service_account_name()
171166

172167
def _Dynamic_GetDefaultGcsBucketName(self, unused_request, response):
173168
"""Implementation of AppIdentityService::GetDefaultGcsBucketName."""
@@ -180,7 +175,7 @@ def SetDefaultGcsBucketName(self, default_gcs_bucket_name):
180175
self._default_gcs_bucket_name = (
181176
app_identity_stub_base.APP_DEFAULT_GCS_BUCKET_NAME)
182177

183-
def _patch_get_service_account_token(self, scopes, service_account=None):
178+
def get_service_account_token(self, scopes, service_account=None):
184179
"""Implementation of AppIdentityService::GetAccessToken.
185180
186181
This API requires internet access.
@@ -219,6 +214,13 @@ def _patch_get_service_account_token(self, scopes, service_account=None):
219214

220215
return rv['access_token'], rv['expires']
221216

217+
def get_service_account_name(self):
218+
if self._non_service_account_credentials:
219+
220+
221+
return ''
222+
return self._credentials.service_account_email
223+
222224

223225
def TimestampFromNaiveUtcDatetime(dt):
224226
if dt.tzinfo is not None:

src/google/appengine/api/app_identity/app_identity_keybased_stub.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ def _Dynamic_GetPublicCertificatesForApp(self, request, response):
163163

164164
def _Dynamic_GetServiceAccountName(self, request, response):
165165
"""Implementation of AppIdentityService::GetServiceAccountName."""
166-
response.service_account_name = self.__email_address
166+
response.service_account_name = self.get_service_account_name()
167167

168168
def _Dynamic_GetDefaultGcsBucketName(self, unused_request, response):
169169
"""Implementation of AppIdentityService::GetDefaultGcsBucketName."""
@@ -176,7 +176,7 @@ def SetDefaultGcsBucketName(self, default_gcs_bucket_name):
176176
self.__default_gcs_bucket_name = (
177177
app_identity_stub_base.APP_DEFAULT_GCS_BUCKET_NAME)
178178

179-
def _patch_get_service_account_token(self, scopes, service_account=None):
179+
def get_service_account_token(self, scopes, service_account=None):
180180
"""Implementation of AppIdentityService::GetAccessToken.
181181
182182
This API requires internet access.
@@ -244,3 +244,6 @@ def _patch_get_service_account_token(self, scopes, service_account=None):
244244
self.__access_token_cache[scope] = rv
245245

246246
return rv['access_token'], rv['expires']
247+
248+
def get_service_account_name(self):
249+
return self.__email_address

0 commit comments

Comments
 (0)