Skip to content

Commit 7d3730a

Browse files
committed
Azure: allow configure to receive multiple resources
This commit updates `AzureService.configure` endpoint to receive a list of resources instead of a single resource. It aligns the public endpoint with the Azure API as well as allows multiple resources to be configured in a single request. Refers to SPSTRAT-604 Signed-off-by: Jonathan Gangi <[email protected]>
1 parent 2b2b61b commit 7d3730a

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed

cloudpub/ms_azure/service.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -185,19 +185,19 @@ def _wait_for_job_completion(self, job_id: str) -> ConfigureStatus:
185185
log.debug("Job %s succeeded", job_id)
186186
return job_details
187187

188-
def configure(self, resource: AzureResource) -> ConfigureStatus:
188+
def configure(self, resources: List[AzureResource]) -> ConfigureStatus:
189189
"""
190190
Create or update a resource and wait until it's done.
191191
192192
Args:
193-
resource (AzureResource):
194-
The resource to create/modify in Azure.
193+
resources (List[AzureResource]):
194+
The list of resources to create/modify in Azure.
195195
Returns:
196196
dict: The result of job execution
197197
"""
198198
data = {
199199
"$schema": self.CONFIGURE_SCHEMA.format(AZURE_API_VERSION=self.AZURE_API_VERSION),
200-
"resources": [resource.to_json()],
200+
"resources": [x.to_json() for x in resources],
201201
}
202202
if log.isEnabledFor(logging.DEBUG):
203203
log.debug("Data to configure: %s", json.dumps(data, indent=2))
@@ -448,7 +448,7 @@ def submit_to_status(self, product_id: str, status: str) -> ConfigureStatus:
448448
submission.target.targetType = status
449449
log.debug("Set the status \"%s\" to submission.", status)
450450

451-
return self.configure(resource=submission)
451+
return self.configure(resources=[submission])
452452

453453
@retry(
454454
wait=wait_fixed(300),
@@ -685,7 +685,7 @@ def publish(self, metadata: AzurePublishingMetadata) -> None:
685685
metadata.destination,
686686
tgt,
687687
)
688-
self.configure(resource=tech_config)
688+
self.configure(resources=[tech_config])
689689

690690
# 5. Proceed to publishing if it was requested.
691691
# Note: The publishing will only occur if it made changes in disk_version.

tests/ms_azure/test_service.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ def test_configure(
263263
}
264264

265265
with caplog.at_level(logging.DEBUG):
266-
azure_service.configure(submission_obj)
266+
azure_service.configure([submission_obj])
267267

268268
mock_configure.assert_called_once_with(data=expected_data)
269269
mock_wait_completion.assert_called_once_with(job_id=job_id)
@@ -700,7 +700,7 @@ def test_submit_to_status(
700700
azure_service.submit_to_status(product_obj.id, final_status)
701701

702702
mock_getsubst.assert_called_once_with(product_id=product_obj.id, state=prev_status)
703-
mock_configure.assert_called_once_with(resource=submission_obj)
703+
mock_configure.assert_called_once_with(resources=[submission_obj])
704704

705705
@mock.patch("cloudpub.ms_azure.AzureService.configure")
706706
@mock.patch("cloudpub.ms_azure.AzureService.get_submission_state")
@@ -1023,7 +1023,7 @@ def test_publish_overwrite(
10231023
plan_name="plan-1",
10241024
old_skus=expected_tech_config.skus,
10251025
)
1026-
mock_configure.assert_called_once_with(resource=technical_config_obj)
1026+
mock_configure.assert_called_once_with(resources=[technical_config_obj])
10271027
mock_submit.assert_not_called()
10281028

10291029
@mock.patch("cloudpub.ms_azure.AzureService.configure")
@@ -1090,7 +1090,7 @@ def test_publish_nodiskversion(
10901090
old_skus=expected_tech_config.skus,
10911091
)
10921092
mock_disk_scratch.assert_called_once_with(metadata_azure_obj, expected_source)
1093-
mock_configure.assert_called_once_with(resource=expected_tech_config)
1093+
mock_configure.assert_called_once_with(resources=[expected_tech_config])
10941094
mock_submit.assert_not_called()
10951095

10961096
@pytest.mark.parametrize("keepdraft", [True, False], ids=["nochannel", "push"])
@@ -1219,7 +1219,7 @@ def test_publish_novmimages(
12191219
)
12201220
mock_prep_img.assert_not_called()
12211221
mock_disk_scratch.assert_not_called()
1222-
mock_configure.assert_called_once_with(resource=expected_tech_config)
1222+
mock_configure.assert_called_once_with(resources=[expected_tech_config])
12231223
mock_submit.assert_not_called()
12241224

12251225
@mock.patch("cloudpub.ms_azure.AzureService.configure")
@@ -1290,7 +1290,7 @@ def test_publish_disk_has_images(
12901290
source=expected_source,
12911291
)
12921292
mock_disk_scratch.assert_not_called()
1293-
mock_configure.assert_called_once_with(resource=technical_config_obj)
1293+
mock_configure.assert_called_once_with(resources=[technical_config_obj])
12941294
mock_submit.assert_not_called()
12951295

12961296
def test_is_submission_in_preview(
@@ -1415,7 +1415,7 @@ def test_publish_live_x64_only(
14151415
)
14161416
mock_disk_scratch.assert_not_called()
14171417
mock_diff_offer.assert_called_once_with(product_obj)
1418-
mock_configure.assert_called_once_with(resource=technical_config_obj)
1418+
mock_configure.assert_called_once_with(resources=[technical_config_obj])
14191419
submit_calls = [
14201420
mock.call(product_id=product_obj.id, status="preview"),
14211421
mock.call(product_id=product_obj.id, status="live"),
@@ -1507,7 +1507,7 @@ def test_publish_live_arm64_only(
15071507
)
15081508
mock_disk_scratch.assert_not_called()
15091509
mock_diff_offer.assert_called_once_with(product_obj)
1510-
mock_configure.assert_called_once_with(resource=technical_config_obj)
1510+
mock_configure.assert_called_once_with(resources=[technical_config_obj])
15111511
submit_calls = [
15121512
mock.call(product_id=product_obj.id, status="preview"),
15131513
mock.call(product_id=product_obj.id, status="live"),

0 commit comments

Comments
 (0)