New issue
Advanced search Search tips

Issue 854218 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2018
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Feature

Blocked on:
issue 854484



Sign in to add a comment

Deploy Batch API

Project Member Reported by no...@chromium.org, Jun 19 2018

Issue description

see for the definition go/buildbucket-api-v2. A user should be able to run multiple requests batched, e.g. 

const builders = ['foo', 'bar'];
const requests = [];
for (const builder of builders) {
  requests.push({
    searchBuilds: {
      predicate: {
        builder: {project: "chromeos", bucket: "ci", builder: builder},
      },
    },
  });
}
const response = async Batch({requests});
for (let i = 0; i < builders.length; i++) {
  console.log(`Builder: ${builder}`);
  for (const b in response.responses[i].search_builds.builds) {
    console.log(`build ${b.id}`);
  }
}

needed for CrOS
 

Comment 1 by no...@chromium.org, Jun 19 2018

Status: Started (was: Assigned)
Project Member

Comment 2 by bugdroid1@chromium.org, Jun 19 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/infra/luci/luci-go.git/+/eca556dd94c2c2a42dad90d3f7ee0061885c8242

commit eca556dd94c2c2a42dad90d3f7ee0061885c8242
Author: Nodir Turakulov <nodir@google.com>
Date: Tue Jun 19 18:41:07 2018

