|
5 | 5 | import base64 |
6 | 6 | import json |
7 | 7 | import logging |
| 8 | +import time |
8 | 9 | from pathlib import Path |
9 | 10 | from typing import Any |
10 | 11 |
|
@@ -143,12 +144,26 @@ def push_job_queue(queue_data: dict, batch_client) -> None: |
143 | 144 |
|
144 | 145 | if response["jobQueues"]: |
145 | 146 | logger.info(f"Job queue {queue_name} already exists, updating") |
146 | | - batch_client.update_job_queue( |
147 | | - jobQueue=queue_name, |
148 | | - state=queue_data.get("state", "ENABLED"), |
149 | | - priority=queue_data.get("priority", 1), |
150 | | - computeEnvironmentOrder=queue_data.get("computeEnvironmentOrder", []), |
151 | | - ) |
| 147 | + try: |
| 148 | + batch_client.update_job_queue( |
| 149 | + jobQueue=queue_name, |
| 150 | + state=queue_data.get("state", "ENABLED"), |
| 151 | + priority=queue_data.get("priority", 1), |
| 152 | + computeEnvironmentOrder=queue_data.get("computeEnvironmentOrder", []), |
| 153 | + ) |
| 154 | + except ClientError as e: |
| 155 | + message = str(e) |
| 156 | + if "is not valid" in message and "attaching" in message: |
| 157 | + logger.info("Need to wait for environment to get validated. Waiting for 20s") |
| 158 | + time.sleep(20) |
| 159 | + batch_client.update_job_queue( |
| 160 | + jobQueue=queue_name, |
| 161 | + state=queue_data.get("state", "ENABLED"), |
| 162 | + priority=queue_data.get("priority", 1), |
| 163 | + computeEnvironmentOrder=queue_data.get("computeEnvironmentOrder", []), |
| 164 | + ) |
| 165 | + else: |
| 166 | + raise |
152 | 167 | _update_batch_resource_tags("job-queue", queue_name, queue_data.get("tags"), batch_client) |
153 | 168 | else: |
154 | 169 | logger.info(f"Creating new job queue: {queue_name}") |
|
0 commit comments