Skip to content

Commit

Permalink
Merge pull request #86 from slemrmartin/inventory-collection-builder
Browse files Browse the repository at this point in the history
Persister: InventoryCollection building through add_collection()
  • Loading branch information
agrare committed Jun 12, 2018
2 parents 38b210c + 9bfac3e commit e126aed
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 120 deletions.
22 changes: 9 additions & 13 deletions app/models/manageiq/providers/nuage/inventory/persister.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,20 @@ class ManageIQ::Providers::Nuage::Inventory::Persister < ManagerRefresh::Invento

protected

def network
ManageIQ::Providers::Nuage::InventoryCollectionDefault::NetworkManager
end

def targeted
false
end

def strategy
nil
end

def shared_options
settings_options = options[:inventory_collections].try(:to_hash) || {}
def parent
manager.presence
end

settings_options.merge(
# Shared properties for inventory collections
def shared_options
{
:parent => parent,
:strategy => strategy,
:targeted => targeted,
)
:targeted => targeted?,
}
end
end
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
module ManageIQ::Providers::Nuage::Inventory::Persister::Definitions::NetworkCollections
extend ActiveSupport::Concern

def initialize_network_inventory_collections
%i(cloud_tenants
cloud_subnets
security_groups
network_routers).each do |name|

add_collection(network, name) do |builder|
builder.add_properties(:parent => manager) # including targeted
end
end
end
end
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
class ManageIQ::Providers::Nuage::Inventory::Persister::NetworkManager < ManageIQ::Providers::Nuage::Inventory::Persister
include ManageIQ::Providers::Nuage::Inventory::Persister::Definitions::NetworkCollections

def initialize_inventory_collections
add_inventory_collections(
network,
%i(cloud_tenants network_routers cloud_subnets security_groups)
)
initialize_network_inventory_collections
end
end
Original file line number Diff line number Diff line change
@@ -1,36 +1,13 @@
class ManageIQ::Providers::Nuage::Inventory::Persister::TargetCollection < ManageIQ::Providers::Nuage::Inventory::Persister
def initialize_inventory_collections
add_inventory_collections_with_references(
network,
%i(cloud_tenants network_routers cloud_subnets security_groups),
:parent => manager
)
end

private

def add_inventory_collections_with_references(inventory_collections_data, names, options = {})
names.each do |name|
add_inventory_collection_with_references(inventory_collections_data, name, references(name), options)
end
end

def add_inventory_collection_with_references(inventory_collections_data, name, manager_refs, options = {})
options = inventory_collections_data.send(
name,
:manager_uuids => manager_refs,
:strategy => strategy,
:targeted => true
).merge(options)
include ManageIQ::Providers::Nuage::Inventory::Persister::Definitions::NetworkCollections

add_inventory_collection(options)
def initialize_inventory_collections
initialize_network_inventory_collections
end

def references(collection)
target.manager_refs_by_association.try(:[], collection).try(:[], :ems_ref).try(:to_a) || []
end
protected

def targeted
def targeted?
true
end

Expand Down

This file was deleted.

0 comments on commit e126aed

Please sign in to comment.