fluke/devops-client/lib/devops-client/output/network.rb
2015-04-14 16:29:02 +04:00

49 lines
1.3 KiB
Ruby

require "devops-client/output/base"
require "devops-client/output/concerns/has_provider"
module Output
class Network < Base
include Concerns::HasProvider
def table
headers, rows = create(@data, @options[:given_provider])
create_table(headers, rows, I18n.t("output.title.network.list"))
end
def csv
headers, rows = create(@data, @options[:given_provider])
create_csv(headers, rows)
end
private
def create list, provider
headers = nil
rows = []
if provider == "openstack"
abort(I18n.t("output.not_found.network.list")) if list.nil? or list.empty?
headers = [ I18n.t("output.table_header.name"), I18n.t("output.table_header.cidr") ]
list.each do |l|
rows.push [ l["name"], l["cidr"] ]
end
elsif provider == "ec2"
if list.nil? or list.empty?
puts(I18n.t("output.not_found.network.list"))
return nil, nil
end
headers = [
I18n.t("output.table_header.subnet"),
I18n.t("output.table_header.vpc_id"),
I18n.t("output.table_header.cidr"),
I18n.t("output.table_header.zone")
]
list.each do |l|
rows.push [ l["subnetId"], l["vpcId"], l["cidr"], l["zone"] ]
end
end
return headers, rows
end
end
end