From f0a1a5f6068e49f1774d4ec04c0005d5ef737be9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=AD=A6=E5=B3=B0?= Date: Fri, 9 Sep 2022 10:50:13 +0800 Subject: [PATCH] feature: add cluster for create tone job --- common/tone/api.py | 1 + models/task_model.py | 2 ++ services/tone_job_service.py | 28 +----------------------- services/tone_service.py | 42 +++++++++++++++++++++++++++++++++++- views/tone_view.py | 10 ++++++++- 5 files changed, 54 insertions(+), 29 deletions(-) diff --git a/common/tone/api.py b/common/tone/api.py index 3157bf2..c7ededb 100644 --- a/common/tone/api.py +++ b/common/tone/api.py @@ -7,3 +7,4 @@ TONE_PROJECT_QUERY = 'api/workspace/project/' TONE_JOB_TYPE_QUERY = 'api/workspace/job_type/' TONE_SERVER_LIST = 'api/job/server_list/' TONE_SERVER_TAG = 'api/job/server_tag/' +TONE_CLUSTER_LIST = 'api/job/cluster_list/' diff --git a/models/task_model.py b/models/task_model.py index 55db415..77d0a55 100644 --- a/models/task_model.py +++ b/models/task_model.py @@ -21,6 +21,8 @@ class Task(CommonModel): config = Column(JSON(), nullable=True, comment='测试任务配置') device_id = Column(Integer, nullable=True, comment='测试设备ID') device_ip = Column(String(256), nullable=True, default='-', comment='测试机器IP') + cluster = Column(String(256), nullable=True, default='', comment='测试机器集群名称') + tags = Column(String(256), nullable=True, default='', comment='测试机器标签') workspace = Column(String(128), nullable=False, comment='tone workspace') project = Column(String(128), nullable=False, comment='tone project') job_type = Column(String(128), nullable=False, comment='tone job type') diff --git a/services/tone_job_service.py b/services/tone_job_service.py index 88b3776..618949e 100644 --- a/services/tone_job_service.py +++ b/services/tone_job_service.py @@ -4,7 +4,7 @@ import time from app.conf import conf from app.log import log from common.enums import Tone_Job_State, Track_Result, Case_Result, Status_EN, Test_Type -from common.tone.api import TONE_JOB_QUERY, TONE_CREATE_JOB, TONE_SERVER_TAG, TONE_SERVER_LIST +from common.tone.api import TONE_JOB_QUERY, TONE_CREATE_JOB from common.tone.tone_request import get_res_from_tone from models.job_model import ToneJob, PerfResult, FuncResult from models.plan_model import update_plan_status @@ -204,29 +204,3 @@ async def tone_callback(data): return result, ok else: return result, status - - -async def query_tone_server(ws_id, provider, run_mode): - req_data = { - 'ws_id': ws_id, - 'provider': provider, - 'run_mode': run_mode - } - status, result = await get_res_from_tone('get', TONE_SERVER_LIST, req_data) - if status == 200: - tone_result = json.loads(result) - if tone_result['success']: - return tone_result['data'] - return None, False - - -async def query_tone_server_tag(ws_id): - req_data = { - 'ws_id': ws_id - } - status, result = await get_res_from_tone('get', TONE_SERVER_TAG, req_data) - if status == 200: - tone_result = json.loads(result) - if tone_result['success']: - return tone_result['data'] - return None, False diff --git a/services/tone_service.py b/services/tone_service.py index 399f31d..f03f31e 100644 --- a/services/tone_service.py +++ b/services/tone_service.py @@ -1,6 +1,7 @@ import asyncio import json -from common.tone.api import TONE_SUITE_QUERY, TONE_WS_QUERY, TONE_PROJECT_QUERY, TONE_JOB_TYPE_QUERY +from common.tone.api import TONE_SUITE_QUERY, TONE_WS_QUERY, TONE_PROJECT_QUERY, TONE_JOB_TYPE_QUERY, TONE_SERVER_LIST,\ + TONE_SERVER_TAG, TONE_CLUSTER_LIST from common.tone.tone_request import get_res_from_tone from app import log from models.tone_model import ToneCase, query_tone_case_type, query_tone_suite, ToneSyncPull, \ @@ -133,3 +134,42 @@ async def get_tone_job_type(ws_id, test_type): if tone_result['success']: return tone_result['data'] return None + + +async def query_tone_server(ws_id, provider, run_mode): + req_data = { + 'ws_id': ws_id, + 'provider': provider, + 'run_mode': run_mode + } + status, result = await get_res_from_tone('get', TONE_SERVER_LIST, req_data) + if status == 200: + tone_result = json.loads(result) + if tone_result['success']: + return tone_result['data'] + return None, False + + +async def query_tone_server_tag(ws_id): + req_data = { + 'ws_id': ws_id + } + status, result = await get_res_from_tone('get', TONE_SERVER_TAG, req_data) + if status == 200: + tone_result = json.loads(result) + if tone_result['success']: + return tone_result['data'] + return None, False + + +async def query_tone_cluster(ws_id, provider): + req_data = { + 'ws_id': ws_id, + 'provider': provider + } + status, result = await get_res_from_tone('get', TONE_CLUSTER_LIST, req_data) + if status == 200: + tone_result = json.loads(result) + if tone_result['success']: + return tone_result['data'] + return None, False diff --git a/views/tone_view.py b/views/tone_view.py index 50ddf0b..6788e1f 100644 --- a/views/tone_view.py +++ b/views/tone_view.py @@ -5,7 +5,8 @@ from common.http import rsp from services.auth_service import login_auth, read_auth from services.tone_service import query_suite, get_tone_case_type, query_tone_cases, sync_suite, sync_suite_by_manual, \ get_tone_project, get_tone_job_type, get_tone_ws -from services.tone_job_service import create_tone_job, tone_callback, query_tone_server_tag, query_tone_server +from services.tone_job_service import create_tone_job, tone_callback +from services.tone_service import query_tone_server, query_tone_server_tag, query_tone_cluster bp = Blueprint('tone', url_prefix='api/tone/') @@ -93,3 +94,10 @@ async def get_server_list(_, ws_id, provider, run_mode, user_infos): async def get_server_list(_, ws_id, user_infos): result = await query_tone_server_tag(ws_id) return rsp(data=result) + + +@bp.get('/cluster_list//') +@login_auth +async def get_server_list(_, ws_id, provider, user_infos): + result = await query_tone_cluster(ws_id, provider) + return rsp(data=result) -- Gitee