[prpc] add support for google/rpc/* protos

Extend cproto to support google/rpc/*.proto out of box.
Vendor them in grpc/proto with full proto names and include
grpc/proto dir in import path.

Map proto paths to go packages accordingly.

Bug:  854218 
Change-Id: Ieb33a6fe3b55bc5900aa81dbcf311cfbd7225cb9
Reviewed-on: https://chromium-review.googlesource.com/1106551
Reviewed-by: Vadim Shtayura <vadimsh@chromium.org>
Commit-Queue: Nodir Turakulov <nodir@chromium.org>

[modify] https://crrev.com/eca556dd94c2c2a42dad90d3f7ee0061885c8242/grpc/cmd/cproto/main.go
[add] https://crrev.com/eca556dd94c2c2a42dad90d3f7ee0061885c8242/grpc/proto/README.md
[add] https://crrev.com/eca556dd94c2c2a42dad90d3f7ee0061885c8242/grpc/proto/google/rpc/README.md
[add] https://crrev.com/eca556dd94c2c2a42dad90d3f7ee0061885c8242/grpc/proto/google/rpc/code.proto
[add] https://crrev.com/eca556dd94c2c2a42dad90d3f7ee0061885c8242/grpc/proto/google/rpc/error_details.proto
[add] https://crrev.com/eca556dd94c2c2a42dad90d3f7ee0061885c8242/grpc/proto/google/rpc/status.proto

Project Member

Comment 3 by bugdroid1@chromium.org, Jun 19 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/infra/luci/luci-go.git/+/262bf4f6900c60002f12add4b0445617cbd87695

commit 262bf4f6900c60002f12add4b0445617cbd87695
Author: Nodir Turakulov <nodir@google.com>
Date: Tue Jun 19 19:47:41 2018

[buildbucket] Add Batch RPC

Add proto definitions of Batch RPC.

Bug:  854218 
Change-Id: Ief0880bf54a788a121b51add479269291c76cd1e
Reviewed-on: https://chromium-review.googlesource.com/1106433
Commit-Queue: Nodir Turakulov <nodir@chromium.org>
Reviewed-by: Vadim Shtayura <vadimsh@chromium.org>

[modify] https://crrev.com/262bf4f6900c60002f12add4b0445617cbd87695/buildbucket/proto/pb.discovery.go
[modify] https://crrev.com/262bf4f6900c60002f12add4b0445617cbd87695/buildbucket/proto/rpc.pb.go
[modify] https://crrev.com/262bf4f6900c60002f12add4b0445617cbd87695/buildbucket/proto/rpc.proto

Comment 4 by no...@chromium.org, Jun 20 2018

Cc: vadimsh@chromium.org
it is just occurred to me that, thanks to Python, this requires all RPC implementations to be async (ndb futures) :(

Comment 5 by no...@chromium.org, Jun 20 2018

Blockedon: 854484
Project Member

Comment 6 by bugdroid1@chromium.org, Jun 20 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/infra/infra/+/1aeac1701a47609ad9504ecb204e18b580dfe61a

commit 1aeac1701a47609ad9504ecb204e18b580dfe61a
Author: Nodir Turakulov <nodir@google.com>
Date: Wed Jun 20 22:32:51 2018

[buildbucket] Add Batch API declaration

Not implemented yet.

Also update compile.py to support google/rpc/*.proto.

Bug:  854218 
Change-Id: I573edb0d74bb8b5b7cb928d45a1e8ce4dcd8d206
Reviewed-on: https://chromium-review.googlesource.com/1106965
Reviewed-by: Vadim Shtayura <vadimsh@chromium.org>
Commit-Queue: Nodir Turakulov <nodir@chromium.org>

[modify] https://crrev.com/1aeac1701a47609ad9504ecb204e18b580dfe61a/appengine/cr-buildbucket/proto/rpc_pb2.py
[modify] https://crrev.com/1aeac1701a47609ad9504ecb204e18b580dfe61a/appengine/cr-buildbucket/proto/compile.py
[modify] https://crrev.com/1aeac1701a47609ad9504ecb204e18b580dfe61a/appengine/cr-buildbucket/proto/rpc_prpc_pb2.py

Project Member

Comment 7 by bugdroid1@chromium.org, Jun 20 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/infra/luci/luci-py.git/+/340c674f10fd758340d56d877cee2076d349e977

commit 340c674f10fd758340d56d877cee2076d349e977
Author: Nodir Turakulov <nodir@google.com>
Date: Wed Jun 20 23:54:55 2018

Add Google RPC protobufs

Note that client/third_party/google is symlinked to
appengine/components/components/third_party/protobuf/google,
so apps that call components.components.utils.fix_protobuf_package
automatically get google.rpc Python module.

Bug:  854218 
Change-Id: I74f0a6bc513009cfd91d4b79b38a46f30ea1fe83
Reviewed-on: https://chromium-review.googlesource.com/1109263
Reviewed-by: Vadim Shtayura <vadimsh@chromium.org>
Commit-Queue: Nodir Turakulov <nodir@chromium.org>

[modify] https://crrev.com/340c674f10fd758340d56d877cee2076d349e977/client/third_party/google/README.swarming
[add] https://crrev.com/340c674f10fd758340d56d877cee2076d349e977/client/third_party/google/rpc/README.md
[add] https://crrev.com/340c674f10fd758340d56d877cee2076d349e977/client/third_party/google/rpc/__init__.py
[add] https://crrev.com/340c674f10fd758340d56d877cee2076d349e977/client/third_party/google/rpc/code.proto
[add] https://crrev.com/340c674f10fd758340d56d877cee2076d349e977/client/third_party/google/rpc/code_pb2.py
[add] https://crrev.com/340c674f10fd758340d56d877cee2076d349e977/client/third_party/google/rpc/error_details.proto
[add] https://crrev.com/340c674f10fd758340d56d877cee2076d349e977/client/third_party/google/rpc/error_details_pb2.py
[add] https://crrev.com/340c674f10fd758340d56d877cee2076d349e977/client/third_party/google/rpc/status.proto
[add] https://crrev.com/340c674f10fd758340d56d877cee2076d349e977/client/third_party/google/rpc/status_pb2.py

Project Member

Comment 10 by bugdroid1@chromium.org, Jun 25 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/infra/infra/+/6aef228122ed74cc59f2869b759620f53224d461

commit 6aef228122ed74cc59f2869b759620f53224d461
Author: Nodir Turakulov <nodir@google.com>
Date: Mon Jun 25 22:30:16 2018

[buildbucket] Make v2 RPC implementations async

Taskletize v2 RPC implementations. Move them out of the service class.

Bug:  854218 
Change-Id: I3aec1b6fd64703564ca18687f028995bc5dbcf98
Reviewed-on: https://chromium-review.googlesource.com/1110456
Reviewed-by: Vadim Shtayura <vadimsh@chromium.org>
Commit-Queue: Nodir Turakulov <nodir@chromium.org>

[modify] https://crrev.com/6aef228122ed74cc59f2869b759620f53224d461/appengine/cr-buildbucket/v2/api.py
[modify] https://crrev.com/6aef228122ed74cc59f2869b759620f53224d461/appengine/cr-buildbucket/v2/test/api_test.py

Project Member

Comment 11 by bugdroid1@chromium.org, Jun 25 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/infra/luci/luci-py.git/+/cedeb9791b002f75e47cc017707c57aa0d4c4672

commit cedeb9791b002f75e47cc017707c57aa0d4c4672
Author: Nodir Turakulov <nodir@google.com>
Date: Mon Jun 25 23:11:08 2018

[prpc] Make RPC codes a named tuple

Expose error code value and name as an attribute of a status code object.

Bug:  854218 
Change-Id: I78fbcfcadadf1234115f377e29f693eb98d0a6a2
Reviewed-on: https://chromium-review.googlesource.com/1114245
Reviewed-by: Vadim Shtayura <vadimsh@chromium.org>
Commit-Queue: Nodir Turakulov <nodir@chromium.org>

[modify] https://crrev.com/cedeb9791b002f75e47cc017707c57aa0d4c4672/appengine/components/components/prpc/codes.py

Project Member

Comment 12 by bugdroid1@chromium.org, Jun 25 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/infra/luci/luci-py.git/+/65de3aef5845afd951e64077df8c50d11cc9a2b1

commit 65de3aef5845afd951e64077df8c50d11cc9a2b1
Author: Nodir Turakulov <nodir@google.com>
Date: Mon Jun 25 23:11:58 2018

[prpc] Add ServicerContext.clone

Usage: https://chromium-review.googlesource.com/c/infra/infra/+/1114186

Bug:  854218 
Change-Id: If9ae582f5b08d58ebc4ff8e598a49332213fffde
Reviewed-on: https://chromium-review.googlesource.com/1114242
Commit-Queue: Nodir Turakulov <nodir@chromium.org>
Reviewed-by: Vadim Shtayura <vadimsh@chromium.org>

[modify] https://crrev.com/65de3aef5845afd951e64077df8c50d11cc9a2b1/appengine/components/components/prpc/context.py

Project Member

Comment 13 by bugdroid1@chromium.org, Jun 26 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/infra/infra/+/988ff760bd6cd7a383d9ab7b90e3fd1209c59e53

commit 988ff760bd6cd7a383d9ab7b90e3fd1209c59e53
Author: Nodir Turakulov <nodir@google.com>
Date: Tue Jun 26 00:02:08 2018

[buildbucket] Implement Batch RPC

Bug:  854218 
Change-Id: I69dbb0de576127440f7dc02c650a65d8cb7c3726
Reviewed-on: https://chromium-review.googlesource.com/1114186
Reviewed-by: Vadim Shtayura <vadimsh@chromium.org>
Commit-Queue: Nodir Turakulov <nodir@chromium.org>

[modify] https://crrev.com/988ff760bd6cd7a383d9ab7b90e3fd1209c59e53/appengine/cr-buildbucket/v2/api.py
[modify] https://crrev.com/988ff760bd6cd7a383d9ab7b90e3fd1209c59e53/appengine/cr-buildbucket/v2/test/api_test.py

Comment 14 by no...@chromium.org, Jun 26 2018

Status: Fixed (was: Started)
example: https://cr-buildbucket.appspot.com/rpcexplorer/services/buildbucket.v2.Builds/Batch?request={%20%20%20%20%22requests%22:%20[%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%22searchBuilds%22:%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22predicate%22:%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22builder%22:%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22project%22:%20%22chromium%22,%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22bucket%22:%20%22try%22,%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22builder%22:%20%22linux_chromium_rel_ng%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20},%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22pageSize%22:%203%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20},%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%22searchBuilds%22:%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22predicate%22:%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22builder%22:%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22project%22:%20%22chromium%22,%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22bucket%22:%20%22try%22,%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22builder%22:%20%22win_chromium_rel_ng%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20},%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22pageSize%22:%203%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20}%20%20%20%20]}

Sign in to add a comment