module Proxy::Ipam::IpamValidator
Module containing validation methods for use by all External IPAM provider implementations
Public Instance Methods
validate_cidr!(address, prefix)
click to toggle source
# File lib/smart_proxy_ipam/ipam_validator.rb, line 24 def validate_cidr!(address, prefix) cidr = "#{address}/#{prefix}" network = IPAddr.new(cidr).to_s if IPAddr.new(cidr).to_s != IPAddr.new(address).to_s raise Proxy::Validations::Error, "Network address #{address} should be #{network} with prefix #{prefix}" end cidr rescue IPAddr::Error => e raise Proxy::Validations::Error, e.to_s end
validate_ip!(ip)
click to toggle source
# File lib/smart_proxy_ipam/ipam_validator.rb, line 18 def validate_ip!(ip) good_ip = ip =~ Regexp.union([Resolv::IPv4::Regex, Resolv::IPv6::Regex]) raise Proxy::Validations::Error, ERRORS[:bad_ip] if good_ip.nil? ip end
validate_ip_in_cidr!(ip, cidr)
click to toggle source
# File lib/smart_proxy_ipam/ipam_validator.rb, line 35 def validate_ip_in_cidr!(ip, cidr) unless IPAddr.new(cidr).include?(IPAddr.new(ip)) raise Proxy::Validations::Error.new, "IP #{ip} is not in #{cidr}" end end
validate_mac!(mac)
click to toggle source
# File lib/smart_proxy_ipam/ipam_validator.rb, line 41 def validate_mac!(mac) unless mac.match(/^([0-9a-fA-F]{2}[:]){5}[0-9a-fA-F]{2}$/i) raise Proxy::Validations::Error.new, ERRORS[:bad_mac] end mac end
validate_required_params!(required_params, params)
click to toggle source
# File lib/smart_proxy_ipam/ipam_validator.rb, line 8 def validate_required_params!(required_params, params) err = [] required_params.each do |param| unless params[param.to_sym] err.push errors[param.to_sym] end end raise Proxy::Validations::Error, err unless err.empty? end