Skip to content
This repository has been archived by the owner on Sep 9, 2022. It is now read-only.

Commit

Permalink
Add pagination to all resource type responses.
Browse files Browse the repository at this point in the history
  • Loading branch information
Philip Snowberger committed Jul 12, 2016
1 parent 8bc3835 commit 2e55bee
Show file tree
Hide file tree
Showing 38 changed files with 71 additions and 51 deletions.
4 changes: 2 additions & 2 deletions lib/terraforming/resource/db_parameter_group.rb
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,11 @@ def tfstate
private

def db_parameter_groups
@client.describe_db_parameter_groups.db_parameter_groups
@client.describe_db_parameter_groups.map(&:db_parameter_groups).flatten
end

def db_parameters_in(parameter_group)
@client.describe_db_parameters(db_parameter_group_name: parameter_group.db_parameter_group_name).parameters
@client.describe_db_parameters(db_parameter_group_name: parameter_group.db_parameter_group_name).map(&:parameters).flatten
end

def module_name_of(parameter_group)
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/db_security_group.rb
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ def ingresses_of(security_group)
end

def db_security_groups
@client.describe_db_security_groups.db_security_groups.select { |sg| ingresses_of(sg).length > 0 }
@client.describe_db_security_groups.map(&:db_security_groups).flatten.select { |sg| ingresses_of(sg).length > 0 }
end

def module_name_of(security_group)
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/db_subnet_group.rb
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ def tfstate
private

def db_subnet_groups
@client.describe_db_subnet_groups.db_subnet_groups
@client.describe_db_subnet_groups.map(&:db_subnet_groups).flatten
end

def module_name_of(subnet_group)
Expand Down
4 changes: 2 additions & 2 deletions lib/terraforming/resource/ec2.rb
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ def block_device_ids_of(instance)

def block_devices_of(instance)
return [] unless instance.block_device_mappings.length > 0
@client.describe_volumes(volume_ids: block_device_ids_of(instance)).volumes
@client.describe_volumes(volume_ids: block_device_ids_of(instance)).map(&:volumes).flatten
end

def block_device_mapping_of(instance, volume_id)
Expand Down Expand Up @@ -101,7 +101,7 @@ def monitoring_state(instance)
end

def instances
@client.describe_instances.reservations.map(&:instances).flatten.reject { |instance| instance.state.name == "terminated" }
@client.describe_instances.map(&:reservations).flatten.map(&:instances).flatten.reject { |instance| instance.state.name == "terminated" }
end

def module_name_of(instance)
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/eip.rb
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ def tfstate
private

def eips
@client.describe_addresses.addresses
@client.describe_addresses.map(&:addresses).flatten
end

def is_vpc?(addr)
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/elasti_cache_cluster.rb
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ def tfstate
private

def cache_clusters
@client.describe_cache_clusters(show_cache_node_info: true).cache_clusters
@client.describe_cache_clusters(show_cache_node_info: true).map(&:cache_clusters).flatten
end

def cluster_in_vpc?(cache_cluster)
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/elasti_cache_subnet_group.rb
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ def tfstate
private

def cache_subnet_groups
@client.describe_cache_subnet_groups.cache_subnet_groups
@client.describe_cache_subnet_groups.map(&:cache_subnet_groups).flatten
end

def subnet_ids_of(cache_subnet_group)
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/elb.rb
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ def listener_hashcode_of(listener)
end

def load_balancers
@client.describe_load_balancers.load_balancer_descriptions
@client.describe_load_balancers.map(&:load_balancer_descriptions).flatten
end

def load_balancer_attributes_of(load_balancer)
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/iam_group.rb
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ def tfstate
private

def iam_groups
@client.list_groups.collect {|r| r.groups}.flatten
@client.list_groups.map(&:groups).flatten
end
end
end
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/iam_group_membership.rb
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ def group_members_of(group)
end

def iam_groups
@client.list_groups.groups
@client.list_groups.map(&:groups).flatten
end

