コード例 #1
0
ファイル: kms.py プロジェクト: volodymyr1213/custodian
    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)
コード例 #2
0
ファイル: kms.py プロジェクト: wsf11/cloud-custodian
    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)
コード例 #3
0
    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)
コード例 #4
0
ファイル: kms.py プロジェクト: capitalone/cloud-custodian
    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)
コード例 #5
0
ファイル: sqs.py プロジェクト: kbusekist/cloud-custodian
    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))))
コード例 #6
0
ファイル: sqs.py プロジェクト: volodymyr1213/custodian
    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))))
コード例 #7
0
ファイル: apigw.py プロジェクト: jpoley/cloud-custodian
 def augment(self, resources):
     return universal_augment(
         self, super(RestStage, self).augment(resources))
コード例 #8
0
 def augment(self, resources):
     return universal_augment(
         self,
         super(ElasticFileSystem, self).augment(resources))
コード例 #9
0
ファイル: elb.py プロジェクト: jpoley/cloud-custodian
 def augment(self, resources):
     return tags.universal_augment(self.manager, resources)
コード例 #10
0
 def augment(self, resources):
     resources = universal_augment(self, resources)
     for r in resources:
         r['creationTime'] = r['creationTime'] / 1000.0
     return resources
コード例 #11
0
 def augment(self, resources):
     return universal_augment(self,
                              super(KinesisStream, self).augment(resources))
コード例 #12
0
 def augment(self, resources):
     return universal_augment(
         self,
         super(DeliveryStream, self).augment(resources))
コード例 #13
0
 def augment(self, resources):
     return universal_augment(self,
                              super(AWSLambda, self).augment(resources))
コード例 #14
0
ファイル: sfn.py プロジェクト: bbhunt-2020/Canivete
 def augment(self, resources):
     resources = super().augment(resources)
     return universal_augment(self, resources)
コード例 #15
0
 def augment(self, resources):
     return universal_augment(
         self, super(KinesisStream, self).augment(resources))
コード例 #16
0
 def augment(self, resources):
     return universal_augment(self,
                              super(AnalyticsApp, self).augment(resources))
コード例 #17
0
 def augment(self, resources):
     return universal_augment(
         self.manager,
         super(DescribeTable, self).augment(resources))
コード例 #18
0
ファイル: backup.py プロジェクト: stelukutla/cloud-custodian
 def augment(self, resources):
     return universal_augment(self,
                              super(BackupVault, self).augment(resources))
コード例 #19
0
 def get_resources(self, ids, cache=True):
     return universal_augment(
         self, self.augment([{
             'repositoryName': i
         } for i in ids]))
コード例 #20
0
 def augment(self, resources):
     return universal_augment(self,
                              super(GlueWorkflow, self).augment(resources))
コード例 #21
0
ファイル: rds.py プロジェクト: santusri/cloud-custodian
 def augment(self, dbs):
     return universal_augment(
         self.manager, super(DescribeRDS, self).augment(dbs))
コード例 #22
0
 def augment(self, resources):
     return universal_augment(self.manager,
                              super(DescribeTable, self).augment(resources))
コード例 #23
0
ファイル: rds.py プロジェクト: santusri/cloud-custodian
 def augment(self, snaps):
     return universal_augment(
         self.manager, super(DescribeRDSSnapshot, self).augment(snaps))
コード例 #24
0
ファイル: apigw.py プロジェクト: reechar-goog/cloud-custodian
 def augment(self, resources):
     return universal_augment(
         self, super(RestStage, self).augment(resources))
コード例 #25
0
 def augment(self, resources):
     return universal_augment(self.manager, super().augment(resources))
コード例 #26
0
 def augment(self, resources):
     return universal_augment(self.manager, resources)
コード例 #27
0
ファイル: efs.py プロジェクト: ewbankkit/cloud-custodian
 def augment(self, resources):
     return universal_augment(
         self, super(ElasticFileSystem, self).augment(resources))