U 优化发布执行展示效果

4.0
vapao 2022-10-22 17:48:46 +08:00
parent b42b12aa88
commit 6709feffeb
4 changed files with 23 additions and 12 deletions

View File

@ -4,7 +4,7 @@
from django_redis import get_redis_connection
from django.conf import settings
from django.db import close_old_connections
from libs.utils import AttrDict, render_str
from libs.utils import AttrDict, render_str, human_seconds_time
from apps.host.models import Host
from apps.config.utils import compose_configs
from apps.repository.models import Repository
@ -15,6 +15,7 @@ from concurrent import futures
from functools import partial
import json
import uuid
import time
import os
REPOS_DIR = settings.REPOS_DIR
@ -131,6 +132,7 @@ def _ext1_deploy(req, helper, env):
def _ext2_deploy(req, helper, env):
flag = time.time()
extend, step = req.deploy.extend_obj, 1
host_actions = json.loads(extend.host_actions)
server_actions = json.loads(extend.server_actions)
@ -192,8 +194,9 @@ def _ext2_deploy(req, helper, env):
helper.send_info('local', '打包完成\r\n')
helper.add_callback(partial(os.remove, os.path.join(sp_dir, tar_gz_file)))
human_time = human_seconds_time(time.time() - flag)
if host_actions:
helper.send_success('local', '\r\n** 执行完成 **', status='success')
helper.send_success('local', f'\r\n** 执行完成,耗时:{human_time} **', status='success')
if req.deploy.is_parallel:
threads, latest_exception = [], None
max_workers = max(10, os.cpu_count() * 5)
@ -230,10 +233,11 @@ def _ext2_deploy(req, helper, env):
raise e
else:
req.fail_host_ids = []
helper.send_success('local', '\r\n** 发布成功 **', status='success')
helper.send_success('local', f'\r\n** 发布成功,耗时:{human_time} **', status='success')
def _deploy_ext1_host(req, helper, h_id, env):
flag = time.time()
helper.send_clear(h_id)
helper.send_info(h_id, '数据准备... ', status='doing')
host = Host.objects.filter(pk=h_id).first()
@ -292,10 +296,12 @@ def _deploy_ext1_host(req, helper, h_id, env):
command = f'cd {extend.dst_dir} && {extend.hook_post_host}'
helper.remote(host.id, ssh, command)
helper.send_success(h_id, '\r\n** 发布成功 **', status='success')
human_time = human_seconds_time(time.time() - flag)
helper.send_success(h_id, f'\r\n** 发布成功,耗时:{human_time} **', status='success')
def _deploy_ext2_host(helper, h_id, actions, env, spug_version):
flag = time.time()
host = Host.objects.filter(pk=h_id).first()
if not host:
helper.send_error(h_id, 'no such host')
@ -339,5 +345,5 @@ def _deploy_ext2_host(helper, h_id, actions, env, spug_version):
helper.send_info(h_id, f'{action["title"]}...\r\n')
command = f'cd /tmp && {action["data"]}'
helper.remote(host.id, ssh, command)
helper.send_success(h_id, f'\r\n** 发布成功 **', status='success')
human_time = human_seconds_time(time.time() - flag)
helper.send_success(h_id, f'\r\n** 发布成功,耗时:{human_time} **', status='success')

View File

@ -59,7 +59,7 @@ class Job:
for code, out in self.ssh.exec_command_with_stream(self.command, self.env):
self.send(out)
human_time = human_seconds_time(time.time() - flag)
self.send(f'\r\n\x1b[36m** 执行结束,耗时:{human_time} **\x1b[0m')
self.send(f'\r\n\x1b[36m** 执行结束,耗时:{human_time} **\x1b[0m')
except socket.timeout:
code = 130
self.send('\r\n\x1b[31m### Time out\x1b[0m')

View File

@ -4,13 +4,14 @@
from django_redis import get_redis_connection
from django.conf import settings
from django.db import close_old_connections
from libs.utils import AttrDict, human_datetime, render_str
from libs.utils import AttrDict, human_datetime, render_str, human_seconds_time
from apps.repository.models import Repository
from apps.app.utils import fetch_repo
from apps.config.utils import compose_configs
from apps.deploy.helper import Helper
import json
import uuid
import time
import os
REPOS_DIR = settings.REPOS_DIR
@ -77,6 +78,7 @@ def dispatch(rep: Repository, helper=None):
def _build(rep: Repository, helper, env):
flag = time.time()
extend = rep.deploy.extend_obj
git_dir = os.path.join(REPOS_DIR, str(rep.deploy_id))
build_dir = os.path.join(REPOS_DIR, rep.spug_version)
@ -115,4 +117,5 @@ def _build(rep: Repository, helper, env):
contain = ' '.join(f'{rep.spug_version}/{x}' for x in files)
helper.local(f'mkdir -p {BUILD_DIR} && cd {REPOS_DIR} && tar zcf {tar_file} {exclude} {contain}')
helper.send_success('local', '完成√\r\n')
helper.send_success('local', '\r\n** 构建成功 **\r\n', status='success')
human_time = human_seconds_time(time.time() - flag)
helper.send_success('local', f'\r\n** 构建成功,耗时:{human_time} **\r\n', status='success')

View File

@ -239,9 +239,11 @@ function Console(props) {
)}
</Tooltip>
)}
{cItem.id !== 'local' && (
<Tooltip title="打开web终端">
<CodeOutlined className={styles.icon} onClick={() => openTerminal(current)}/>
</Tooltip>
)}
</div>
<div className={styles.termContainer}>
<div ref={el} className={styles.term}/>