Skip to content

Commit fe2bc8c

Browse files
deps: update shared (use new minio storage service) (#944)
1 parent e45ac14 commit fe2bc8c

20 files changed

+91
-135
lines changed

Diff for: app.py

-7
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import logging
22
import logging.config
3-
import os
43

5-
import django
64
from celery import Celery, signals
75

86
from helpers.logging_config import get_logging_config_dict
@@ -13,11 +11,6 @@
1311
_config_dict = get_logging_config_dict()
1412
logging.config.dictConfig(_config_dict)
1513

16-
# we're moving this before we create the Celery object
17-
# so that celery can detect Django is being used
18-
# using the Django fixup will help fix some database issues
19-
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_scaffold.settings")
20-
django.setup()
2114

2215
celery_app = Celery("tasks")
2316
celery_app.config_from_object("celery_config:CeleryWorkerConfig")

Diff for: conftest.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -270,10 +270,10 @@ def mock_redis(mocker):
270270

271271
@pytest.fixture
272272
def mock_storage(mocker):
273-
m = mocker.patch("services.storage._cached_get_storage_client")
273+
m = mocker.patch("shared.storage.get_appropriate_storage_service")
274274
storage_server = MemoryStorageService({})
275275
m.return_value = storage_server
276-
yield storage_server
276+
return storage_server
277277

278278

279279
@pytest.fixture

Diff for: main.py

+31-19
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,32 @@
1-
# -*- coding: utf-8 -*-
2-
import logging
31
import os
4-
import sys
5-
import typing
6-
7-
import click
8-
from celery.signals import worker_process_shutdown
9-
from prometheus_client import REGISTRY, CollectorRegistry, multiprocess
10-
from shared.celery_config import BaseCeleryConfig
11-
from shared.config import get_config
12-
from shared.license import startup_license_logging
13-
from shared.metrics import start_prometheus
14-
from shared.storage.exceptions import BucketAlreadyExistsError
15-
16-
import app
17-
from helpers.environment import get_external_dependencies_folder
18-
from helpers.version import get_current_version
19-
from services.storage import get_storage_client
2+
3+
import django
4+
5+
# we're moving this before we create the Celery object
6+
# so that celery can detect Django is being used
7+
# using the Django fixup will help fix some database issues
8+
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_scaffold.settings")
9+
django.setup()
10+
11+
# -*- coding: utf-8 -*-
12+
import logging # noqa: E402
13+
import os # noqa: E402
14+
import sys # noqa: E402
15+
import typing # noqa: E402
16+
17+
import click # noqa: E402
18+
import shared.storage # noqa: E402
19+
from celery.signals import worker_process_shutdown # noqa: E402
20+
from prometheus_client import REGISTRY, CollectorRegistry, multiprocess # noqa: E402
21+
from shared.celery_config import BaseCeleryConfig # noqa: E402
22+
from shared.config import get_config # noqa: E402
23+
from shared.license import startup_license_logging # noqa: E402
24+
from shared.metrics import start_prometheus # noqa: E402
25+
from shared.storage.exceptions import BucketAlreadyExistsError # noqa: E402
26+
27+
import app # noqa: E402
28+
from helpers.environment import get_external_dependencies_folder # noqa: E402
29+
from helpers.version import get_current_version # noqa: E402
2030

2131
log = logging.getLogger(__name__)
2232

@@ -69,7 +79,9 @@ def setup_worker():
6979

7080
start_prometheus(9996, registry=registry) # 9996 is an arbitrary port number
7181

72-
storage_client = get_storage_client()
82+
# this storage client is only used to create the bucket so it doesn't need to be
83+
# aware of the repoid
84+
storage_client = shared.storage.get_appropriate_storage_service()
7385
minio_config = get_config("services", "minio")
7486
bucket_name = get_config("services", "minio", "bucket", default="archive")
7587
auto_create_bucket = get_config(

Diff for: requirements.in

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
https://github.com/codecov/test-results-parser/archive/c840502d1b4dd7d05b2efc2c1328affaf2acd27c.tar.gz#egg=test-results-parser
2-
https://github.com/codecov/shared/archive/45252f75524c38172b991a960bac964ec7b6f7d1.tar.gz#egg=shared
2+
https://github.com/codecov/shared/archive/8c5de3fadd3c987304043c6cfd64864f372d674f.tar.gz#egg=shared
33
https://github.com/codecov/timestring/archive/d37ceacc5954dff3b5bd2f887936a98a668dda42.tar.gz#egg=timestring
44
asgiref>=3.7.2
55
analytics-python==1.3.0b1

Diff for: requirements.txt

+4-2
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ sentry-sdk==2.13.0
328328
# shared
329329
setuptools==75.6.0
330330
# via nodeenv
331-
shared @ https://github.com/codecov/shared/archive/45252f75524c38172b991a960bac964ec7b6f7d1.tar.gz#egg=shared
331+
shared @ https://github.com/codecov/shared/archive/8c5de3fadd3c987304043c6cfd64864f372d674f.tar.gz#egg=shared
332332
# via -r requirements.in
333333
six==1.16.0
334334
# via
@@ -399,4 +399,6 @@ wrapt==1.16.0
399399
yarl==1.9.4
400400
# via vcrpy
401401
zstandard==0.23.0
402-
# via -r requirements.in
402+
# via
403+
# -r requirements.in
404+
# shared

Diff for: services/archive.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
from uuid import uuid4
88

99
import sentry_sdk
10+
import shared.storage
1011
from shared.config import get_config
1112
from shared.utils.ReportEncoder import ReportEncoder
1213

1314
from helpers.metrics import metrics
14-
from services.storage import get_storage_client
1515

1616
log = logging.getLogger(__name__)
1717

@@ -51,7 +51,7 @@ def __init__(self, repository, bucket=None) -> None:
5151
self.root = get_config("services", "minio", "bucket", default="archive")
5252
else:
5353
self.root = bucket
54-
self.storage = get_storage_client()
54+
self.storage = shared.storage.get_appropriate_storage_service(repository.repoid)
5555
log.debug("Getting archive hash")
5656
self.storage_hash = self.get_archive_hash(repository)
5757

Diff for: services/bundle_analysis/comparison.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
from functools import cached_property
22

3+
import shared.storage
34
from shared.bundle_analysis import (
45
BundleAnalysisComparison,
56
BundleAnalysisReportLoader,
67
)
7-
from shared.storage import get_appropriate_storage_service
88

99
from database.enums import ReportType
1010
from database.models.core import Commit, Repository
@@ -69,7 +69,9 @@ def head_commit_report(self) -> CommitReport:
6969

7070
def get_comparison(self) -> BundleAnalysisComparison:
7171
loader = BundleAnalysisReportLoader(
72-
storage_service=get_appropriate_storage_service(),
72+
storage_service=shared.storage.get_appropriate_storage_service(
73+
self.repository.repoid
74+
),
7375
repo_key=ArchiveService.get_archive_hash(self.repository),
7476
)
7577

Diff for: services/bundle_analysis/notify/contexts/__init__.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from typing import Generic, Literal, Self, TypeVar
44

55
import sentry_sdk
6+
import shared.storage
67
from shared.bundle_analysis import BundleAnalysisReport, BundleAnalysisReportLoader
78
from shared.torngit.base import TorngitBaseAdapter
89
from shared.validation.types import BundleThreshold
@@ -18,7 +19,6 @@
1819
NotificationUserConfig,
1920
)
2021
from services.repository import get_repo_provider_service
21-
from services.storage import get_storage_client
2222

2323
T = TypeVar("T")
2424

@@ -167,7 +167,9 @@ def load_bundle_analysis_report(self) -> "NotificationContextBuilder":
167167
repo_hash = ArchiveService.get_archive_hash(
168168
self._notification_context.repository
169169
)
170-
storage_service = get_storage_client()
170+
storage_service = shared.storage.get_appropriate_storage_service(
171+
self._notification_context.repository.repoid
172+
)
171173
analysis_report_loader = BundleAnalysisReportLoader(storage_service, repo_hash)
172174
bundle_analysis_report = analysis_report_loader.load(
173175
self._notification_context.commit_report.external_id

Diff for: services/bundle_analysis/notify/contexts/tests/test_comment_context.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -290,10 +290,7 @@ def test_build_context(self, dbsession, mocker, mock_storage):
290290
builder = BundleAnalysisPRCommentContextBuilder().initialize(
291291
head_commit, user_yaml, GITHUB_APP_INSTALLATION_DEFAULT_NAME
292292
)
293-
mocker.patch(
294-
"services.bundle_analysis.comparison.get_appropriate_storage_service",
295-
return_value=mock_storage,
296-
)
293+
297294
context = builder.build_context().get_result()
298295
assert context.commit_report == head_commit_report
299296
assert context.bundle_analysis_report.session_count() == 18

Diff for: services/bundle_analysis/notify/contexts/tests/test_commit_status_context.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -235,10 +235,7 @@ def test_build_context(self, dbsession, mocker, mock_storage):
235235
builder = CommitStatusNotificationContextBuilder().initialize(
236236
head_commit, user_yaml, GITHUB_APP_INSTALLATION_DEFAULT_NAME
237237
)
238-
mocker.patch(
239-
"services.bundle_analysis.comparison.get_appropriate_storage_service",
240-
return_value=mock_storage,
241-
)
238+
242239
context = builder.build_context().get_result()
243240
assert context.commit_report == head_commit_report
244241
assert context.bundle_analysis_report.session_count() == 18

Diff for: services/bundle_analysis/notify/messages/tests/test_comment.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,7 @@ def test_build_message_from_samples(self, dbsession, mocker, mock_storage):
4848
builder = BundleAnalysisPRCommentContextBuilder().initialize(
4949
head_commit, user_yaml, GITHUB_APP_INSTALLATION_DEFAULT_NAME
5050
)
51-
mocker.patch(
52-
"services.bundle_analysis.comparison.get_appropriate_storage_service",
53-
return_value=mock_storage,
54-
)
51+
5552
context = builder.build_context().get_result()
5653
message = BundleAnalysisCommentMarkdownStrategy().build_message(context)
5754
assert message == dedent("""\

Diff for: services/bundle_analysis/notify/messages/tests/test_commit_status.py

+3-12
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,7 @@ def test_build_message_from_samples_negative_changes(
102102
builder = CommitStatusNotificationContextBuilder().initialize(
103103
head_commit, user_yaml, GITHUB_APP_INSTALLATION_DEFAULT_NAME
104104
)
105-
mocker.patch(
106-
"services.bundle_analysis.comparison.get_appropriate_storage_service",
107-
return_value=mock_storage,
108-
)
105+
109106
context = builder.build_context().get_result()
110107
message = CommitStatusMessageStrategy().build_message(context)
111108
assert message == expected
@@ -157,10 +154,7 @@ def test_build_message_from_samples(
157154
builder = CommitStatusNotificationContextBuilder().initialize(
158155
head_commit, user_yaml, GITHUB_APP_INSTALLATION_DEFAULT_NAME
159156
)
160-
mocker.patch(
161-
"services.bundle_analysis.comparison.get_appropriate_storage_service",
162-
return_value=mock_storage,
163-
)
157+
164158
context = builder.build_context().get_result()
165159
message = CommitStatusMessageStrategy().build_message(context)
166160
assert message == expected
@@ -178,10 +172,7 @@ def _setup_send_message_tests(
178172
"services.bundle_analysis.notify.contexts.get_repo_provider_service",
179173
return_value=fake_repo_provider,
180174
)
181-
mocker.patch(
182-
"services.bundle_analysis.comparison.get_appropriate_storage_service",
183-
return_value=mock_storage,
184-
)
175+
185176
head_commit, base_commit = get_commit_pair(dbsession)
186177
head_commit.parent_commit_id = base_commit.commitid
187178
dbsession.add_all([head_commit, base_commit])

Diff for: services/bundle_analysis/notify/tests/test_notify_service.py

-4
Original file line numberDiff line numberDiff line change
@@ -135,10 +135,6 @@ def test_create_context_success(self, dbsession, mock_storage, mocker):
135135
enriched_pull = get_enriched_pull_setting_up_mocks(
136136
dbsession, mocker, (head_commit, base_commit)
137137
)
138-
mocker.patch(
139-
"services.bundle_analysis.comparison.get_appropriate_storage_service",
140-
return_value=mock_storage,
141-
)
142138
service = BundleAnalysisNotifyService(head_commit, current_yaml)
143139
result = service.create_context_for_notification(
144140
BaseBundleAnalysisNotificationContext(

Diff for: services/bundle_analysis/report.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from typing import Any, Dict, Optional
66

77
import sentry_sdk
8+
import shared.storage
89
from shared.bundle_analysis import BundleAnalysisReport, BundleAnalysisReportLoader
910
from shared.bundle_analysis.models import AssetType, MetadataKey
1011
from shared.bundle_analysis.storage import get_bucket_name
@@ -25,7 +26,6 @@
2526
from database.models.timeseries import Measurement, MeasurementName
2627
from services.archive import ArchiveService
2728
from services.report import BaseReportService
28-
from services.storage import get_storage_client
2929
from services.timeseries import repository_datasets_query
3030

3131
log = logging.getLogger(__name__)
@@ -234,7 +234,7 @@ def process_upload(
234234
"""
235235
commit_report: CommitReport = upload.report
236236
repo_hash = ArchiveService.get_archive_hash(commit_report.commit.repository)
237-
storage_service = get_storage_client()
237+
storage_service = shared.storage.get_appropriate_storage_service(commit.repoid)
238238
bundle_loader = BundleAnalysisReportLoader(storage_service, repo_hash)
239239

240240
# fetch existing bundle report from storage
@@ -383,7 +383,9 @@ def save_measurements(
383383
try:
384384
commit_report: CommitReport = upload.report
385385
repo_hash = ArchiveService.get_archive_hash(commit_report.commit.repository)
386-
storage_service = get_storage_client()
386+
storage_service = shared.storage.get_appropriate_storage_service(
387+
commit.repoid
388+
)
387389
bundle_loader = BundleAnalysisReportLoader(storage_service, repo_hash)
388390

389391
# fetch existing bundle report from storage

0 commit comments

Comments
 (0)