def format_resource(secgroup, options = {})
str="%-15s: %-20s"
str_h1="%-80s"
CLIHelper.print_header(
str_h1 % "SECURITY GROUP #{secgroup['ID']} INFORMATION")
puts str % ["ID", secgroup.id.to_s]
puts str % ["NAME", secgroup.name]
puts str % ["USER", secgroup['UNAME']]
puts str % ["GROUP", secgroup['GNAME']]
CLIHelper.print_header(str_h1 % "PERMISSIONS",false)
["OWNER", "GROUP", "OTHER"].each { |e|
mask = "---"
mask[0] = "u" if secgroup["PERMISSIONS/#{e}_U"] == "1"
mask[1] = "m" if secgroup["PERMISSIONS/#{e}_M"] == "1"
mask[2] = "a" if secgroup["PERMISSIONS/#{e}_A"] == "1"
puts str % [e, mask]
}
puts
CLIHelper.print_header(str_h1 % "VIRTUAL MACHINES", false)
updated, outdated, error = secgroup.vm_ids
puts str % ["UPDATED", updated.join(',') ]
puts str % ["OUTDATED", outdated.join(',') ]
puts str % ["ERROR", error.join(',') ]
puts
CLIHelper.print_header(str_h1 % ["RULES"], false)
if !secgroup.to_hash['SECURITY_GROUP']['TEMPLATE']['RULE'].nil?
rule_list = [secgroup.to_hash['SECURITY_GROUP']['TEMPLATE']['RULE']].flatten
end
CLIHelper::ShowTable.new(nil, self) do
column :TYPE, "", :left, :size=>8 do |d|
d["RULE_TYPE"]
end
column :PROTOCOL, "", :left, :size=>8 do |d|
d["PROTOCOL"]
end
column :ICMP_TYPE, "", :left, :size=>9 do |d|
d["ICMP_TYPE"]
end
column :ICMVP6_TYPE, "", :left, :size=>11 do |d|
d["ICMPV6_TYPE"]
end
column :NETWORK, "", :left, :adjust, :size=>35 do |d|
network = ""
if(!d["NETWORK_ID"].nil? && d["NETWORK_ID"] != "")
network += "VNet " + d["NETWORK_ID"]
end
if(!d["SIZE"].nil? && d["SIZE"] != "")
if(network != "")
network += ": "
end
if(!d["IP"].nil? && d["IP"] != "")
network += "Start: " + d["IP"] + ", "
elsif(!d["MAC"] != undefined && d["MAC"] != "")
network += "Start: " + d["MAC"] + ", "
end
network += "Size: " + d["SIZE"]
end
if(network == "")
network = "Any"
end
network += " "
network
end
column :RANGE, "", :left, :adjust, :size=>16 do |d|
d["RANGE"]
end
end.show(rule_list, {})
while secgroup.has_elements?("/SECURITY_GROUP/TEMPLATE/RULE")
secgroup.delete_element("/SECURITY_GROUP/TEMPLATE/RULE")
end
puts
CLIHelper.print_header(str_h1 % "TEMPLATE CONTENTS",false)
puts secgroup.template_str
end