Skip to content

Commit f2175c2

Browse files
committed
Fix CreateFleet output parsing
Fix CreateFleet output parsing because ResponseMetadata is at root level of the CreateFleet output and not inside the Errors list Signed-off-by: Luca Carrogu <[email protected]>
1 parent f20d908 commit f2175c2

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

src/slurm_plugin/fleet_manager.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,7 @@ def _launch_instances(self, launch_params):
319319
logger.log(
320320
log_level,
321321
"Error in CreateFleet request (%s): %s - %s",
322-
err.get("ResponseMetadata").get("RequestId"),
322+
response.get("ResponseMetadata", {}).get("RequestId"),
323323
err.get("ErrorCode"),
324324
err.get("ErrorMessage"),
325325
)
@@ -331,7 +331,7 @@ def _launch_instances(self, launch_params):
331331

332332
return {"Instances": instances}
333333
except ClientError as e:
334-
logger.error("Failed CreateFleet request: %s", e.response.get("ResponseMetadata").get("RequestId"))
334+
logger.error("Failed CreateFleet request: %s", e.response.get("ResponseMetadata", {}).get("RequestId"))
335335
raise e
336336

337337
def _get_instances_info(self, instance_ids: list):

tests/slurm_plugin/test_fleet_manager.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -368,7 +368,13 @@ def test_evaluate_launch_params(
368368
[
369369
MockedBoto3Request(
370370
method="create_fleet",
371-
response={"Instances": [{"InstanceIds": ["i-12345", "i-23456"]}]},
371+
response={
372+
"Instances": [{"InstanceIds": ["i-12345", "i-23456"]}],
373+
"Errors": [
374+
{"ErrorCode": "InsufficientInstanceCapacity", "ErrorMessage": "Insufficient capacity."}
375+
],
376+
"ResponseMetadata": {"RequestId": "1234-abcde"},
377+
},
372378
expected_params=_mocked_create_fleet_params(
373379
"queue1", "fleet-spot", 1, "capacity-optimized", "spot"
374380
),
@@ -420,7 +426,13 @@ def test_evaluate_launch_params(
420426
[
421427
MockedBoto3Request(
422428
method="create_fleet",
423-
response={"Instances": [{"InstanceIds": ["i-12345"]}]},
429+
response={
430+
"Instances": [{"InstanceIds": ["i-12345"]}],
431+
"Errors": [
432+
{"ErrorCode": "InsufficientInstanceCapacity", "ErrorMessage": "Insufficient capacity."}
433+
],
434+
"ResponseMetadata": {"RequestId": "1234-abcde"},
435+
},
424436
expected_params=_mocked_create_fleet_params(
425437
"queue2", "fleet-ondemand", 1, "lowest-price", "on-demand"
426438
),

0 commit comments

Comments
 (0)