Esempio n. 1
0
 def refresh_dom_mapping(self):
     # 调用该方法的函数,都为单独的对象实例。即不存在多线程共用该方法,故而不用加多线程锁
     self.dom_mapping_by_uuid.clear()
     try:
         for dom in self.conn.listAllDomains():
             self.dom_mapping_by_uuid[dom.UUIDString()] = dom
     except libvirt.libvirtError as e:
         # 尝试重连 Libvirtd
         logger.warn(e.message)
         logger.warn(libvirt.virGetLastErrorMessage())
         self.init_conn()
Esempio n. 2
0
    def clear_scene(self):

        if self.dirty_scene:
            self.dirty_scene = False

            if self.guest.gf.exists(self.guest.system_image_path):
                self.guest.gf.remove(self.guest.system_image_path)

            else:
                log = u'清理现场失败: 不存在的路径 --> ' + self.guest.guest_dir
                logger.warn(msg=log)
                log_emit.warn(msg=log)
Esempio n. 3
0
    def init_conn_redis(cls):
        """
          * Added TCP Keep-alive support by passing use the socket_keepalive=True
            option. Finer grain control can be achieved using the
            socket_keepalive_options option which expects a dictionary with any of
            the keys (socket.TCP_KEEPIDLE, socket.TCP_KEEPCNT, socket.TCP_KEEPINTVL)
            and integers for values. Thanks Yossi Gottlieb.
            TCP_KEEPDILE 设置连接上如果没有数据发送的话,多久后发送keepalive探测分组,单位是秒
            TCP_KEEPINTVL 前后两次探测之间的时间间隔,单位是秒
            TCP_KEEPCNT 关闭一个非活跃连接之前的最大重试次数
        """
        import socket
        cls.r = redis.StrictRedis(host=app.config.get('redis_host',
                                                      '127.0.0.1'),
                                  port=app.config.get('redis_port', 6379),
                                  db=app.config.get('redis_dbid', 0),
                                  decode_responses=True,
                                  socket_timeout=600,
                                  socket_connect_timeout=600,
                                  socket_keepalive=True,
                                  socket_keepalive_options={
                                      socket.TCP_KEEPIDLE: 2,
                                      socket.TCP_KEEPINTVL: 5,
                                      socket.TCP_KEEPCNT: 10
                                  },
                                  retry_on_timeout=True)

        try:
            cls.r.ping()
        except redis.exceptions.ResponseError as e:
            logger.warn(e.message)
            cls.r = redis.StrictRedis(
                host=app.config.get('redis_host', '127.0.0.1'),
                port=app.config.get('redis_port', 6379),
                db=app.config.get('redis_dbid', 0),
                password=app.config.get('redis_password', ''),
                decode_responses=True,
                socket_timeout=600,
                socket_connect_timeout=600,
                socket_keepalive=True,
                socket_keepalive_options={
                    socket.TCP_KEEPIDLE: 2,
                    socket.TCP_KEEPINTVL: 5,
                    socket.TCP_KEEPCNT: 10
                },
                retry_on_timeout=True)

        cls.r.client_setname(ji.Common.get_hostname())
Esempio n. 4
0
    def emit2(self, _type=None, message=None):
        from initialize import logger

        if _type == LogLevel.debug.value:
            logger.debug(msg=message)

        elif _type == LogLevel.info.value:
            logger.info(msg=message)

        elif _type == LogLevel.warn.value:
            logger.warn(msg=message)

        elif _type == LogLevel.error.value:
            logger.error(msg=message)

        elif _type == LogLevel.critical.value:
            logger.critical(msg=message)

        else:
            logger.debug(msg=message)

        return self.emit(_kind=EmitKind.log.value,
                         _type=_type,
                         message=message)