def _wait_for_image(self, image_id): logger.info( f"Image id is {image_id}. Waiting for 120s before checking whether image got created." ) time.sleep(120) request = DescribeImagesRequest() request.set_ImageId(image_id) request.set_Status(",".join([ "Creating", "Available", "UnAvailable", "CreateFailed", "Waiting" ])) max_tries = 120 while max_tries > 0: max_tries -= 1 time.sleep(10) response = self._send_request(request) #logger.info(json.dumps(response, indent=4)) if response.get("TotalCount") >= 1: status = response.get("Images").get("Image")[0].get("Status") if status == "Available": return else: logger.info(f"Image import status: {status}") else: logger.info("Unknown image import status.") raise Exception(f"Image {image_id} not available.")
def _image_exists(self, image_id): request = DescribeImagesRequest() request.set_ImageId(image_id) response = self._send_request(request) if response != None and "TotalCount" in response and response[ "TotalCount"] == 1: return True else: return False