class Brightbox::CloudIP
Public Class Methods
Source
# File lib/brightbox-cli/cloud_ips.rb, line 13 def self.create(options = {}) create_options = {} if options[:t] create_options[:port_translators] = format_translators_for_api(options[:t]) end if options[:n] && !options[:name].empty? create_options[:name] = options[:n] end r = conn.create_cloud_ip(create_options) new(r["id"]) end
Source
# File lib/brightbox-cli/cloud_ips.rb, line 60 def self.default_field_order %i[id status public_ip destination reverse_dns name] end
Source
# File lib/brightbox-cli/cloud_ips.rb, line 26 def self.format_translators_for_api(translators) translators.split(",").map do |t| incoming, outgoing, protocol = t.split(":") raise "translator #{t} is invalid" if incoming.nil? || outgoing.nil? || protocol.nil? { :incoming => incoming, :outgoing => outgoing, :protocol => protocol } end end
Source
# File lib/brightbox-cli/cloud_ips.rb, line 5 def self.get(id) conn.cloud_ips.get id end
Source
# File lib/brightbox-cli/cloud_ips.rb, line 3 def self.require_account?; true; end
Public Instance Methods
Source
# File lib/brightbox-cli/cloud_ips.rb, line 64 def <=>(other) status <=> other.status end
Source
# File lib/brightbox-cli/cloud_ips.rb, line 35 def attributes fog_attributes.tap do |attrs| attrs[:destination] = destination_id end end
Source
# File lib/brightbox-cli/cloud_ips.rb, line 41 def to_row attributes.merge( port_translators: translators(attributes), ).to_h end
Source
# File lib/brightbox-cli/cloud_ips.rb, line 51 def translators(raw_attributes) translators = (raw_attributes[:port_translators] || raw_attributes["port_translators"]) return unless translators translators.map do |t| [t["incoming"], t["outgoing"], t["protocol"]].join(":") end end
Source
# File lib/brightbox-cli/cloud_ips.rb, line 68 def update(options) params = {} if options[:r] params[:reverse_dns] = options[:r] end if options[:"delete-reverse-dns"] params[:reverse_dns] = "" end if options[:n] && !options[:n].nil? params[:name] = options[:n] end if options[:t] params[:port_translators] = CloudIP.format_translators_for_api(options[:t]) end self.class.conn.update_cloud_ip(id, params) reload self end