diff --git a/contrib/inventory/ec2.ini b/contrib/inventory/ec2.ini index c8c498a06a5..8acce912f10 100644 --- a/contrib/inventory/ec2.ini +++ b/contrib/inventory/ec2.ini @@ -128,6 +128,7 @@ group_by_availability_zone = True group_by_aws_account = False group_by_ami_id = True group_by_instance_type = True +group_by_instance_state = False group_by_key_pair = True group_by_vpc_id = True group_by_security_group = True diff --git a/contrib/inventory/ec2.py b/contrib/inventory/ec2.py index 6c40bf6ea80..0bb2eb410a4 100755 --- a/contrib/inventory/ec2.py +++ b/contrib/inventory/ec2.py @@ -414,6 +414,7 @@ class Ec2Inventory(object): 'group_by_availability_zone', 'group_by_ami_id', 'group_by_instance_type', + 'group_by_instance_state', 'group_by_key_pair', 'group_by_vpc_id', 'group_by_security_group', @@ -859,6 +860,13 @@ class Ec2Inventory(object): if self.nested_groups: self.push_group(self.inventory, 'types', type_name) + # Inventory: Group by instance state + if self.group_by_instance_state: + state_name = self.to_safe('instance_state_' + instance.state) + self.push(self.inventory, state_name, hostname) + if self.nested_groups: + self.push_group(self.inventory, 'instance_states', state_name) + # Inventory: Group by key pair if self.group_by_key_pair and instance.key_name: key_name = self.to_safe('key_' + instance.key_name)