class HammerCLICsv::CsvCommand::InstallationMediaCommand
Constants
- LOCATIONS
- OPERATING_SYSTEMS
- ORGANIZATIONS
- OSFAMILY
- PATH
Public Instance Methods
create_from_csv(line)
click to toggle source
# File lib/hammer_cli_csv/installation_media.rb, line 42 def create_from_csv(line) params = { 'medium' => { 'organization_ids' => collect_column(line[ORGANIZATIONS]) do |organization| foreman_organization(:name => organization) end, 'location_ids' => collect_column(line[LOCATIONS]) do |location| foreman_location(:name => location) end, 'path' => line[PATH], 'os_family' => line[OSFAMILY], 'operatingsystem_ids' => collect_column(line[OPERATING_SYSTEMS]) do |os| foreman_operatingsystem(:name => os) end } } count(line[COUNT]).times do |number| name = namify(line[NAME], number) params['medium']['name'] = name if !@existing.include? name print _("Creating installation medium '%{name}'... ") % {:name => name} if option_verbose? medium = @api.resource(:media).call(:create, params) @existing[name] = medium['id'] else print _("Updating installation medium '%{name}'... ") % {:name => name} if option_verbose? params['id'] = @existing[name] medium = @api.resource(:media).call(:update, params) end puts _('done') if option_verbose? end end
export(csv)
click to toggle source
# File lib/hammer_cli_csv/installation_media.rb, line 13 def export(csv) csv << [NAME, ORGANIZATIONS, LOCATIONS, PATH, OSFAMILY, OPERATING_SYSTEMS] @api.resource(:media).call(:index, { :per_page => 999999, :search => option_search })['results'].each do |medium| medium = @api.resource(:media).call(:show, :id => medium['id']) name = medium['name'] organizations = export_column(medium, 'organizations', 'name') locations = export_column(medium, 'locations', 'name') count = 1 path = medium['path'] os_family = medium['os_family'] operating_systems = export_column(medium, 'operatingsystems', 'title') csv << [name, organizations, locations, path, os_family, operating_systems] end end
import()
click to toggle source
# File lib/hammer_cli_csv/installation_media.rb, line 31 def import @existing = {} @api.resource(:media).call(:index, {:per_page => 999999})['results'].each do |medium| @existing[medium['name']] = medium['id'] if medium end thread_import do |line| create_from_csv(line) end end