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.
- {buildgrid-0.3.5 → buildgrid-0.4.0}/PKG-INFO +2 -2
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/cli.py +4 -4
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/settings/parser.py +46 -17
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/settings/schema.yml +16 -2
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/bots/service.py +4 -10
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/index/index_abc.py +0 -7
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/index/sql.py +91 -215
- buildgrid-0.4.0/buildgrid/server/cas/storage/redis_fmb_cache.py +220 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/enums.py +5 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/metrics_names.py +0 -2
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/scheduler/impl.py +298 -70
- buildgrid-0.4.0/buildgrid/server/sql/alembic/versions/3737630fc9cf_remove_deleted_column_from_sql_cas_index.py +43 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/models.py +0 -2
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/utils.py +3 -3
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/utils/bots.py +1 -1
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/version.py +1 -1
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid.egg-info/PKG-INFO +2 -2
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid.egg-info/SOURCES.txt +3 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid.egg-info/requires.txt +1 -1
- {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/all-in-one.yml +14 -4
- buildgrid-0.4.0/docs/source/data/bots-with-quota.yml +77 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/docs/source/index.rst +4 -3
- {buildgrid-0.3.5 → buildgrid-0.4.0}/pyproject.toml +2 -2
- {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/test_example_configs.py +1 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/test_instance_pools.py +1 -1
- {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/test_limiter.py +2 -1
- {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/test_mirrored_cache.py +1 -1
- {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/test_scheduler.py +539 -19
- {buildgrid-0.3.5 → buildgrid-0.4.0}/BuildGrid.doap +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/CONTRIBUTING.rst +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/LICENSE +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/MANIFEST.in +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/README.rst +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/asset/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/asset/v1/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/asset/v1/remote_asset_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/asset/v1/remote_asset_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/asset/v1/remote_asset_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/asset/v1/remote_asset_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/asset/v1/remote_asset_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/asset/v1/remote_asset_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/execution/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/execution/v2/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/execution/v2/remote_execution_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/execution/v2/remote_execution_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/execution/v2/remote_execution_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/execution/v2/remote_execution_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/execution/v2/remote_execution_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/execution/v2/remote_execution_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/logstream/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/logstream/v1/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/logstream/v1/remote_logstream_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/logstream/v1/remote_logstream_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/logstream/v1/remote_logstream_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/logstream/v1/remote_logstream_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/logstream/v1/remote_logstream_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/remote/logstream/v1/remote_logstream_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/semver/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/semver/semver_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/semver/semver_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/semver/semver_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/semver/semver_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/semver/semver_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/bazel/semver/semver_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildbox/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildbox/execution_stats_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildbox/execution_stats_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildbox/execution_stats_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildbox/execution_stats_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildbox/execution_stats_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildbox/execution_stats_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/identity_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/identity_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/identity_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/identity_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/identity_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/identity_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/introspection_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/introspection_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/introspection_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/introspection_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/introspection_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/introspection_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/messaging_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/messaging_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/messaging_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/messaging_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/messaging_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/messaging_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/monitoring_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/monitoring_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/monitoring_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/monitoring_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/monitoring_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/monitoring_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/query_build_events_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/query_build_events_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/query_build_events_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/query_build_events_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/query_build_events_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/query_build_events_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/quota_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/quota_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/quota_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/quota_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/quota_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/quota_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/scheduling_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/scheduling_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/scheduling_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/scheduling_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/scheduling_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/build/buildgrid/scheduling_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/annotations_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/annotations_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/annotations_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/annotations_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/annotations_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/annotations_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/client_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/client_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/client_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/client_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/client_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/client_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/field_behavior_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/field_behavior_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/field_behavior_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/field_behavior_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/field_behavior_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/field_behavior_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/http_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/http_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/http_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/http_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/http_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/api/http_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/bytestream/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/bytestream/bytestream_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/bytestream/bytestream_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/bytestream/bytestream_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/bytestream/bytestream_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/bytestream/bytestream_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/bytestream/bytestream_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/build_events_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/build_events_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/build_events_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/build_events_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/build_events_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/build_events_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/build_status_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/build_status_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/build_status_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/build_status_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/build_status_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/build_status_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/publish_build_event_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/publish_build_event_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/publish_build_event_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/publish_build_event_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/publish_build_event_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/build/v1/publish_build_event_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/bots_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/bots_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/bots_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/bots_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/bots_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/bots_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/command_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/command_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/command_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/command_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/command_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/command_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/tasks_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/tasks_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/tasks_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/tasks_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/tasks_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/tasks_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/worker_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/worker_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/worker_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/worker_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/worker_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/devtools/remoteworkers/v1test2/worker_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/longrunning/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/longrunning/operations_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/longrunning/operations_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/longrunning/operations_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/longrunning/operations_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/longrunning/operations_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/longrunning/operations_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/code_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/code_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/code_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/code_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/code_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/code_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/error_details_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/error_details_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/error_details_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/error_details_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/error_details_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/error_details_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/status_pb2.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/status_pb2.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/status_pb2_grpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/status_pb2_grpc.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/status_pb2_grpc_aio.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/_protos/google/rpc/status_pb2_grpc_aio.pyi +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/actioncache/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/actioncache/caches/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/actioncache/caches/action_cache_abc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/actioncache/caches/lru_cache.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/actioncache/caches/mirrored_cache.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/actioncache/caches/redis_cache.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/actioncache/caches/remote_cache.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/actioncache/caches/s3_cache.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/actioncache/caches/sharded_cache.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/actioncache/caches/with_cache.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/actioncache/caches/write_once_cache.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/actioncache/instance.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/actioncache/service.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/commands/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/commands/cmd_actioncache.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/commands/cmd_capabilities.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/commands/cmd_cas.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/commands/cmd_cleanup.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/commands/cmd_execute.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/commands/cmd_janitor.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/commands/cmd_logstream.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/commands/cmd_operation.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/commands/cmd_quota.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/commands/cmd_server.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/commands/rpc_utils.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/settings/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/settings/config.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/settings/mapper.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/app/settings/reference.yml +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/auth/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/auth/config.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/auth/enums.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/auth/exceptions.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/auth/manager.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/bots/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/bots/instance.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/build_events/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/build_events/service.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/build_events/storage.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/capabilities/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/capabilities/instance.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/capabilities/service.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/instance.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/service.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/disk.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/index/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/index/redis.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/lru_memory_cache.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/redis.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/remote.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/replicated.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/s3.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/sharded.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/size_differentiated.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/sql.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/storage_abc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cas/storage/with_cache.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cleanup/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cleanup/cleanup.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cleanup/janitor/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cleanup/janitor/config.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cleanup/janitor/index.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cleanup/janitor/s3.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cleanup/janitor/sql.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cleanup/janitor/types.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/cleanup/janitor/utils.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/client/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/client/actioncache.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/client/asset.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/client/auth_token_loader.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/client/authentication.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/client/capabilities.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/client/cas.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/client/channel.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/client/interceptors.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/client/logstream.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/client/quota.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/client/retrier.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/context.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/controller.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/decorators/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/decorators/authorize.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/decorators/errors.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/decorators/instance.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/decorators/io.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/decorators/limiter.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/decorators/metadata.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/decorators/requestid.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/decorators/rpc.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/decorators/time.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/exceptions.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/execution/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/execution/instance.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/execution/service.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/introspection/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/introspection/instance.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/introspection/service.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/limiter.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/logging.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/metadata.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/metrics_tags.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/metrics_utils.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/monitoring.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/operations/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/operations/filtering/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/operations/filtering/filter.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/operations/filtering/filter_grammar.lark +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/operations/filtering/interpreter.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/operations/filtering/parser.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/operations/filtering/sanitizer.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/operations/instance.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/operations/service.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/quota/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/quota/service.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/redis/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/redis/provider.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/s3/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/s3/s3utils.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/scheduler/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/scheduler/assigner.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/scheduler/cohorts.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/scheduler/events.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/scheduler/notifier.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/scheduler/properties.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sentry.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/server.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/servicer.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/settings.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/README +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/env.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/script.py.mako +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/0596ea8f5c61_add_bot_locality_hints_table_and_.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/0c17a7cb2bc5_initial_database_state.py +0 -0
- {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
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/1f959c3834d3_drop_the_leases_table.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/22cc661efef9_add_instance_quotas_table.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/55acd9b4ec38_add_ix_jobs_property_label_stage.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/55fcf6c874d3_remove_request_metadata_from_operations.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/5745d1f0e537_drop_unused_indexes_and_create_.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/5b90ed0e9d0b_drop_ix_jobs_worker_name_stage.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/85096c931383_drop_ix_jobs_stage_property_label_and_.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/8f7f43e4a833_add_immutable_jobs_max_capacity_column.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/8fd7118e215e_add_instanced_job_scheduling_index.py +0 -0
- {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
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/910398062924_add_property_labels_table.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/9e7a59ee4370_add_bot_platform_capabilities_to_the_.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/9ecd996412a9_add_worker_name_to_jobs_table.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/b3b9d7300155_add_capacity_to_bots.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/bde0df23383b_add_cohort_to_bots.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/d850621a10d8_add_assigner_name_to_jobs.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/fb8afebee8e6_add_ix_jobs_worker_name_stage.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/alembic/versions/ff09fbc30c3e_add_bots_version.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/sql/provider.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/threading.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/types.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/utils/__init__.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/utils/async_lru_cache.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/utils/cancellation.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid/server/utils/digests.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid.egg-info/dependency_links.txt +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid.egg-info/entry_points.txt +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/buildgrid.egg-info/top_level.txt +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/artifacts.yml +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/bots-interface.yml +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/cache.yml +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/controller.yml +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/default.yml +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/logstream.yml +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/monitoring-controller.yml +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/multi-container.yml +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/multi-layer-storage.yml +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/redis-cache.yml +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/s3-indexed-cas.yml +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/storage-redis.yml +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/storage-s3.yml +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/storage.yml +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/with-metering.yml +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/data/config/with-pgbouncer.yml +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/docs/Makefile +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/docs/source/data/basic-disk-cas.yml +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/docs/source/data/bazel-example-server.yml +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/docs/source/data/buildstream-example-server.yml +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/docs/source/data/cas-and-ac.yml +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/docs/source/data/cas-example-server.yml +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/docs/source/data/execution-and-bots.yml +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/docs/source/data/postgresql-index-cas-only.yml +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/setup.cfg +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/setup.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/auth.yaml +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/jwks-valid.json +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/jwt-hs256-conflicting.secret +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/jwt-hs256-expired.token +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/jwt-hs256-matching.secret +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/jwt-hs256-unbounded.token +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/jwt-hs256-valid.token +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/jwt-rs256-conflicting.pub.key +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/jwt-rs256-expired.token +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/jwt-rs256-jwk-encrypted.token +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/jwt-rs256-matching.priv.key +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/jwt-rs256-matching.pub.key +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/jwt-rs256-unbounded.token +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/auth/data/jwt-rs256-valid.token +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/test_async_lru_cache.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/test_execution_instance.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/test_job_assigner.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/test_logging.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/test_metrics_tags.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/test_metrics_utils.py +0 -0
- {buildgrid-0.3.5 → buildgrid-0.4.0}/tests/test_request_metadata_utils.py +0 -0
- {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
|
+
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
|
|
68
|
-
if
|
|
69
|
-
command_name =
|
|
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
|
-
#
|
|
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
|
-
-
|
|
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
|
-
|
|
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
|
-
#
|
|
142
|
-
|
|
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"""
|