class Fog::Network::Softlayer::Subnet

Public Instance Methods

addresses() click to toggle source
# File lib/fog/softlayer/models/network/subnet.rb, line 26
def addresses
  @addresses ||= begin
    if attributes['ipAddresses'].nil?
      []
    else
      attributes['ipAddresses'].map do |address|
        service.ips.get(address['id'])
      end
    end
  end
end
create(address_count=4) click to toggle source
# File lib/fog/softlayer/models/network/subnet.rb, line 59
def create(address_count=4)
  requires :vlan_id
  response = service.create_subnet(build_order(address_count)).body
  merge_attributes(response)
  #merge_attributes(service.create_subnet(self.network_id,
  #                                       self.cidr,
  #                                       self.ip_version,
  #                                       self.attributes).body['subnet'])
  self
end
destroy() click to toggle source
# File lib/fog/softlayer/models/network/subnet.rb, line 77
def destroy
  requires :id
  service.delete_subnet(self.id)
  true
end
portable?() click to toggle source

def addresses=(addresses)

@addresses = addresses

end

# File lib/fog/softlayer/models/network/subnet.rb, line 42
def portable?
  type == 'ROUTED_TO_VLAN'
end
private?() click to toggle source
# File lib/fog/softlayer/models/network/subnet.rb, line 46
def private?
  address_space == 'PRIVATE'
end
public?() click to toggle source
# File lib/fog/softlayer/models/network/subnet.rb, line 50
def public?
  not private?
end
save() click to toggle source
# File lib/fog/softlayer/models/network/subnet.rb, line 54
def save
  requires :network_id, :cidr, :ip_version
  identity ? update : create
end
update() click to toggle source
# File lib/fog/softlayer/models/network/subnet.rb, line 70
def update
  requires :id, :network_id, :cidr, :ip_version
  merge_attributes(service.update_subnet(self.id,
                                         self.attributes).body['subnet'])
  self
end

Private Instance Methods

build_order(address_count) click to toggle source
# File lib/fog/softlayer/models/network/subnet.rb, line 85
def build_order(address_count)
  order = {
      'complexType' => 'SoftLayer_Container_Product_Order_Network_Subnet',
      'location' => datacenter,
      'quantity' =>1,
      'packageId' =>0,
      'prices' =>[
          {'id' => portable? ? service.get_portable_subnet_price_code(address_count, public?) : service.get_subnet_price_code }
      ]
  }
  order['endPointVlanId'] = vlan_id if portable?
  order
end