buildgrid 0.3.2__tar.gz → 0.3.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (436) hide show
  1. {buildgrid-0.3.2 → buildgrid-0.3.4}/PKG-INFO +1 -1
  2. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/scheduler/impl.py +38 -13
  3. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/version.py +1 -1
  4. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid.egg-info/PKG-INFO +1 -1
  5. {buildgrid-0.3.2 → buildgrid-0.3.4}/pyproject.toml +1 -1
  6. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/test_scheduler.py +68 -30
  7. {buildgrid-0.3.2 → buildgrid-0.3.4}/BuildGrid.doap +0 -0
  8. {buildgrid-0.3.2 → buildgrid-0.3.4}/CONTRIBUTING.rst +0 -0
  9. {buildgrid-0.3.2 → buildgrid-0.3.4}/LICENSE +0 -0
  10. {buildgrid-0.3.2 → buildgrid-0.3.4}/MANIFEST.in +0 -0
  11. {buildgrid-0.3.2 → buildgrid-0.3.4}/README.rst +0 -0
  12. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/__init__.py +0 -0
  13. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/__init__.py +0 -0
  14. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/__init__.py +0 -0
  15. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/__init__.py +0 -0
  16. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/remote/__init__.py +0 -0
  17. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/remote/asset/__init__.py +0 -0
  18. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/remote/asset/v1/__init__.py +0 -0
  19. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/remote/asset/v1/remote_asset_pb2.py +0 -0
  20. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/remote/asset/v1/remote_asset_pb2.pyi +0 -0
  21. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/remote/asset/v1/remote_asset_pb2_grpc.py +0 -0
  22. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/remote/asset/v1/remote_asset_pb2_grpc.pyi +0 -0
  23. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/remote/asset/v1/remote_asset_pb2_grpc_aio.py +0 -0
  24. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/remote/asset/v1/remote_asset_pb2_grpc_aio.pyi +0 -0
  25. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/remote/execution/__init__.py +0 -0
  26. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/remote/execution/v2/__init__.py +0 -0
  27. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/remote/execution/v2/remote_execution_pb2.py +0 -0
  28. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/remote/execution/v2/remote_execution_pb2.pyi +0 -0
  29. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/remote/execution/v2/remote_execution_pb2_grpc.py +0 -0
  30. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/remote/execution/v2/remote_execution_pb2_grpc.pyi +0 -0
  31. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/remote/execution/v2/remote_execution_pb2_grpc_aio.py +0 -0
  32. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/remote/execution/v2/remote_execution_pb2_grpc_aio.pyi +0 -0
  33. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/remote/logstream/__init__.py +0 -0
  34. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/remote/logstream/v1/__init__.py +0 -0
  35. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/remote/logstream/v1/remote_logstream_pb2.py +0 -0
  36. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/remote/logstream/v1/remote_logstream_pb2.pyi +0 -0
  37. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/remote/logstream/v1/remote_logstream_pb2_grpc.py +0 -0
  38. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/remote/logstream/v1/remote_logstream_pb2_grpc.pyi +0 -0
  39. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/remote/logstream/v1/remote_logstream_pb2_grpc_aio.py +0 -0
  40. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/remote/logstream/v1/remote_logstream_pb2_grpc_aio.pyi +0 -0
  41. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/semver/__init__.py +0 -0
  42. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/semver/semver_pb2.py +0 -0
  43. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/semver/semver_pb2.pyi +0 -0
  44. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/semver/semver_pb2_grpc.py +0 -0
  45. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/semver/semver_pb2_grpc.pyi +0 -0
  46. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/semver/semver_pb2_grpc_aio.py +0 -0
  47. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/bazel/semver/semver_pb2_grpc_aio.pyi +0 -0
  48. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildbox/__init__.py +0 -0
  49. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildbox/execution_stats_pb2.py +0 -0
  50. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildbox/execution_stats_pb2.pyi +0 -0
  51. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildbox/execution_stats_pb2_grpc.py +0 -0
  52. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildbox/execution_stats_pb2_grpc.pyi +0 -0
  53. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildbox/execution_stats_pb2_grpc_aio.py +0 -0
  54. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildbox/execution_stats_pb2_grpc_aio.pyi +0 -0
  55. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/__init__.py +0 -0
  56. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/identity_pb2.py +0 -0
  57. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/identity_pb2.pyi +0 -0
  58. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/identity_pb2_grpc.py +0 -0
  59. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/identity_pb2_grpc.pyi +0 -0
  60. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/identity_pb2_grpc_aio.py +0 -0
  61. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/identity_pb2_grpc_aio.pyi +0 -0
  62. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/introspection_pb2.py +0 -0
  63. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/introspection_pb2.pyi +0 -0
  64. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/introspection_pb2_grpc.py +0 -0
  65. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/introspection_pb2_grpc.pyi +0 -0
  66. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/introspection_pb2_grpc_aio.py +0 -0
  67. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/introspection_pb2_grpc_aio.pyi +0 -0
  68. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/messaging_pb2.py +0 -0
  69. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/messaging_pb2.pyi +0 -0
  70. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/messaging_pb2_grpc.py +0 -0
  71. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/messaging_pb2_grpc.pyi +0 -0
  72. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/messaging_pb2_grpc_aio.py +0 -0
  73. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/messaging_pb2_grpc_aio.pyi +0 -0
  74. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/monitoring_pb2.py +0 -0
  75. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/monitoring_pb2.pyi +0 -0
  76. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/monitoring_pb2_grpc.py +0 -0
  77. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/monitoring_pb2_grpc.pyi +0 -0
  78. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/monitoring_pb2_grpc_aio.py +0 -0
  79. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/monitoring_pb2_grpc_aio.pyi +0 -0
  80. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/query_build_events_pb2.py +0 -0
  81. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/query_build_events_pb2.pyi +0 -0
  82. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/query_build_events_pb2_grpc.py +0 -0
  83. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/query_build_events_pb2_grpc.pyi +0 -0
  84. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/query_build_events_pb2_grpc_aio.py +0 -0
  85. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/query_build_events_pb2_grpc_aio.pyi +0 -0
  86. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/quota_pb2.py +0 -0
  87. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/quota_pb2.pyi +0 -0
  88. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/quota_pb2_grpc.py +0 -0
  89. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/quota_pb2_grpc.pyi +0 -0
  90. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/quota_pb2_grpc_aio.py +0 -0
  91. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/quota_pb2_grpc_aio.pyi +0 -0
  92. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/scheduling_pb2.py +0 -0
  93. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/scheduling_pb2.pyi +0 -0
  94. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/scheduling_pb2_grpc.py +0 -0
  95. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/scheduling_pb2_grpc.pyi +0 -0
  96. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/scheduling_pb2_grpc_aio.py +0 -0
  97. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/build/buildgrid/scheduling_pb2_grpc_aio.pyi +0 -0
  98. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/__init__.py +0 -0
  99. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/api/__init__.py +0 -0
  100. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/api/annotations_pb2.py +0 -0
  101. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/api/annotations_pb2.pyi +0 -0
  102. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/api/annotations_pb2_grpc.py +0 -0
  103. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/api/annotations_pb2_grpc.pyi +0 -0
  104. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/api/annotations_pb2_grpc_aio.py +0 -0
  105. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/api/annotations_pb2_grpc_aio.pyi +0 -0
  106. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/api/client_pb2.py +0 -0
  107. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/api/client_pb2.pyi +0 -0
  108. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/api/client_pb2_grpc.py +0 -0
  109. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/api/client_pb2_grpc.pyi +0 -0
  110. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/api/client_pb2_grpc_aio.py +0 -0
  111. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/api/client_pb2_grpc_aio.pyi +0 -0
  112. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/api/field_behavior_pb2.py +0 -0
  113. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/api/field_behavior_pb2.pyi +0 -0
  114. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/api/field_behavior_pb2_grpc.py +0 -0
  115. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/api/field_behavior_pb2_grpc.pyi +0 -0
  116. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/api/field_behavior_pb2_grpc_aio.py +0 -0
  117. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/api/field_behavior_pb2_grpc_aio.pyi +0 -0
  118. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/api/http_pb2.py +0 -0
  119. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/api/http_pb2.pyi +0 -0
  120. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/api/http_pb2_grpc.py +0 -0
  121. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/api/http_pb2_grpc.pyi +0 -0
  122. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/api/http_pb2_grpc_aio.py +0 -0
  123. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/api/http_pb2_grpc_aio.pyi +0 -0
  124. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/bytestream/__init__.py +0 -0
  125. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/bytestream/bytestream_pb2.py +0 -0
  126. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/bytestream/bytestream_pb2.pyi +0 -0
  127. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/bytestream/bytestream_pb2_grpc.py +0 -0
  128. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/bytestream/bytestream_pb2_grpc.pyi +0 -0
  129. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/bytestream/bytestream_pb2_grpc_aio.py +0 -0
  130. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/bytestream/bytestream_pb2_grpc_aio.pyi +0 -0
  131. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/__init__.py +0 -0
  132. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/build/__init__.py +0 -0
  133. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/build/v1/__init__.py +0 -0
  134. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/build/v1/build_events_pb2.py +0 -0
  135. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/build/v1/build_events_pb2.pyi +0 -0
  136. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/build/v1/build_events_pb2_grpc.py +0 -0
  137. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/build/v1/build_events_pb2_grpc.pyi +0 -0
  138. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/build/v1/build_events_pb2_grpc_aio.py +0 -0
  139. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/build/v1/build_events_pb2_grpc_aio.pyi +0 -0
  140. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/build/v1/build_status_pb2.py +0 -0
  141. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/build/v1/build_status_pb2.pyi +0 -0
  142. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/build/v1/build_status_pb2_grpc.py +0 -0
  143. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/build/v1/build_status_pb2_grpc.pyi +0 -0
  144. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/build/v1/build_status_pb2_grpc_aio.py +0 -0
  145. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/build/v1/build_status_pb2_grpc_aio.pyi +0 -0
  146. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/build/v1/publish_build_event_pb2.py +0 -0
  147. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/build/v1/publish_build_event_pb2.pyi +0 -0
  148. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/build/v1/publish_build_event_pb2_grpc.py +0 -0
  149. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/build/v1/publish_build_event_pb2_grpc.pyi +0 -0
  150. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/build/v1/publish_build_event_pb2_grpc_aio.py +0 -0
  151. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/build/v1/publish_build_event_pb2_grpc_aio.pyi +0 -0
  152. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/remoteworkers/__init__.py +0 -0
  153. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/__init__.py +0 -0
  154. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/bots_pb2.py +0 -0
  155. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/bots_pb2.pyi +0 -0
  156. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/bots_pb2_grpc.py +0 -0
  157. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/bots_pb2_grpc.pyi +0 -0
  158. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/bots_pb2_grpc_aio.py +0 -0
  159. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/bots_pb2_grpc_aio.pyi +0 -0
  160. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/command_pb2.py +0 -0
  161. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/command_pb2.pyi +0 -0
  162. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/command_pb2_grpc.py +0 -0
  163. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/command_pb2_grpc.pyi +0 -0
  164. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/command_pb2_grpc_aio.py +0 -0
  165. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/command_pb2_grpc_aio.pyi +0 -0
  166. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/tasks_pb2.py +0 -0
  167. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/tasks_pb2.pyi +0 -0
  168. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/tasks_pb2_grpc.py +0 -0
  169. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/tasks_pb2_grpc.pyi +0 -0
  170. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/tasks_pb2_grpc_aio.py +0 -0
  171. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/tasks_pb2_grpc_aio.pyi +0 -0
  172. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/worker_pb2.py +0 -0
  173. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/worker_pb2.pyi +0 -0
  174. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/worker_pb2_grpc.py +0 -0
  175. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/worker_pb2_grpc.pyi +0 -0
  176. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/worker_pb2_grpc_aio.py +0 -0
  177. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/worker_pb2_grpc_aio.pyi +0 -0
  178. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/longrunning/__init__.py +0 -0
  179. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/longrunning/operations_pb2.py +0 -0
  180. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/longrunning/operations_pb2.pyi +0 -0
  181. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/longrunning/operations_pb2_grpc.py +0 -0
  182. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/longrunning/operations_pb2_grpc.pyi +0 -0
  183. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/longrunning/operations_pb2_grpc_aio.py +0 -0
  184. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/longrunning/operations_pb2_grpc_aio.pyi +0 -0
  185. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/rpc/__init__.py +0 -0
  186. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/rpc/code_pb2.py +0 -0
  187. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/rpc/code_pb2.pyi +0 -0
  188. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/rpc/code_pb2_grpc.py +0 -0
  189. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/rpc/code_pb2_grpc.pyi +0 -0
  190. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/rpc/code_pb2_grpc_aio.py +0 -0
  191. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/rpc/code_pb2_grpc_aio.pyi +0 -0
  192. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/rpc/error_details_pb2.py +0 -0
  193. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/rpc/error_details_pb2.pyi +0 -0
  194. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/rpc/error_details_pb2_grpc.py +0 -0
  195. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/rpc/error_details_pb2_grpc.pyi +0 -0
  196. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/rpc/error_details_pb2_grpc_aio.py +0 -0
  197. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/rpc/error_details_pb2_grpc_aio.pyi +0 -0
  198. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/rpc/status_pb2.py +0 -0
  199. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/rpc/status_pb2.pyi +0 -0
  200. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/rpc/status_pb2_grpc.py +0 -0
  201. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/rpc/status_pb2_grpc.pyi +0 -0
  202. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/rpc/status_pb2_grpc_aio.py +0 -0
  203. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/_protos/google/rpc/status_pb2_grpc_aio.pyi +0 -0
  204. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/__init__.py +0 -0
  205. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/actioncache/__init__.py +0 -0
  206. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/actioncache/caches/__init__.py +0 -0
  207. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/actioncache/caches/action_cache_abc.py +0 -0
  208. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/actioncache/caches/lru_cache.py +0 -0
  209. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/actioncache/caches/mirrored_cache.py +0 -0
  210. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/actioncache/caches/redis_cache.py +0 -0
  211. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/actioncache/caches/remote_cache.py +0 -0
  212. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/actioncache/caches/s3_cache.py +0 -0
  213. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/actioncache/caches/sharded_cache.py +0 -0
  214. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/actioncache/caches/with_cache.py +0 -0
  215. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/actioncache/caches/write_once_cache.py +0 -0
  216. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/actioncache/instance.py +0 -0
  217. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/actioncache/service.py +0 -0
  218. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/app/__init__.py +0 -0
  219. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/app/cli.py +0 -0
  220. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/app/commands/__init__.py +0 -0
  221. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/app/commands/cmd_actioncache.py +0 -0
  222. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/app/commands/cmd_capabilities.py +0 -0
  223. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/app/commands/cmd_cas.py +0 -0
  224. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/app/commands/cmd_cleanup.py +0 -0
  225. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/app/commands/cmd_execute.py +0 -0
  226. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/app/commands/cmd_janitor.py +0 -0
  227. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/app/commands/cmd_logstream.py +0 -0
  228. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/app/commands/cmd_operation.py +0 -0
  229. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/app/commands/cmd_quota.py +0 -0
  230. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/app/commands/cmd_server.py +0 -0
  231. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/app/commands/rpc_utils.py +0 -0
  232. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/app/settings/__init__.py +0 -0
  233. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/app/settings/config.py +0 -0
  234. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/app/settings/mapper.py +0 -0
  235. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/app/settings/parser.py +0 -0
  236. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/app/settings/reference.yml +0 -0
  237. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/app/settings/schema.yml +0 -0
  238. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/auth/__init__.py +0 -0
  239. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/auth/config.py +0 -0
  240. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/auth/enums.py +0 -0
  241. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/auth/exceptions.py +0 -0
  242. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/auth/manager.py +0 -0
  243. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/bots/__init__.py +0 -0
  244. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/bots/instance.py +0 -0
  245. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/bots/service.py +0 -0
  246. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/build_events/__init__.py +0 -0
  247. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/build_events/service.py +0 -0
  248. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/build_events/storage.py +0 -0
  249. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/capabilities/__init__.py +0 -0
  250. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/capabilities/instance.py +0 -0
  251. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/capabilities/service.py +0 -0
  252. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cas/__init__.py +0 -0
  253. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cas/instance.py +0 -0
  254. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cas/service.py +0 -0
  255. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cas/storage/__init__.py +0 -0
  256. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cas/storage/disk.py +0 -0
  257. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cas/storage/index/__init__.py +0 -0
  258. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cas/storage/index/index_abc.py +0 -0
  259. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cas/storage/index/redis.py +0 -0
  260. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cas/storage/index/sql.py +0 -0
  261. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cas/storage/lru_memory_cache.py +0 -0
  262. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cas/storage/redis.py +0 -0
  263. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cas/storage/remote.py +0 -0
  264. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cas/storage/replicated.py +0 -0
  265. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cas/storage/s3.py +0 -0
  266. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cas/storage/sharded.py +0 -0
  267. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cas/storage/size_differentiated.py +0 -0
  268. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cas/storage/sql.py +0 -0
  269. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cas/storage/storage_abc.py +0 -0
  270. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cas/storage/with_cache.py +0 -0
  271. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cleanup/__init__.py +0 -0
  272. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cleanup/cleanup.py +0 -0
  273. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cleanup/janitor/__init__.py +0 -0
  274. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cleanup/janitor/config.py +0 -0
  275. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cleanup/janitor/index.py +0 -0
  276. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cleanup/janitor/s3.py +0 -0
  277. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cleanup/janitor/sql.py +0 -0
  278. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cleanup/janitor/types.py +0 -0
  279. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/cleanup/janitor/utils.py +0 -0
  280. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/client/__init__.py +0 -0
  281. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/client/actioncache.py +0 -0
  282. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/client/asset.py +0 -0
  283. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/client/auth_token_loader.py +0 -0
  284. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/client/authentication.py +0 -0
  285. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/client/capabilities.py +0 -0
  286. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/client/cas.py +0 -0
  287. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/client/channel.py +0 -0
  288. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/client/interceptors.py +0 -0
  289. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/client/logstream.py +0 -0
  290. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/client/quota.py +0 -0
  291. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/client/retrier.py +0 -0
  292. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/context.py +0 -0
  293. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/controller.py +0 -0
  294. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/decorators/__init__.py +0 -0
  295. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/decorators/authorize.py +0 -0
  296. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/decorators/errors.py +0 -0
  297. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/decorators/instance.py +0 -0
  298. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/decorators/io.py +0 -0
  299. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/decorators/limiter.py +0 -0
  300. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/decorators/metadata.py +0 -0
  301. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/decorators/requestid.py +0 -0
  302. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/decorators/rpc.py +0 -0
  303. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/decorators/time.py +0 -0
  304. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/enums.py +0 -0
  305. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/exceptions.py +0 -0
  306. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/execution/__init__.py +0 -0
  307. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/execution/instance.py +0 -0
  308. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/execution/service.py +0 -0
  309. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/introspection/__init__.py +0 -0
  310. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/introspection/instance.py +0 -0
  311. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/introspection/service.py +0 -0
  312. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/limiter.py +0 -0
  313. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/logging.py +0 -0
  314. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/metadata.py +0 -0
  315. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/metrics_names.py +0 -0
  316. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/metrics_tags.py +0 -0
  317. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/metrics_utils.py +0 -0
  318. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/monitoring.py +0 -0
  319. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/operations/__init__.py +0 -0
  320. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/operations/filtering/__init__.py +0 -0
  321. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/operations/filtering/filter.py +0 -0
  322. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/operations/filtering/filter_grammar.lark +0 -0
  323. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/operations/filtering/interpreter.py +0 -0
  324. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/operations/filtering/parser.py +0 -0
  325. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/operations/filtering/sanitizer.py +0 -0
  326. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/operations/instance.py +0 -0
  327. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/operations/service.py +0 -0
  328. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/quota/__init__.py +0 -0
  329. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/quota/service.py +0 -0
  330. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/redis/__init__.py +0 -0
  331. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/redis/provider.py +0 -0
  332. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/s3/__init__.py +0 -0
  333. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/s3/s3utils.py +0 -0
  334. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/scheduler/__init__.py +0 -0
  335. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/scheduler/assigner.py +0 -0
  336. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/scheduler/cohorts.py +0 -0
  337. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/scheduler/events.py +0 -0
  338. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/scheduler/notifier.py +0 -0
  339. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/scheduler/properties.py +0 -0
  340. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sentry.py +0 -0
  341. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/server.py +0 -0
  342. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/servicer.py +0 -0
  343. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/settings.py +0 -0
  344. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/__init__.py +0 -0
  345. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/alembic/README +0 -0
  346. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/alembic/env.py +0 -0
  347. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/alembic/script.py.mako +0 -0
  348. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/alembic/versions/0596ea8f5c61_add_bot_locality_hints_table_and_.py +0 -0
  349. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/alembic/versions/0c17a7cb2bc5_initial_database_state.py +0 -0
  350. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/alembic/versions/12992085e81a_add_a_job_index_on_worker_name_and_.py +0 -0
  351. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/alembic/versions/1f959c3834d3_drop_the_leases_table.py +0 -0
  352. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/alembic/versions/22cc661efef9_add_instance_quotas_table.py +0 -0
  353. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/alembic/versions/55acd9b4ec38_add_ix_jobs_property_label_stage.py +0 -0
  354. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/alembic/versions/55fcf6c874d3_remove_request_metadata_from_operations.py +0 -0
  355. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/alembic/versions/5745d1f0e537_drop_unused_indexes_and_create_.py +0 -0
  356. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/alembic/versions/5b90ed0e9d0b_drop_ix_jobs_worker_name_stage.py +0 -0
  357. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/alembic/versions/85096c931383_drop_ix_jobs_stage_property_label_and_.py +0 -0
  358. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/alembic/versions/8f7f43e4a833_add_immutable_jobs_max_capacity_column.py +0 -0
  359. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/alembic/versions/8fd7118e215e_add_instanced_job_scheduling_index.py +0 -0
  360. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/alembic/versions/90bd87d052a0_add_an_audit_table_for_job_state_changes.py +0 -0
  361. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/alembic/versions/910398062924_add_property_labels_table.py +0 -0
  362. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/alembic/versions/9e7a59ee4370_add_bot_platform_capabilities_to_the_.py +0 -0
  363. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/alembic/versions/9ecd996412a9_add_worker_name_to_jobs_table.py +0 -0
  364. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/alembic/versions/b3b9d7300155_add_capacity_to_bots.py +0 -0
  365. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/alembic/versions/bde0df23383b_add_cohort_to_bots.py +0 -0
  366. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/alembic/versions/d850621a10d8_add_assigner_name_to_jobs.py +0 -0
  367. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/alembic/versions/fb8afebee8e6_add_ix_jobs_worker_name_stage.py +0 -0
  368. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/models.py +0 -0
  369. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/provider.py +0 -0
  370. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/sql/utils.py +0 -0
  371. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/threading.py +0 -0
  372. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/types.py +0 -0
  373. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/utils/__init__.py +0 -0
  374. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/utils/async_lru_cache.py +0 -0
  375. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/utils/bots.py +0 -0
  376. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/utils/cancellation.py +0 -0
  377. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid/server/utils/digests.py +0 -0
  378. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid.egg-info/SOURCES.txt +0 -0
  379. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid.egg-info/dependency_links.txt +0 -0
  380. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid.egg-info/entry_points.txt +0 -0
  381. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid.egg-info/requires.txt +0 -0
  382. {buildgrid-0.3.2 → buildgrid-0.3.4}/buildgrid.egg-info/top_level.txt +0 -0
  383. {buildgrid-0.3.2 → buildgrid-0.3.4}/data/config/all-in-one.yml +0 -0
  384. {buildgrid-0.3.2 → buildgrid-0.3.4}/data/config/artifacts.yml +0 -0
  385. {buildgrid-0.3.2 → buildgrid-0.3.4}/data/config/bots-interface.yml +0 -0
  386. {buildgrid-0.3.2 → buildgrid-0.3.4}/data/config/cache.yml +0 -0
  387. {buildgrid-0.3.2 → buildgrid-0.3.4}/data/config/controller.yml +0 -0
  388. {buildgrid-0.3.2 → buildgrid-0.3.4}/data/config/default.yml +0 -0
  389. {buildgrid-0.3.2 → buildgrid-0.3.4}/data/config/logstream.yml +0 -0
  390. {buildgrid-0.3.2 → buildgrid-0.3.4}/data/config/monitoring-controller.yml +0 -0
  391. {buildgrid-0.3.2 → buildgrid-0.3.4}/data/config/multi-container.yml +0 -0
  392. {buildgrid-0.3.2 → buildgrid-0.3.4}/data/config/multi-layer-storage.yml +0 -0
  393. {buildgrid-0.3.2 → buildgrid-0.3.4}/data/config/redis-cache.yml +0 -0
  394. {buildgrid-0.3.2 → buildgrid-0.3.4}/data/config/s3-indexed-cas.yml +0 -0
  395. {buildgrid-0.3.2 → buildgrid-0.3.4}/data/config/storage-redis.yml +0 -0
  396. {buildgrid-0.3.2 → buildgrid-0.3.4}/data/config/storage-s3.yml +0 -0
  397. {buildgrid-0.3.2 → buildgrid-0.3.4}/data/config/storage.yml +0 -0
  398. {buildgrid-0.3.2 → buildgrid-0.3.4}/data/config/with-metering.yml +0 -0
  399. {buildgrid-0.3.2 → buildgrid-0.3.4}/data/config/with-pgbouncer.yml +0 -0
  400. {buildgrid-0.3.2 → buildgrid-0.3.4}/docs/Makefile +0 -0
  401. {buildgrid-0.3.2 → buildgrid-0.3.4}/docs/source/data/basic-disk-cas.yml +0 -0
  402. {buildgrid-0.3.2 → buildgrid-0.3.4}/docs/source/data/bazel-example-server.yml +0 -0
  403. {buildgrid-0.3.2 → buildgrid-0.3.4}/docs/source/data/buildstream-example-server.yml +0 -0
  404. {buildgrid-0.3.2 → buildgrid-0.3.4}/docs/source/data/cas-and-ac.yml +0 -0
  405. {buildgrid-0.3.2 → buildgrid-0.3.4}/docs/source/data/cas-example-server.yml +0 -0
  406. {buildgrid-0.3.2 → buildgrid-0.3.4}/docs/source/data/execution-and-bots.yml +0 -0
  407. {buildgrid-0.3.2 → buildgrid-0.3.4}/docs/source/data/postgresql-index-cas-only.yml +0 -0
  408. {buildgrid-0.3.2 → buildgrid-0.3.4}/docs/source/index.rst +0 -0
  409. {buildgrid-0.3.2 → buildgrid-0.3.4}/setup.cfg +0 -0
  410. {buildgrid-0.3.2 → buildgrid-0.3.4}/setup.py +0 -0
  411. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/auth/data/auth.yaml +0 -0
  412. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/auth/data/jwks-valid.json +0 -0
  413. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/auth/data/jwt-hs256-conflicting.secret +0 -0
  414. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/auth/data/jwt-hs256-expired.token +0 -0
  415. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/auth/data/jwt-hs256-matching.secret +0 -0
  416. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/auth/data/jwt-hs256-unbounded.token +0 -0
  417. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/auth/data/jwt-hs256-valid.token +0 -0
  418. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/auth/data/jwt-rs256-conflicting.pub.key +0 -0
  419. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/auth/data/jwt-rs256-expired.token +0 -0
  420. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/auth/data/jwt-rs256-jwk-encrypted.token +0 -0
  421. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/auth/data/jwt-rs256-matching.priv.key +0 -0
  422. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/auth/data/jwt-rs256-matching.pub.key +0 -0
  423. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/auth/data/jwt-rs256-unbounded.token +0 -0
  424. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/auth/data/jwt-rs256-valid.token +0 -0
  425. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/test_async_lru_cache.py +0 -0
  426. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/test_example_configs.py +0 -0
  427. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/test_execution_instance.py +0 -0
  428. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/test_instance_pools.py +0 -0
  429. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/test_job_assigner.py +0 -0
  430. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/test_limiter.py +0 -0
  431. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/test_logging.py +0 -0
  432. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/test_metrics_tags.py +0 -0
  433. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/test_metrics_utils.py +0 -0
  434. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/test_mirrored_cache.py +0 -0
  435. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/test_request_metadata_utils.py +0 -0
  436. {buildgrid-0.3.2 → buildgrid-0.3.4}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: buildgrid
