class HammerCLICsv::CsvCommand::SyncPlansCommand
Constants
- DESCRIPTION
- ENABLED
- INTERVAL
- ORGANIZATION
- PRODUCTS
- STARTDATE
Public Instance Methods
create_content_hosts_from_csv(line)
click to toggle source
# File lib/hammer_cli_csv/sync_plans.rb, line 51 def create_content_hosts_from_csv(line) return if option_organization && line[ORGANIZATION] != option_organization if !@existing[line[ORGANIZATION]] @existing[line[ORGANIZATION]] = {} @api.resource(:sync_plans).call(:index, { 'per_page' => 999999, 'organization_id' => foreman_organization(:name => line[ORGANIZATION]) })['results'].each do |sync_plan| @existing[line[ORGANIZATION]][sync_plan['name']] = sync_plan['id'] end end count(line[COUNT]).times do |number| name = namify(line[NAME], number) if !@existing[line[ORGANIZATION]].include? name print "Creating sync plan '#{name}'..." if option_verbose? @api.resource(:sync_plans).call(:create, { 'organization_id' => foreman_organization(:name => line[ORGANIZATION]), 'name' => name, 'description' => line[DESCRIPTION], 'enabled' => line[ENABLED] == 'Yes' ? true : false, 'sync_date' => line[STARTDATE], 'interval' => line[INTERVAL], 'products' => products(line) }) else print "Updating sync plan '#{name}'..." if option_verbose? # TODO # @api.resource(:host_collections).call(:update, { # 'organization_id' => line[ORGANIZATION], # 'id' => @existing[line[ORGANIZATION]][name], # 'name' => name, # 'max_systems' => (line[LIMIT] == 'Unlimited') ? -1 : line[LIMIT], # 'description' => line[DESCRIPTION] # }) end puts "done" if option_verbose? end end
export(csv)
click to toggle source
# File lib/hammer_cli_csv/sync_plans.rb, line 14 def export(csv) csv << [NAME, ORGANIZATION, DESCRIPTION, ENABLED, STARTDATE, INTERVAL, PRODUCTS] @api.resource(:organizations).call(:index, {:per_page => 999999})['results'].each do |organization| next if option_organization && organization['name'] != option_organization @api.resource(:sync_plans).call(:index, { 'per_page' => 999999, 'search' => option_search, 'organization_id' => foreman_organization(:name => organization['name']) })['results'].each do |sync_plan| name = sync_plan['name'] organization_name = organization['name'] description = sync_plan['description'] enabled = sync_plan['enabled'] ? 'Yes' : 'No' start_date = sync_plan['sync_date'] interval = sync_plan['interval'] products = CSV.generate do |column| column << sync_plan['products'].collect do |product| product['name'] end end products.delete!("\n") csv << [name, organization_name, description, enabled, start_date, interval, products] end end end
import()
click to toggle source
# File lib/hammer_cli_csv/sync_plans.rb, line 43 def import @existing = {} thread_import do |line| create_content_hosts_from_csv(line) end end
Private Instance Methods
products(line)
click to toggle source
# File lib/hammer_cli_csv/sync_plans.rb, line 95 def products(line) return nil if !line[PRODUCTS] || line[PRODUCTS].empty? CSV.parse_line(line[PRODUCTS]).collect do |name| katello_product(line[ORGANIZATION], :name => name) end end