assemblyline-core 4.5.1.dev181__tar.gz → 4.5.1.dev183__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.
Potentially problematic release.
This version of assemblyline-core might be problematic. Click here for more details.
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/PKG-INFO +1 -1
- assemblyline-core-4.5.1.dev183/assemblyline_core/VERSION +1 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/updater/helper.py +57 -5
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/updater/run_updater.py +1 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core.egg-info/PKG-INFO +1 -1
- assemblyline-core-4.5.1.dev181/assemblyline_core/VERSION +0 -1
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/LICENCE.md +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/README.md +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/alerter/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/alerter/processing.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/alerter/run_alerter.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/archiver/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/archiver/run_archiver.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/badlist_client.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/dispatching/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/dispatching/__main__.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/dispatching/client.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/dispatching/dispatcher.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/dispatching/schedules.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/dispatching/timeout.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/expiry/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/expiry/run_expiry.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/ingester/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/ingester/__main__.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/ingester/constants.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/ingester/ingester.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/metrics/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/metrics/es_metrics.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/metrics/heartbeat_formatter.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/metrics/helper.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/metrics/metrics_server.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/metrics/run_heartbeat_manager.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/metrics/run_metrics_aggregator.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/metrics/run_statistics_aggregator.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/plumber/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/plumber/run_plumber.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/replay/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/replay/client.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/replay/creator/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/replay/creator/run.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/replay/creator/run_worker.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/replay/loader/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/replay/loader/run.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/replay/loader/run_worker.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/replay/replay.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/safelist_client.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/scaler/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/scaler/collection.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/scaler/controllers/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/scaler/controllers/docker_ctl.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/scaler/controllers/interface.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/scaler/controllers/kubernetes_ctl.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/scaler/run_scaler.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/scaler/scaler_server.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/server_base.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/signature_client.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/submission_client.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/tasking_client.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/updater/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/vacuum/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/vacuum/crawler.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/vacuum/department_map.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/vacuum/safelist.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/vacuum/stream_map.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/vacuum/worker.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/workflow/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/workflow/run_workflow.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core.egg-info/SOURCES.txt +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core.egg-info/dependency_links.txt +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core.egg-info/requires.txt +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core.egg-info/top_level.txt +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/setup.cfg +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/setup.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/test/test_alerter.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/test/test_badlist_client.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/test/test_dispatcher.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/test/test_expiry.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/test/test_plumber.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/test/test_replay.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/test/test_safelist_client.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/test/test_scaler.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/test/test_scheduler.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/test/test_signature_client.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/test/test_simulation.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/test/test_vacuum.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/test/test_worker_ingest.py +0 -0
- {assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/test/test_worker_submit.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
4.5.1.dev183
|
|
@@ -62,6 +62,40 @@ class DockerRegistry(ContainerRegistry):
|
|
|
62
62
|
return resp_data['tags'] or []
|
|
63
63
|
return []
|
|
64
64
|
|
|
65
|
+
class AzureContainerRegistry(ContainerRegistry):
|
|
66
|
+
def _get_proprietary_registry_tags(self, server, image_name, auth, verify, proxies=None, token_server=None):
|
|
67
|
+
# Find latest tag for each types
|
|
68
|
+
url = f"https://{server}/v2/{image_name}/tags/list"
|
|
69
|
+
|
|
70
|
+
# Get tag list
|
|
71
|
+
headers = {}
|
|
72
|
+
if auth:
|
|
73
|
+
headers["Authorization"] = auth
|
|
74
|
+
|
|
75
|
+
# Attempt request with provided credentials alone
|
|
76
|
+
resp = self._perform_request(url, headers, verify, proxies)
|
|
77
|
+
|
|
78
|
+
if not resp:
|
|
79
|
+
# Authentication with just credentials failed, moving over to generating a bearer token
|
|
80
|
+
|
|
81
|
+
# Retrieve token for authentication: https://azure.github.io/acr/Token-BasicAuth.html#using-the-token-api
|
|
82
|
+
token_url = f"https://{server}/oauth2/token?scope=repository:{image_name}:metadata_read,pull&service={server}"
|
|
83
|
+
resp = self._perform_request(token_url, headers, verify, proxies)
|
|
84
|
+
if resp and resp.ok:
|
|
85
|
+
# Request to obtain token was successful, set Authorization header for registry API
|
|
86
|
+
token = resp.json().get('access_token')
|
|
87
|
+
headers["Authorization"] = f"Bearer {token}"
|
|
88
|
+
|
|
89
|
+
resp = self._perform_request(url, headers, verify, proxies)
|
|
90
|
+
|
|
91
|
+
# At this point, we should have a response from the API
|
|
92
|
+
if resp and resp.ok:
|
|
93
|
+
# Test for positive list of tags
|
|
94
|
+
resp_data = resp.json()
|
|
95
|
+
return resp_data['tags'] or []
|
|
96
|
+
|
|
97
|
+
return []
|
|
98
|
+
|
|
65
99
|
class HarborRegistry(ContainerRegistry):
|
|
66
100
|
def _get_proprietary_registry_tags(self, server, image_name, auth, verify, proxies=None, token_server=None):
|
|
67
101
|
# Determine project/repo IDs from image name
|
|
@@ -158,7 +192,11 @@ def get_latest_tag_for_service(
|
|
|
158
192
|
# We're assuming that if only a password is given, then this is a token
|
|
159
193
|
auth = f"Bearer {service_config.docker_config.registry_password}"
|
|
160
194
|
|
|
161
|
-
|
|
195
|
+
if server.endswith(".azurecr.io"):
|
|
196
|
+
# This is an Azure Container Registry based on the server name
|
|
197
|
+
registry = AzureContainerRegistry()
|
|
198
|
+
else:
|
|
199
|
+
registry = REGISTRY_TYPE_MAPPING[service_config.docker_config.registry_type]
|
|
162
200
|
token_server = None
|
|
163
201
|
proxies = None
|
|
164
202
|
for reg_conf in system_config.core.updater.registry_configs:
|
|
@@ -177,7 +215,7 @@ def get_latest_tag_for_service(
|
|
|
177
215
|
|
|
178
216
|
# Pre-filter tags to only consider 'compatible' tags relative to the running system
|
|
179
217
|
tags = [t for t in tags
|
|
180
|
-
if re.match(f"({FRAMEWORK_VERSION})
|
|
218
|
+
if re.match(f"({FRAMEWORK_VERSION})\.({SYSTEM_VERSION})\.\\d+\.({update_channel})\\d+", t)]
|
|
181
219
|
|
|
182
220
|
if not tags:
|
|
183
221
|
logger.warning(f"{prefix}Cannot fetch latest tag for service {service_name} - {image_name}"
|
|
@@ -212,14 +250,28 @@ def _get_dockerhub_tags(image_name, update_channel, proxies=None):
|
|
|
212
250
|
# Find latest tag for each types
|
|
213
251
|
rv = []
|
|
214
252
|
namespace, repository = image_name.split('/', 1)
|
|
215
|
-
url = f"https://{DEFAULT_DOCKER_REGISTRY}/v2/namespaces/{namespace}/repositories/{repository}/tags"
|
|
216
|
-
|
|
253
|
+
url = f"https://{DEFAULT_DOCKER_REGISTRY}/v2/namespaces/{namespace}/repositories/{repository}/tags" \
|
|
254
|
+
f"?page_size=50&page=1&name={update_channel}&ordering=last_updated"
|
|
217
255
|
|
|
218
256
|
while True:
|
|
219
257
|
resp = requests.get(url, proxies=proxies)
|
|
220
258
|
if resp.ok:
|
|
221
259
|
resp_data = resp.json()
|
|
222
|
-
|
|
260
|
+
if namespace == "cccs":
|
|
261
|
+
# The tags are coming from a repository managed by the Assemblyline team
|
|
262
|
+
for x in resp_data['results']:
|
|
263
|
+
tag_name = x['name']
|
|
264
|
+
if tag_name == f"{FRAMEWORK_VERSION}.{SYSTEM_VERSION}.{update_channel}":
|
|
265
|
+
# Ignore tag aliases containing the update_channel
|
|
266
|
+
continue
|
|
267
|
+
|
|
268
|
+
if tag_name.startswith(f"{FRAMEWORK_VERSION}.{SYSTEM_VERSION}"):
|
|
269
|
+
# Because the order of paging is based on `last_updated`,
|
|
270
|
+
# we can return the first valid candidate
|
|
271
|
+
return [tag_name]
|
|
272
|
+
else:
|
|
273
|
+
# The tags are coming from another repository, so we're don't know the ordering of tags
|
|
274
|
+
rv.extend([x['name'] for x in resp_data['results']])
|
|
223
275
|
# Page until there are no results left
|
|
224
276
|
url = resp_data.get('next', None)
|
|
225
277
|
if url is None:
|
|
@@ -337,6 +337,7 @@ class KubernetesUpdateInterface:
|
|
|
337
337
|
priority_class_name=self.priority_class,
|
|
338
338
|
service_account_name=docker_config.service_account or self.default_service_account or PRIVILEGED_SERVICE_ACCOUNT_NAME,
|
|
339
339
|
affinity=selector_to_node_affinity(self.linux_node_selector),
|
|
340
|
+
tolerations=self.default_service_tolerations
|
|
340
341
|
)
|
|
341
342
|
|
|
342
343
|
if use_pull_secret:
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
4.5.1.dev181
|
|
File without changes
|
|
File without changes
|
{assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/replay/client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/replay/replay.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/server_base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/assemblyline_core/vacuum/worker.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/test/test_badlist_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/test/test_safelist_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/test/test_signature_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/test/test_worker_ingest.py
RENAMED
|
File without changes
|
{assemblyline-core-4.5.1.dev181 → assemblyline-core-4.5.1.dev183}/test/test_worker_submit.py
RENAMED
|
File without changes
|