Ejemplo n.º 1
0
    def _initialize_non_regional_device_session(aws_session: AwsSession,
                                                device: AwsDevice,
                                                logger: Logger) -> AwsSession:
        original_region = aws_session.region
        try:
            aws_session.get_device(device)
            return aws_session
        except ClientError as e:
            if e.response["Error"]["Code"] == "ResourceNotFoundException":
                if "qpu" not in device:
                    raise ValueError(
                        f"Simulator '{device}' not found in '{original_region}'"
                    )
            else:
                raise e

        for region in frozenset(AwsDevice.REGIONS) - {original_region}:
            device_session = aws_session.copy_session(region=region)
            try:
                device_session.get_device(device)
                logger.info(
                    f"Changed session region from '{original_region}' to '{device_session.region}'"
                )
                return device_session
            except ClientError as e:
                if e.response["Error"]["Code"] != "ResourceNotFoundException":
                    raise e
        raise ValueError(f"QPU '{device}' not found.")
Ejemplo n.º 2
0
 def _initialize_regional_device_session(aws_session: AwsSession,
                                         device: AwsDevice,
                                         logger: Logger) -> AwsSession:
     device_region = AwsDevice.get_device_region(device)
     current_region = aws_session.region
     if current_region != device_region:
         aws_session = aws_session.copy_session(region=device_region)
         logger.info(
             f"Changed session region from '{current_region}' to '{device_region}'"
         )
     try:
         aws_session.get_device(device)
         return aws_session
     except ClientError as e:
         raise ValueError(f"'{device}' not found.") if e.response["Error"][
             "Code"] == "ResourceNotFoundException" else e
Ejemplo n.º 3
0
 def _populate_properties(self, session: AwsSession) -> None:
     metadata = session.get_device(self._arn)
     self._name = metadata.get("deviceName")
     self._status = metadata.get("deviceStatus")
     self._type = AwsDeviceType(metadata.get("deviceType"))
     self._provider_name = metadata.get("providerName")
     self._properties = metadata.get("deviceCapabilities")