3
- Version: 0.3.2
3
+ Version: 0.3.4
4
4
  Summary: A remote execution service
5
5
  License: Apache License, Version 2.0
6
6
  Project-URL: Homepage, https://buildgrid.build
@@ -1907,6 +1907,7 @@ class Scheduler:
1907
1907
 
1908
1908
  def _publish_job_duration(
1909
1909
  self,
1910
+ instance_name: str,
1910
1911
  start: Timestamp | None,
1911
1912
  end: Timestamp | None,
1912
1913
  state: str,
@@ -1920,6 +1921,7 @@ class Scheduler:
1920
1921
  publish_timer_metric(
1921
1922
  METRIC.JOB.DURATION,
1922
1923
  end.ToDatetime() - start.ToDatetime(), # type: ignore[union-attr]
1924
+ instanceName=instance_name,
1923
1925
  state=state,
1924
1926
  propertyLabel=property_label,
1925
1927
  schedulerName=assigner_name or "none",
@@ -1965,6 +1967,7 @@ class Scheduler:
1965
1967
  now_timestamp = Timestamp()
1966
1968
  now_timestamp.FromDatetime(datetime.utcnow())
1967
1969
  self._publish_job_duration(
1970
+ next_job.instance_name,
1968
1971
  start_timestamp,
1969
1972
  now_timestamp,
1970
1973
  "Queued",
@@ -2227,6 +2230,7 @@ class Scheduler:
2227
2230
  now_timestamp = Timestamp()
2228
2231
  now_timestamp.FromDatetime(datetime.utcnow())
2229
2232
  self._publish_job_duration(
2233
+ job.instance_name,
2230
2234
  start_timestamp,
2231
2235
  now_timestamp,
2232
2236
  "Queued",
@@ -2460,14 +2464,16 @@ class Scheduler:
2460
2464
  action_result.execution_metadata.worker_completed_timestamp.FromDatetime(job.worker_completed_timestamp or now)
2461
2465
  response = ExecuteResponse(result=action_result, cached_result=False, status=status)
2462
2466
 
2463
- job.result = digest_to_string(self.storage.put_message(response))
2467
+ with instance_context(job.instance_name):
2468
+ job.result = digest_to_string(self.storage.put_message(response))
2464
2469
 
2465
2470
  self._update_job_timestamps(session, job, action_result.execution_metadata)
2466
2471
 
2467
2472
  if self.action_cache and result and not job.do_not_cache:
2468
2473
  action_digest = string_to_digest(job.action_digest)
2469
2474
  try:
2470
- self.action_cache.update_action_result(action_digest, action_result)
2475
+ with instance_context(job.instance_name):
2476
+ self.action_cache.update_action_result(action_digest, action_result)
2471
2477
  LOGGER.debug(
2472
2478
  "Stored action result in ActionCache.",
2473
2479
  tags=dict(action_result=action_result, digest=action_digest),
@@ -2527,7 +2533,12 @@ class Scheduler:
2527
2533
  )
2528
2534
  )
2529
2535
  self._publish_execution_stats(
2530
- session, job.name, action_result.execution_metadata, job.property_label, job.assigner_name
2536
+ session,
2537
+ job.name,
2538
+ job.instance_name,
2539
+ action_result.execution_metadata,
2540
+ job.property_label,
2541
+ job.assigner_name,
2531
2542
  )
2532
2543
 
2533
2544
  def get_bot_status_metrics(self) -> BotMetrics:
@@ -2653,7 +2664,9 @@ class Scheduler:
2653
2664
  return metadata
2654
2665
 
2655
2666
  def _fetch_execution_stats(
2656
- self, auxiliary_metadata: RepeatedCompositeFieldContainer[ProtoAny]
2667
+ self,
2668
+ auxiliary_metadata: RepeatedCompositeFieldContainer[ProtoAny],
2669
+ instance_name: str,
2657
2670
  ) -> ExecutionStatistics | None:
2658
2671
  """Fetch ExecutionStatistics from Storage
2659
2672
  ProtoAny[Digest] -> ProtoAny[ExecutionStatistics]
@@ -2666,7 +2679,8 @@ class Scheduler:
2666
2679
  try:
2667
2680
  aux_metadata_any.Unpack(aux_metadata_digest)
2668
2681
  # Get the blob from CAS
2669
- execution_stats_any = self.storage.get_message(aux_metadata_digest, ProtoAny)
2682
+ with instance_context(instance_name):
2683
+ execution_stats_any = self.storage.get_message(aux_metadata_digest, ProtoAny)
2670
2684
  # Get the wrapped ExecutionStatistics
2671
2685
  if execution_stats_any and execution_stats_any.Is(ExecutionStatistics.DESCRIPTOR):
2672
2686
  execution_stats = ExecutionStatistics()
@@ -2684,17 +2698,21 @@ class Scheduler:
2684
2698
  def publish_execution_stats(
2685
2699
  self,
2686
2700
  job_name: str,
2701
+ instance_name: str,
2687
2702
  execution_metadata: ExecutedActionMetadata,
2688
2703
  property_label: str = "unknown",
2689
2704
  assigner_name: str | None = None,
2690
2705
  ) -> None:
2691
2706
  with self._sql_ro.session(expire_on_commit=False) as session:
2692
- self._publish_execution_stats(session, job_name, execution_metadata, property_label, assigner_name)
2707
+ self._publish_execution_stats(
2708
+ session, job_name, instance_name, execution_metadata, property_label, assigner_name
2709
+ )
2693
2710
 
2694
2711
  def _publish_execution_stats(
2695
2712
  self,
2696
2713
  session: Session,
2697
2714
  job_name: str,
2715
+ instance_name: str,
2698
2716
  execution_metadata: ExecutedActionMetadata,
2699
2717
  property_label: str,
2700
2718
  assigner_name: str | None,
@@ -2710,17 +2728,23 @@ class Scheduler:
2710
2728
  upload_start = execution_metadata.output_upload_start_timestamp
2711
2729
  upload_completed = execution_metadata.output_upload_completed_timestamp
2712
2730
 
2713
- self._publish_job_duration(queued, worker_completed, "Total", property_label, assigner_name)
2731
+ self._publish_job_duration(instance_name, queued, worker_completed, "Total", property_label, assigner_name)
2714
2732
  # The Queued time is missing here as it's posted as soon as worker has accepted the job.
2715
- self._publish_job_duration(worker_start, worker_completed, "Worker", property_label, assigner_name)
2716
- self._publish_job_duration(fetch_start, fetch_completed, "Fetch", property_label, assigner_name)
2717
- self._publish_job_duration(execution_start, execution_completed, "Execution", property_label, assigner_name)
2718
- self._publish_job_duration(upload_start, upload_completed, "Upload", property_label, assigner_name)
2733
+ self._publish_job_duration(
2734
+ instance_name, worker_start, worker_completed, "Worker", property_label, assigner_name
2735
+ )
2736
+ self._publish_job_duration(instance_name, fetch_start, fetch_completed, "Fetch", property_label, assigner_name)
2737
+ self._publish_job_duration(
2738
+ instance_name, execution_start, execution_completed, "Execution", property_label, assigner_name
2739
+ )
2740
+ self._publish_job_duration(
2741
+ instance_name, upload_start, upload_completed, "Upload", property_label, assigner_name
2742
+ )
2719
2743
 
2720
2744
  if self.metering_client is None or len(execution_metadata.auxiliary_metadata) == 0:
2721
2745
  return
2722
2746
 
2723
- execution_stats = self._fetch_execution_stats(execution_metadata.auxiliary_metadata)
2747
+ execution_stats = self._fetch_execution_stats(execution_metadata.auxiliary_metadata, instance_name)
2724
2748
  if execution_stats is None:
2725
2749
  return
2726
2750
  usage = Usage(
@@ -2790,7 +2814,8 @@ class Scheduler:
2790
2814
  try:
2791
2815
  # BuildGrid doesn't store action_result in CAS, but if we push it as an asset
2792
2816
  # we need it to be accessible
2793
- digest = self.storage.put_message(action_result)
2817
+ with instance_context(instance_name):
2818
+ digest = self.storage.put_message(action_result)
2794
2819
 
2795
2820
  uri = DIGEST_URI_TEMPLATE.format(digest_hash=digest.hash)
2796
2821
  qualifier = {"resource_type": PROTOBUF_MEDIA_TYPE}
@@ -13,4 +13,4 @@
13
13
  # limitations under the License.
14
14
 
15
15
 
16
- __version__ = "0.3.2"
16
+ __version__ = "0.3.4"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: buildgrid
3
- Version: 0.3.2
3
+ Version: 0.3.4
4
4
  Summary: A remote execution service
5
5
  License: Apache License, Version 2.0
6
6
  Project-URL: Homepage, https://buildgrid.build
@@ -21,7 +21,7 @@ build-backend = 'setuptools.build_meta'
21
21
 
22
22
  [project]
23
23
  name = "buildgrid"
24
- version = "0.3.2"
24
+ version = "0.3.4"
25
25
  requires-python = ">=3.11"
26
26
  description = "A remote execution service"
27
27
  readme = "README.rst"
@@ -41,8 +41,10 @@ from buildgrid._protos.build.buildgrid.scheduling_pb2 import SchedulingMetadata
41
41
  from buildgrid._protos.google.rpc import code_pb2
42
42
  from buildgrid._protos.google.rpc.status_pb2 import Status
43
43
  from buildgrid.server.actioncache.caches.lru_cache import LruActionCache
44
+ from buildgrid.server.actioncache.caches.remote_cache import RemoteActionCache
44
45
  from buildgrid.server.cas.storage import lru_memory_cache
45
- from buildgrid.server.cas.storage.storage_abc import create_write_session
46
+ from buildgrid.server.cas.storage.remote import RemoteStorage
47
+ from buildgrid.server.cas.storage.storage_abc import StorageABC, create_write_session
46
48
  from buildgrid.server.client.asset import AssetClient
47
49
  from buildgrid.server.context import instance_context
48
50
  from buildgrid.server.controller import ExecutionController
@@ -75,6 +77,8 @@ from buildgrid.server.sql.models import (
75
77
  )
76
78
  from buildgrid.server.sql.provider import SqlProvider
77
79
  from buildgrid.server.utils.digests import create_digest
80
+ from tests.utils.action_cache import serve_cache
81
+ from tests.utils.cas import serve_cas
78
82
  from tests.utils.fixtures import ( # noqa: F401 allow fixture inclusion
79
83
  connection_string_from_connection,
80
84
  mock_logstream_client,
@@ -136,37 +140,36 @@ def cohort_set() -> CohortSet:
136
140
  )
137
141
 
138
142
 
139
- PARAMS = ["action-cache", "no-action-cache"]
143
+ USE_ACTION_CACHE = ["action-cache", "remote-action-cache", "no-action-cache"]
144
+ USE_REMOTE_STORAGE = ["lru-storage", "remote-storage"]
140
145
 
141
146
 
142
- @pytest.fixture(params=PARAMS)
143
- def controller(
144
- new_postgres, request, asset_client: AssetClient, common_props: PropertySet, cohort_set: CohortSet
145
- ) -> Iterator[ExecutionController]:
146
- use_cache = request.param
147
- storage = lru_memory_cache.LRUMemoryCache(1024 * 1024)
148
- connection = connection_string_from_connection(new_postgres)
149
- sql_provider = SqlProvider(connection_string=connection)
147
+ @pytest.fixture(params=USE_REMOTE_STORAGE)
148
+ def storage(request) -> Iterator[StorageABC]:
149
+ if request.param == "lru-storage":
150
+ yield lru_memory_cache.LRUMemoryCache(1024 * 1024)
151
+ elif request.param == "remote-storage":
152
+ with serve_cas(["sql", "linux"]) as server:
153
+ yield RemoteStorage(server.remote, max_backoff=0)
150
154
 
151
- # Create database tables
152
- with sql_provider._engine.begin() as conn:
153
- Base.metadata.create_all(conn)
154
155
 
155
- with create_write_session(command_digest) as write_session:
156
- write_session.write(command.SerializeToString())
157
- storage.commit_write(command_digest, write_session)
158
-
159
- with create_write_session(action_digest) as write_session:
160
- write_session.write(action.SerializeToString())
161
- storage.commit_write(action_digest, write_session)
156
+ @pytest.fixture(params=USE_ACTION_CACHE)
157
+ def scheduler(
158
+ new_postgres,
159
+ request,
160
+ asset_client: AssetClient,
161
+ common_props: PropertySet,
162
+ cohort_set: CohortSet,
163
+ storage: StorageABC,
164
+ ) -> Iterator[Scheduler]:
165
+ connection = connection_string_from_connection(new_postgres)
166
+ sql_provider = SqlProvider(connection_string=connection)
162
167
 
163
- if use_cache == "action-cache":
164
- cache = LruActionCache(storage, 50)
165
- scheduler = Scheduler(
168
+ if request.param == "no-action-cache":
169
+ yield Scheduler(
166
170
  sql_provider,
167
171
  storage,
168
172
  poll_interval=0.01,
169
- action_cache=cache,
170
173
  property_set=common_props,
171
174
  cohort_set=cohort_set,
172
175
  asset_client=asset_client,
@@ -174,11 +177,13 @@ def controller(
174
177
  completed_action_retention_hours=1,
175
178
  action_result_retention_hours=3,
176
179
  )
177
- else:
178
- scheduler = Scheduler(
180
+ elif request.param == "action-cache":
181
+ cache = LruActionCache(storage, 50)
182
+ yield Scheduler(
179
183
  sql_provider,
180
184
  storage,
181
185
  poll_interval=0.01,
186
+ action_cache=cache,
182
187
  property_set=common_props,
183
188
  cohort_set=cohort_set,
184
189
  asset_client=asset_client,
@@ -186,8 +191,41 @@ def controller(
186
191
  completed_action_retention_hours=1,
187
192
  action_result_retention_hours=3,
188
193
  )
194
+ elif request.param == "remote-action-cache":
195
+ with serve_cache(["sql", "linux"]) as cache_server:
196
+ cache = RemoteActionCache(cache_server.remote)
197
+ yield Scheduler(
198
+ sql_provider,
199
+ storage,
200
+ poll_interval=0.01,
201
+ action_cache=cache,
202
+ property_set=common_props,
203
+ cohort_set=cohort_set,
204
+ asset_client=asset_client,
205
+ queued_action_retention_hours=12,
206
+ completed_action_retention_hours=1,
207
+ action_result_retention_hours=3,
208
+ )
209
+
210
+
211
+ @pytest.fixture
212
+ def controller(
213
+ storage: StorageABC,
214
+ scheduler: Scheduler,
215
+ ) -> Iterator[ExecutionController]:
216
+ # Create database tables
217
+ with scheduler._sql._engine.begin() as conn:
218
+ Base.metadata.create_all(conn)
189
219
 
190
220
  with scheduler, instance_context("sql"):
221
+ with create_write_session(command_digest) as write_session:
222
+ write_session.write(command.SerializeToString())
223
+ storage.commit_write(command_digest, write_session)
224
+
225
+ with create_write_session(action_digest) as write_session:
226
+ write_session.write(action.SerializeToString())
227
+ storage.commit_write(action_digest, write_session)
228
+
191
229
  yield ExecutionController(scheduler)
192
230
 
193
231
 
@@ -882,7 +920,7 @@ def test_publish_execution_stats(controller, mock_metering_client, mock_executio
882
920
  scheduler.metering_client = mock_metering_client
883
921
 
884
922
  with instance_context("sql"):
885
- scheduler.publish_execution_stats("job", mock_execution_metadata, "linux")
923
+ scheduler.publish_execution_stats("job", "sql", mock_execution_metadata, "linux")
886
924
  assert len(mock_metering_client.sink) == 2
887
925
 
888
926
 
@@ -892,7 +930,7 @@ def test_publish_execution_stats_fetch_fails_no_throw(controller, mock_metering_
892
930
  mock_metering_client.put_usage.side_effect = MeteringServiceHTTPError(503, "big bang")
893
931
 
894
932
  with instance_context("sql"):
895
- scheduler.publish_execution_stats("job", mock_execution_metadata)
933
+ scheduler.publish_execution_stats("job", "sql", mock_execution_metadata)
896
934
  assert len(mock_metering_client.sink) == 0
897
935
 
898
936
 
@@ -907,7 +945,7 @@ def test_publish_execution_stats_invalid_execution_stats(controller, mock_meteri
907
945
  mock_execution_metadata.auxiliary_metadata.append(some_digest_any)
908
946
 
909
947
  with instance_context("sql"):
910
- scheduler.publish_execution_stats("job", mock_execution_metadata, "linux")
948
+ scheduler.publish_execution_stats("job", "sql", mock_execution_metadata, "linux")
911
949
  assert len(mock_metering_client.sink) == 0
912
950
 
913
951
 
@@ -916,7 +954,7 @@ def test_publish_execution_stats_no_client(controller, mock_metering_client, moc
916
954
  # Just dont assign a client?? Weird test
917
955
 
918
956
  with instance_context("sql"):
919
- scheduler.publish_execution_stats("job", mock_execution_metadata, "linux")
957
+ scheduler.publish_execution_stats("job", "sql", mock_execution_metadata, "linux")
920
958
  assert len(mock_metering_client.sink) == 0
921
959
 
922
960
 
File without changes
File without changes
File without changes
File without changes
File without changes