def membership_name_of(group)
Expand Down
8 changes: 4 additions & 4 deletions lib/terraforming/resource/iam_group_policy.rb
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,14 @@ def unique_name(policy)
"#{policy.group_name}_#{policy.policy_name}"
end

def iam_groups
@client.list_groups.groups
end

def iam_group_policy_id_of(policy)
"#{policy.group_name}:#{policy.policy_name}"
end

def iam_groups
@client.list_groups.map(&:groups).flatten
end

def iam_group_policy_names_in(group)
@client.list_group_policies(group_name: group.group_name).policy_names
end
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/iam_instance_profile.rb
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ def tfstate
private

def iam_instance_profiles
@client.list_instance_profiles.instance_profiles
@client.list_instance_profiles.map(&:instance_profiles).flatten
end
end
end
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/iam_policy.rb
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ def tfstate
private

def iam_policies
@client.list_policies(scope: "Local").collect {|r| r.policies}.flatten
@client.list_policies(scope: "Local").map(&:policies).flatten
end

def iam_policy_description(policy)
Expand Down
17 changes: 15 additions & 2 deletions lib/terraforming/resource/iam_policy_attachment.rb
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,24 @@ def attachment_name_from(policy)
end

def entities_for_policy(policy)
@client.list_entities_for_policy(policy_arn: policy.arn)
# list_entities_for_policy is a weird one: the response class
# has three different member variables that we need to
# paginate through altogether.
result = Aws::IAM::Types::ListEntitiesForPolicyResponse.new
result.policy_groups = []
result.policy_users = []
result.policy_roles = []
@client.list_entities_for_policy(policy_arn: policy.arn).each do |resp|
result.policy_groups += resp.policy_groups
result.policy_users += resp.policy_users
result.policy_roles += resp.policy_roles
end

result
end

def iam_policies
@client.list_policies(scope: "Local").policies
@client.list_policies(scope: "Local").map(&:policies).flatten
end

def iam_policy_attachments
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/iam_role.rb
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ def tfstate
private

def iam_roles
@client.list_roles.collect {|r| r.roles}.flatten
@client.list_roles.map(&:roles).flatten
end
end
end
Expand Down
8 changes: 4 additions & 4 deletions lib/terraforming/resource/iam_role_policy.rb
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,14 @@ def unique_name(policy)
"#{policy.role_name}_#{policy.policy_name}"
end

def iam_roles
@client.list_roles.roles
end

def iam_role_policy_id_of(policy)
"#{policy.role_name}:#{policy.policy_name}"
end

def iam_roles
@client.list_roles.map(&:roles).flatten
end

def iam_role_policy_names_in(role)
@client.list_role_policies(role_name: role.role_name).policy_names
end
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/iam_user.rb
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ def tfstate
private

def iam_users
@client.list_users.collect {|r| r.users}.flatten
@client.list_users.map(&:users).flatten
end

def module_name_of(user)
Expand Down
8 changes: 4 additions & 4 deletions lib/terraforming/resource/iam_user_policy.rb
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,14 @@ def unique_name(policy)
"#{policy.user_name}_#{policy.policy_name}"
end

def iam_users
@client.list_users.users
end

def iam_user_policy_id_of(policy)
"#{policy.user_name}:#{policy.policy_name}"
end

def iam_users
@client.list_users.map(&:users).flatten
end

def iam_user_policy_names_in(user)
@client.list_user_policies(user_name: user.user_name).policy_names
end
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/internet_gateway.rb
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ def tfstate
private

def internet_gateways
@client.describe_internet_gateways.internet_gateways
@client.describe_internet_gateways.map(&:internet_gateways).flatten
end

def module_name_of(internet_gateway)
Expand Down
4 changes: 1 addition & 3 deletions lib/terraforming/resource/launch_configuration.rb
Original file line number Diff line number Diff line change
Expand Up @@ -96,9 +96,7 @@ def hash_security_group(name)
end

def launch_configurations
@client.describe_launch_configurations.collect do |r|
r.launch_configurations
end.flatten
@client.describe_launch_configurations.map(&:launch_configurations).flatten
end

