mirror of https://github.com/openspug/spug
U 优化自定义发布数据清理机制
parent
fbd3255540
commit
a37b736e65
|
@ -20,6 +20,7 @@ class Helper:
|
|||
self.rds = rds
|
||||
self.key = key
|
||||
self.rds.delete(self.key)
|
||||
self.callback = []
|
||||
|
||||
@classmethod
|
||||
def _make_dd_notify(cls, url, action, req, version, host_str):
|
||||
|
@ -201,6 +202,9 @@ class Helper:
|
|||
else:
|
||||
raise NotImplementedError
|
||||
|
||||
def add_callback(self, func):
|
||||
self.callback.append(func)
|
||||
|
||||
def parse_filter_rule(self, data: str, sep='\n'):
|
||||
data, files = data.strip(), []
|
||||
if data:
|
||||
|
@ -230,6 +234,9 @@ class Helper:
|
|||
# save logs for two weeks
|
||||
self.rds.expire(self.key, 14 * 24 * 60 * 60)
|
||||
self.rds.close()
|
||||
# callback
|
||||
for func in self.callback:
|
||||
func()
|
||||
|
||||
def local(self, command, env=None):
|
||||
if env:
|
||||
|
|
|
@ -11,6 +11,7 @@ from apps.repository.models import Repository
|
|||
from apps.repository.utils import dispatch as build_repository
|
||||
from apps.deploy.helper import Helper, SpugError
|
||||
from concurrent import futures
|
||||
from functools import partial
|
||||
import json
|
||||
import uuid
|
||||
import os
|
||||
|
@ -128,7 +129,6 @@ def _ext2_deploy(req, helper, env):
|
|||
step += 1
|
||||
helper.send_step('local', 100, '')
|
||||
|
||||
tmp_transfer_file = None
|
||||
for action in host_actions:
|
||||
if action.get('type') == 'transfer':
|
||||
if action.get('src_mode') == '1':
|
||||
|
@ -157,7 +157,7 @@ def _ext2_deploy(req, helper, env):
|
|||
tar_gz_file = f'{req.spug_version}.tar.gz'
|
||||
helper.local(f'cd {sp_dir} && tar -zcf {tar_gz_file} {exclude} {contain}')
|
||||
helper.send_info('local', f'{human_time()} \033[32m完成√\033[0m\r\n')
|
||||
tmp_transfer_file = os.path.join(sp_dir, tar_gz_file)
|
||||
helper.add_callback(partial(os.remove, os.path.join(sp_dir, tar_gz_file)))
|
||||
break
|
||||
if host_actions:
|
||||
if req.deploy.is_parallel:
|
||||
|
@ -175,8 +175,6 @@ def _ext2_deploy(req, helper, env):
|
|||
latest_exception = exception
|
||||
if not isinstance(exception, SpugError):
|
||||
helper.send_error(t.h_id, f'Exception: {exception}', False)
|
||||
if tmp_transfer_file:
|
||||
os.remove(tmp_transfer_file)
|
||||
if latest_exception:
|
||||
raise latest_exception
|
||||
else:
|
||||
|
|
Loading…
Reference in New Issue