Beispiel #1
0
 def vps_open (self, vps, vps_image=None, is_new=True): 
     self.logger.info ("to open vps %s" % (vps.id))
     if vps.host_id != self.host_id:
         msg = "vpsopen : vps %s host_id=%s != current host %s , abort" % (vps.id, vps.host_id, self.host_id)
         self.logger.error (msg)
         self.done_task (Cmd.OPEN, vps.id, False, msg)
         return
     if not vps.ipv4 or not vps.ipv4_gateway or vps.cpu <= 0 or vps.ram <= 0 or vps.hd <= 0 or not vps.password:
         self.logger.error ("vps open: invalid vps data received: %s" % (self.dump_vps_info (vps)))
         self.done_task (Cmd.OPEN, vps.id, False, "invalid vps data")
         return
     xv = XenVPS (vps.id)
     vpsops = VPSOps (self.logger)
     try:
         self.setup_vps (xv, vps)
         if xv.is_running ():
             msg = "vps %s is running" % (vps.id)
             self.logger_err.error (msg)
             self.done_task (Cmd.OPEN, vps.id, False, msg)
             return
         if vps.state in [vps_const.VPS_STATE_PAY, vps_const.VPS_STATE_RUN]:
             vpsops.create_vps (xv, vps_image, is_new)
         elif vps.state == vps_const.VPS_STATE_CLOSE:
             vpsops.reopen_vps (vps.id, xv)
         else:
             msg = "vps%s state is %s(%s)" % (str(vps.id), vps.state, vps_const.VPS_STATE2CN[vps.state])
             self.logger_err.error (msg)
             self.done_task (Cmd.OPEN, vps.id, False, msg)
             return
     except Exception, e:
         self.logger_err.exception ("for %s: %s" % (str(vps.id), str(e)))
         self.done_task (Cmd.OPEN, vps.id, False, "error, " + str(e))
         return
Beispiel #2
0
 def vps_open(self, vps, vps_image=None, is_new=True):
     self.logger.info("to open vps %s" % (vps.id))
     if vps.host_id != self.host_id:
         msg = "vpsopen : vps %s host_id=%s != current host %s , abort" % (
             vps.id, vps.host_id, self.host_id)
         self.logger.error(msg)
         self.done_task(Cmd.OPEN, vps.id, False, msg)
         return
     if not vps.ipv4 or not vps.ipv4_gateway or vps.cpu <= 0 or vps.ram <= 0 or vps.hd <= 0 or not vps.password:
         self.logger.error("vps open: invalid vps data received: %s" %
                           (self.dump_vps_info(vps)))
         self.done_task(Cmd.OPEN, vps.id, False, "invalid vps data")
         return
     xv = XenVPS(vps.id)
     vpsops = VPSOps(self.logger)
     try:
         self.setup_vps(xv, vps)
         if xv.is_running():
             msg = "vps %s is running" % (vps.id)
             self.logger_err.error(msg)
             self.done_task(Cmd.OPEN, vps.id, False, msg)
             return
         if vps.state in [vps_const.VPS_STATE_PAY, vps_const.VPS_STATE_RUN]:
             vpsops.create_vps(xv, vps_image, is_new)
         elif vps.state == vps_const.VPS_STATE_CLOSE:
             vpsops.reopen_vps(vps.id, xv)
         else:
             msg = "vps%s state is %s(%s)" % (str(
                 vps.id), vps.state, vps_const.VPS_STATE2CN[vps.state])
             self.logger_err.error(msg)
             self.done_task(Cmd.OPEN, vps.id, False, msg)
             return
     except Exception, e:
         self.logger_err.exception("for %s: %s" % (str(vps.id), str(e)))
         self.done_task(Cmd.OPEN, vps.id, False, "error, " + str(e))
         return