buildgrid 0.3.0__py3-none-any.whl → 0.3.2__py3-none-any.whl
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/server/app/settings/parser.py +4 -9
- buildgrid/server/app/settings/schema.yml +4 -6
- buildgrid/server/client/asset.py +4 -4
- buildgrid/server/s3/s3utils.py +1 -1
- buildgrid/server/scheduler/impl.py +18 -8
- buildgrid/server/settings.py +1 -1
- buildgrid/server/sql/alembic/versions/8f7f43e4a833_add_immutable_jobs_max_capacity_column.py +47 -0
- buildgrid/server/sql/models.py +1 -0
- buildgrid/server/version.py +1 -1
- {buildgrid-0.3.0.dist-info → buildgrid-0.3.2.dist-info}/METADATA +1 -1
- {buildgrid-0.3.0.dist-info → buildgrid-0.3.2.dist-info}/RECORD +15 -14
- {buildgrid-0.3.0.dist-info → buildgrid-0.3.2.dist-info}/WHEEL +0 -0
- {buildgrid-0.3.0.dist-info → buildgrid-0.3.2.dist-info}/entry_points.txt +0 -0
- {buildgrid-0.3.0.dist-info → buildgrid-0.3.2.dist-info}/licenses/LICENSE +0 -0
- {buildgrid-0.3.0.dist-info → buildgrid-0.3.2.dist-info}/top_level.txt +0 -0
|
@@ -1025,7 +1025,7 @@ def load_sql_scheduler(
|
|
|
1025
1025
|
sql_ro = sql_ro or sql
|
|
1026
1026
|
sql_notifier = sql_notifier or sql
|
|
1027
1027
|
|
|
1028
|
-
logstream_url, logstream_credentials
|
|
1028
|
+
logstream_url, logstream_credentials = get_logstream_connection_info(logstream)
|
|
1029
1029
|
logstream_channel: grpc.Channel | None = None
|
|
1030
1030
|
if logstream_url is not None:
|
|
1031
1031
|
logstream_credentials = logstream_credentials or {}
|
|
@@ -1081,7 +1081,6 @@ def load_sql_scheduler(
|
|
|
1081
1081
|
),
|
|
1082
1082
|
bot_session_keepalive_timeout=bot_session_keepalive_timeout,
|
|
1083
1083
|
logstream_channel=logstream_channel,
|
|
1084
|
-
logstream_instance=logstream_instance,
|
|
1085
1084
|
asset_client=asset_client,
|
|
1086
1085
|
queued_action_retention_hours=queued_action_retention_hours,
|
|
1087
1086
|
completed_action_retention_hours=completed_action_retention_hours,
|
|
@@ -2150,7 +2149,6 @@ def load_metering_service_client(
|
|
|
2150
2149
|
def load_asset_client(
|
|
2151
2150
|
url: str,
|
|
2152
2151
|
credentials: ClientCredentials | None = None,
|
|
2153
|
-
instance_name: str = "",
|
|
2154
2152
|
request_timeout: float = 5.0,
|
|
2155
2153
|
retries: int = 3,
|
|
2156
2154
|
) -> AssetClient:
|
|
@@ -2162,7 +2160,6 @@ def load_asset_client(
|
|
|
2162
2160
|
|
|
2163
2161
|
- !asset-client
|
|
2164
2162
|
url: https://remote-asset.com
|
|
2165
|
-
instance-name: dev
|
|
2166
2163
|
credentials:
|
|
2167
2164
|
tls-client-cert: /path/to/cert
|
|
2168
2165
|
auth-token: /path/to/token
|
|
@@ -2179,7 +2176,7 @@ def load_asset_client(
|
|
|
2179
2176
|
server_cert=credentials.get("tls-server-cert"),
|
|
2180
2177
|
timeout=request_timeout,
|
|
2181
2178
|
)
|
|
2182
|
-
return AssetClient(channel=channel,
|
|
2179
|
+
return AssetClient(channel=channel, retries=retries)
|
|
2183
2180
|
|
|
2184
2181
|
|
|
2185
2182
|
@object_tag("!introspection")
|
|
@@ -2378,18 +2375,16 @@ def _validate_server_credentials(credentials: dict[str, str] | None) -> None:
|
|
|
2378
2375
|
sys.exit(-1)
|
|
2379
2376
|
|
|
2380
2377
|
|
|
2381
|
-
def get_logstream_connection_info(logstream: Any) -> tuple[str | None, dict[str, str] | None
|
|
2378
|
+
def get_logstream_connection_info(logstream: Any) -> tuple[str | None, dict[str, str] | None]:
|
|
2382
2379
|
logstream_url = None
|
|
2383
2380
|
credentials = None
|
|
2384
|
-
logstream_instance_name = None
|
|
2385
2381
|
if logstream:
|
|
2386
2382
|
logstream_url = logstream["url"]
|
|
2387
2383
|
credentials = logstream.get("credentials")
|
|
2388
2384
|
if not _validate_url_and_credentials(logstream_url, credentials=credentials):
|
|
2389
2385
|
sys.exit(-1)
|
|
2390
|
-
logstream_instance_name = logstream.get("instance-name", "")
|
|
2391
2386
|
|
|
2392
|
-
return logstream_url, credentials
|
|
2387
|
+
return logstream_url, credentials
|
|
2393
2388
|
|
|
2394
2389
|
|
|
2395
2390
|
def get_schema(strict: bool = False) -> Any:
|
|
@@ -472,7 +472,7 @@ definitions:
|
|
|
472
472
|
priority-assignment-percentage: { type: number, minimum: 0 }
|
|
473
473
|
metering-service-client: { "$ref": "#/definitions/metering-service-client" }
|
|
474
474
|
metering-throttle-action: { type: string, enum: [deprioritize, reject] }
|
|
475
|
-
logstream: { "$ref": "#/definitions/
|
|
475
|
+
logstream: { "$ref": "#/definitions/logstream-connection-options" }
|
|
476
476
|
asset-client: { "$ref": "#/definitions/asset-client" }
|
|
477
477
|
action-browser-url: { type: string }
|
|
478
478
|
poll-interval: { type: number, minimum: 0 }
|
|
@@ -645,12 +645,11 @@ definitions:
|
|
|
645
645
|
properties:
|
|
646
646
|
kind: { type: string, enum: [ "!asset-client" ] }
|
|
647
647
|
url: { type: string }
|
|
648
|
-
instance-name: { type: string }
|
|
649
648
|
channel-options: { type: object, propertyNames: { pattern: "^[a-z0-9-]+$" } }
|
|
650
649
|
request-timeout: { type: number }
|
|
651
650
|
credentials: { "$ref": "#/definitions/grpc-credentials" }
|
|
652
651
|
retries: { type: number }
|
|
653
|
-
required: [kind, url
|
|
652
|
+
required: [kind, url]
|
|
654
653
|
|
|
655
654
|
metering-service-client:
|
|
656
655
|
type: object
|
|
@@ -783,16 +782,15 @@ definitions:
|
|
|
783
782
|
retry-limit: { type: integer, min: 0 }
|
|
784
783
|
required: [instance-name, index, high-watermark, low-watermark, batch-size]
|
|
785
784
|
|
|
786
|
-
|
|
785
|
+
logstream-connection-options:
|
|
787
786
|
type: object
|
|
788
787
|
propertyNames: { pattern: "^[A-Za-z0-9-]*$" }
|
|
789
788
|
properties:
|
|
790
789
|
url: { type: string }
|
|
791
|
-
instance-name: { type: string }
|
|
792
790
|
channel-options: { type: object, propertyNames: { pattern: "^[a-z0-9-]+$" } }
|
|
793
791
|
request-timeout: { type: number }
|
|
794
792
|
credentials: { "$ref": "#/definitions/grpc-credentials" }
|
|
795
|
-
required: [url
|
|
793
|
+
required: [url]
|
|
796
794
|
|
|
797
795
|
grpc-credentials:
|
|
798
796
|
type: object
|
buildgrid/server/client/asset.py
CHANGED
|
@@ -41,13 +41,11 @@ class AssetClient:
|
|
|
41
41
|
def __init__(
|
|
42
42
|
self,
|
|
43
43
|
channel: grpc.Channel,
|
|
44
|
-
instance_name: str,
|
|
45
44
|
retries: int = 0,
|
|
46
45
|
max_backoff: int = 64,
|
|
47
46
|
should_backoff: bool = True,
|
|
48
47
|
) -> None:
|
|
49
48
|
self._channel = channel
|
|
50
|
-
self._instance_name = instance_name
|
|
51
49
|
self._push_stub = PushStub(channel)
|
|
52
50
|
self._fetch_stub = FetchStub(channel)
|
|
53
51
|
self._retrier = GrpcRetrier(retries=retries, max_backoff=max_backoff, should_backoff=should_backoff)
|
|
@@ -68,6 +66,7 @@ class AssetClient:
|
|
|
68
66
|
expire_at: datetime | None = None,
|
|
69
67
|
referenced_blobs: Iterable[Digest] = [],
|
|
70
68
|
referenced_directories: Iterable[Digest] = [],
|
|
69
|
+
instance_name: str,
|
|
71
70
|
) -> PushBlobResponse:
|
|
72
71
|
def _push_blob() -> PushBlobResponse:
|
|
73
72
|
qualifiers_pb = [Qualifier(name=name, value=value) for name, value in qualifiers.items()]
|
|
@@ -77,7 +76,7 @@ class AssetClient:
|
|
|
77
76
|
expire_at_pb.FromDatetime(expire_at)
|
|
78
77
|
|
|
79
78
|
request = PushBlobRequest(
|
|
80
|
-
instance_name=
|
|
79
|
+
instance_name=instance_name,
|
|
81
80
|
uris=uris,
|
|
82
81
|
qualifiers=qualifiers_pb,
|
|
83
82
|
expire_at=expire_at_pb,
|
|
@@ -98,6 +97,7 @@ class AssetClient:
|
|
|
98
97
|
expire_at: datetime | None = None,
|
|
99
98
|
referenced_blobs: Iterable[Digest] = [],
|
|
100
99
|
referenced_directories: Iterable[Digest] = [],
|
|
100
|
+
instance_name: str,
|
|
101
101
|
) -> PushDirectoryResponse:
|
|
102
102
|
def _push_directory() -> PushDirectoryResponse:
|
|
103
103
|
qualifiers_pb = [Qualifier(name=name, value=value) for name, value in qualifiers.items()]
|
|
@@ -107,7 +107,7 @@ class AssetClient:
|
|
|
107
107
|
expire_at_pb.FromDatetime(expire_at)
|
|
108
108
|
|
|
109
109
|
request = PushDirectoryRequest(
|
|
110
|
-
instance_name=
|
|
110
|
+
instance_name=instance_name,
|
|
111
111
|
uris=uris,
|
|
112
112
|
qualifiers=qualifiers_pb,
|
|
113
113
|
expire_at=expire_at_pb,
|
buildgrid/server/s3/s3utils.py
CHANGED
|
@@ -311,7 +311,7 @@ def _curl_multi_run(
|
|
|
311
311
|
m.remove_handle(c)
|
|
312
312
|
curl_handles.clear()
|
|
313
313
|
|
|
314
|
-
if retry_objects
|
|
314
|
+
if retry_objects:
|
|
315
315
|
# Wait between attempts with truncated exponential backoff with jitter
|
|
316
316
|
exp_backoff = 2 ** (attempt - 1)
|
|
317
317
|
exp_backoff_with_jitter = random.random() * exp_backoff
|
|
@@ -218,7 +218,6 @@ class Scheduler:
|
|
|
218
218
|
metering_throttle_action: MeteringThrottleAction | None = None,
|
|
219
219
|
bot_session_keepalive_timeout: int = 600,
|
|
220
220
|
logstream_channel: Channel | None = None,
|
|
221
|
-
logstream_instance: str | None = None,
|
|
222
221
|
asset_client: AssetClient | None = None,
|
|
223
222
|
queued_action_retention_hours: float | None = None,
|
|
224
223
|
completed_action_retention_hours: float | None = None,
|
|
@@ -268,7 +267,6 @@ class Scheduler:
|
|
|
268
267
|
self.metering_throttle_action = metering_throttle_action or MeteringThrottleAction.DEPRIORITIZE
|
|
269
268
|
self.bot_session_keepalive_timeout = bot_session_keepalive_timeout
|
|
270
269
|
self.logstream_channel = logstream_channel
|
|
271
|
-
self.logstream_instance = logstream_instance
|
|
272
270
|
self.asset_client = asset_client
|
|
273
271
|
self.queued_action_retention_hours = queued_action_retention_hours
|
|
274
272
|
self.completed_action_retention_hours = completed_action_retention_hours
|
|
@@ -414,7 +412,9 @@ class Scheduler:
|
|
|
414
412
|
LOGGER.exception("Checking ActionCache for action failed.", tags=dict(digest=action_digest))
|
|
415
413
|
|
|
416
414
|
# Extend retention for action
|
|
417
|
-
self._update_action_retention(
|
|
415
|
+
self._update_action_retention(
|
|
416
|
+
action, action_digest, self.queued_action_retention_hours, instance_name=current_instance()
|
|
417
|
+
)
|
|
418
418
|
|
|
419
419
|
return self.create_operation_for_new_job(
|
|
420
420
|
action=action,
|
|
@@ -1812,6 +1812,7 @@ class Scheduler:
|
|
|
1812
1812
|
instance_name=instance_name,
|
|
1813
1813
|
expiry_time=datetime.utcnow() + timedelta(seconds=self.bot_session_keepalive_timeout),
|
|
1814
1814
|
capacity=bot_capacity,
|
|
1815
|
+
max_capacity=bot_capacity,
|
|
1815
1816
|
cohort=bot_cohort,
|
|
1816
1817
|
)
|
|
1817
1818
|
)
|
|
@@ -1975,11 +1976,11 @@ class Scheduler:
|
|
|
1975
1976
|
return None
|
|
1976
1977
|
|
|
1977
1978
|
def _create_logstream_for_job(self, job: JobEntry, log_tags: Tags) -> None:
|
|
1978
|
-
if self.logstream_channel
|
|
1979
|
+
if self.logstream_channel:
|
|
1979
1980
|
try:
|
|
1980
1981
|
action_digest = string_to_digest(job.action_digest)
|
|
1981
1982
|
parent_base = f"{action_digest.hash}_{action_digest.size_bytes}_{int(time())}"
|
|
1982
|
-
with logstream_client(self.logstream_channel,
|
|
1983
|
+
with logstream_client(self.logstream_channel, job.instance_name) as ls_client:
|
|
1983
1984
|
stdout_stream = ls_client.create(f"{parent_base}_stdout")
|
|
1984
1985
|
stderr_stream = ls_client.create(f"{parent_base}_stderr")
|
|
1985
1986
|
job.stdout_stream_name = stdout_stream.name
|
|
@@ -2503,9 +2504,12 @@ class Scheduler:
|
|
|
2503
2504
|
Action.FromString(job.action),
|
|
2504
2505
|
string_to_digest(job.action_digest),
|
|
2505
2506
|
retention_hours=self.completed_action_retention_hours,
|
|
2507
|
+
instance_name=job.instance_name,
|
|
2506
2508
|
)
|
|
2507
2509
|
if action_result.ByteSize() > 0:
|
|
2508
|
-
self._update_action_result_retention(
|
|
2510
|
+
self._update_action_result_retention(
|
|
2511
|
+
action_result, retention_hours=self.action_result_retention_hours, instance_name=job.instance_name
|
|
2512
|
+
)
|
|
2509
2513
|
|
|
2510
2514
|
worker_duration = None
|
|
2511
2515
|
if job.worker_start_timestamp is not None and job.worker_completed_timestamp is not None:
|
|
@@ -2749,7 +2753,9 @@ class Scheduler:
|
|
|
2749
2753
|
except Exception as exc:
|
|
2750
2754
|
LOGGER.exception("Cannot publish resource usage.", tags=dict(job_name=job_name), exc_info=exc)
|
|
2751
2755
|
|
|
2752
|
-
def _update_action_retention(
|
|
2756
|
+
def _update_action_retention(
|
|
2757
|
+
self, action: Action, action_digest: Digest, retention_hours: float | None, instance_name: str
|
|
2758
|
+
) -> None:
|
|
2753
2759
|
if not self.asset_client or not retention_hours:
|
|
2754
2760
|
return
|
|
2755
2761
|
uri = DIGEST_URI_TEMPLATE.format(digest_hash=action_digest.hash)
|
|
@@ -2766,6 +2772,7 @@ class Scheduler:
|
|
|
2766
2772
|
expire_at=expire_at,
|
|
2767
2773
|
referenced_blobs=referenced_blobs,
|
|
2768
2774
|
referenced_directories=referenced_directories,
|
|
2775
|
+
instance_name=instance_name,
|
|
2769
2776
|
)
|
|
2770
2777
|
LOGGER.debug(
|
|
2771
2778
|
"Extended the retention of action.", tags=dict(digest=action_digest, retention_hours=retention_hours)
|
|
@@ -2774,7 +2781,9 @@ class Scheduler:
|
|
|
2774
2781
|
LOGGER.exception("Failed to push action as an asset.", tags=dict(digest=action_digest))
|
|
2775
2782
|
# Not a fatal path, don't reraise here
|
|
2776
2783
|
|
|
2777
|
-
def _update_action_result_retention(
|
|
2784
|
+
def _update_action_result_retention(
|
|
2785
|
+
self, action_result: ActionResult, retention_hours: float | None, instance_name: str
|
|
2786
|
+
) -> None:
|
|
2778
2787
|
if not self.asset_client or not retention_hours:
|
|
2779
2788
|
return
|
|
2780
2789
|
digest = None
|
|
@@ -2813,6 +2822,7 @@ class Scheduler:
|
|
|
2813
2822
|
expire_at=expire_at,
|
|
2814
2823
|
referenced_blobs=referenced_blobs,
|
|
2815
2824
|
referenced_directories=referenced_directories,
|
|
2825
|
+
instance_name=instance_name,
|
|
2816
2826
|
)
|
|
2817
2827
|
LOGGER.debug(
|
|
2818
2828
|
"Extended the retention of action result.", tags=dict(digest=digest, retention_hours=retention_hours)
|
buildgrid/server/settings.py
CHANGED
|
@@ -84,7 +84,7 @@ REQUEST_METADATA_TOOL_NAME = "buildgrid"
|
|
|
84
84
|
REQUEST_METADATA_TOOL_VERSION = __version__
|
|
85
85
|
|
|
86
86
|
S3_USERAGENT_NAME = f"{REQUEST_METADATA_TOOL_NAME}/{REQUEST_METADATA_TOOL_VERSION}"
|
|
87
|
-
S3_MAX_RETRIES =
|
|
87
|
+
S3_MAX_RETRIES = 5
|
|
88
88
|
S3_MAX_UPLOAD_SIZE = 8 * 1024 * 1024
|
|
89
89
|
S3_TIMEOUT_CONNECT = 120
|
|
90
90
|
S3_TIMEOUT_READ = 120
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Copyright (C) 2025 Bloomberg LP
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# <http://www.apache.org/licenses/LICENSE-2.0>
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
"""Add immutable jobs.max_capacity column
|
|
16
|
+
|
|
17
|
+
Revision ID: 8f7f43e4a833
|
|
18
|
+
Revises: 85096c931383
|
|
19
|
+
Create Date: 2025-12-09 14:03:01.907296
|
|
20
|
+
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
import sqlalchemy as sa
|
|
24
|
+
from alembic import op
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
# revision identifiers, used by Alembic.
|
|
28
|
+
revision = "8f7f43e4a833"
|
|
29
|
+
down_revision = "85096c931383"
|
|
30
|
+
branch_labels = None
|
|
31
|
+
depends_on = None
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def upgrade() -> None:
|
|
35
|
+
# ### commands auto generated by Alembic - please adjust! ###
|
|
36
|
+
with op.batch_alter_table("bots", schema=None) as batch_op:
|
|
37
|
+
batch_op.add_column(sa.Column("max_capacity", sa.Integer(), server_default=sa.text("1"), nullable=False))
|
|
38
|
+
|
|
39
|
+
# ### end Alembic commands ###
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def downgrade() -> None:
|
|
43
|
+
# ### commands auto generated by Alembic - please adjust! ###
|
|
44
|
+
with op.batch_alter_table("bots", schema=None) as batch_op:
|
|
45
|
+
batch_op.drop_column("max_capacity")
|
|
46
|
+
|
|
47
|
+
# ### end Alembic commands ###
|
buildgrid/server/sql/models.py
CHANGED
|
@@ -277,6 +277,7 @@ class BotEntry(Base):
|
|
|
277
277
|
name: Mapped[str] = mapped_column(primary_key=True)
|
|
278
278
|
bot_id: Mapped[str] = mapped_column(index=True)
|
|
279
279
|
instance_name: Mapped[str] = mapped_column(index=True)
|
|
280
|
+
max_capacity: Mapped[int] = mapped_column(server_default=text("1"))
|
|
280
281
|
|
|
281
282
|
# Scheduling state
|
|
282
283
|
bot_status: Mapped[int]
|
buildgrid/server/version.py
CHANGED
|
@@ -205,10 +205,10 @@ buildgrid/server/monitoring.py,sha256=Ic1qKWfvlmcQOXLN3fVq6Ya1Co1lEU_2aHeXXof2Bf
|
|
|
205
205
|
buildgrid/server/sentry.py,sha256=U5i3x6_zuQlUKoscjDkZCz35TJ-zaNvwlFyjowEEoLk,1471
|
|
206
206
|
buildgrid/server/server.py,sha256=l-UxfEB6IJEEAzXHbXtIklwjiM18tTMPxI3uB7IvzGQ,29438
|
|
207
207
|
buildgrid/server/servicer.py,sha256=oqU9MaSxxHTDmSxobFTo9YmJctaUCklE2Dj-vfYWKkc,6542
|
|
208
|
-
buildgrid/server/settings.py,sha256=
|
|
208
|
+
buildgrid/server/settings.py,sha256=I1UK-g4_GwkX0nGC3hdGS3Cc0Rh1HTYDv2aHU2sq_eU,5604
|
|
209
209
|
buildgrid/server/threading.py,sha256=4QKQYev2KoO2Q-S_OyaoR9qpWyDTVzGMWVe9o2a1yIU,4743
|
|
210
210
|
buildgrid/server/types.py,sha256=xG3bx64pbWMuEwXLuI0o8c2unt2rU2C4zsmUfmMT12c,1323
|
|
211
|
-
buildgrid/server/version.py,sha256=
|
|
211
|
+
buildgrid/server/version.py,sha256=9hszMRmtGUkZbKKAfeEActwnrXaZkxNudCeHQb8v_8o,603
|
|
212
212
|
buildgrid/server/actioncache/__init__.py,sha256=g9lb8Sn7NY5KOjkMr9GQoJovCVDEg_Fxz_EhdDbhP1I,579
|
|
213
213
|
buildgrid/server/actioncache/instance.py,sha256=UCR7ZGkv4fJOXjeIILMAdTSFWcGgBSYlBg8fMaPJpaI,3139
|
|
214
214
|
buildgrid/server/actioncache/service.py,sha256=WcikJAzFYOYX-tgiOfGGcOnPoubrCd4yP-EhKCHEW0c,2021
|
|
@@ -239,9 +239,9 @@ buildgrid/server/app/commands/rpc_utils.py,sha256=3C02_0Ba4Weksb2kX5mANSubmfWAFR
|
|
|
239
239
|
buildgrid/server/app/settings/__init__.py,sha256=g9lb8Sn7NY5KOjkMr9GQoJovCVDEg_Fxz_EhdDbhP1I,579
|
|
240
240
|
buildgrid/server/app/settings/config.py,sha256=3cmmnkvZtM44zXkc6meNpmA6rJoDBbrridHoj-Quapo,9649
|
|
241
241
|
buildgrid/server/app/settings/mapper.py,sha256=sKD3LWyVXZWaFF16_JN1lbJkUE8vp5p06OJGOencxmU,752
|
|
242
|
-
buildgrid/server/app/settings/parser.py,sha256=
|
|
242
|
+
buildgrid/server/app/settings/parser.py,sha256=i8B1Zy6sR2o3n4z8H_e_QlszMTKOiLFPxonVE25MkOo,96439
|
|
243
243
|
buildgrid/server/app/settings/reference.yml,sha256=DTXNJ6TkccgBLcvzj5264XAv6HFlvsc5Lx6iowixHPE,10703
|
|
244
|
-
buildgrid/server/app/settings/schema.yml,sha256=
|
|
244
|
+
buildgrid/server/app/settings/schema.yml,sha256=DqWE6UaNYiJl0Ae5DSmDtU8CijLXeXAeSK9Qal0jwTA,32664
|
|
245
245
|
buildgrid/server/auth/__init__.py,sha256=avyRxG9BSFd76mCHnGYInDDTqyqDn0UlhOuFzAkPQSs,579
|
|
246
246
|
buildgrid/server/auth/config.py,sha256=sWcaSL9Oz7mLVnFBuFT7OaOGlxFd6hxEb-z30n3uTNU,2291
|
|
247
247
|
buildgrid/server/auth/enums.py,sha256=O902XU3_C4rqWz23qVipEyQMcXXr1h8XCiPWmrs1_lc,1905
|
|
@@ -286,7 +286,7 @@ buildgrid/server/cleanup/janitor/types.py,sha256=R3F9OcF1OsRncmHPz6k7G2iSdOxqOw9
|
|
|
286
286
|
buildgrid/server/cleanup/janitor/utils.py,sha256=eYxuJZFJ-7Hhlrj3B3qJvL9X3Se0GEAlkNlXf88swYU,1410
|
|
287
287
|
buildgrid/server/client/__init__.py,sha256=g9lb8Sn7NY5KOjkMr9GQoJovCVDEg_Fxz_EhdDbhP1I,579
|
|
288
288
|
buildgrid/server/client/actioncache.py,sha256=2Xd7HzDRzMWwyiWN1nno1glkGEXrQtjmIFzsa0SHfyQ,5021
|
|
289
|
-
buildgrid/server/client/asset.py,sha256=
|
|
289
|
+
buildgrid/server/client/asset.py,sha256=eZdMuqwrJgPy9U7Q2Qe98P1Vzrry0jZUgxXqH18ru_A,4426
|
|
290
290
|
buildgrid/server/client/auth_token_loader.py,sha256=B95uDkAsHg5p98-jZwBWZAkXEfLVWjgWEhdAC1k8fDU,1604
|
|
291
291
|
buildgrid/server/client/authentication.py,sha256=6J-5PKR5AhBm_CTXWegAsHjUrmwny1wYVCEgfbMs9TM,5140
|
|
292
292
|
buildgrid/server/client/capabilities.py,sha256=2fKyjy-BZK5szC_wQRmGc7bfMx2-G_zl5VZ2uHt6RA4,1687
|
|
@@ -326,16 +326,16 @@ buildgrid/server/quota/service.py,sha256=YFV3zedluSCehFF32sBa_AWPWYS8w_bxHHIbGNv
|
|
|
326
326
|
buildgrid/server/redis/__init__.py,sha256=avyRxG9BSFd76mCHnGYInDDTqyqDn0UlhOuFzAkPQSs,579
|
|
327
327
|
buildgrid/server/redis/provider.py,sha256=oeN69kC0HGLwb-9e2pSOSUleSauUjKkR9NgBbDOfpW4,6270
|
|
328
328
|
buildgrid/server/s3/__init__.py,sha256=zbeeRP9BEeDzR-Mx2Ip6SUr49J8eeXsuREgljJTrHkk,579
|
|
329
|
-
buildgrid/server/s3/s3utils.py,sha256=
|
|
329
|
+
buildgrid/server/s3/s3utils.py,sha256=AcOeUY-KkfwH1ydbulNsxYp3TMmnZj479d9Ceu8TWok,21668
|
|
330
330
|
buildgrid/server/scheduler/__init__.py,sha256=arCg8LWFATeX1tj-s0keVYP8p3wwrrUlCV980bxcSII,1084
|
|
331
331
|
buildgrid/server/scheduler/assigner.py,sha256=wHPAhyiQxYABZJXaUc2g5yFzM78Z0U5nvGV3X9h5pCM,10512
|
|
332
332
|
buildgrid/server/scheduler/cohorts.py,sha256=L_5YZRiVOwPPGStfqnnQXknO5Ja-SC0vq0xjw4XgP-I,1426
|
|
333
333
|
buildgrid/server/scheduler/events.py,sha256=cM7Z7Htr2pYKhltJxfg1YRo0q524yZaGm8yXvRehivk,1453
|
|
334
|
-
buildgrid/server/scheduler/impl.py,sha256=
|
|
334
|
+
buildgrid/server/scheduler/impl.py,sha256=NsZwiSQcQAdWgqh-Y6G0BPhtwJgbEbBa8UnmllsyFWE,135759
|
|
335
335
|
buildgrid/server/scheduler/notifier.py,sha256=22ZsKwyf2oQirAjrwROkvgvr4C_TMUNyhOmtro4uM4I,7121
|
|
336
336
|
buildgrid/server/scheduler/properties.py,sha256=2GydX8KUy9MFv1_JznIkGfWE_wOS0m_XapSv6Gp4pCM,11260
|
|
337
337
|
buildgrid/server/sql/__init__.py,sha256=zbeeRP9BEeDzR-Mx2Ip6SUr49J8eeXsuREgljJTrHkk,579
|
|
338
|
-
buildgrid/server/sql/models.py,sha256=
|
|
338
|
+
buildgrid/server/sql/models.py,sha256=EN7zle9sxSZ_nrv-w1ewXLmsTl1x3q-opwtJ2VPA4G4,14446
|
|
339
339
|
buildgrid/server/sql/provider.py,sha256=CXOpjcUY-InwmGnZTpCd4_ziOdROiDY34_SRpqsBwwk,18965
|
|
340
340
|
buildgrid/server/sql/utils.py,sha256=j76Z_qtGawz6O7vO4-zgCzBV4ylhKszcd_6iY0gV4W4,16470
|
|
341
341
|
buildgrid/server/sql/alembic/README,sha256=MVlc9TYmr57RbhXET6QxgyCcwWP7w-vLkEsirENqiIQ,38
|
|
@@ -351,6 +351,7 @@ buildgrid/server/sql/alembic/versions/55fcf6c874d3_remove_request_metadata_from_
|
|
|
351
351
|
buildgrid/server/sql/alembic/versions/5745d1f0e537_drop_unused_indexes_and_create_.py,sha256=OjQrx8aTNSrwshVDozydcJzJYWmmJLSoGdnSlSMBcGM,2497
|
|
352
352
|
buildgrid/server/sql/alembic/versions/5b90ed0e9d0b_drop_ix_jobs_worker_name_stage.py,sha256=keiHTEhWpor13V4SCW_LqfgEsMn4E8JL_f16JlUhl1U,1585
|
|
353
353
|
buildgrid/server/sql/alembic/versions/85096c931383_drop_ix_jobs_stage_property_label_and_.py,sha256=9r4HEYorA5J4kFarDjdfoJZ-g1HGyEdEIZoVIxlSwAg,1926
|
|
354
|
+
buildgrid/server/sql/alembic/versions/8f7f43e4a833_add_immutable_jobs_max_capacity_column.py,sha256=sUrFN1c4yr82PXeUWaxdJb3nSG_BzXgJH94hLVjVeRw,1446
|
|
354
355
|
buildgrid/server/sql/alembic/versions/8fd7118e215e_add_instanced_job_scheduling_index.py,sha256=U7gmqLlSdl3lsWN2LJYcJHFsIzufvzbHskdmSt5h-Xk,1737
|
|
355
356
|
buildgrid/server/sql/alembic/versions/90bd87d052a0_add_an_audit_table_for_job_state_changes.py,sha256=NrD_D4yjEMQL1cvRZAymxMtU1eyGMkh4OvCsc5y-cXw,1622
|
|
356
357
|
buildgrid/server/sql/alembic/versions/910398062924_add_property_labels_table.py,sha256=2gJlJHMX3zx7uV4bVxCyRXC4ZYsQLdu9nMStWmpx9VM,1755
|
|
@@ -365,9 +366,9 @@ buildgrid/server/utils/async_lru_cache.py,sha256=iLKeRPoZtZb1wC5AtcyQm8Wt0Bx-KZm
|
|
|
365
366
|
buildgrid/server/utils/bots.py,sha256=c8hn7tbCecru-m2wicRmtKU5v5rSZPGlk97Yc6eUHgQ,1729
|
|
366
367
|
buildgrid/server/utils/cancellation.py,sha256=pNETzKNoXg0AsXOXKCcLWlFl7SVKdkKinlqWl7MesRA,1703
|
|
367
368
|
buildgrid/server/utils/digests.py,sha256=YNrWeHdbNp7OVTcsInjs30C33z_t9GQ_noMd14bpqPQ,2424
|
|
368
|
-
buildgrid-0.3.
|
|
369
|
-
buildgrid-0.3.
|
|
370
|
-
buildgrid-0.3.
|
|
371
|
-
buildgrid-0.3.
|
|
372
|
-
buildgrid-0.3.
|
|
373
|
-
buildgrid-0.3.
|
|
369
|
+
buildgrid-0.3.2.dist-info/licenses/LICENSE,sha256=swa3Vs7GgALaG9p-e05M-WLkhd_U9QknacNkyVZ85xA,11338
|
|
370
|
+
buildgrid-0.3.2.dist-info/METADATA,sha256=ZbSgvpI9ItnWHDwTIWVew6XYP-4OnV42Y9NFBo9slhE,7086
|
|
371
|
+
buildgrid-0.3.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
372
|
+
buildgrid-0.3.2.dist-info/entry_points.txt,sha256=uyFAXiR9d6EDfSA5vWT8xskz6xalt4PdTuRruT6Q8rk,49
|
|
373
|
+
buildgrid-0.3.2.dist-info/top_level.txt,sha256=T6TYhI_k6NTm2871tIxGCyBIqzlKxylgF9KDLU0Hi7o,10
|
|
374
|
+
buildgrid-0.3.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|