def create_roles_from_csv(line)
line[COUNT].to_i.times do |number|
name = namify(line[NAME], number)
search = namify(line[SEARCH], number) if line[SEARCH]
if !@existing_roles[name]
print "Creating role '#{name}'..." if option_verbose?
role = @api.resource(:roles).call(:create, {
'name' => name
})
@existing_roles[name] = role['id']
else
print "Updating role '#{name}'..." if option_verbose?
@api.resource(:roles).call(:update, {
'id' => @existing_roles[name]
})
end
permissions = collect_column(line[PERMISSIONS]) do |permission|
foreman_permission(:name => permission)
end
organizations = collect_column(line[ORGANIZATIONS]) do |organization|
foreman_organization(:name => organization)
end
locations = collect_column(line[LOCATIONS]) do |location|
foreman_location(:name => location)
end
filter_id = foreman_filter(name, line[RESOURCE], search)
if !filter_id
print " creating filter #{line[RESOURCE]}..."
@api.resource(:filters).call(:create, {
'role_id' => @existing_roles[name],
'search' => search,
'organization_ids' => organizations,
'location_ids' => locations,
'permission_ids' => permissions
})
else
print " updating filter #{line[RESOURCE]}..."
@api.resource(:filters).call(:update, {
'id' => filter_id,
'search' => search,
'organization_ids' => organizations,
'location_ids' => locations,
'permission_ids' => permissions
})
end
puts 'done' if option_verbose?
end
end