diff --git a/appStore/api/router.py b/appStore/api/router.py
index ab1869546538befe5a77b58d43e7bc3610739856..2e90d4bf6e46451446a5af23037f9dd4f212d430 100644
--- a/appStore/api/router.py
+++ b/appStore/api/router.py
@@ -19,6 +19,7 @@ from appStore.project.views import ProjectViewSet
from appStore.stream.views import StreamViewSet
from appStore.testCase.views import TestCaseViewSet
from appStore.unixbench.views import UnixbenchViewSet
+from appStore.userConfig.views import UserConfigViewSet
from appStore.users.views import UserProfileViewSet
router = routers.DefaultRouter()
@@ -36,7 +37,8 @@ router.register(r'project', ProjectViewSet, basename='project')
router.register(r'stream', StreamViewSet, basename='stream')
router.register(r'unixbench', UnixbenchViewSet, basename='unixbench')
router.register(r'users', UserProfileViewSet, basename='users')
-router.register(r'test_case', TestCaseViewSet, basename='testcase')
+router.register(r'test_case', TestCaseViewSet, basename='test_case')
+router.register(r'user_config', UserConfigViewSet, basename='user_config')
urlpatterns = [
url(r'', include(router.urls)),
diff --git a/appStore/testCase/views.py b/appStore/testCase/views.py
index 01621cc3bb883b3cb4aa7de8a3f43edda097ff32..069a96f1aae640c3c23904cf79c4dd9d4272998a 100644
--- a/appStore/testCase/views.py
+++ b/appStore/testCase/views.py
@@ -39,21 +39,21 @@ class TestCaseViewSet(CusModelViewSet):
serializer = self.get_serializer(queryset, many=True)
return json_response(serializer.data, status.HTTP_200_OK, '测试完成')
- def do_test_case1(self, request, *args, **kwargs):
+ def do_test_case(self, request, *args, **kwargs):
# 创建对应数据库
data_test_case = {}
data_test_case['user_name'] = request.user.chinese_name
- data_test_case['ip'] = request.POST.get('test_ip')
- test_password = request.POST.get('test_password')
- data_test_case['project_name'] = request.POST.get('project_name')
- data_test_case['stream'] = request.POST.get('stream')
- data_test_case['lmbench'] = request.POST.get('lmbench')
- data_test_case['unixbench'] = request.POST.get('unixbench')
- data_test_case['fio'] = request.POST.get('fio')
- data_test_case['iozone'] = request.POST.get('iozone')
- data_test_case['jvm2008'] = request.POST.get('jvm2008')
- data_test_case['cpu2006'] = request.POST.get('cpu2006')
- data_test_case['cpu2017'] = request.POST.get('cpu2017')
+ data_test_case['ip'] = request.data.get('test_ip')
+ test_password = request.data.get('test_password')
+ data_test_case['project_name'] = request.data.get('project_name')
+ data_test_case['stream'] = request.data.get('stream')
+ data_test_case['lmbench'] = request.data.get('lmbench')
+ data_test_case['unixbench'] = request.data.get('unixbench')
+ data_test_case['fio'] = request.data.get('fio')
+ data_test_case['iozone'] = request.data.get('iozone')
+ data_test_case['jvm2008'] = request.data.get('jvm2008')
+ data_test_case['cpu2006'] = request.data.get('cpu2006')
+ data_test_case['cpu2017'] = request.data.get('cpu2017')
data_test_case['test_result'] = '运行中'
data_test_case['result_log_name'] = RESULT_LOG_FILE + str(request.user) + '_' + str(time.time())
@@ -74,7 +74,6 @@ class TestCaseViewSet(CusModelViewSet):
test_case_names.append('cpu2006')
if int(data_test_case['cpu2017']):
test_case_names.append('cpu2017')
- # todo 密码怎么解决,从数据库中获取在解密?
if not os.path.exists(RESULT_LOG_FILE):
os.makedirs(RESULT_LOG_FILE)
@@ -94,74 +93,53 @@ class TestCaseViewSet(CusModelViewSet):
configfile.write('project_name={}\n'.format(data_test_case['project_name']))
configfile.write('upload=true\n')
configfile.write('username={}\n'.format(str(request.user)))
- configfile.write('password={}\n'.format(request.POST.get('password')))
+ configfile.write('password={}\n'.format(request.data.get('user_password')))
# 将配置数据写入YAML文件
# 第一代的版本就先只支持迭代次数
if int(data_test_case['stream']):
- # 这个是获取用户的全部配置直接写入的方式
- # with open(user_config + '/yaml-base/stream-base.yaml', 'w') as f:
- # yaml.dump(stream_base_yaml, f)
- # 读取YAML文件中的数据
- with open('./yaml-base/stream-base.yaml', 'r') as f:
- config = yaml.full_load(f)
- # 根据需要修改配置数据
- config['maxiterations'] = int(data_test_case['stream'])
- # 将修改后的数据写回YAML文件
- with open(user_config_path + '/yaml-base/stream-base.yaml', 'w') as f:
- yaml.dump(config, f, default_flow_style=False)
+ stream_yaml = request.data.get('yaml')['stream'].replace('maxiterations: 1', 'maxiterations: %d' % (int(data_test_case['stream'])))
+ with open(user_config_path + '/yaml-base/stream-base.yaml', 'w', encoding='UTF-8') as fp:
+ fp.write(stream_yaml)
if int(data_test_case['lmbench']):
- with open('./yaml-base/lmbench-base.yaml', 'r') as f:
- config = yaml.full_load(f)
- config['maxiterations'] = int(data_test_case['lmbench'])
- with open(user_config_path + '/yaml-base/lmbench-base.yaml', 'w') as f:
- yaml.dump(config, f, default_flow_style=False)
+ lmbench_yaml = request.data.get('yaml')['lmbench'].replace('maxiterations: 1', 'maxiterations: %d' % (
+ int(data_test_case['lmbench'])))
+ with open(user_config_path + '/yaml-base/lmbench-base.yaml', 'w', encoding='UTF-8') as fp:
+ fp.write(lmbench_yaml)
if int(data_test_case['unixbench']):
- with open('./yaml-base/unixbench-base.yaml', 'r') as f:
- config = yaml.full_load(f)
- config['maxiterations'] = int(data_test_case['unixbench'])
- with open(user_config_path + '/yaml-base/unixbench-base.yaml', 'w') as f:
- yaml.dump(config, f)
+ unixbench_yaml = request.data.get('yaml')['unixbench'].replace('maxiterations: 1', 'maxiterations: %d' % (
+ int(data_test_case['unixbench'])))
+ with open(user_config_path + '/yaml-base/unixbench-base.yaml', 'w', encoding='UTF-8') as fp:
+ fp.write(unixbench_yaml)
if int(data_test_case['fio']):
- with open('./yaml-base/fio-base.yaml', 'r') as f:
- config = yaml.full_load(f)
- config['maxiterations'] = int(data_test_case['fio'])
- with open(user_config_path + '/yaml-base/fio-base.yaml', 'w') as f:
- yaml.dump(config, f)
+ fio_yaml = request.data.get('yaml')['fio'].replace('maxiterations: 1', 'maxiterations: %d' % (
+ int(data_test_case['fio'])))
+ with open(user_config_path + '/yaml-base/fio-base.yaml', 'w', encoding='UTF-8') as fp:
+ fp.write(fio_yaml)
if int(data_test_case['iozone']):
- with open('./yaml-base/iozone-base.yaml', 'r') as f:
- config = yaml.full_load(f)
- config['maxiterations'] = int(data_test_case['iozone'])
- with open(user_config_path + '/yaml-base/iozone-base.yaml', 'w') as f:
- yaml.dump(config, f)
+ iozone_yaml = request.data.get('yaml')['iozone'].replace('maxiterations: 1', 'maxiterations: %d' % (
+ int(data_test_case['iozone'])))
+ with open(user_config_path + '/yaml-base/iozone-base.yaml', 'w', encoding='UTF-8') as fp:
+ fp.write(iozone_yaml)
if int(data_test_case['jvm2008']):
- # 读取YAML文件中的数据
- with open('./yaml-base/jvm2008-base.yaml', 'r') as f:
- config = yaml.full_load(f)
- # 根据需要修改配置数据
- config['maxiterations'] = int(data_test_case['jvm2008'])
- # 将修改后的数据写回YAML文件
- with open(user_config_path + '/yaml-base/jvm2008-base.yaml', 'w') as f:
- yaml.dump(config, f)
+ jvm2008_yaml = request.data.get('yaml')['jvm2008'].replace('maxiterations: 1', 'maxiterations: %d' % (
+ int(data_test_case['jvm2008'])))
+ with open(user_config_path + '/yaml-base/jvm2008-base.yaml', 'w', encoding='UTF-8') as fp:
+ fp.write(jvm2008_yaml)
if int(data_test_case['cpu2006']):
- # todo cpu2006-loongarch64-base.yaml这个怎么处理
- # 读取YAML文件中的数据
- with open('./yaml-base/cpu2006-base.yaml', 'r') as f:
- config = yaml.full_load(f)
- # 根据需要修改配置数据
- config['maxiterations'] = int(data_test_case['cpu2006'])
- # 将修改后的数据写回YAML文件
- with open(user_config_path + '/yaml-base/cpu2006-base.yaml', 'w') as f:
- yaml.dump(config, f)
+ cpu2006_yaml = request.data.get('yaml')['cpu2006'].replace('maxiterations: 1', 'maxiterations: %d' % (
+ int(data_test_case['cpu2006'])))
+ with open(user_config_path + '/yaml-base/cpu2006-base.yaml', 'w', encoding='UTF-8') as fp:
+ fp.write(cpu2006_yaml)
+ cpu2006_loongarch64_yaml = request.data.get('yaml')['cpu2006_loongarch64'].replace('maxiterations: 1', 'maxiterations: %d' % (
+ int(data_test_case['cpu2006_loongarch64'])))
+ with open(user_config_path + '/yaml-base/cpu2006-loongarch64-base.yaml', 'w', encoding='UTF-8') as fp:
+ fp.write(cpu2006_loongarch64_yaml)
if int(data_test_case['cpu2017']):
- # 读取YAML文件中的数据
- with open('./yaml-base/cpu2017-base.yaml', 'r') as f:
- config = yaml.full_load(f)
- # 根据需要修改配置数据
- config['maxiterations'] = int(data_test_case['cpu2017'])
- # 将修改后的数据写回YAML文件
- with open(user_config_path + '/yaml-base/cpu2017-base.yaml', 'w') as f:
- yaml.dump(config, f)
+ cpu2017_yaml = request.data.get('yaml')['cpu2017'].replace('maxiterations: 1', 'maxiterations: %d' % (
+ int(data_test_case['cpu2017'])))
+ with open(user_config_path + '/yaml-base/cpu2017-base.yaml', 'w', encoding='UTF-8') as fp:
+ fp.write(cpu2017_yaml)
# return json_response({}, status.HTTP_400_BAD_REQUEST,{})
# 创建请求测试数据
serializer_test_case = TestCaseSerializer(data=data_test_case)
diff --git a/appStore/userConfig/models.py b/appStore/userConfig/models.py
index 890c04e38e735e75523fc8b0e87f238ab2f872b3..d241fa2b903e304656ac0267874a2a989e01c4a2 100644
--- a/appStore/userConfig/models.py
+++ b/appStore/userConfig/models.py
@@ -11,24 +11,28 @@ from django.db import models
class UserConfig(models.Model):
"""用户配置表"""
user_name = models.CharField(max_length=50, verbose_name='用户名称')
+ user_password = models.CharField(max_length=50, verbose_name='用户密码')
project_name = models.CharField(max_length=50, verbose_name='测试项目名称')
- test_machine_name = models.CharField(max_length=100, verbose_name='测试机器名称')
+ test_ip = models.CharField(max_length=50, verbose_name='测试机器IP')
+ test_password = models.CharField(max_length=50, verbose_name='测试机器密码')
stream_number = models.CharField(max_length=100, verbose_name='stream测试迭代次数')
lmbench_number = models.CharField(max_length=100, verbose_name='lmbench测试迭代次数')
unixbench_number = models.CharField(max_length=100, verbose_name='unixbench测试迭代次数')
- fio = models.CharField(max_length=100, verbose_name='fio测试迭代次数')
+ fio_number = models.CharField(max_length=100, verbose_name='fio测试迭代次数')
iozone_number = models.CharField(max_length=100, verbose_name='iozone测试迭代次数')
jvm2008_number = models.CharField(max_length=100, verbose_name='jvm2008测试迭代次数')
cpu2006_number = models.CharField(max_length=100, verbose_name='cpu2006测试迭代次数')
cpu2017_number = models.CharField(max_length=100, verbose_name='cpu2017测试迭代次数')
- stream_config = models.TextField(verbose_name='stream测试配置文件', null=True, blank=True)
- lmbench_config = models.TextField(verbose_name='lmbench测试配置文件', null=True, blank=True)
- unixbbench_config = models.TextField(verbose_name='unixbbench测试配置文件', null=True, blank=True)
- fio_config = models.TextField(verbose_name='fio测试配置文件', null=True, blank=True)
- iozone_config = models.TextField(verbose_name='iozone测试配置文件', null=True, blank=True)
- jvm2008_config = models.TextField(verbose_name='jvm2008测试配置文件', null=True, blank=True)
- cpu2006_config = models.TextField(verbose_name='cpu2006测试配置文件', null=True, blank=True)
- cpu2017_config = models.TextField(verbose_name='cpu2017测试配置文件', null=True, blank=True)
+ stream_config = models.TextField(verbose_name='stream测试配置文件')
+ lmbench_config = models.TextField(verbose_name='lmbench测试配置文件')
+ unixbbench_config = models.TextField(verbose_name='unixbbench测试配置文件')
+ fio_config = models.TextField(verbose_name='fio测试配置文件')
+ iozone_config = models.TextField(verbose_name='iozone测试配置文件')
+ jvm2008_config = models.TextField(verbose_name='jvm2008测试配置文件')
+ cpu2006_config = models.TextField(verbose_name='cpu2006测试配置文件')
+ cpu2006_loongarch64_config = models.TextField(verbose_name='cpu2006_loongarch64测试配置文件')
+ cpu2017_config = models.TextField(verbose_name='cpu2017测试配置文件')
+ message = models.CharField(max_length=200,verbose_name='描述信息', null=True, blank=True)
class Meta:
db_table = 'userConfig'
\ No newline at end of file
diff --git a/appStore/userConfig/views.py b/appStore/userConfig/views.py
index c8634bb00759f3cbb12514a592d91c02d3fcdac8..46a4ab741d36ab92d3f615dcabeeab8e0f02deaa 100644
--- a/appStore/userConfig/views.py
+++ b/appStore/userConfig/views.py
@@ -7,6 +7,7 @@
"""
from appStore.userConfig.models import UserConfig
from appStore.userConfig.serializers import UserConfigSerializer
+from appStore.utils.common import json_response
from appStore.utils.customer_view import CusModelViewSet
# Create your views here.
@@ -14,6 +15,58 @@ class UserConfigViewSet(CusModelViewSet):
"""
测试机器数据管理
"""
-
queryset = UserConfig.objects.all().order_by('-id')
- serializer_class = UserConfigSerializer
\ No newline at end of file
+ serializer_class = UserConfigSerializer
+
+ def list(self, request, *args, **kwargs):
+ queryset = UserConfig.objects.filter(user_name=request.user.username).all().order_by('-id')
+ if not queryset:
+ return json_response({}, status.HTTP_200_OK, '列表')
+ serializer = self.get_serializer(queryset, many=True)
+ return json_response(serializer.data, status.HTTP_200_OK, '测试完成')
+
+ def create(self, request, *args, **kwargs):
+ user_config_data = {}
+ user_config_data['user_name'] = request.user.username
+ user_config_data['user_password'] = request.data.get('user_password')
+ user_config_data['project_name'] = request.data.get('project_name')
+ user_config_data['test_ip'] = request.data.get('test_ip')
+ user_config_data['test_password'] = request.data.get('test_password')
+ user_config_data['stream_number'] = request.data.get('stream')
+ user_config_data['lmbench_number'] = request.data.get('lmbench')
+ user_config_data['unixbench_number'] = request.data.get('unixbench')
+ user_config_data['fio_number'] = request.data.get('fio')
+ user_config_data['iozone_number'] = request.data.get('iozone')
+ user_config_data['jvm2008_number'] = request.data.get('jvm2008')
+ user_config_data['cpu2006_number'] = request.data.get('cpu2006')
+ user_config_data['cpu2017_number'] = request.data.get('cpu2017')
+ user_config_data['stream_config'] = request.data.get('yaml')['stream']
+ user_config_data['lmbench_config'] = request.data.get('yaml')['lmbench']
+ user_config_data['unixbbench_config'] = request.data.get('yaml')['unixbench']
+ user_config_data['fio_config'] = request.data.get('yaml')['fio']
+ user_config_data['iozone_config'] = request.data.get('yaml')['iozone']
+ user_config_data['jvm2008_config'] = request.data.get('yaml')['jvm2008']
+ user_config_data['cpu2006_config'] = request.data.get('yaml')['cpu2006']
+ user_config_data['cpu2006_loongarch64_config'] = request.data.get('yaml')['cpu2006_loongarch64']
+ user_config_data['cpu2017_config'] = request.data.get('yaml')['cpu2017']
+ config_serializer = UserConfigSerializer(data=user_config_data)
+ if config_serializer.is_valid():
+ self.perform_create(config_serializer)
+ return json_response(config_serializer.data, status.HTTP_200_OK, '创建成功!')
+ return json_response({}, status.HTTP_400_BAD_REQUEST,config_serializer.errors)
+
+ def delete(self, request):
+ id = request.data.get('id', None)
+ if not id or not UserConfig.objects.filter(id=id):
+ return json_response({}, status.HTTP_205_RESET_CONTENT, '请传递正确的测试id')
+ user_name = UserConfig.objects.filter(id=id).first().user_name
+ if request.user.is_superuser or request.user.username == user_name:
+ test_case_data = UserConfig.objects.filter(id=id).first()
+ if not test_case_data:
+ return json_response({}, status.HTTP_205_RESET_CONTENT, '没有该数据')
+ UserConfig.objects.filter(id=id).delete()
+ return json_response({}, status.HTTP_200_OK, '删除成功')
+ else:
+ return json_response({}, status.HTTP_205_RESET_CONTENT, '此用户不允许删除该数据')
+
+
diff --git a/templates/front-project/src/views/StreamTable.vue b/templates/front-project/src/views/StreamTable.vue
index 1be77d79beb07b6ba3df46c09fce64bda5dbba4e..a7f98849f4bf76d6aac153ebb96832127f35ddbc 100644
--- a/templates/front-project/src/views/StreamTable.vue
+++ b/templates/front-project/src/views/StreamTable.vue
@@ -6,38 +6,30 @@
* Date: Fri Mar 8 09:35:30 2024 +0800
-->
+
-
-
-
-
-
-
- {{ row[key] }}
-
-
-
-
-
+
+
+