def makedhcp(self, netname, startip, endip, no_ha=False): from luna.network import Network from bson.objectid import ObjectId try: if bool(netname): objnet = Network(name=netname, mongo_db=self._mongo_db) except: ojbnet = None if not bool(objnet): self._logger.error("Proper DHCP network should be specified.") return None if not bool(startip) or not bool(endip): self._logger.error( "First and last IPs of range should be specified.") return None if not bool(self.get_cluster_ips()): no_ha = True startip = objnet.ip_to_relnum(startip) endip = objnet.ip_to_relnum(endip) if not bool(startip) or not bool(endip): self._logger.error("Error in acquiring IPs.") return None obj_json = self._get_json() (oldnetid, oldstartip, oldendip) = (None, None, None) try: oldnetid = obj_json['dhcp_net'] oldstartip = obj_json['dhcp_range_start'] oldendip = obj_json['dhcp_range_end'] except: (oldnetid, oldstartip, oldendip) = (None, None, None) if str(oldnetid) == str(objnet.id): objnet.release_ip(oldstartip, oldendip) self.unlink(objnet) (oldnetid, oldstartip, oldendip) = (None, None, None) res = objnet.reserve_ip(startip, endip) if not bool(res): self._logger.error("Cannot reserve IP range for DHCP.") super(Cluster, self).set('dhcp_net', str(objnet.id)) super(Cluster, self).set('dhcp_range_start', startip) super(Cluster, self).set('dhcp_range_end', endip) self.link(objnet) if bool(oldnetid) and bool(oldstartip) and bool(oldendip): oldnet_obj = Network(id=ObjectId(oldnetid), mongo_db=self._mongo_db) self.unlink(oldnet_obj) oldnet_obj.release_ip(oldstartip, oldendip) self._create_dhcp_config(no_ha) return True
def makedhcp(self, netname, startip, endip, no_ha = False): from luna.network import Network from bson.objectid import ObjectId try: if bool(netname): objnet = Network(name = netname, mongo_db = self._mongo_db) except: ojbnet = None if not bool(objnet): self._logger.error("Proper DHCP network should be specified.") return None if not bool(startip) or not bool(endip): self._logger.error("First and last IPs of range should be specified.") return None if not bool(self.get_cluster_ips()): no_ha = True startip = objnet.ip_to_relnum(startip) endip = objnet.ip_to_relnum(endip) if not bool(startip) or not bool(endip): self._logger.error("Error in acquiring IPs.") return None obj_json = self._get_json() (oldnetid, oldstartip, oldendip) = (None, None, None) try: oldnetid = obj_json['dhcp_net'] oldstartip = obj_json['dhcp_range_start'] oldendip = obj_json['dhcp_range_end'] except: (oldnetid, oldstartip, oldendip) = (None, None, None) if str(oldnetid) == str(objnet.id): objnet.release_ip(oldstartip, oldendip) self.unlink(objnet) (oldnetid, oldstartip, oldendip) = (None, None, None) res = objnet.reserve_ip(startip, endip) if not bool(res): self._logger.error("Cannot reserve IP range for DHCP.") super(Cluster, self).set('dhcp_net', str(objnet.id)) super(Cluster, self).set('dhcp_range_start', startip) super(Cluster, self).set('dhcp_range_end', endip) self.link(objnet) if bool(oldnetid) and bool(oldstartip) and bool(oldendip): oldnet_obj = Network(id = ObjectId(oldnetid), mongo_db = self._mongo_db) self.unlink(oldnet_obj) oldnet_obj.release_ip(oldstartip, oldendip) self._create_dhcp_config(no_ha) return True
def get_num_bmc_ip(self, ip): dbref = None try: dbref = self._get_json()['bmcnetwork'] except: self._logger.error("Interface is not configured for BMC") return None if not bool(dbref): return None net = Network(id=dbref.id, mongo_db=self._mongo_db) return net.ip_to_relnum(ip)
def get_num_bmc_ip(self, ip): dbref = None try: dbref = self._get_json()['bmcnetwork'] except: self._logger.error("Interface is not configured for BMC") return None if not bool(dbref): return None net = Network(id = dbref.id, mongo_db = self._mongo_db) return net.ip_to_relnum(ip)
def get_num_ip(self, interface, ip): interfaces = self._get_json()['interfaces'] dbref = None try: dbref = interfaces[interface]['network'] except: self._logger.error("Interface is not configured for '{}'".format(interface)) return None if not bool(dbref): return None net = Network(id = dbref.id, mongo_db = self._mongo_db) return net.ip_to_relnum(ip)
def get_num_ip(self, interface, ip): interfaces = self._get_json()['interfaces'] dbref = None try: dbref = interfaces[interface]['network'] except: self._logger.error( "Interface is not configured for '{}'".format(interface)) return None if not bool(dbref): return None net = Network(id=dbref.id, mongo_db=self._mongo_db) return net.ip_to_relnum(ip)