From d095509a92054125f17879a4888e4347ca904c58 Mon Sep 17 00:00:00 2001 From: Darcy Laycock Date: Mon, 15 Jul 2019 08:46:12 +1000 Subject: [PATCH] Fix incorrect iterator chaining Primarily in get_permissions, this usage of itertools.chain actually creates an array of arrays. This makes sure we're creating a flat list. --- c7n/resources/ami.py | 2 +- c7n/resources/asg.py | 2 +- c7n/resources/ebs.py | 2 +- c7n/resources/iam.py | 2 +- c7n/resources/vpc.py | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/c7n/resources/ami.py b/c7n/resources/ami.py index cb91fb4da3c..2b16bed6219 100644 --- a/c7n/resources/ami.py +++ b/c7n/resources/ami.py @@ -276,7 +276,7 @@ class ImageUnusedFilter(Filter): schema = type_schema('unused', value={'type': 'boolean'}) def get_permissions(self): - return list(itertools.chain([ + return list(itertools.chain(*[ self.manager.get_resource_manager(m).get_permissions() for m in ('asg', 'launch-config', 'ec2')])) diff --git a/c7n/resources/asg.py b/c7n/resources/asg.py index 136ed94e61c..a176d806c7b 100644 --- a/c7n/resources/asg.py +++ b/c7n/resources/asg.py @@ -243,7 +243,7 @@ def __call__(self, asg): class ConfigValidFilter(Filter): def get_permissions(self): - return list(itertools.chain([ + return list(itertools.chain(*[ self.manager.get_resource_manager(m).get_permissions() for m in ('subnet', 'security-group', 'key-pair', 'elb', 'app-elb-target-group', 'ebs-snapshot', 'ami')])) diff --git a/c7n/resources/ebs.py b/c7n/resources/ebs.py index ccd4ce6e786..16de5629a9b 100644 --- a/c7n/resources/ebs.py +++ b/c7n/resources/ebs.py @@ -268,7 +268,7 @@ class SnapshotUnusedFilter(Filter): schema = type_schema('unused', value={'type': 'boolean'}) def get_permissions(self): - return list(itertools.chain([ + return list(itertools.chain(*[ self.manager.get_resource_manager(m).get_permissions() for m in ('asg', 'launch-config', 'ami')])) diff --git a/c7n/resources/iam.py b/c7n/resources/iam.py index 56d8a766775..a184daffb6a 100644 --- a/c7n/resources/iam.py +++ b/c7n/resources/iam.py @@ -504,7 +504,7 @@ def get_eval_matcher(self): class IamRoleUsage(Filter): def get_permissions(self): - perms = list(itertools.chain([ + perms = list(itertools.chain(*[ self.manager.get_resource_manager(m).get_permissions() for m in ['lambda', 'launch-config', 'ec2']])) perms.extend(['ecs:DescribeClusters', 'ecs:DescribeServices']) diff --git a/c7n/resources/vpc.py b/c7n/resources/vpc.py index ddc21b81f0a..505fa891914 100644 --- a/c7n/resources/vpc.py +++ b/c7n/resources/vpc.py @@ -666,7 +666,7 @@ class SGUsage(Filter): def get_permissions(self): return list(itertools.chain( - [self.manager.get_resource_manager(m).get_permissions() + *[self.manager.get_resource_manager(m).get_permissions() for m in ['lambda', 'eni', 'launch-config', 'security-group']]))