class HammerCLICsv::CsvCommand::HostCollectionsCommand
Constants
- DESCRIPTION
- LIMIT
- ORGANIZATION
Public Instance Methods
create_hostcollections_from_csv(line)
click to toggle source
# File lib/hammer_cli_csv/host_collections.rb, line 35 def create_hostcollections_from_csv(line) return if option_organization && line[ORGANIZATION] != option_organization if !@existing[line[ORGANIZATION]] @existing[line[ORGANIZATION]] = {} @api.resource(:host_collections).call(:index, { 'per_page' => 999999, 'organization_id' => foreman_organization(:name => line[ORGANIZATION]) })['results'].each do |hostcollection| @existing[line[ORGANIZATION]][hostcollection['name']] = hostcollection['id'] end end count(line[COUNT]).times do |number| name = namify(line[NAME], number) params = { 'organization_id' => foreman_organization(:name => line[ORGANIZATION]), 'name' => name, 'unlimited_content_hosts' => (line[LIMIT] == 'Unlimited') ? true : false, 'max_content_hosts' => (line[LIMIT] == 'Unlimited') ? nil : line[LIMIT].to_i, 'description' => line[DESCRIPTION] } if !@existing[line[ORGANIZATION]].include? name print "Creating host collection '#{name}'..." if option_verbose? @api.resource(:host_collections).call(:create, params) else print "Updating host collection '#{name}'..." if option_verbose? params['id'] = @existing[line[ORGANIZATION]][name] @api.resource(:host_collections).call(:update, params) end print "done\n" if option_verbose? end end
export(csv)
click to toggle source
# File lib/hammer_cli_csv/host_collections.rb, line 11 def export(csv) csv << [NAME, ORGANIZATION, LIMIT, DESCRIPTION] @api.resource(:organizations).call(:index, {'per_page' => 999999})['results'].each do |organization| next if option_organization && organization['name'] != option_organization @api.resource(:host_collections).call(:index, { 'organization_id' => organization['id'], 'search' => option_search })['results'].each do |hostcollection| limit = hostcollection['unlimited_content_hosts'] ? 'Unlimited' : hostcollection['max_content_hosts'] csv << [hostcollection['name'], organization['name'], limit, hostcollection['description']] end end end
import()
click to toggle source
# File lib/hammer_cli_csv/host_collections.rb, line 27 def import @existing = {} thread_import do |line| create_hostcollections_from_csv(line) end end