class Fog::Network::Softlayer::Network

Public Instance Methods

add_tags(tags) click to toggle source

attribute :subnets

# File lib/fog/softlayer/models/network/network.rb, line 25
def add_tags(tags)
  requires :id
  raise ArgumentError, "Tags argument for #{self.class.name}##{__method__} must be Array." unless tags.is_a?(Array)
  tags.each do |tag|
    service.tags.new(:resource_id => self.id, :name => tag).save
  end
  self.reload
  true
end
create() click to toggle source
# File lib/fog/softlayer/models/network/network.rb, line 75
def create
  requires :datacenter, :router, :network_space
  response = service.create_network(build_order).body
  merge_attributes(response)
  self
end
datacenter() click to toggle source
# File lib/fog/softlayer/models/network/network.rb, line 35
def datacenter
  @datacenter ||= attributes[:datacenter] or (service.datacenters.new(attributes[:router]['datacenter']) if attributes[:router] and attributes[:router]['datacenter'])
end
delete_tags(tags) click to toggle source
# File lib/fog/softlayer/models/network/network.rb, line 39
def delete_tags(tags)
  requires :id
  raise ArgumentError, "Tags argument for #{self.class.name}##{__method__} must be Array." unless tags.is_a?(Array)
  tags.each do |tag|
    service.tags.new(:resource_id => self.id, :name => tag).destroy
  end
  self.reload
  true
end
destroy() click to toggle source
# File lib/fog/softlayer/models/network/network.rb, line 88
def destroy
  requires :id
  service.delete_network(self.id)
  true
end
private?() click to toggle source
# File lib/fog/softlayer/models/network/network.rb, line 54
def private?
  requires :network_space
  network_space == 'PRIVATE'
end
public?() click to toggle source
# File lib/fog/softlayer/models/network/network.rb, line 59
def public?
  requires :network_space
  network_space == 'PUBLIC'
end
router=(new_data) click to toggle source
# File lib/fog/softlayer/models/network/network.rb, line 49
def router=(new_data)
  raise ArgumentError, "Network Router must be a Hash." unless new_data.is_a?(Hash)
  attributes[:router] = new_data.select { |k,v| ['id', 'hostname', 'datacenter'].include?(k) }
end
save() click to toggle source
# File lib/fog/softlayer/models/network/network.rb, line 64
def save
  identity ? update : create
end
subnets() click to toggle source
# File lib/fog/softlayer/models/network/network.rb, line 68
def subnets
  requires :id
  @subnets ||= attributes['subnets'].map do |subnet|
    service.subnets.get(subnet['id'])
  end
end
tags() click to toggle source
# File lib/fog/softlayer/models/network/network.rb, line 94
def tags
  requires :id
  attributes[:tags].map { |i| i['tag']['name'] } if attributes[:tags]
end
update() click to toggle source
# File lib/fog/softlayer/models/network/network.rb, line 82
def update
  requires :id
  merge_attributes(service.update_network(self.id, self.attributes).body)
  self
end

Private Instance Methods

build_order() click to toggle source
# File lib/fog/softlayer/models/network/network.rb, line 101
def build_order
  {
      'complexType' => 'SoftLayer_Container_Product_Order_Network_Vlan',
      'name' => name,
      'routerId' =>router['id'],
      'router' => router['hostname'],
      'location' => datacenter.id,
      'quantity' =>1,
      'packageId' =>0,
      'prices' =>[
          {'id' => public? ? service.get_public_vlan_price_code : service.get_private_vlan_price_code },
          {'id' => service.get_subnet_price_code }
      ]
  }
end