ManageIQ/manageiq-providers-amazon

View on GitHub
app/models/manageiq/providers/amazon/inventory/persister/definitions/network_collections.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
module ManageIQ::Providers::Amazon::Inventory::Persister::Definitions::NetworkCollections
  extend ActiveSupport::Concern

  def initialize_network_inventory_collections
    %i(cloud_networks
       cloud_subnets
       security_groups
       load_balancers
       load_balancer_pools
       load_balancer_pool_members
       load_balancer_pool_member_pools
       load_balancer_listeners
       load_balancer_listener_pools
       load_balancer_health_checks
       load_balancer_health_check_members).each do |name|
      add_network_collection(name)
    end

    add_cloud_subnet_network_ports

    add_firewall_rules

    add_floating_ips

    add_network_ports
  end

  # ------ IC provider specific definitions -------------------------

  def add_network_ports(extra_properties = {})
    add_network_collection(:network_ports, extra_properties) do |builder|
      if targeted?
        builder.add_properties(:manager_uuids => references(:vms) + references(:network_ports) + references(:load_balancers))
      end
    end
  end

  def add_floating_ips(extra_properties = {})
    add_network_collection(:floating_ips, extra_properties) do |builder|
      if targeted?
        builder.add_properties(:manager_uuids => references(:floating_ips) + references(:load_balancers))
      end
    end
  end

  def add_cloud_subnet_network_ports(extra_properties = {})
    add_network_collection(:cloud_subnet_network_ports, extra_properties) do |builder|
      builder.add_properties(:manager_ref_allowed_nil => %i(cloud_subnet))
    end
  end

  def add_firewall_rules(extra_properties = {})
    add_network_collection(:firewall_rules, extra_properties) do |builder|
      builder.add_properties(:manager_ref_allowed_nil => %i(source_security_group))
    end
  end
end