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