def augment(self, resources): aliases = KeyAlias(self.manager.ctx, {}).resources() alias_map = {} for a in aliases: key_id = a['TargetKeyId'] alias_map[key_id] = alias_map.get(key_id, []) + [a['AliasName']] client = local_session(self.manager.session_factory).client('kms') for r in resources: try: key_id = r.get('KeyId') key_arn = r.get('KeyArn', key_id) info = client.describe_key(KeyId=key_arn)['KeyMetadata'] if key_id in alias_map: info['AliasNames'] = alias_map[key_id] r.update(info) except ClientError as e: if e.response['Error']['Code'] == 'AccessDeniedException': self.log.warning( "Access denied when describing key:%s", key_id) else: raise return universal_augment(self.manager, resources)
def augment(self, resources): client = local_session(self.manager.session_factory).client('kms') for r in resources: key_id = r.get('KeyId') # We get `KeyArn` from list_keys and `Arn` from describe_key. # If we already have describe_key details we don't need to fetch # it again. if 'Arn' not in r: try: key_arn = r.get('KeyArn', key_id) key_detail = client.describe_key( KeyId=key_arn)['KeyMetadata'] r.update(key_detail) except ClientError as e: if e.response['Error']['Code'] == 'AccessDeniedException': self.manager.log.warning( "Access denied when describing key:%s", key_id) # If a describe fails, we still want the `Arn` key # available since it is a core attribute r['Arn'] = r['KeyArn'] else: raise alias_names = self.manager.alias_map.get(key_id) if alias_names: r['AliasNames'] = alias_names return universal_augment(self.manager, resources)
def augment(self, resources): client = local_session(self.session_factory).client('kms') for r in resources: try: key_id = r.get('KeyArn') info = client.describe_key(KeyId=key_id)['KeyMetadata'] r.update(info) except ClientError as e: if e.response['Error']['Code'] == 'AccessDeniedException': self.log.warning("Access denied when describing key:%s", key_id) else: raise return universal_augment(self, resources)
def augment(self, resources): client = local_session(self.session_factory).client('kms') for r in resources: try: key_id = r.get('KeyArn') info = client.describe_key(KeyId=key_id)['KeyMetadata'] r.update(info) except ClientError as e: if e.response['Error']['Code'] == 'AccessDeniedException': self.log.warning( "Access denied when describing key:%s", key_id) else: raise return universal_augment(self, resources)
def augment(self, resources): client = local_session(self.session_factory).client('sqs') def _augment(r): try: queue = self.retry( client.get_queue_attributes, QueueUrl=r, AttributeNames=['All'])['Attributes'] queue['QueueUrl'] = r except ClientError as e: if e.response['Error']['Code'] == 'AWS.SimpleQueueService.NonExistentQueue': return if e.response['Error']['Code'] == 'AccessDenied': self.log.warning("Denied access to sqs %s" % r) return raise return queue with self.executor_factory(max_workers=2) as w: return universal_augment( self, list(filter(None, w.map(_augment, resources))))
def augment(self, resources): client = local_session(self.manager.session_factory).client('sqs') def _augment(r): try: queue = self.manager.retry( client.get_queue_attributes, QueueUrl=r, AttributeNames=['All'])['Attributes'] queue['QueueUrl'] = r except ClientError as e: if e.response['Error']['Code'] == 'AWS.SimpleQueueService.NonExistentQueue': return if e.response['Error']['Code'] == 'AccessDenied': self.log.warning("Denied access to sqs %s" % r) return raise return queue with self.manager.executor_factory(max_workers=2) as w: return universal_augment( self.manager, list(filter(None, w.map(_augment, resources))))
def augment(self, resources): return universal_augment( self, super(RestStage, self).augment(resources))
def augment(self, resources): return universal_augment( self, super(ElasticFileSystem, self).augment(resources))
def augment(self, resources): return tags.universal_augment(self.manager, resources)
def augment(self, resources): resources = universal_augment(self, resources) for r in resources: r['creationTime'] = r['creationTime'] / 1000.0 return resources
def augment(self, resources): return universal_augment(self, super(KinesisStream, self).augment(resources))
def augment(self, resources): return universal_augment( self, super(DeliveryStream, self).augment(resources))
def augment(self, resources): return universal_augment(self, super(AWSLambda, self).augment(resources))
def augment(self, resources): resources = super().augment(resources) return universal_augment(self, resources)
def augment(self, resources): return universal_augment( self, super(KinesisStream, self).augment(resources))
def augment(self, resources): return universal_augment(self, super(AnalyticsApp, self).augment(resources))
def augment(self, resources): return universal_augment( self.manager, super(DescribeTable, self).augment(resources))
def augment(self, resources): return universal_augment(self, super(BackupVault, self).augment(resources))
def get_resources(self, ids, cache=True): return universal_augment( self, self.augment([{ 'repositoryName': i } for i in ids]))
def augment(self, resources): return universal_augment(self, super(GlueWorkflow, self).augment(resources))
def augment(self, dbs): return universal_augment( self.manager, super(DescribeRDS, self).augment(dbs))
def augment(self, resources): return universal_augment(self.manager, super(DescribeTable, self).augment(resources))
def augment(self, snaps): return universal_augment( self.manager, super(DescribeRDSSnapshot, self).augment(snaps))
def augment(self, resources): return universal_augment(self.manager, super().augment(resources))
def augment(self, resources): return universal_augment(self.manager, resources)