Пример #1
0
 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
Пример #2
0
 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
Пример #3
0
 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)
Пример #4
0
 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)
Пример #5
0
 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)
Пример #6
0
 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)