Sha256: a6046a78c4e90fde203da23a0bc526b645cf631ed164515bcb2cd84f1dda3f18
Contents?: true
Size: 1.24 KB
Versions: 2
Compression:
Stored size: 1.24 KB
Contents
# -*- coding: utf-8 -*- module Dcmgr::Models # MAC address lease information class MacLease < BaseNew # register MAC address. # @params [String] 6 or 12 length of HEX value in string. def self.lease(mac_addr) case mac_addr.size when 12 when 6 # Assign bottom 6 device ID dynamically. vendor_id = mac_addr.dup begin mac_addr = vendor_id + ("%02x%02x%02x" % [rand(0xff),rand(0xff),rand(0xff)]) end while self.find(:mac_addr=> mac_addr) else raise ArgumentError, "Invalid MAC address string: 6 or 12 length of HEX value is needed." end create(:mac_addr=>mac_addr) end # show default vendor ID for the hypervisor. # The virtual interface can be applied any valid MAC address. But using # the well known vendor IDs for hypervisor have some benefits. For # example, 70-persistent-net.rules issue can be avoided with newer # udev release. def self.default_vendor_id(hypervisor) case hypervisor.to_sym when :kvm '525400' when :lxc # LXC is not known with the specific vendor ID. This may be wrong. '525400' else raise "Unknown hypervisor name: #{hypervisor}" end end end end
Version data entries
2 entries across 2 versions & 2 rubygems
Version | Path |
---|---|
wakame-vdc-agents-11.12.0 | lib/dcmgr/models/mac_lease.rb |
wakame-vdc-dcmgr-11.12.0 | lib/dcmgr/models/mac_lease.rb |