Esempio n. 1
0
 def download_file(self, ssh, ip, file):
     if file in ["", "NULL"]:
         self.insert_text_info(ip, 100, 'Success')
         return True
     download_dir = "{0}\\{1}".format(Global.G_DOWNLOAD_DIR, ip)
     filename = "{0}\\{1}".format(download_dir, Common.basename(file))
     Common.mkdir(download_dir)
     self.insert_text_info(ip, 100, 'Downloading to {}'.format(filename))
     if not SSHUtil.download_file(ssh, remote=file, local=filename):
         return False
     self.insert_text_info(ip, 100, "Download success")
     return True
Esempio n. 2
0
 def refresh_file_data(self, args=None):
     logger.debug('[timer] refresh file data start...')
     server_dir = model_gate.settings_data.server_dir
     scripts = model_gate.settings_data.refresh_file['scripts']
     server_download = Global.G_SERVER_DOWNLOAD % server_dir
     try:
         for ip, data in model_gate.login_state_data.get_data().items():
             ssh = data['SSH']
             local_download = "{}\\{}".format(Global.G_DOWNLOAD_DIR, ip)
             data_dir = "{}\\__FILE_DATA__".format(local_download)
             Common.mkdir(local_download)
             Common.mkdir(data_dir)
             # 初始运行时先把之前已经运行的进程杀死,每次都用最新代码跑
             if ip not in self.is_first_run:
                 [
                     SSHUtil.exec_ret(ssh, "killall {}".format(script),
                                      True) for script in scripts
                 ]
                 self.is_first_run[ip] = True
             cmd = ''
             for script in scripts:
                 cmd = "{0}\n{1}/{2}".format(cmd, server_dir, script)
                 SSHUtil.exec_ret(ssh, cmd, True)
             # 再压缩DOWNLOAD目录
             cmd = 'cd {0} && zip refresh_file.zip *;chmod 777 *.zip'.format(
                 server_download)
             SSHUtil.exec_ret(ssh, cmd, True)
             # 然后下载文件
             SSHUtil.download_file(
                 ssh, "{}/refresh_file.zip".format(server_download),
                 '{}\\refresh_file.zip'.format(local_download))
             # 最后解压
             Common.unzip_file(
                 '{}\\refresh_file.zip'.format(local_download), data_dir)
     except Exception as e:
         logger.error("RefreshTimer refresh_file_impl {}".format(str(e)))
     logger.debug('[timer] refresh file data end')
Esempio n. 3
0
    def check_file(self):
        Global.G_PID_DIR = "{}\\{}".format(Global.G_RUN_DIR, Common.get_pid())
        Common.mkdir(Global.G_RUN_DIR)
        Common.mkdir(Global.G_DOWNLOAD_DIR)
        Common.mkdir(Global.G_PID_DIR)
        logger.info(Global.G_TEXT_LOGO)

        for path in [
                Global.G_RESOURCE_DIR, Global.G_DEPENDENCE_FILE,
                Global.G_SETTINGS_FILE, Global.G_SCRIPTS_DIR
        ]:
            if not Common.is_exists(path):
                model_gate.exception_data.set_data(
                    "{} is not exist".format(path))
                logger.error("{} is not exist".format(path))
                return False
        return True