def delete_proxy(task_id, **config):
logger.info('starting delete proxy')
ports = config['ports']
programs = []
for p in ports:
conf_file = CORVUS_CONF.format(p)
if os.path.exists(conf_file):
os.remove(conf_file)
for f in os.listdir(SUPERVISOR_DIR):
if f.startswith('corvus-{}-'.format(p)) and f.endswith('.ini'):
programs.append(f[:-4])
os.remove(os.path.join(SUPERVISOR_DIR, f))
logger.info('{} deleted'.format(programs[-1]))
run('supervisorctl reread')
run('supervisorctl update {}'.format(' '.join(programs)))
logger.info('waiting proxy to be stopped')
retry = 5 * len(programs)
for _ in range(retry):
if all(map(operator.not_, map(program_running, programs))):
break;
os.sleep(2)
else:
raise TaskException('proxies are still running')
delete_proxy_in_dashboard(config)
logger.info('successfully delete proxy')
评论列表
文章目录