Class: Dcmgr::Models::Network
- Inherits:
-
AccountResource
- Object
- Sequel::Model
- BaseNew
- AccountResource
- Dcmgr::Models::Network
- Defined in:
- lib/dcmgr/models/network.rb
Overview
IP network definitions.
Constant Summary
Constants inherited from BaseNew
Instance Method Summary collapse
-
#add_reserved(ipaddr) ⇒ Object
register reserved IP address in this network.
- #available_ip_nums ⇒ Object
-
#include?(ipaddr) ⇒ Boolean
check if the given IP addess is in the range of this network.
- #ipaddress ⇒ Object
- #to_hash ⇒ Object
- #validate ⇒ Object
Methods inherited from AccountResource
Methods inherited from BaseNew
Proxy, dataset, install_data, install_data_hooks, lock!, unlock!
Instance Method Details
#add_reserved(ipaddr) ⇒ Object
register reserved IP address in this network
61 62 63 |
# File 'lib/dcmgr/models/network.rb', line 61 def add_reserved(ipaddr) add_ip_lease(:ipv4=>ipaddr, :type=>IpLease::TYPE_RESERVED) end |
#available_ip_nums ⇒ Object
65 66 67 |
# File 'lib/dcmgr/models/network.rb', line 65 def available_ip_nums self.ipaddress.hosts.size - self.ip_lease_dataset.count end |
#include?(ipaddr) ⇒ Boolean
check if the given IP addess is in the range of this network.
55 56 57 58 |
# File 'lib/dcmgr/models/network.rb', line 55 def include?(ipaddr) ipaddr = ipaddr.is_a?(IPAddress::IPv4) ? ipaddr : IPAddress::IPv4.new(ipaddr) self.ipaddress.network.include?(ipaddr) end |
#ipaddress ⇒ Object
49 50 51 |
# File 'lib/dcmgr/models/network.rb', line 49 def ipaddress IPAddress::IPv4.new("#{self.ipv4_gw}/#{self.prefix}") end |
#to_hash ⇒ Object
40 41 42 43 44 45 46 47 |
# File 'lib/dcmgr/models/network.rb', line 40 def to_hash h = super h.delete(:vlan_lease_id) h.merge({ :description=>description.to_s, :vlan_id => vlan_lease.tag_id, }) end |
#validate ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/dcmgr/models/network.rb', line 25 def validate super # validate ipv4 syntax begin IPAddress::IPv4.new("#{self.ipv4_gw}") rescue => e errors.add(:ipv4_gw, "Invalid IP address syntax: #{self.ipv4_gw}") end unless (1..31).include?(self.prefix.to_i) errors.add(:prefix, "prefix must be 1-31: #{self.prefix}") end end |