class Fog::Compute::ProfitBricks::Nic

Attributes

options[RW]

Public Instance Methods

delete() click to toggle source
# File lib/fog/profitbricks/models/compute/nic.rb, line 69
def delete
  requires :datacenter_id, :server_id, :id
  service.delete_nic(datacenter_id, server_id, id)
  true
end
get_firewall_rules(firewall_rules) click to toggle source
# File lib/fog/profitbricks/models/compute/nic.rb, line 91
def get_firewall_rules(firewall_rules)
  items = []
  firewall_rules.each do |firewall_rule|
    item = {}
    item[:name]           = firewall_rule[:name] if firewall_rule.key?(:name)
    item[:protocol]       = firewall_rule[:protocol] if firewall_rule.key?(:protocol)
    item[:sourceMac]      = firewall_rule[:source_mac] if firewall_rule.key?(:source_mac)
    item[:sourceIp]       = firewall_rule[:source_ip] if firewall_rule.key?(:source_ip)
    item[:targetIp]       = firewall_rule[:target_ip] if firewall_rule.key?(:target_ip)
    item[:portRangeStart] = firewall_rule[:port_range_start] if firewall_rule.key?(:port_range_start)
    item[:portRangeEnd]   = firewall_rule[:port_range_end] if firewall_rule.key?(:port_range_end)
    item[:icmpType]       = firewall_rule[:icmp_type] if firewall_rule.key?(:icmp_type)
    item[:icmpCode]       = firewall_rule[:icmp_code] if firewall_rule.key?(:icmp_code)
    items << { properties: item }
  end
  { items: items }
end
reload() click to toggle source
# File lib/fog/profitbricks/models/compute/nic.rb, line 75
def reload
  requires :datacenter_id, :server_id, :id

  data = begin
    collection.get(datacenter_id, server_id, id)
  rescue Excon::Errors::SocketError
    nil
  end

  return unless data

  new_attributes = data.attributes
  merge_attributes(new_attributes)
  self
end
save() click to toggle source
# File lib/fog/profitbricks/models/compute/nic.rb, line 36
def save
  requires :datacenter_id, :server_id, :lan

  properties = {}
  properties[:name]           = name if name
  properties[:ips]            = ips if ips
  properties[:dhcp]           = dhcp if dhcp
  properties[:lan]            = lan if lan
  properties[:firewallActive] = firewall_active if firewall_active

  entities = {}
  if firewall_rules
    properties[:firewallActive] = true
    entities[:firewallrules] = get_firewall_rules(firewall_rules)
  end

  data = service.create_nic(datacenter_id, server_id, properties, entities)
  merge_attributes(flatten(data.body))
end
update() click to toggle source
# File lib/fog/profitbricks/models/compute/nic.rb, line 56
def update
  requires :datacenter_id, :server_id, :id

  properties = {}
  properties[:name] = name if name
  properties[:ips]  = ips if ips
  properties[:dhcp] = dhcp if dhcp
  properties[:lan]  = lan if lan

  data = service.update_nic(datacenter_id, server_id, id, properties)
  merge_attributes(data.body)
end