def list_server_entities(entity_type, extra_hash = {})
if @prerequisite[entity_type]
list_server_entities(@prerequisite[entity_type]) unless @cache[@prerequisite[entity_type]]
end
@cache[entity_type] ||= {}
results = []
if !extra_hash.empty? || @prerequisite[entity_type].nil?
entities = api_call(entity_type, :index, {'per_page' => 999999}.merge(extra_hash))
results = entities['results']
elsif @prerequisite[entity_type] == :organizations
@pm[:organizations].to_hash.values.each do |org_id|
entities = api_call(entity_type, :index, {'per_page' => 999999, 'organization_id' => org_id})
results += entities['results']
end
else
@cache[@prerequisite[entity_type]].each do |pre_id, _|
entities = api_call(
entity_type,
:index,
{
'per_page' => 999999,
@prerequisite[entity_type].to_s.sub(/s$/, '_id').to_sym => pre_id
})
results += entities['results']
end
end
results.each do |entity|
entity['id'] = entity['uuid'] if entity_type == :systems
@cache[entity_type][entity['id']] = entity
end
end