本文整理汇总了Python中botocore.exceptions.BotoCoreError方法的典型用法代码示例。如果您正苦于以下问题:Python exceptions.BotoCoreError方法的具体用法?Python exceptions.BotoCoreError怎么用?Python exceptions.BotoCoreError使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类botocore.exceptions
的用法示例。
在下文中一共展示了exceptions.BotoCoreError方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _load
# 需要导入模块: from botocore import exceptions [as 别名]
# 或者: from botocore.exceptions import BotoCoreError [as 别名]
def _load(self, zip_file_dir: str, market_definition: dict) -> None:
# note this will block the main handler queue during upload
# todo create background worker instead?
event_type_id = (
market_definition.get("eventTypeId", 0) if market_definition else "7"
)
try:
self.transfer.upload_file(
filename=zip_file_dir,
bucket=self._bucket,
key=os.path.join(
self._data_type,
"streaming",
event_type_id,
os.path.basename(zip_file_dir),
),
extra_args={
"Metadata": self._create_metadata(market_definition)
if market_definition
else {}
},
)
logger.info("%s successfully loaded to s3" % zip_file_dir)
except (BotoCoreError, Exception) as e:
logger.error("Error loading to s3: %s" % e)
示例2: get_images
# 需要导入模块: from botocore import exceptions [as 别名]
# 或者: from botocore.exceptions import BotoCoreError [as 别名]
def get_images(self, name_pattern):
"""
Return list of AMIs matching the given name_pattern
:param name_pattern: str: AMI name pattern
:return: list(dict)
:raise CfnSphereException:
"""
filters = [
{'Name': 'name', 'Values': [name_pattern]},
{'Name': 'is-public', 'Values': ['false']},
{'Name': 'state', 'Values': ['available']},
{'Name': 'root-device-type', 'Values': ['ebs']}
]
try:
response = self.client.describe_images(ExecutableUsers=["self"], Filters=filters)
except (BotoCoreError, ClientError) as e:
raise CfnSphereBotoError(e)
if not response['Images']:
raise CfnSphereException("Could not find any private and available Taupage AMI")
return response['Images']
示例3: create_stack
# 需要导入模块: from botocore import exceptions [as 别名]
# 或者: from botocore.exceptions import BotoCoreError [as 别名]
def create_stack(self, stack):
self.logger.debug("Creating stack: {0}".format(stack))
assert isinstance(stack, CloudFormationStack)
try:
stack_parameters_string = get_pretty_parameters_string(stack)
self.logger.info(
"Creating stack {0} ({1}) with parameters:\n{2}".format(stack.name,
stack.template.name,
stack_parameters_string))
self._create_stack(stack)
self.wait_for_stack_action_to_complete(stack.name, "create", stack.timeout)
stack_outputs = get_pretty_stack_outputs(self.get_stack_outputs(stack))
if stack_outputs:
self.logger.info("Create completed for {0} with outputs: \n{1}".format(stack.name, stack_outputs))
else:
self.logger.info("Create completed for {0}".format(stack.name))
except (BotoCoreError, ClientError, CfnSphereBotoError) as e:
raise CfnStackActionFailedException("Could not create {0}: {1}".format(stack.name, e))
示例4: delete_stack
# 需要导入模块: from botocore import exceptions [as 别名]
# 或者: from botocore.exceptions import BotoCoreError [as 别名]
def delete_stack(self, stack):
self.logger.debug("Deleting stack: {0}".format(stack))
assert isinstance(stack, CloudFormationStack)
try:
self.logger.info("Deleting stack {0}".format(stack.name))
self._delete_stack(stack)
try:
self.wait_for_stack_action_to_complete(stack.name, "delete", stack.timeout)
except CfnSphereBotoError as e:
if self.is_boto_stack_does_not_exist_exception(e.boto_exception):
pass
else:
raise
self.logger.info("Deletion completed for {0}".format(stack.name))
except (BotoCoreError, ClientError, CfnSphereBotoError) as e:
raise CfnStackActionFailedException("Could not delete {0}: {1}".format(stack.name, e))
示例5: get_meta_table
# 需要导入模块: from botocore import exceptions [as 别名]
# 或者: from botocore.exceptions import BotoCoreError [as 别名]
def get_meta_table(self, table_name: str, refresh: bool = False):
"""
Returns a MetaTable
"""
if table_name not in self._tables or refresh:
operation_kwargs = {
TABLE_NAME: table_name
}
try:
data = self.dispatch(DESCRIBE_TABLE, operation_kwargs)
self._tables[table_name] = MetaTable(data.get(TABLE_KEY))
except BotoCoreError as e:
raise TableError("Unable to describe table: {}".format(e), e)
except ClientError as e:
if 'ResourceNotFound' in e.response['Error']['Code']:
raise TableDoesNotExist(e.response['Error']['Message'])
else:
raise
return self._tables[table_name]
示例6: _process_md5
# 需要导入模块: from botocore import exceptions [as 别名]
# 或者: from botocore.exceptions import BotoCoreError [as 别名]
def _process_md5(md5: str) -> bool:
"""Download the given file from CarbonBlack and upload to S3, returning True if successful."""
try:
binary = CARBON_BLACK.select(Binary, md5)
_upload_to_s3(binary)
return True
except zipfile.BadZipFile:
LOGGER.exception('[BadZipFile] Error downloading %s', md5)
LOGGER.info('This md5 is invalid and will not retried')
return False
except (BotoCoreError, ServerError):
LOGGER.exception('Error downloading %s', md5)
LOGGER.error(
'A temporary error was encountered during downloading. This md5 will be '
'retried at a later time.'
)
raise
except ObjectNotFoundError:
LOGGER.exception('Error downloading %s', md5)
LOGGER.info(
'This may be caused due to a race condition where the requested binary is not yet '
'available for download from the server. This binary will be retried at a later time.'
)
raise
示例7: test_remove_bad_client
# 需要导入模块: from botocore import exceptions [as 别名]
# 或者: from botocore.exceptions import BotoCoreError [as 别名]
def test_remove_bad_client():
test = KMSMasterKeyProvider()
test.add_regional_client("us-fakey-12")
with pytest.raises(BotoCoreError):
test._regional_clients["us-fakey-12"].list_keys()
assert not test._regional_clients
示例8: get_contents_from_url
# 需要导入模块: from botocore import exceptions [as 别名]
# 或者: from botocore.exceptions import BotoCoreError [as 别名]
def get_contents_from_url(self, url):
try:
(_, bucket_name, key_name) = self._parse_url(url)
s3_object = self.s3.Object(bucket_name, key_name)
return s3_object.get(ResponseContentEncoding='utf-8')["Body"].read().decode('utf-8')
except (Boto3Error, BotoCoreError, ClientError) as e:
raise CfnSphereBotoError(e)
示例9: get_stacks
# 需要导入模块: from botocore import exceptions [as 别名]
# 或者: from botocore.exceptions import BotoCoreError [as 别名]
def get_stacks(self):
"""
Get all stacks
:return: List(boto3.resources.factory.cloudformation.Stack)
:raise CfnSphereBotoError:
"""
try:
return list(self.resource.stacks.all())
except (BotoCoreError, ClientError) as e:
raise CfnSphereBotoError(e)
示例10: get_stack_description
# 需要导入模块: from botocore import exceptions [as 别名]
# 或者: from botocore.exceptions import BotoCoreError [as 别名]
def get_stack_description(self, stack_name):
"""
Get a stacks descriptions
:param stack_name: string
:return dict
:raise CfnSphereBotoError:
"""
try:
return self.client.describe_stacks(StackName=stack_name)["Stacks"][0]
except (BotoCoreError, ClientError) as e:
raise CfnSphereBotoError(e)
示例11: get_stack_descriptions
# 需要导入模块: from botocore import exceptions [as 别名]
# 或者: from botocore.exceptions import BotoCoreError [as 别名]
def get_stack_descriptions(self):
"""
Get all stacks stack descriptions
:return List(dict)
:raise CfnSphereBotoError:
"""
try:
stacks = []
for page in self.client.get_paginator('describe_stacks').paginate():
stacks += page["Stacks"]
return stacks
except (BotoCoreError, ClientError) as e:
raise CfnSphereBotoError(e)
示例12: get_stack_events
# 需要导入模块: from botocore import exceptions [as 别名]
# 或者: from botocore.exceptions import BotoCoreError [as 别名]
def get_stack_events(self, stack_name):
"""
Get recent stack events for a given stack_name
:param stack_name: str
:return: list(dict)
"""
try:
paginator = self.client.get_paginator('describe_stack_events')
pages = paginator.paginate(StackName=stack_name, PaginationConfig={'MaxItems': 100})
return next(iter(pages))["StackEvents"]
except (BotoCoreError, ClientError) as e:
raise CfnSphereBotoError(e)
示例13: update_stack
# 需要导入模块: from botocore import exceptions [as 别名]
# 或者: from botocore.exceptions import BotoCoreError [as 别名]
def update_stack(self, stack):
self.logger.debug("Updating stack: {0}".format(stack))
assert isinstance(stack, CloudFormationStack)
try:
stack_parameters_string = get_pretty_parameters_string(stack)
try:
self._update_stack(stack)
except ClientError as e:
if self.is_boto_no_update_required_exception(e):
self.logger.info("Stack {0} does not need an update".format(stack.name))
return
else:
self.logger.info(
"Updating stack {0} ({1}) with parameters:\n{2}".format(stack.name,
stack.template.name,
stack_parameters_string))
raise
self.logger.info(
"Updating stack {0} ({1}) with parameters:\n{2}".format(stack.name,
stack.template.name,
stack_parameters_string))
self.wait_for_stack_action_to_complete(stack.name, "update", stack.timeout)
stack_outputs = get_pretty_stack_outputs(self.get_stack_outputs(stack))
if stack_outputs:
self.logger.info("Update completed for {0} with outputs: \n{1}".format(stack.name, stack_outputs))
else:
self.logger.info("Update completed for {0}".format(stack.name))
except (BotoCoreError, ClientError, CfnSphereBotoError) as e:
raise CfnStackActionFailedException("Could not update {0}: {1}".format(stack.name, e))
示例14: validate_template
# 需要导入模块: from botocore import exceptions [as 别名]
# 或者: from botocore.exceptions import BotoCoreError [as 别名]
def validate_template(self, template):
"""
Validate template
:param template: CloudFormationTemplate
:return: boolean (true if valid)
"""
try:
self.client.validate_template(TemplateBody=template.get_template_json())
return True
except (BotoCoreError, ClientError) as e:
raise CfnSphereBotoError(e)
示例15: get_session_with_arn
# 需要导入模块: from botocore import exceptions [as 别名]
# 或者: from botocore.exceptions import BotoCoreError [as 别名]
def get_session_with_arn(role_arn, session_name, base_session):
"""
Returns a boto3.session.Session that assumed role_arn from base_session.
base_session is the session used to assume the role;
it must have permissions to assume the role.
By default, base_session is the caller's regular boto3 session.
"""
if not base_session:
base_session = boto3.Session()
if not session_name:
session_name = "aws_common_utils"
session_name = handle_session_name_length(session_name)
client = base_session.client("sts")
try:
response = client.assume_role(RoleArn=role_arn, RoleSessionName=session_name)
access_key = response["Credentials"]["AccessKeyId"]
secret = response["Credentials"]["SecretAccessKey"]
session_token = response["Credentials"]["SessionToken"]
return boto3.Session(
aws_access_key_id=access_key,
aws_secret_access_key=secret,
aws_session_token=session_token,
)
except (BotoCoreError, ClientError) as e:
logging.error(
"get_session_with_arn() failed trying to assume %s \
due to clienterror or botocore error",
role_arn,
)
logging.error(str(e))
raise e