balance_pool needs to know whether a given (board, pool) or (model, pool) is "healthy". It will use crosskylabadmin to get this information.
PoC API extension: https://chromium-review.googlesource.com/c/infra/infra/+/1256073
The following revision refers to this bug: https://chromium.googlesource.com/infra/infra/+/af22fc8cb399587253d0f6374c5c2385015f9e84 commit af22fc8cb399587253d0f6374c5c2385015f9e84 Author: Prathmesh Prabhu <pprabhu@chromium.org> Date: Wed Oct 03 21:56:31 2018 crosskylabadmin: regenerate API protos Regenerate API protos with updated tools to reduce diff in follow-up CLs with actual API changes. BUG= chromium:891152 Change-Id: I8ae2adc50f44a03394ba86a56c391356ca7eef1d Reviewed-on: https://chromium-review.googlesource.com/c/1257566 Auto-Submit: Prathmesh Prabhu <pprabhu@chromium.org> Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org> Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org> Cr-Commit-Position: refs/heads/master@{#18037} [modify] https://crrev.com/af22fc8cb399587253d0f6374c5c2385015f9e84/go/src/infra/appengine/crosskylabadmin/api/fleet/v1/tracker.pb.go [modify] https://crrev.com/af22fc8cb399587253d0f6374c5c2385015f9e84/go/src/infra/appengine/crosskylabadmin/api/fleet/v1/tasker.pb.go [modify] https://crrev.com/af22fc8cb399587253d0f6374c5c2385015f9e84/go/src/infra/appengine/crosskylabadmin/api/fleet/v1/common.pb.go [modify] https://crrev.com/af22fc8cb399587253d0f6374c5c2385015f9e84/go/src/infra/appengine/crosskylabadmin/app/config/config.pb.go
The following revision refers to this bug: https://chromium.googlesource.com/infra/infra/+/d192ff4bdbe4d3ed1bae032d380671b1a6d12d52 commit d192ff4bdbe4d3ed1bae032d380671b1a6d12d52 Author: Prathmesh Prabhu <pprabhu@chromium.org> Date: Fri Oct 12 17:13:49 2018 crosskylabadmin: Add mocks for swarming client We will replace FakeSwarmingClient with a mock in crosskylabadmin. - Fake SwarmingClient implementation has become unwieldy. - Swarming authors do not provide the fake, adding testing / validation load for the fake on us. - Unittests in crosskylabadmin need fine grained control on behaviours exhibited by the swarming interface methods. Even a well defined fake will not suffice for unittests because they need to mimic different bot events and task pass / fail states etc within Swarming (compare with a fake filesystem with minimal error case testing). This CL adds the mocks to start using in newer unittests before converting the existing tests. BUG= chromium:891152 Change-Id: Iaf0324388b78fe4bc8e806403740d4475b06909c Reviewed-on: https://chromium-review.googlesource.com/c/1257567 Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org> Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org> Auto-Submit: Prathmesh Prabhu <pprabhu@chromium.org> Cr-Commit-Position: refs/heads/master@{#18286} [add] https://crrev.com/d192ff4bdbe4d3ed1bae032d380671b1a6d12d52/go/src/infra/appengine/crosskylabadmin/app/clients/mock/swarming.go [add] https://crrev.com/d192ff4bdbe4d3ed1bae032d380671b1a6d12d52/go/src/infra/appengine/crosskylabadmin/app/clients/mock/gen.go [add] https://crrev.com/d192ff4bdbe4d3ed1bae032d380671b1a6d12d52/go/src/infra/appengine/crosskylabadmin/app/clients/mock/mock.infra_testing
The following revision refers to this bug: https://chromium.googlesource.com/infra/infra/+/a27e9e863c2cc080100e6ac5da5a886951b5ce6e commit a27e9e863c2cc080100e6ac5da5a886951b5ce6e Author: Prathmesh Prabhu <pprabhu@chromium.org> Date: Tue Oct 23 19:10:24 2018 crosskylabadmin: Add a mock based test This test currently duplicates an existing fake based test. A follow up CL will modify this test to instead target a new features. Adding the test in this CL allows us to separate out the new test helper logic from feature work in the incoming CL. BUG= chromium:891152 Change-Id: I8a4fc73165cf197fd27b9c930b088fc5e0626d24 Reviewed-on: https://chromium-review.googlesource.com/c/1257577 Commit-Queue: Prathmesh Prabhu <pprabhu@chromium.org> Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org> Cr-Commit-Position: refs/heads/master@{#18543} [add] https://crrev.com/a27e9e863c2cc080100e6ac5da5a886951b5ce6e/go/src/infra/appengine/crosskylabadmin/app/frontend/test_common_test.go [modify] https://crrev.com/a27e9e863c2cc080100e6ac5da5a886951b5ce6e/go/src/infra/appengine/crosskylabadmin/app/frontend/test_common.go [modify] https://crrev.com/a27e9e863c2cc080100e6ac5da5a886951b5ce6e/go/src/infra/appengine/crosskylabadmin/app/frontend/tracker_test.go
The following revision refers to this bug: https://chromium.googlesource.com/infra/infra/+/bee55efc1e8a8e8d3b09a7a92e4a2024e1f13c70 commit bee55efc1e8a8e8d3b09a7a92e4a2024e1f13c70 Author: Prathmesh Prabhu <pprabhu@chromium.org> Date: Mon Oct 29 18:10:51 2018 crosskylabadmin: support filtering by model and pool dimensions BUG= chromium:891152 Change-Id: I1ba980fdcb2269f6c37847536ba608dea00fa9f3 Reviewed-on: https://chromium-review.googlesource.com/c/1257568 Commit-Queue: Prathmesh Prabhu <pprabhu@chromium.org> Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org> Cr-Commit-Position: refs/heads/master@{#18615} [modify] https://crrev.com/bee55efc1e8a8e8d3b09a7a92e4a2024e1f13c70/go/src/infra/appengine/crosskylabadmin/app/frontend/tracker_test.go [modify] https://crrev.com/bee55efc1e8a8e8d3b09a7a92e4a2024e1f13c70/go/src/infra/appengine/crosskylabadmin/api/fleet/v1/common.pb.go [modify] https://crrev.com/bee55efc1e8a8e8d3b09a7a92e4a2024e1f13c70/go/src/infra/appengine/crosskylabadmin/app/clients/swarming.go [modify] https://crrev.com/bee55efc1e8a8e8d3b09a7a92e4a2024e1f13c70/go/src/infra/appengine/crosskylabadmin/api/fleet/v1/tracker.pb.go [modify] https://crrev.com/bee55efc1e8a8e8d3b09a7a92e4a2024e1f13c70/go/src/infra/appengine/crosskylabadmin/api/fleet/v1/tasker.pb.go [modify] https://crrev.com/bee55efc1e8a8e8d3b09a7a92e4a2024e1f13c70/go/src/infra/appengine/crosskylabadmin/app/frontend/tracker.go [modify] https://crrev.com/bee55efc1e8a8e8d3b09a7a92e4a2024e1f13c70/go/src/infra/appengine/crosskylabadmin/api/fleet/v1/tracker.proto [modify] https://crrev.com/bee55efc1e8a8e8d3b09a7a92e4a2024e1f13c70/go/src/infra/appengine/crosskylabadmin/app/config/config.pb.go [modify] https://crrev.com/bee55efc1e8a8e8d3b09a7a92e4a2024e1f13c70/go/src/infra/appengine/crosskylabadmin/api/fleet/v1/trackerserver_dec.go [modify] https://crrev.com/bee55efc1e8a8e8d3b09a7a92e4a2024e1f13c70/go/src/infra/appengine/crosskylabadmin/api/fleet/v1/taskerserver_dec.go [modify] https://crrev.com/bee55efc1e8a8e8d3b09a7a92e4a2024e1f13c70/go/src/infra/appengine/crosskylabadmin/api/fleet/v1/common.proto [modify] https://crrev.com/bee55efc1e8a8e8d3b09a7a92e4a2024e1f13c70/go/src/infra/appengine/crosskylabadmin/api/fleet/v1/pb.discovery.go
The following revision refers to this bug: https://chromium.googlesource.com/infra/infra/+/e5884d2ff7278429906866344c81401bf5b040eb commit e5884d2ff7278429906866344c81401bf5b040eb Author: Prathmesh Prabhu <pprabhu@chromium.org> Date: Tue Oct 30 01:17:32 2018 crosskylabadmin: Report HealthStatus for bots BUG= chromium:891152 Change-Id: Iebf2333ede7246e7ed45274fdb8ea819832aac00 Reviewed-on: https://chromium-review.googlesource.com/c/1297521 Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org> Commit-Queue: Prathmesh Prabhu <pprabhu@chromium.org> Cr-Commit-Position: refs/heads/master@{#18635} [modify] https://crrev.com/e5884d2ff7278429906866344c81401bf5b040eb/go/src/infra/appengine/crosskylabadmin/api/fleet/v1/tracker.pb.go [modify] https://crrev.com/e5884d2ff7278429906866344c81401bf5b040eb/go/src/infra/appengine/crosskylabadmin/app/frontend/tracker_test.go [modify] https://crrev.com/e5884d2ff7278429906866344c81401bf5b040eb/go/src/infra/appengine/crosskylabadmin/app/frontend/tracker.go [modify] https://crrev.com/e5884d2ff7278429906866344c81401bf5b040eb/go/src/infra/appengine/crosskylabadmin/api/fleet/v1/pb.discovery.go [modify] https://crrev.com/e5884d2ff7278429906866344c81401bf5b040eb/go/src/infra/appengine/crosskylabadmin/api/fleet/v1/tracker.proto
The following revision refers to this bug: https://chromium.googlesource.com/infra/infra/+/c122489a7cd6c3ba4337317bd2748408d5e08b55 commit c122489a7cd6c3ba4337317bd2748408d5e08b55 Author: Prathmesh Prabhu <pprabhu@chromium.org> Date: Tue Oct 30 03:34:14 2018 crosskylabadmin: Do not deduplicate selectors With the introduction of dimension based filtering, selectors have become non-trivial. The old implementation of duplicate selector detection was no longer correct, and updated logic would be more complicated. Instead of trying to maintain a complex duplicate detection logic that needs to be updated each time the selector schema changes, drop the deduplication entirely. This means that any API calls with duplicate selectors will pay the price of refreshing / summarizing the same bots twice. The final result will still deduplicate the returned bots, but the API call will do extra work. This is what the caller deserves, me thinks ;) BUG= chromium:891152 Change-Id: I56b6fc3ca3f8c316234c3a081949b43f5210d6af Reviewed-on: https://chromium-review.googlesource.com/c/1297701 Commit-Queue: Prathmesh Prabhu <pprabhu@chromium.org> Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org> Cr-Commit-Position: refs/heads/master@{#18641} [modify] https://crrev.com/c122489a7cd6c3ba4337317bd2748408d5e08b55/go/src/infra/appengine/crosskylabadmin/app/frontend/tracker.go
Comment 1 by pprabhu@chromium.org
, Oct 2