Skip to content

Commit

Permalink
added option to remove custom report structure from group
Browse files Browse the repository at this point in the history
  • Loading branch information
yrudman committed Oct 5, 2018
1 parent f19b4fb commit ec0a3df
Showing 1 changed file with 19 additions and 10 deletions.
29 changes: 19 additions & 10 deletions tools/copy_reports_structure.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ def find_group(group_name)
end

def duplicate_for_group(source_group_name, destination_group_name)
puts "Copying report structure from '#{source_group_name}' group to ' #{destination_group_name}'"
puts "Copying report structure from '#{source_group_name}' group to ' #{destination_group_name}' ..."
source_group = find_group(source_group_name)
destination_group = find_group(destination_group_name)
destination_group.settings = source_group.settings
Expand All @@ -23,7 +23,7 @@ def duplicate_for_group(source_group_name, destination_group_name)


def duplicate_for_role(source_group_name, destination_role_name)
puts "Starting to copy report structure from group '#{source_group_name}' to role ' #{destination_role_name}'"
puts "Copying report structure from group '#{source_group_name}' to role ' #{destination_role_name}' ..."
source_group = find_group(source_group_name)
destination_role = MiqUserRole.where(:name => destination_role_name)
raise "MiqUserRole '#{destination_role_name}' not found" if destination_role.nil?
Expand Down Expand Up @@ -51,25 +51,34 @@ def duplicate_for_role(source_group_name, destination_role_name)
opt :source_group, "Source group to take report structure from", :short => "s", :type => :string
opt :group, "Destination group", :short => "g", :type => :string
opt :role, "Destination role", :short => "r", :type => :string
opt :default_group, "Group to reset reports structure to default", :short => "d", :type => :string
opt :default_role, "Role to reset reports structure to default", :short => "p", :type => :string
opt :delete_group, "Group to reset reports structure to default", :short => "d", :type => :string
opt :delete_role, "Role to reset reports structure to default", :short => "p", :type => :string
end

if opts[:source_group_given]
msg = ":source_group argument can not be used with :default_group" if opts[:default_group_given]
msg ||= ":source_group argument can not be used with :default_role" if opts[:default_role_given]
msg = ":source_group argument can not be used with :delete_group" if opts[:delete_group_given]
msg ||= ":source_group argument can not be used with :delete_role" if opts[:delete_role_given]
msg ||= "either :group or :role arguments requiered" unless opts[:group_given] || opts[:role_given]
Trollop.die(msg) unless msg.nil?

duplicate_for_group(opts[:source_group], opts[:group]) if opts[:group_given]
duplicate_for_role(opts[:source_group], opts[:role]) if opts[:role_given]
else

unless opts[:delete_group_given] || opts[:delete_role_given]
Trollop.die("use either :delete_group or :delete_role parameter for resetting report structure to default")
end
reset_for_group(opts[:delete_group]) if opts[:delete_group_given]
reset_for_role(opts[:delete_role_given]) if opts[:delete_role_given]
end


def reset_for_group(group)

def reset_for_group(group_name)
puts "Removing custom report structure for group '#{group_name}'..."
group = find_group(group_name)
group.settings = nil
group.save
puts "Succsefully removed custom report structure for group '#{group_name}'"
rescue => e
$stderr.puts e.message
end

def reset_for_role(role)
Expand Down

0 comments on commit ec0a3df

Please sign in to comment.