def module_name_of(launch_configuration)
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/network_acl.rb
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ def module_name_of(network_acl)
end

def network_acls
@client.describe_network_acls.network_acls
@client.describe_network_acls.map(&:network_acls).flatten
end

def subnet_ids_of(network_acl)
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/network_interface.rb
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ def module_name_of(network_interface)
end

def network_interfaces
@client.describe_network_interfaces.network_interfaces
@client.describe_network_interfaces.map(&:network_interfaces).flatten
end

end
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/opsworks_custom_layer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ def tfstate
private

def stacks
@client.describe_stacks.stacks
@client.describe_stacks.map(&:stacks).flatten
end

def stack_layers(stack_id)
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/opsworks_stack.rb
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ def tfstate
private

def stacks
@client.describe_stacks.stacks
@client.describe_stacks.map(&:stacks).flatten
end

def module_name_of(stack)
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/rds.rb
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ def tfstate
private

def db_instances
@client.describe_db_instances.db_instances
@client.describe_db_instances.map(&:db_instances).flatten
end

def module_name_of(instance)
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/redshift.rb
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ def tfstate
private

def clusters
@client.describe_clusters.clusters
@client.describe_clusters.map(&:clusters).flatten
end

def module_name_of(cluster)
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/route53_record.rb
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ def tfstate
private

def hosted_zones
@client.list_hosted_zones.hosted_zones
@client.list_hosted_zones.map(&:hosted_zones).flatten
end

def record_id_of(record, zone_id)
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/route53_zone.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ def tfstate
private

def hosted_zones
@client.list_hosted_zones.hosted_zones.map { |hosted_zone| @client.get_hosted_zone(id: hosted_zone.id) }
@client.list_hosted_zones.map(&:hosted_zones).flatten.map { |hosted_zone| @client.get_hosted_zone(id: hosted_zone.id) }
end

def tags_of(hosted_zone)
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/route_table.rb
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ def module_name_of(route_table)
end

def route_tables
@client.describe_route_tables.route_tables
@client.describe_route_tables.map(&:route_tables).flatten
end

def routes_attributes_of(route_table)
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/route_table_association.rb
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ def module_name_of(route_table, assoc)
end

def route_tables
@client.describe_route_tables.route_tables
@client.describe_route_tables.map(&:route_tables).flatten
end
end
end
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/s3.rb
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ def bucket_policy_of(bucket)
end

def buckets
@client.list_buckets.buckets.select { |bucket| same_region?(bucket) }
@client.list_buckets.map(&:buckets).flatten.select { |bucket| same_region?(bucket) }
end

def module_name_of(bucket)
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/security_group.rb
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ def self_referenced_permission?(security_group, permission)
end

def security_groups
@client.describe_security_groups.security_groups
@client.describe_security_groups.map(&:security_groups).flatten
end

def security_groups_in(permission, security_group)
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/sqs.rb
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ def queues
end

def queue_urls
@client.list_queues.queue_urls
@client.list_queues.map(&:queue_urls).flatten
end

def module_name_of(queue)
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/subnet.rb
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ def tfstate
private

def subnets
@client.describe_subnets.subnets
@client.describe_subnets.map(&:subnets).flatten
end

def module_name_of(subnet)
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/vpc.rb
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ def module_name_of(vpc)
end

def vpcs
@client.describe_vpcs.vpcs
@client.describe_vpcs.map(&:vpcs).flatten
end

def vpc_attribute(vpc, attribute)
Expand Down
2 changes: 1 addition & 1 deletion lib/terraforming/resource/vpn_gateway.rb
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ def tfstate
private

def vpn_gateways
@client.describe_vpn_gateways.vpn_gateways
@client.describe_vpn_gateways.map(&:vpn_gateways).flatten
end

def module_name_of(vpn_gateway)
Expand Down
1 change: 1 addition & 0 deletions lib/terraforming/util.rb
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,6 @@ def prettify_policy(document, breakline: false, unescape: false)
json.strip
end
end

end
end
Loading

0 comments on commit 2e55bee

Please sign in to comment.