buildgrid 0.3.5__tar.gz → 0.4.0__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 (440) hide show
  1. {buildgrid-0.3.5 → buildgrid-0.4.0}/PKG-INFO +2 -2
  2. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/cli.py +4 -4
  3. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/settings/parser.py +46 -17
  4. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/settings/schema.yml +16 -2
  5. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/bots/service.py +4 -10
  6. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/index/index_abc.py +0 -7
  7. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/index/sql.py +91 -215
  8. buildgrid-0.4.0/buildgrid/server/cas/storage/redis_fmb_cache.py +220 -0
  9. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/enums.py +5 -0
  10. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/metrics_names.py +0 -2
  11. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/scheduler/impl.py +298 -70
  12. buildgrid-0.4.0/buildgrid/server/sql/alembic/versions/3737630fc9cf_remove_deleted_column_from_sql_cas_index.py +43 -0
  13. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/models.py +0 -2
  14. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/utils.py +3 -3
  15. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/utils/bots.py +1 -1
  16. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/version.py +1 -1
  17. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid.egg-info/PKG-INFO +2 -2
  18. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid.egg-info/SOURCES.txt +3 -0
  19. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid.egg-info/requires.txt +1 -1
  20. {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/all-in-one.yml +14 -4
  21. buildgrid-0.4.0/docs/source/data/bots-with-quota.yml +77 -0
  22. {buildgrid-0.3.5 → buildgrid-0.4.0}/docs/source/index.rst +4 -3
  23. {buildgrid-0.3.5 → buildgrid-0.4.0}/pyproject.toml +2 -2
  24. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/test_example_configs.py +1 -0
  25. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/test_instance_pools.py +1 -1
  26. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/test_limiter.py +2 -1
  27. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/test_mirrored_cache.py +1 -1
  28. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/test_scheduler.py +539 -19
  29. {buildgrid-0.3.5 → buildgrid-0.4.0}/BuildGrid.doap +0 -0
  30. {buildgrid-0.3.5 → buildgrid-0.4.0}/CONTRIBUTING.rst +0 -0
  31. {buildgrid-0.3.5 → buildgrid-0.4.0}/LICENSE +0 -0
  32. {buildgrid-0.3.5 → buildgrid-0.4.0}/MANIFEST.in +0 -0
  33. {buildgrid-0.3.5 → buildgrid-0.4.0}/README.rst +0 -0
  34. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/__init__.py +0 -0
  35. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/__init__.py +0 -0
  36. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/__init__.py +0 -0
  37. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/__init__.py +0 -0
  38. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/__init__.py +0 -0
  39. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/asset/__init__.py +0 -0
  40. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/asset/v1/__init__.py +0 -0
  41. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/asset/v1/remote_asset_pb2.py +0 -0
  42. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/asset/v1/remote_asset_pb2.pyi +0 -0
  43. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/asset/v1/remote_asset_pb2_grpc.py +0 -0
  44. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/asset/v1/remote_asset_pb2_grpc.pyi +0 -0
  45. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/asset/v1/remote_asset_pb2_grpc_aio.py +0 -0
  46. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/asset/v1/remote_asset_pb2_grpc_aio.pyi +0 -0
  47. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/execution/__init__.py +0 -0
  48. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/execution/v2/__init__.py +0 -0
  49. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/execution/v2/remote_execution_pb2.py +0 -0
  50. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/execution/v2/remote_execution_pb2.pyi +0 -0
  51. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/execution/v2/remote_execution_pb2_grpc.py +0 -0
  52. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/execution/v2/remote_execution_pb2_grpc.pyi +0 -0
  53. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/execution/v2/remote_execution_pb2_grpc_aio.py +0 -0
  54. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/execution/v2/remote_execution_pb2_grpc_aio.pyi +0 -0
  55. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/logstream/__init__.py +0 -0
  56. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/logstream/v1/__init__.py +0 -0
  57. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/logstream/v1/remote_logstream_pb2.py +0 -0
  58. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/logstream/v1/remote_logstream_pb2.pyi +0 -0
  59. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/logstream/v1/remote_logstream_pb2_grpc.py +0 -0
  60. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/logstream/v1/remote_logstream_pb2_grpc.pyi +0 -0
  61. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/logstream/v1/remote_logstream_pb2_grpc_aio.py +0 -0
  62. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/logstream/v1/remote_logstream_pb2_grpc_aio.pyi +0 -0
  63. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/semver/__init__.py +0 -0
  64. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/semver/semver_pb2.py +0 -0
  65. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/semver/semver_pb2.pyi +0 -0
  66. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/semver/semver_pb2_grpc.py +0 -0
  67. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/semver/semver_pb2_grpc.pyi +0 -0
  68. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/semver/semver_pb2_grpc_aio.py +0 -0
  69. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/semver/semver_pb2_grpc_aio.pyi +0 -0
  70. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildbox/__init__.py +0 -0
  71. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildbox/execution_stats_pb2.py +0 -0
  72. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildbox/execution_stats_pb2.pyi +0 -0
  73. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildbox/execution_stats_pb2_grpc.py +0 -0
  74. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildbox/execution_stats_pb2_grpc.pyi +0 -0
  75. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildbox/execution_stats_pb2_grpc_aio.py +0 -0
  76. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildbox/execution_stats_pb2_grpc_aio.pyi +0 -0
  77. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/__init__.py +0 -0
  78. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/identity_pb2.py +0 -0
  79. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/identity_pb2.pyi +0 -0
  80. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/identity_pb2_grpc.py +0 -0
  81. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/identity_pb2_grpc.pyi +0 -0
  82. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/identity_pb2_grpc_aio.py +0 -0
  83. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/identity_pb2_grpc_aio.pyi +0 -0
  84. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/introspection_pb2.py +0 -0
  85. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/introspection_pb2.pyi +0 -0
  86. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/introspection_pb2_grpc.py +0 -0
  87. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/introspection_pb2_grpc.pyi +0 -0
  88. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/introspection_pb2_grpc_aio.py +0 -0
  89. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/introspection_pb2_grpc_aio.pyi +0 -0
  90. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/messaging_pb2.py +0 -0
  91. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/messaging_pb2.pyi +0 -0
  92. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/messaging_pb2_grpc.py +0 -0
  93. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/messaging_pb2_grpc.pyi +0 -0
  94. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/messaging_pb2_grpc_aio.py +0 -0
  95. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/messaging_pb2_grpc_aio.pyi +0 -0
  96. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/monitoring_pb2.py +0 -0
  97. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/monitoring_pb2.pyi +0 -0
  98. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/monitoring_pb2_grpc.py +0 -0
  99. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/monitoring_pb2_grpc.pyi +0 -0
  100. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/monitoring_pb2_grpc_aio.py +0 -0
  101. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/monitoring_pb2_grpc_aio.pyi +0 -0
  102. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/query_build_events_pb2.py +0 -0
  103. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/query_build_events_pb2.pyi +0 -0
  104. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/query_build_events_pb2_grpc.py +0 -0
  105. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/query_build_events_pb2_grpc.pyi +0 -0
  106. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/query_build_events_pb2_grpc_aio.py +0 -0
  107. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/query_build_events_pb2_grpc_aio.pyi +0 -0
  108. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/quota_pb2.py +0 -0
  109. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/quota_pb2.pyi +0 -0
  110. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/quota_pb2_grpc.py +0 -0
  111. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/quota_pb2_grpc.pyi +0 -0
  112. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/quota_pb2_grpc_aio.py +0 -0
  113. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/quota_pb2_grpc_aio.pyi +0 -0
  114. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/scheduling_pb2.py +0 -0
  115. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/scheduling_pb2.pyi +0 -0
  116. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/scheduling_pb2_grpc.py +0 -0
  117. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/scheduling_pb2_grpc.pyi +0 -0
  118. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/scheduling_pb2_grpc_aio.py +0 -0
  119. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/scheduling_pb2_grpc_aio.pyi +0 -0
  120. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/__init__.py +0 -0
  121. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/__init__.py +0 -0
  122. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/annotations_pb2.py +0 -0
  123. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/annotations_pb2.pyi +0 -0
  124. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/annotations_pb2_grpc.py +0 -0
  125. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/annotations_pb2_grpc.pyi +0 -0
  126. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/annotations_pb2_grpc_aio.py +0 -0
  127. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/annotations_pb2_grpc_aio.pyi +0 -0
  128. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/client_pb2.py +0 -0
  129. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/client_pb2.pyi +0 -0
  130. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/client_pb2_grpc.py +0 -0
  131. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/client_pb2_grpc.pyi +0 -0
  132. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/client_pb2_grpc_aio.py +0 -0
  133. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/client_pb2_grpc_aio.pyi +0 -0
  134. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/field_behavior_pb2.py +0 -0
  135. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/field_behavior_pb2.pyi +0 -0
  136. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/field_behavior_pb2_grpc.py +0 -0
  137. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/field_behavior_pb2_grpc.pyi +0 -0
  138. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/field_behavior_pb2_grpc_aio.py +0 -0
  139. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/field_behavior_pb2_grpc_aio.pyi +0 -0
  140. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/http_pb2.py +0 -0
  141. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/http_pb2.pyi +0 -0
  142. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/http_pb2_grpc.py +0 -0
  143. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/http_pb2_grpc.pyi +0 -0
  144. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/http_pb2_grpc_aio.py +0 -0
  145. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/http_pb2_grpc_aio.pyi +0 -0
  146. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/bytestream/__init__.py +0 -0
  147. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/bytestream/bytestream_pb2.py +0 -0
  148. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/bytestream/bytestream_pb2.pyi +0 -0
  149. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/bytestream/bytestream_pb2_grpc.py +0 -0
  150. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/bytestream/bytestream_pb2_grpc.pyi +0 -0
  151. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/bytestream/bytestream_pb2_grpc_aio.py +0 -0
  152. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/bytestream/bytestream_pb2_grpc_aio.pyi +0 -0
  153. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/__init__.py +0 -0
  154. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/__init__.py +0 -0
  155. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/__init__.py +0 -0
  156. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/build_events_pb2.py +0 -0
  157. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/build_events_pb2.pyi +0 -0
  158. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/build_events_pb2_grpc.py +0 -0
  159. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/build_events_pb2_grpc.pyi +0 -0
  160. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/build_events_pb2_grpc_aio.py +0 -0
  161. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/build_events_pb2_grpc_aio.pyi +0 -0
  162. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/build_status_pb2.py +0 -0
  163. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/build_status_pb2.pyi +0 -0
  164. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/build_status_pb2_grpc.py +0 -0
  165. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/build_status_pb2_grpc.pyi +0 -0
  166. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/build_status_pb2_grpc_aio.py +0 -0
  167. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/build_status_pb2_grpc_aio.pyi +0 -0
  168. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/publish_build_event_pb2.py +0 -0
  169. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/publish_build_event_pb2.pyi +0 -0
  170. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/publish_build_event_pb2_grpc.py +0 -0
  171. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/publish_build_event_pb2_grpc.pyi +0 -0
  172. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/publish_build_event_pb2_grpc_aio.py +0 -0
  173. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/publish_build_event_pb2_grpc_aio.pyi +0 -0
  174. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/__init__.py +0 -0
  175. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/__init__.py +0 -0
  176. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/bots_pb2.py +0 -0
  177. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/bots_pb2.pyi +0 -0
  178. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/bots_pb2_grpc.py +0 -0
  179. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/bots_pb2_grpc.pyi +0 -0
  180. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/bots_pb2_grpc_aio.py +0 -0
  181. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/bots_pb2_grpc_aio.pyi +0 -0
  182. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/command_pb2.py +0 -0
  183. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/command_pb2.pyi +0 -0
  184. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/command_pb2_grpc.py +0 -0
  185. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/command_pb2_grpc.pyi +0 -0
  186. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/command_pb2_grpc_aio.py +0 -0
  187. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/command_pb2_grpc_aio.pyi +0 -0
  188. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/tasks_pb2.py +0 -0
  189. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/tasks_pb2.pyi +0 -0
  190. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/tasks_pb2_grpc.py +0 -0
  191. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/tasks_pb2_grpc.pyi +0 -0
  192. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/tasks_pb2_grpc_aio.py +0 -0
  193. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/tasks_pb2_grpc_aio.pyi +0 -0
  194. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/worker_pb2.py +0 -0
  195. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/worker_pb2.pyi +0 -0
  196. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/worker_pb2_grpc.py +0 -0
  197. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/worker_pb2_grpc.pyi +0 -0
  198. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/worker_pb2_grpc_aio.py +0 -0
  199. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/worker_pb2_grpc_aio.pyi +0 -0
  200. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/longrunning/__init__.py +0 -0
  201. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/longrunning/operations_pb2.py +0 -0
  202. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/longrunning/operations_pb2.pyi +0 -0
  203. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/longrunning/operations_pb2_grpc.py +0 -0
  204. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/longrunning/operations_pb2_grpc.pyi +0 -0
  205. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/longrunning/operations_pb2_grpc_aio.py +0 -0
  206. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/longrunning/operations_pb2_grpc_aio.pyi +0 -0
  207. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/__init__.py +0 -0
  208. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/code_pb2.py +0 -0
  209. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/code_pb2.pyi +0 -0
  210. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/code_pb2_grpc.py +0 -0
  211. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/code_pb2_grpc.pyi +0 -0
  212. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/code_pb2_grpc_aio.py +0 -0
  213. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/code_pb2_grpc_aio.pyi +0 -0
  214. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/error_details_pb2.py +0 -0
  215. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/error_details_pb2.pyi +0 -0
  216. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/error_details_pb2_grpc.py +0 -0
  217. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/error_details_pb2_grpc.pyi +0 -0
  218. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/error_details_pb2_grpc_aio.py +0 -0
  219. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/error_details_pb2_grpc_aio.pyi +0 -0
  220. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/status_pb2.py +0 -0
  221. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/status_pb2.pyi +0 -0
  222. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/status_pb2_grpc.py +0 -0
  223. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/status_pb2_grpc.pyi +0 -0
  224. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/status_pb2_grpc_aio.py +0 -0
  225. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/status_pb2_grpc_aio.pyi +0 -0
  226. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/__init__.py +0 -0
  227. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/actioncache/__init__.py +0 -0
  228. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/actioncache/caches/__init__.py +0 -0
  229. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/actioncache/caches/action_cache_abc.py +0 -0
  230. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/actioncache/caches/lru_cache.py +0 -0
  231. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/actioncache/caches/mirrored_cache.py +0 -0
  232. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/actioncache/caches/redis_cache.py +0 -0
  233. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/actioncache/caches/remote_cache.py +0 -0
  234. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/actioncache/caches/s3_cache.py +0 -0
  235. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/actioncache/caches/sharded_cache.py +0 -0
  236. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/actioncache/caches/with_cache.py +0 -0
  237. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/actioncache/caches/write_once_cache.py +0 -0
  238. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/actioncache/instance.py +0 -0
  239. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/actioncache/service.py +0 -0
  240. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/__init__.py +0 -0
  241. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/commands/__init__.py +0 -0
  242. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/commands/cmd_actioncache.py +0 -0
  243. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/commands/cmd_capabilities.py +0 -0
  244. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/commands/cmd_cas.py +0 -0
  245. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/commands/cmd_cleanup.py +0 -0
  246. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/commands/cmd_execute.py +0 -0
  247. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/commands/cmd_janitor.py +0 -0
  248. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/commands/cmd_logstream.py +0 -0
  249. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/commands/cmd_operation.py +0 -0
  250. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/commands/cmd_quota.py +0 -0
  251. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/commands/cmd_server.py +0 -0
  252. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/commands/rpc_utils.py +0 -0
  253. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/settings/__init__.py +0 -0
  254. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/settings/config.py +0 -0
  255. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/settings/mapper.py +0 -0
  256. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/settings/reference.yml +0 -0
  257. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/auth/__init__.py +0 -0
  258. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/auth/config.py +0 -0
  259. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/auth/enums.py +0 -0
  260. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/auth/exceptions.py +0 -0
  261. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/auth/manager.py +0 -0
  262. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/bots/__init__.py +0 -0
  263. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/bots/instance.py +0 -0
  264. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/build_events/__init__.py +0 -0
  265. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/build_events/service.py +0 -0
  266. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/build_events/storage.py +0 -0
  267. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/capabilities/__init__.py +0 -0
  268. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/capabilities/instance.py +0 -0
  269. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/capabilities/service.py +0 -0
  270. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/__init__.py +0 -0
  271. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/instance.py +0 -0
  272. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/service.py +0 -0
  273. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/__init__.py +0 -0
  274. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/disk.py +0 -0
  275. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/index/__init__.py +0 -0
  276. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/index/redis.py +0 -0
  277. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/lru_memory_cache.py +0 -0
  278. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/redis.py +0 -0
  279. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/remote.py +0 -0
  280. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/replicated.py +0 -0
  281. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/s3.py +0 -0
  282. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/sharded.py +0 -0
  283. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/size_differentiated.py +0 -0
  284. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/sql.py +0 -0
  285. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/storage_abc.py +0 -0
  286. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/with_cache.py +0 -0
  287. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cleanup/__init__.py +0 -0
  288. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cleanup/cleanup.py +0 -0
  289. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cleanup/janitor/__init__.py +0 -0
  290. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cleanup/janitor/config.py +0 -0
  291. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cleanup/janitor/index.py +0 -0
  292. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cleanup/janitor/s3.py +0 -0
  293. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cleanup/janitor/sql.py +0 -0
  294. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cleanup/janitor/types.py +0 -0
  295. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cleanup/janitor/utils.py +0 -0
  296. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/client/__init__.py +0 -0
  297. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/client/actioncache.py +0 -0
  298. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/client/asset.py +0 -0
  299. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/client/auth_token_loader.py +0 -0
  300. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/client/authentication.py +0 -0
  301. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/client/capabilities.py +0 -0
  302. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/client/cas.py +0 -0
  303. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/client/channel.py +0 -0
  304. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/client/interceptors.py +0 -0
  305. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/client/logstream.py +0 -0
  306. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/client/quota.py +0 -0
  307. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/client/retrier.py +0 -0
  308. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/context.py +0 -0
  309. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/controller.py +0 -0
  310. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/decorators/__init__.py +0 -0
  311. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/decorators/authorize.py +0 -0
  312. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/decorators/errors.py +0 -0
  313. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/decorators/instance.py +0 -0
  314. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/decorators/io.py +0 -0
  315. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/decorators/limiter.py +0 -0
  316. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/decorators/metadata.py +0 -0
  317. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/decorators/requestid.py +0 -0
  318. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/decorators/rpc.py +0 -0
  319. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/decorators/time.py +0 -0
  320. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/exceptions.py +0 -0
  321. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/execution/__init__.py +0 -0
  322. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/execution/instance.py +0 -0
  323. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/execution/service.py +0 -0
  324. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/introspection/__init__.py +0 -0
  325. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/introspection/instance.py +0 -0
  326. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/introspection/service.py +0 -0
  327. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/limiter.py +0 -0
  328. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/logging.py +0 -0
  329. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/metadata.py +0 -0
  330. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/metrics_tags.py +0 -0
  331. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/metrics_utils.py +0 -0
  332. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/monitoring.py +0 -0
  333. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/operations/__init__.py +0 -0
  334. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/operations/filtering/__init__.py +0 -0
  335. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/operations/filtering/filter.py +0 -0
  336. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/operations/filtering/filter_grammar.lark +0 -0
  337. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/operations/filtering/interpreter.py +0 -0
  338. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/operations/filtering/parser.py +0 -0
  339. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/operations/filtering/sanitizer.py +0 -0
  340. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/operations/instance.py +0 -0
  341. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/operations/service.py +0 -0
  342. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/quota/__init__.py +0 -0
  343. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/quota/service.py +0 -0
  344. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/redis/__init__.py +0 -0
  345. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/redis/provider.py +0 -0
  346. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/s3/__init__.py +0 -0
  347. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/s3/s3utils.py +0 -0
  348. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/scheduler/__init__.py +0 -0
  349. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/scheduler/assigner.py +0 -0
  350. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/scheduler/cohorts.py +0 -0
  351. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/scheduler/events.py +0 -0
  352. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/scheduler/notifier.py +0 -0
  353. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/scheduler/properties.py +0 -0
  354. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sentry.py +0 -0
  355. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/server.py +0 -0
  356. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/servicer.py +0 -0
  357. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/settings.py +0 -0
  358. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/__init__.py +0 -0
  359. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/README +0 -0
  360. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/env.py +0 -0
  361. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/script.py.mako +0 -0
  362. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/0596ea8f5c61_add_bot_locality_hints_table_and_.py +0 -0
  363. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/0c17a7cb2bc5_initial_database_state.py +0 -0
  364. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/12992085e81a_add_a_job_index_on_worker_name_and_.py +0 -0
  365. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/1f959c3834d3_drop_the_leases_table.py +0 -0
  366. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/22cc661efef9_add_instance_quotas_table.py +0 -0
  367. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/55acd9b4ec38_add_ix_jobs_property_label_stage.py +0 -0
  368. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/55fcf6c874d3_remove_request_metadata_from_operations.py +0 -0
  369. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/5745d1f0e537_drop_unused_indexes_and_create_.py +0 -0
  370. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/5b90ed0e9d0b_drop_ix_jobs_worker_name_stage.py +0 -0
  371. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/85096c931383_drop_ix_jobs_stage_property_label_and_.py +0 -0
  372. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/8f7f43e4a833_add_immutable_jobs_max_capacity_column.py +0 -0
  373. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/8fd7118e215e_add_instanced_job_scheduling_index.py +0 -0
  374. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/90bd87d052a0_add_an_audit_table_for_job_state_changes.py +0 -0
  375. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/910398062924_add_property_labels_table.py +0 -0
  376. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/9e7a59ee4370_add_bot_platform_capabilities_to_the_.py +0 -0
  377. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/9ecd996412a9_add_worker_name_to_jobs_table.py +0 -0
  378. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/b3b9d7300155_add_capacity_to_bots.py +0 -0
  379. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/bde0df23383b_add_cohort_to_bots.py +0 -0
  380. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/d850621a10d8_add_assigner_name_to_jobs.py +0 -0
  381. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/fb8afebee8e6_add_ix_jobs_worker_name_stage.py +0 -0
  382. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/ff09fbc30c3e_add_bots_version.py +0 -0
  383. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/provider.py +0 -0
  384. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/threading.py +0 -0
  385. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/types.py +0 -0
  386. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/utils/__init__.py +0 -0
  387. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/utils/async_lru_cache.py +0 -0
  388. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/utils/cancellation.py +0 -0
  389. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/utils/digests.py +0 -0
  390. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid.egg-info/dependency_links.txt +0 -0
  391. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid.egg-info/entry_points.txt +0 -0
  392. {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid.egg-info/top_level.txt +0 -0
  393. {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/artifacts.yml +0 -0
  394. {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/bots-interface.yml +0 -0
  395. {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/cache.yml +0 -0
  396. {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/controller.yml +0 -0
  397. {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/default.yml +0 -0
  398. {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/logstream.yml +0 -0
  399. {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/monitoring-controller.yml +0 -0
  400. {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/multi-container.yml +0 -0
  401. {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/multi-layer-storage.yml +0 -0
  402. {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/redis-cache.yml +0 -0
  403. {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/s3-indexed-cas.yml +0 -0
  404. {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/storage-redis.yml +0 -0
  405. {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/storage-s3.yml +0 -0
  406. {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/storage.yml +0 -0
  407. {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/with-metering.yml +0 -0
  408. {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/with-pgbouncer.yml +0 -0
  409. {buildgrid-0.3.5 → buildgrid-0.4.0}/docs/Makefile +0 -0
  410. {buildgrid-0.3.5 → buildgrid-0.4.0}/docs/source/data/basic-disk-cas.yml +0 -0
  411. {buildgrid-0.3.5 → buildgrid-0.4.0}/docs/source/data/bazel-example-server.yml +0 -0
  412. {buildgrid-0.3.5 → buildgrid-0.4.0}/docs/source/data/buildstream-example-server.yml +0 -0
  413. {buildgrid-0.3.5 → buildgrid-0.4.0}/docs/source/data/cas-and-ac.yml +0 -0
  414. {buildgrid-0.3.5 → buildgrid-0.4.0}/docs/source/data/cas-example-server.yml +0 -0
  415. {buildgrid-0.3.5 → buildgrid-0.4.0}/docs/source/data/execution-and-bots.yml +0 -0
  416. {buildgrid-0.3.5 → buildgrid-0.4.0}/docs/source/data/postgresql-index-cas-only.yml +0 -0
  417. {buildgrid-0.3.5 → buildgrid-0.4.0}/setup.cfg +0 -0
  418. {buildgrid-0.3.5 → buildgrid-0.4.0}/setup.py +0 -0
  419. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/auth.yaml +0 -0
  420. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/jwks-valid.json +0 -0
  421. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/jwt-hs256-conflicting.secret +0 -0
  422. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/jwt-hs256-expired.token +0 -0
  423. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/jwt-hs256-matching.secret +0 -0
  424. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/jwt-hs256-unbounded.token +0 -0
  425. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/jwt-hs256-valid.token +0 -0
  426. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/jwt-rs256-conflicting.pub.key +0 -0
  427. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/jwt-rs256-expired.token +0 -0
  428. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/jwt-rs256-jwk-encrypted.token +0 -0
  429. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/jwt-rs256-matching.priv.key +0 -0
  430. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/jwt-rs256-matching.pub.key +0 -0
  431. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/jwt-rs256-unbounded.token +0 -0
  432. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/jwt-rs256-valid.token +0 -0
  433. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/test_async_lru_cache.py +0 -0
  434. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/test_execution_instance.py +0 -0
  435. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/test_job_assigner.py +0 -0
  436. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/test_logging.py +0 -0
  437. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/test_metrics_tags.py +0 -0
  438. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/test_metrics_utils.py +0 -0
  439. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/test_request_metadata_utils.py +0 -0
  440. {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: buildgrid
3
- Version: 0.3.5
3
+ Version: 0.4.0
4
4
  Summary: A remote execution service
5
5
  License: Apache License, Version 2.0
6
6
  Project-URL: Homepage, https://buildgrid.build
@@ -16,7 +16,6 @@ Requires-Dist: dnspython
16
16
  Requires-Dist: grpcio-reflection>=1.62.0
17
17
  Requires-Dist: grpcio-health-checking>=1.62.0
18
18
  Requires-Dist: grpcio>=1.62.0
19
- Requires-Dist: importlib-resources
20
19
  Requires-Dist: janus>=0.6.2
21
20
  Requires-Dist: jinja2
22
21
  Requires-Dist: protobuf
@@ -89,6 +88,7 @@ Requires-Dist: types-aiofiles; extra == "mypy"
89
88
  Requires-Dist: types-cachetools; extra == "mypy"
90
89
  Requires-Dist: types-docutils; extra == "mypy"
91
90
  Requires-Dist: types-jsonschema; extra == "mypy"
91
+ Requires-Dist: types-jwcrypto; extra == "mypy"
92
92
  Requires-Dist: types-protobuf; extra == "mypy"
93
93
  Requires-Dist: types-psycopg2; extra == "mypy"
94
94
  Requires-Dist: psycopg>=3.2.10; extra == "mypy"
@@ -26,10 +26,10 @@ import logging
26
26
  import os
27
27
  import sys
28
28
  from typing import Any, cast
29
+ from importlib.resources import files
29
30
 
30
31
  import click
31
32
  import grpc
32
- from importlib_resources import files
33
33
 
34
34
  from buildgrid.server.logging import JSONFormatter
35
35
  from buildgrid.server.metadata import ctx_grpc_request_id
@@ -64,9 +64,9 @@ class App(click.Group):
64
64
  def list_commands(self, ctx: Any) -> list[str]:
65
65
  """Lists available command names."""
66
66
  commands = []
67
- for filename in os.listdir(cmd_folder):
68
- if filename.endswith(".py") and filename.startswith("cmd_"):
69
- command_name = filename[4:-3].replace("_", "-")
67
+ for path in cmd_folder.iterdir():
68
+ if path.name.endswith(".py") and path.name.startswith("cmd_"):
69
+ command_name = path.name[4:-3].replace("_", "-")
70
70
  commands.append(command_name)
71
71
  commands.sort()
72
72
 
@@ -18,6 +18,7 @@ import sys
18
18
  from collections import defaultdict
19
19
  from typing import TYPE_CHECKING, Any, Callable, Hashable, Iterable, Sequence, TypedDict, TypeVar
20
20
  from urllib.parse import urlparse
21
+ from importlib.resources import files
21
22
 
22
23
  import buildgrid_metering.client as metering
23
24
  import click
@@ -26,7 +27,6 @@ import jsonschema
26
27
  import requests
27
28
  import yaml
28
29
  from buildgrid_metering.client.exceptions import MeteringServiceClientError, MeteringServiceError
29
- from importlib_resources import files
30
30
 
31
31
  from buildgrid.server.actioncache.caches.action_cache_abc import ActionCacheABC
32
32
  from buildgrid.server.actioncache.caches.lru_cache import LruActionCache
@@ -99,6 +99,7 @@ if TYPE_CHECKING:
99
99
  from buildgrid.server.actioncache.caches.redis_cache import RedisActionCache
100
100
  from buildgrid.server.cas.storage.index.redis import RedisIndex
101
101
  from buildgrid.server.cas.storage.redis import RedisStorage
102
+ from buildgrid.server.cas.storage.redis_fmb_cache import RedisFMBCache
102
103
  from buildgrid.server.redis.provider import RedisProvider
103
104
 
104
105
 
@@ -459,6 +460,38 @@ def load_redis_index(storage: StorageABC, redis: "RedisProvider", prefix: str |
459
460
  return RedisIndex(redis=redis, storage=storage, prefix=prefix)
460
461
 
461
462
 
463
+ @object_tag("!redis-fmb-cache")
464
+ def load_redis_fmb_cache(
465
+ storage: StorageABC, redis: "RedisProvider", ttl_secs: int, prefix: str | None = None
466
+ ) -> "RedisFMBCache":
467
+ """Generates :class:`buildgrid.server.cas.storage.redis_fmb_cache.RedisFMBCache`
468
+ using the tag ``!redis-fmb-cache``.
469
+
470
+ Usage
471
+ .. code:: yaml
472
+
473
+ - !redis-fmb-cache
474
+ storage: *cas-storage
475
+ redis: *redis
476
+ ttl-secs: 3600 # 1 hour
477
+ prefix: "D"
478
+
479
+ Args:
480
+ storage(:class:`buildgrid.server.cas.storage.storage_abc.StorageABC`):
481
+ Instance of storage to use. This must be a storage object constructed using
482
+ a YAML tag ending in ``-storage``, for example ``!disk-storage``.
483
+ redis (:class:`buildgrid.server.redis.provider.RedisProvider`): A configured Redis
484
+ connection manager. This must be an object with an ``!redis-connection`` YAML tag.
485
+ prefix (str): An optional prefix to use to prefix keys written by this index. If not
486
+ specified a prefix of "C" is used.
487
+ """
488
+
489
+ # Import here so there is no global buildgrid dependency on redis
490
+ from buildgrid.server.cas.storage.redis_fmb_cache import RedisFMBCache
491
+
492
+ return RedisFMBCache(redis, storage, ttl_secs, prefix)
493
+
494
+
462
495
  @object_tag("!replicated-storage")
463
496
  def load_replicated_storage(
464
497
  storages: list[StorageABC],
@@ -1358,9 +1391,9 @@ def load_static_property_set(
1358
1391
  def load_sql_index(
1359
1392
  storage: StorageABC,
1360
1393
  sql: SqlProvider,
1394
+ sql_ro: SqlProvider | None = None,
1361
1395
  window_size: int = 1000,
1362
1396
  inclause_limit: int = -1,
1363
- fallback_on_get: bool = False,
1364
1397
  max_inline_blob_size: int = 0,
1365
1398
  refresh_accesstime_older_than: int = 0,
1366
1399
  ) -> SQLIndex:
@@ -1371,13 +1404,12 @@ def load_sql_index(
1371
1404
  .. code:: yaml
1372
1405
 
1373
1406
  - !sql-index
1374
- # This assumes that a storage instance is defined elsewhere
1375
- # with a `&cas-storage` anchor
1407
+ # Assuming the YAML anchors are defined elsewhere in the config file
1376
1408
  storage: *cas-storage
1377
1409
  sql: *sql
1410
+ sql-ro: *readonly-sql
1378
1411
  window-size: 1000
1379
1412
  inclause-limit: -1
1380
- fallback-on-get: no
1381
1413
  max-inline-blob-size: 256
1382
1414
  refresh-accesstime-older-than: 0
1383
1415
 
@@ -1385,16 +1417,18 @@ def load_sql_index(
1385
1417
  storage(:class:`buildgrid.server.cas.storage.storage_abc.StorageABC`):
1386
1418
  Instance of storage to use. This must be a storage object constructed using
1387
1419
  a YAML tag ending in ``-storage``, for example ``!disk-storage``.
1420
+ sql (:class:`buildgrid.server.sql.provider.SqlProvider`): A configured SQL
1421
+ connection manager. This must be an object with an ``!sql-connection`` YAML tag.
1422
+ sql_ro (:class:`buildgrid.server.sql.provider.SqlProvider`): Similar to `sql`,
1423
+ but used for readonly backend transactions.
1424
+ If set, it should be configured with a replica of main DB using an optional but
1425
+ encouraged readonly role. Permission check is not executed by BuildGrid.
1426
+ If not set, readonly transactions are executed by `sql` object.
1388
1427
  window_size (uint): Maximum number of blobs to fetch in one SQL operation
1389
1428
  (larger resultsets will be automatically split into multiple queries)
1390
1429
  inclause_limit (int): If nonnegative, overrides the default number of variables
1391
1430
  permitted per "in" clause. See the buildgrid.server.cas.storage.index.sql.SQLIndex
1392
1431
  comments for more details.
1393
- fallback_on_get (bool): By default, the SQL Index only fetches blobs from the
1394
- underlying storage if they're present in the index on ``get_blob``/``bulk_read_blobs``
1395
- requests to minimize interactions with the storage. If this is set, the index
1396
- instead checks the underlying storage directly on ``get_blob``/``bulk_read_blobs``
1397
- requests, then loads all blobs found into the index.
1398
1432
  max_inline_blob_size (int): Blobs of this size or smaller are stored directly in the index
1399
1433
  and not in the backing storage (must be nonnegative).
1400
1434
  refresh-accesstime-older-than (int): When reading a blob, its access timestamp will not be
@@ -1403,19 +1437,14 @@ def load_sql_index(
1403
1437
  """
1404
1438
 
1405
1439
  storage_type = type(storage).__name__
1406
- click.echo(
1407
- f"SQLIndex: storage={storage_type}, "
1408
- f"window_size={window_size}, "
1409
- f"inclause_limit={inclause_limit}, "
1410
- f"fallback_on_get={fallback_on_get}"
1411
- )
1440
+ click.echo(f"SQLIndex: storage={storage_type}, window_size={window_size}, inclause_limit={inclause_limit}, ")
1412
1441
  click.echo(click.style(f"Creating an SQL CAS Index for {storage_type}\n", fg="green", bold=True))
1413
1442
  return SQLIndex(
1414
1443
  sql,
1415
1444
  storage,
1445
+ sql_ro=sql_ro,
1416
1446
  window_size=window_size,
1417
1447
  inclause_limit=inclause_limit,
1418
- fallback_on_get=fallback_on_get,
1419
1448
  max_inline_blob_size=max_inline_blob_size,
1420
1449
  refresh_accesstime_older_than=refresh_accesstime_older_than,
1421
1450
  )
@@ -24,7 +24,9 @@ properties:
24
24
  sentry: { "$ref": "#/definitions/sentry" }
25
25
  limiter: { "$ref": "#/definitions/limiter" }
26
26
  anyOf:
27
- - required: [server, instances]
27
+ - anyOf:
28
+ - required: [server, instances]
29
+ - required: [server, services]
28
30
  - required: [cleanup]
29
31
 
30
32
  definitions:
@@ -172,6 +174,7 @@ definitions:
172
174
  - "$ref": "#/definitions/size-differentiated-storage"
173
175
  - "$ref": "#/definitions/sql-storage"
174
176
  - "$ref": "#/definitions/with-cache-storage"
177
+ - "$ref": "#/definitions/redis-fmb-cache"
175
178
  - "$ref": "#/definitions/index"
176
179
 
177
180
  index:
@@ -413,6 +416,17 @@ definitions:
413
416
  action-cache: { "$ref": "#/definitions/cache" }
414
417
  required: [kind, action-cache]
415
418
 
419
+ redis-fmb-cache:
420
+ type: object
421
+ propertyNames: { pattern: "^[A-Za-z0-9-]*$" }
422
+ properties:
423
+ kind: { type: string, enum: ["!redis-fmb-cache"] }
424
+ storage: { "$ref": "#/definitions/storage" }
425
+ redis: { "$ref": "#/definitions/redis-connection" }
426
+ ttl-secs: { type: integer, minimum: 0 }
427
+ prefix: { type: string }
428
+ required: [kind, storage, redis, ttl-secs]
429
+
416
430
  redis-index:
417
431
  type: object
418
432
  propertyNames: { pattern: "^[A-Za-z0-9-]*$" }
@@ -429,10 +443,10 @@ definitions:
429
443
  properties:
430
444
  kind: { type: string, enum: ["!sql-index"] }
431
445
  sql: { "$ref": "#/definitions/sql-connection" }
446
+ sql-ro: { "$ref": "#/definitions/sql-connection" }
432
447
  storage: { "$ref": "#/definitions/storage" }
433
448
  window-size: { type: integer, minimum: 1 }
434
449
  inclause-limit: { type: integer, minimum: 1 }
435
- fallback-on-get: { type: boolean }
436
450
  max-inline-blob-size: { type: integer, minimum: 0, maximum: 1000000000 }
437
451
  refresh-accesstime-older-than: { type: integer, minimum: 0 }
438
452
  required: [kind, sql, storage]
@@ -117,14 +117,14 @@ class BaseBotsService:
117
117
 
118
118
  LOGGER.debug("Beginning initial lease synchronization.", tags=bot_log_tags(request.bot_session))
119
119
 
120
- orig_leases_count = len(request.bot_session.leases)
121
120
  with scheduler.bot_notifier.subscription(request.bot_session.name) as event:
122
121
  capacity = get_bot_capacity(request.bot_session)
122
+ old_version = int(request.bot_session.version) if request.bot_session.version else 0
123
123
  leases, new_version = scheduler.synchronize_bot_leases(
124
124
  request.bot_session.name,
125
125
  request.bot_session.bot_id,
126
126
  request.bot_session.status,
127
- int(request.bot_session.version) if request.bot_session.version else 0,
127
+ old_version,
128
128
  request.bot_session.leases,
129
129
  lease_id_to_partial_execution_metadata,
130
130
  max_capacity=capacity,
@@ -138,14 +138,8 @@ class BaseBotsService:
138
138
  capabilities = list(map(hash_from_dict, scheduler.property_set.worker_properties(request.bot_session)))
139
139
  scheduler.maybe_update_bot_platforms(request.bot_session.name, capabilities)
140
140
 
141
- # Only block on lease assignment if we aren't currently working on anything, to avoid
142
- # the client needing to deal with interrupting this wait when a current job is
143
- # completed. Any extra assignments can be picked up when we next synchronize.
144
- #
145
- # This should also be skipped if we've removed a lease from the session, to mitigate
146
- # situations where the scheduler is updated with the new state of a lease, but a fault
147
- # thereafter causes the worker to retry the old UpdateBotSession call.
148
- if not leases and not orig_leases_count:
141
+ # Block on lease assignment if we have space and an unchanged set of leases.
142
+ if len(leases) < capacity and old_version == new_version:
149
143
  self._request_leases(
150
144
  request.bot_session,
151
145
  CancellationContext(context),
@@ -34,13 +34,6 @@ from ..storage_abc import StorageABC
34
34
 
35
35
 
36
36
  class IndexABC(StorageABC):
37
- @abc.abstractmethod
38
- def __init__(self, *, fallback_on_get: bool = False) -> None:
39
- # If fallback is enabled, the index is required to fetch blobs from
40
- # storage on each get_blob and bulk_read_blobs request and update
41
- # itself accordingly.
42
- self._fallback_on_get = fallback_on_get
43
-
44
37
  @abc.abstractmethod
45
38
  def least_recent_digests(self) -> Iterator[Digest]:
46
39
  """Generator to iterate through the digests in LRU order"""