-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement datastore v1beta3 #1288
Comments
All those project IDs have already been whitelisted for the API. Just double checking that this is a typo in the issue, but the correct url is:
|
D'oh! Thought I changed it! Thanks for the keen eye |
Culprit found, the constructor was relying on the connection base class (non- from gcloud import connection
...
if api_base_url is None:
api_base_url = os.getenv(GCD_HOST,
connection.API_BASE_URL) |
For posterity, here is the "retired" original description: pcostell I believe I am "done" updating for
I think it requires a whitelist at this point to use Project IDs:
/cc tseaver |
This is towards googleapis#1288 in preparation for the upgrade to `v1beta3`. In particular, a single `Mutation` protobuf instance in `v1beta3` is not sufficient to contain all changes to be committed, so we use the container that is up one level in the hierarchy.
This is towards googleapis#1288 in preparation for the upgrade to `v1beta3`. In particular, a single `Mutation` protobuf instance in `v1beta3` is not sufficient to contain all changes to be committed, so we use the container that is up one level in the hierarchy.
Another FYI, just did another merge. Only one merge conflict in |
Will this update change the user facing API for gcloud-python when interacting with datastore? Also, will this help with
Will this performance gap be addressed by #557? |
@navreetaft Essentially yes. The only interface change is You can check it out right now at the |
As for the performance gap, that is in reference to code running within App Engine. |
I see, so the performance gap is due to |
Yup. The |
@pcostell May have some thoughts / comments here |
Yes, right now |
Another FYI, just did another merge but rebased by mistake, d'oh! @pcostell Both of my projects got 400's when running the system tests against |
@dhermes My guess this is related to some permissions changes -- now you have to explicitly enable the API (instead of just being part of the whitelist). You can either login to your app with an @google.com account to do this (look for Cloud Datastore API - NEW in the API manager), or add me as an owner and I can do it for you. |
@dhermes Are there any steps that need to happen before we can merge the v1beta3 branch into master and push to pypi? |
|
@dhermes We are ready for you to merge this in and push to pypi. |
w00t. |
Did my final merge of |
@pcostell I can't seem to enable the |
@tseaver There is an (unfortunately timed) issue with the API service causing this issue. In particular if you disable Datastore v1beta2 (and potentially other APIs), you get left in state where you can't enable APIs. I'll follow up when I get more details. |
@pcostell thanks for looking into it. |
@pcostell Thank you -- whatever you did for the user in that issue seems to have worked for me, too. |
* Add samples for Cloud Tasks [(#1068)](GoogleCloudPlatform/python-docs-samples#1068) * Add samples for Cloud Tasks * Respond to tasks sample review * Update app engine queues samples * Address review feedback * Address review issues and convert pull queue sample to not use API key auth * Reform pull queues to match appengine queues changes to auth, command line input, readme * flake8 and fix comment * Fix Tasks sample test issues. * Remove queue.yaml, now unused * Add required flag on certain arguments to command-line tools * Auto-update dependencies. [(#1116)](GoogleCloudPlatform/python-docs-samples#1116) * Auto-update dependencies. [(#1133)](GoogleCloudPlatform/python-docs-samples#1133) * Auto-update dependencies. * Fix missing http library Change-Id: I99faa600f2f3f1f50f57694fc9835d7f35bda250 * Update Task Queue samples for beta * Use full import to get client * Auto-update dependencies. [(#1186)](GoogleCloudPlatform/python-docs-samples#1186) * Auto-update dependencies. [(#1217)](GoogleCloudPlatform/python-docs-samples#1217) * Added "Open in Cloud Shell" buttons to README files [(#1254)](GoogleCloudPlatform/python-docs-samples#1254) * Add comments and region tags to Cloud Tasks samples [(#1271)](GoogleCloudPlatform/python-docs-samples#1271) * Standardize on CamelCase, reword confusing endpoint name [(#1288)](GoogleCloudPlatform/python-docs-samples#1288) * Auto-update dependencies. [(#1309)](GoogleCloudPlatform/python-docs-samples#1309) * Rename pull to lease and fix name/parent confusion [(#1311)](GoogleCloudPlatform/python-docs-samples#1311) * Updated region tags for pull queue samples [(#1329)](GoogleCloudPlatform/python-docs-samples#1329) * Auto-update dependencies. [(#1320)](GoogleCloudPlatform/python-docs-samples#1320) * Auto-update dependencies. [(#1355)](GoogleCloudPlatform/python-docs-samples#1355) * Auto-update dependencies. [(#1359)](GoogleCloudPlatform/python-docs-samples#1359) * Auto-update dependencies. * Update Cloud Tasks Samples [(#1529)](GoogleCloudPlatform/python-docs-samples#1529) * passing create task * Passing tests * updates to region tags * update region tags [(#1532)](GoogleCloudPlatform/python-docs-samples#1532) * update Tasks Sample for App Engine [(#1541)](GoogleCloudPlatform/python-docs-samples#1541) * update gcloud command for creating queues * deploys and runs * update license * passing tests * Fix run command [(#1563)](GoogleCloudPlatform/python-docs-samples#1563) * Updated library for TTS GA [(#1552)](GoogleCloudPlatform/python-docs-samples#1552) * update gcloud command for Cloud Tasks [(#1566)](GoogleCloudPlatform/python-docs-samples#1566) * update gcloud command * update pull queue command * update pull queue command * Update Cloud Tasks Push Queue Sample [(#1698)](GoogleCloudPlatform/python-docs-samples#1698) * deleted pull queues * updated samples * fix dependency versions * [Cloud Tasks] Move samples to new folder [(#2114)](GoogleCloudPlatform/python-docs-samples#2114) * Move samples to keep consistent with other langauges * Ad system tests as well * [Cloud Tasks] Add task with authentication sample [(#2113)](GoogleCloudPlatform/python-docs-samples#2113) * Add task with authentication sample * Fix linting * Fix linting * Fix spacing * Update tests with service account * Move samples and update READMEs * Update version and linting * Update task sample comments [(#2156)](GoogleCloudPlatform/python-docs-samples#2156) * Update task comments * Update readme * Update queue name * update gcloud [(#2208)](GoogleCloudPlatform/python-docs-samples#2208) * Add protobuf dep and install instructions [(#2250)](GoogleCloudPlatform/python-docs-samples#2250) * Add Migration Guide Snippets for Cloud Tasks [(#2316)](GoogleCloudPlatform/python-docs-samples#2316) * Migration guide * remove app and update migraitonn * snippets for migration guide - tests added * lint * remove print statements * Styling changes * Travis trigger * Update create_http_task.py [(#2187)](GoogleCloudPlatform/python-docs-samples#2187) Updates `create_http_task.py` to have missing `in_seconds` variable * Adds updates for samples profiler ... vision [(#2439)](GoogleCloudPlatform/python-docs-samples#2439) * Update Cloud Tasks library version [(#2516)](GoogleCloudPlatform/python-docs-samples#2516) * Update to new library * update library version * Adds Task name while creating Task [(#2543)](GoogleCloudPlatform/python-docs-samples#2543) * Task Name in Creating HTTP Task with Token [(#2700)](GoogleCloudPlatform/python-docs-samples#2700) * chore(deps): update dependency google-cloud-tasks to v1.5.0 [(#3168)](GoogleCloudPlatform/python-docs-samples#3168) * chore(deps): update dependency googleapis-common-protos to v1.51.0 [(#3171)](GoogleCloudPlatform/python-docs-samples#3171) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [googleapis-common-protos](https://togithub.com/googleapis/googleapis) | minor | `==1.6.0` -> `==1.51.0` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Never, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#GoogleCloudPlatform/python-docs-samples). * Simplify noxfile setup. [(#2806)](GoogleCloudPlatform/python-docs-samples#2806) * chore(deps): update dependency requests to v2.23.0 * Simplify noxfile and add version control. * Configure appengine/standard to only test Python 2.7. * Update Kokokro configs to match noxfile. * Add requirements-test to each folder. * Remove Py2 versions from everything execept appengine/standard. * Remove conftest.py. * Remove appengine/standard/conftest.py * Remove 'no-sucess-flaky-report' from pytest.ini. * Add GAE SDK back to appengine/standard tests. * Fix typo. * Roll pytest to python 2 version. * Add a bunch of testing requirements. * Remove typo. * Add appengine lib directory back in. * Add some additional requirements. * Fix issue with flake8 args. * Even more requirements. * Readd appengine conftest.py. * Add a few more requirements. * Even more Appengine requirements. * Add webtest for appengine/standard/mailgun. * Add some additional requirements. * Add workaround for issue with mailjet-rest. * Add responses for appengine/standard/mailjet. Co-authored-by: Renovate Bot <[email protected]> * Remove dependency googleapis-common-protos [(#3955)](GoogleCloudPlatform/python-docs-samples#3955) * Update dependency googleapis-common-protos to v1.52.0 * Update requirements.txt * Update requirements.txt * Update requirements.txt Co-authored-by: Bu Sun Kim <[email protected]> * Replace GCLOUD_PROJECT with GOOGLE_CLOUD_PROJECT. [(#4022)](GoogleCloudPlatform/python-docs-samples#4022) * [tasks] testing: use fixtures for the queue [(#4049)](GoogleCloudPlatform/python-docs-samples#4049) fixes #4045 fixes #4044 I don't know why these tests started to fail, but anyways we'd better use fixtures and temporary queues. * add python snippets and tests for creating, listing, and deleting queues [(#4012)](GoogleCloudPlatform/python-docs-samples#4012) * add python snippets and tests for creating, listing, and deleting queues * fix grammar * update licenses * apply suggested fixes and format with black * refine delete_queue_test with fixture for setup * utilize fixtures and match format of create_http_task_test * utilize fixtures in list_queues_test and create_queue_test * make create_queue_test call the right function * still attempt to delete queue after test runs in case of failure * attempt to delete queue in case of failure, using try/except approach * add print when NotFound is caught * fix import Co-authored-by: Averi Kitsch <[email protected]> Co-authored-by: Takashi Matsuo <[email protected]> * docs(tasks): service_account_email parameter example [(#4183)](GoogleCloudPlatform/python-docs-samples#4183) * docs(tasks): serviceAccountEmail parameter example * docs(tasks): parameter name camel => snake case * docs(tasks): comment order = function param order * chore(deps): update dependency pytest to v5.4.3 [(#4279)](GoogleCloudPlatform/python-docs-samples#4279) * chore(deps): update dependency pytest to v5.4.3 * specify pytest for python 2 in appengine Co-authored-by: Leah Cole <[email protected]> * Update dependency pytest to v6 [(#4390)](GoogleCloudPlatform/python-docs-samples#4390) * tasks: added json content-type request [(#4473)](GoogleCloudPlatform/python-docs-samples#4473) - added json payload compatibility - fix imports and code block used on https://cloud.google.com/tasks/docs/creating-http-target-tasks#python ## Description Fixes #<ISSUE-NUMBER> Note: It's a good idea to open an issue first for discussion. ## Checklist - [ ] I have followed [Sample Guidelines from AUTHORING_GUIDE.MD](https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/AUTHORING_GUIDE.md) - [ ] README is updated to include [all relevant information](https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/AUTHORING_GUIDE.md#readme-file) - [ ] **Tests** pass: `nox -s py-3.6` (see [Test Environment Setup](https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/AUTHORING_GUIDE.md#test-environment-setup)) - [ ] **Lint** pass: `nox -s lint` (see [Test Environment Setup](https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/AUTHORING_GUIDE.md#test-environment-setup)) - [ ] These samples need a new **API enabled** in testing projects to pass (let us know which ones) - [ ] These samples need a new/updated **env vars** in testing projects set to pass (let us know which ones) - [ ] Please **merge** this PR for me once it is approved. - [ ] This sample adds a new sample directory, and I updated the [CODEOWNERS file](https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/.github/CODEOWNERS) with the codeowners for this sample * docs: add samples from python-docs-samples/tasks * chore: update templates Co-authored-by: Andrew Gorcester <[email protected]> Co-authored-by: Andrew Gorcester <[email protected]> Co-authored-by: DPE bot <[email protected]> Co-authored-by: michaelawyu <[email protected]> Co-authored-by: ellenevans <[email protected]> Co-authored-by: Averi Kitsch <[email protected]> Co-authored-by: michaelawyu <[email protected]> Co-authored-by: Noah Negrey <[email protected]> Co-authored-by: Alex Voorhees <[email protected]> Co-authored-by: Gus Class <[email protected]> Co-authored-by: Sarath Kaul <[email protected]> Co-authored-by: Sarath Kaul <[email protected]> Co-authored-by: WhiteSource Renovate <[email protected]> Co-authored-by: Kurtis Van Gent <[email protected]> Co-authored-by: Bu Sun Kim <[email protected]> Co-authored-by: Takashi Matsuo <[email protected]> Co-authored-by: Aaron Johnson <[email protected]> Co-authored-by: Adam Ross <[email protected]> Co-authored-by: Leah Cole <[email protected]> Co-authored-by: Joab Leite S. Neto <[email protected]>
Current plan of attack:
--plugin=protoc-gen-grpc=$(GRPC_PLUGIN)
from "helper" modules that don't use gRPC (e.g.google.bigtable.v1.bigtable_data
) (this way sub-packages that don't need gRPC can use them) (Updating Makefile to only use gRPC when needed. #1354)protobuf
andgoogleapis-common-protos
(Use googleapis common protos #1353)Move shared (i.e. non-Bigtable specific) modules fromgcloud.bigtable._generated
togcloud._generated
(this way all sub-packages can have access to shared protobuf message classes) and then subsequently update thebigtable
imports to accommodate this change_get_pb_property_value
ingcloud.bigtable.cluster
into core (gcloud._helpers
) and separate out a_has_field
piece sincepb_message.HasField
doesn't work on non-message fields inproto3
(Moving _get_pb_property_value from bigtable into core. #1329)Makefile
to reflect changes above (i.e. make sure it can be run without changing the code) (See Bringing auto-gen import re-writing up to date with files. #1316)Makefile
to automatically add the_foo.proto
files to the repo (See Making pb2 auto-gen script also copy over .proto files. #1317)Batch.add_auto_id_entity
intoBatch.put
(theauto_id_entity
mutation is removed in favor of just usinginsert
with a partial key) (see Removing datastore Batch.add_auto_id_entity. #1296)Batch
implementation's reliance onMutation
message class (it is used in aLookupRequest
and their combined structure changes inv1beta3
) (See Renaming datastore Batch.mutation to mutations. #1306, Puting helpers in datastore Batch for getting new mutations. #1319, Using protobuf CommitRequest in datastore Connection.commit. #1341)serializable
inClient.transaction
andTransaction
(it is no longer an option inv1beta3
, so we will curtail it's use inv1beta2
before the switch) (See Removing serializable option from datastore Transaction. #1294)_datastore_v1_pb2.py
module into 3 modules that just import portions of the namespace. These modules (datastore_pb2.py
,entity_pb2.py
,query_pb2.py
) will be according to the membership in the new proto definitions forv1beta3
. (See Replacing datastore pb uses with entity shim. #1297, Replacing datastore pb uses with query shim. #1299, Replacing datastore pb uses with "datastore" shim. #1301, Creating _generated pb directory for datastore #1328)_datastore_v1_pb2.py
to using our "shim" imports to mock the structure ofv1beta3
. (See Replacing datastore pb uses with entity shim. #1297, Replacing datastore pb uses with query shim. #1299, Replacing datastore pb uses with "datastore" shim. #1301, Creating _generated pb directory for datastore #1328)API_BASE_URL
for theConnection
class is used (rather than a parent's version) (See Explicitly using API_BASE_URL from current connection in datastore. #1293)Client.dataset_id
toClient.project
(in advance of the rename toPartitionId.project_id
inv1beta3
) (Replace dataset id with project in datastore #1330)Connection.commit
to be a tuple ofindex_updates
andmutation_results
(they were previously on the same result object but are being split apart inv1beta3
) (See Reducing datastore commit reliance on structure of response. #1314)HasField
for non-message values with_has_field
(see above) (Moving _get_pb_property_value from bigtable into core. #1329)v1beta2
generatedpb2
file and old.proto
definition (can also remove_datastore_v1_pb2.py
from thepylintrc_default
ignored file) and delete our "shim" modules (Upgrading Makefile to generate datastore v1beta3. #1355, Upgrading Makefile to generate datastore v1beta3. #1428)Makefile
to incorporate protobuf definitions forv1beta3
(I did this in a side-project, Use googleapis common protos #1353, Updating Makefile to only use gRPC when needed. #1354, Upgrading Makefile to generate datastore v1beta3. #1355, Upgrading Makefile to generate datastore v1beta3. #1428)Rewrite our "shim" imports to use the actualdatastore._generated
files forv1beta3
.API_BASE_URL
fromhttps://www.googleapis.com
tohttps://datastore.googleapis.com
and drop'https://www.googleapis.com/auth/userinfo.email
from the scope list (Updating datastore URI template for v1beta3. #1339, Updating datastore URI template for v1beta3. #1406)CommitRequest.mutation --> CommitRequest.mutations
(Updating CommitRequest, Mutation and helpers for v1beta3. #1461)LookupRequest.key --> LookupRequest.keys
(Handling datastore renames key -> keys #1358, Handling datastore renames key -> keys #1456)AllocateIdsResponse.key --> AllocateIdsResponse.keys
(Handling datastore renames key -> keys #1358, Handling datastore renames key -> keys #1456)AllocateIdsRequest.key --> AllocateIdsRequest.keys
(Handling datastore renames key -> keys #1358, Handling datastore renames key -> keys #1456)Key.path_element --> Key.path
(Renaming path_element->path in Key. #1360, Renaming path_element->path in Key. #1457)Entity.property --> Entity.properties
(Upgrading Entity.property to properties map in datastore. #1458)Query.group_by --> Query.distinct_on
(Handling datastore renames on Query and QueryResultBatch. #1357, Handling datastore renames on Query and QueryResultBatch. #1455)Query.limit --> Query.limit.value
(Handling datastore renames on Query and QueryResultBatch. #1357, Handling datastore renames on Query and QueryResultBatch. #1455)QueryResultBatch.entity_result --> QueryResultBatch.entity_results
(Handling datastore renames on Query and QueryResultBatch. #1357, Handling datastore renames on Query and QueryResultBatch. #1455)PartitionId.namespace --> PartitionId.namespace_id
(Handle datastore renames on PartitionId #1359, Handle datastore renames on PartitionId #1452)PartitionId.dataset_id --> PartitionId.project_id
(Handle datastore renames on PartitionId #1359, Handle datastore renames on PartitionId #1452)Value.indexed --> Value.exclude_from_indexes
(Rename Value.indexed->exclude_from_indexes. #1365, Rename Value.indexed->exclude_from_indexes. #1453)Value.list_value --> Value.array_value
(Upgrading list_value -> array_value for v1beta3. #1460)Value.null_value
added (Adding support for null and geo point values in v1beta3. #1464)Value.timestamp_microseconds_value --> Value.timestamp_value
(with type change) (Moving _pb_timestamp_to_datetime into core. #1361, Upgrading timestamp_microseconds_value to timestamp_value. #1459)Value.geo_point_value
added (Adding support for null and geo point values in v1beta3. #1464)Value.blob_key_value
removedCompositeFilter.filter --> CompositeFilter.filters
(Handling datastore renames on CompositeFilter and PropertyFilter. #1356, Handling datastore renames on CompositeFilter and PropertyFilter. #1454)CompositeFilter.operation --> CompositeFilter.op
(Handling datastore renames on CompositeFilter and PropertyFilter. #1356, Handling datastore renames on CompositeFilter and PropertyFilter. #1454)PropertyFilter.operation --> PropertyFilter.op
(Handling datastore renames on CompositeFilter and PropertyFilter. #1356, Handling datastore renames on CompositeFilter and PropertyFilter. #1454)CompositeFilter.AND --> CompositeFilter.OPERATOR_UNSPECIFIED
(as default value) (Handling datastore renames on CompositeFilter and PropertyFilter. #1356, Handling datastore renames on CompositeFilter and PropertyFilter. #1454)ReadOptions.DEFAULT --> ReadOptions.READ_CONSISTENCY_UNSPECIFIED
(as default value) (Handling datastore renames on CompositeFilter and PropertyFilter. #1356, Handling datastore renames on CompositeFilter and PropertyFilter. #1454)Entity.property
is not amap
calledEntity.properties
(somewhat different semantics) (Adding helpers for interacting with properties in Entity protobuf. #1340)dataset_id
no longer needed?) (Removing custom dataset ID environment variable. #1465)isolation_level
inConnection.begin_transaction
(Removing use of isolation level in datastore. #1343, Removing use of isolation level in datastore. #1407)New Features:
GqlQuery
support (Missing GQL support #304)QueryResultBatch.skipped_cursor
added (only set whenskipped_results != 0
)EntityResult.cursor
added (set by the backend when the entity result is part of aRunQueryResponse.batch.entity_results
response)The text was updated successfully, but these errors were encountered: