This commit is contained in:
parent
45cdd778d5
commit
62f69be50f
|
@ -146,6 +146,7 @@ function Operation1() {
|
||||||
localStorage.setItem('answeredJudge',answeredJudge)
|
localStorage.setItem('answeredJudge',answeredJudge)
|
||||||
localStorage.setItem('TrainData',JSON.stringify(TrainData))
|
localStorage.setItem('TrainData',JSON.stringify(TrainData))
|
||||||
localStorage.setItem('score',score)
|
localStorage.setItem('score',score)
|
||||||
|
localStorage.setItem('succeed',succeed)
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -183,26 +184,43 @@ function Operation1() {
|
||||||
|
|
||||||
//不包含实训分数
|
//不包含实训分数
|
||||||
const [score,setscore]=useState(0)
|
const [score,setscore]=useState(0)
|
||||||
|
const [succeed,setsucceed]=useState([])
|
||||||
//提交按钮,或者下一页
|
//提交按钮,或者下一页
|
||||||
const submit=()=>{
|
const submit=()=>{
|
||||||
let CHO_sum=0;
|
let CHO_sum=0;
|
||||||
let COM_sum=0;
|
let COM_sum=0;
|
||||||
let JUD_sum=0;
|
let JUD_sum=0;
|
||||||
|
|
||||||
for(let item of TrainData['operateID'][0]){
|
for(let item of TrainData['operateID'][0]){
|
||||||
if(item[0][6]===choice_answer[CHO_sum]){
|
if(item[0][6]===choice_answer[CHO_sum]){
|
||||||
setscore(prevscore=>prevscore+5)
|
setscore(prevscore=>prevscore+5)
|
||||||
|
}else{
|
||||||
|
const itemText = item[0][9];
|
||||||
|
if (!succeed.includes(itemText)) {
|
||||||
|
setsucceed((prevSucceed) => [...prevSucceed, itemText]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
CHO_sum++
|
CHO_sum++
|
||||||
}
|
}
|
||||||
for(let item of TrainData['operateID'][1]){
|
for(let item of TrainData['operateID'][1]){
|
||||||
if (item[0][2]===completion_answer[COM_sum]) {
|
if (item[0][2]===completion_answer[COM_sum]) {
|
||||||
setscore(prevscore=>prevscore+5)
|
setscore(prevscore=>prevscore+5)
|
||||||
|
}else{
|
||||||
|
const itemText = item[0][5];
|
||||||
|
if (!succeed.includes(itemText)) {
|
||||||
|
setsucceed((prevSucceed) => [...prevSucceed, itemText]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
COM_sum++
|
COM_sum++
|
||||||
}
|
}
|
||||||
for(let item of TrainData['operateID'][2]){
|
for(let item of TrainData['operateID'][2]){
|
||||||
if (item[0][2]===judge_answer[JUD_sum]) {
|
if (item[0][2]===judge_answer[JUD_sum]) {
|
||||||
setscore(prevscore=>prevscore+5)
|
setscore(prevscore=>prevscore+5)
|
||||||
|
}else{
|
||||||
|
const itemText = item[0][5];
|
||||||
|
if (!succeed.includes(itemText)) {
|
||||||
|
setsucceed((prevSucceed) => [...prevSucceed, itemText]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
JUD_sum++
|
JUD_sum++
|
||||||
}
|
}
|
||||||
|
@ -355,6 +373,10 @@ function Operation1() {
|
||||||
<Link to={`/operation2/${operateID}`}>
|
<Link to={`/operation2/${operateID}`}>
|
||||||
<button onClick={saveAnswers} className='operation-btn2'>下一页</button>
|
<button onClick={saveAnswers} className='operation-btn2'>下一页</button>
|
||||||
</Link>
|
</Link>
|
||||||
|
<button onClick={()=>{
|
||||||
|
console.log(TrainData);
|
||||||
|
console.log(succeed);
|
||||||
|
}}></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -16,7 +16,7 @@ function Operation2() {
|
||||||
const { operateID } = useParams();
|
const { operateID } = useParams();
|
||||||
const [isTrue,setisTrue]=useState(false)
|
const [isTrue,setisTrue]=useState(false)
|
||||||
const [TrainScore,serTrainScore]=(null)
|
const [TrainScore,serTrainScore]=(null)
|
||||||
|
const succeed=localStorage.getItem('succeed')
|
||||||
const TrainData=JSON.parse(localStorage.getItem('TrainData'))
|
const TrainData=JSON.parse(localStorage.getItem('TrainData'))
|
||||||
|
|
||||||
//获取链接
|
//获取链接
|
||||||
|
@ -98,7 +98,8 @@ function Operation2() {
|
||||||
score,
|
score,
|
||||||
TrainScore,
|
TrainScore,
|
||||||
operateID,
|
operateID,
|
||||||
student_ID
|
student_ID,
|
||||||
|
succeed
|
||||||
})
|
})
|
||||||
}catch{
|
}catch{
|
||||||
alert('submitTrainSrc出错')
|
alert('submitTrainSrc出错')
|
||||||
|
|
|
@ -346,8 +346,6 @@ def getTrainData():
|
||||||
return jsonify({'data': data})
|
return jsonify({'data': data})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# @app.route("/api/teacher/list_pods",methods=['POST']) # 列出pod
|
# @app.route("/api/teacher/list_pods",methods=['POST']) # 列出pod
|
||||||
# def teacher_list_pods():
|
# def teacher_list_pods():
|
||||||
# return list_pods()
|
# return list_pods()
|
||||||
|
|
|
@ -0,0 +1,94 @@
|
||||||
|
import json
|
||||||
|
import traceback
|
||||||
|
|
||||||
|
import yaml
|
||||||
|
from kubernetes import client, config
|
||||||
|
from flask import jsonify
|
||||||
|
import dmPython
|
||||||
|
|
||||||
|
# Load in-cluster config
|
||||||
|
|
||||||
|
config.load_incluster_config()
|
||||||
|
v1 = client.CoreV1Api()
|
||||||
|
namespace = open("/var/run/secrets/kubernetes.io/serviceaccount/namespace").read()
|
||||||
|
IP = "36.138.114.105"
|
||||||
|
|
||||||
|
|
||||||
|
def list_pods():
|
||||||
|
ret = v1.list_namespaced_pod(namespace, watch=False)
|
||||||
|
return ({
|
||||||
|
"list": [{
|
||||||
|
"name": item.metadata.name,
|
||||||
|
"ip": item.status.pod_ip
|
||||||
|
} for item in ret.items]
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
def list_services():
|
||||||
|
ret = v1.list_namespaced_service(namespace)
|
||||||
|
return {
|
||||||
|
"list": [{
|
||||||
|
"ip": item.spec.cluster_ip,
|
||||||
|
"name": item.metadata.name,
|
||||||
|
"ports": [port.to_dict() for port in item.spec.ports]
|
||||||
|
} for item in ret.items]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def create_pod(type, name):
|
||||||
|
# 读取 pod yaml 文件
|
||||||
|
with open(f"assets/type{type}-pod.yaml") as f:
|
||||||
|
pod_manifest = yaml.safe_load(f)
|
||||||
|
pod_manifest["metadata"]["name"] = name
|
||||||
|
pod_manifest["metadata"]["labels"]["app"] = name
|
||||||
|
# 创建 Pod
|
||||||
|
resp = v1.create_namespaced_pod(
|
||||||
|
body=pod_manifest,
|
||||||
|
namespace=namespace
|
||||||
|
)
|
||||||
|
# print(f"pod '{resp.metadata.name}' 创建成功")
|
||||||
|
# 创建 Service
|
||||||
|
with open(f"assets/type{type}-service.yaml") as f:
|
||||||
|
service_pod = yaml.safe_load(f)
|
||||||
|
service_pod["metadata"]["name"] = name + "-service"
|
||||||
|
service_pod["spec"]["selector"]["app"] = name
|
||||||
|
|
||||||
|
resp = v1.create_namespaced_service(
|
||||||
|
body=service_pod,
|
||||||
|
namespace=namespace
|
||||||
|
)
|
||||||
|
# print(f"服务 '{resp.metadata.name}' 创建成功")
|
||||||
|
if type == 1:
|
||||||
|
# 创建成功,再次查询,拿到端口
|
||||||
|
service = v1.read_namespaced_service(name=name + "-service", namespace=namespace)
|
||||||
|
# print(service)
|
||||||
|
# print("访问地址:" + IP + ":" + str(service.spec.ports[0].node_port))
|
||||||
|
else:
|
||||||
|
service = v1.read_namespaced_service(name=name + "-service", namespace=namespace)
|
||||||
|
# print(service)
|
||||||
|
# print("访问地址:" + IP + ":" + str(service.spec.ports[0].node_port))
|
||||||
|
return "cjcg"
|
||||||
|
|
||||||
|
|
||||||
|
# create_pod(0,'20240101-zt-9-0')
|
||||||
|
|
||||||
|
def delete_pod(name):
|
||||||
|
v1.delete_namespaced_pod(name=name, namespace=namespace)
|
||||||
|
print('deleting pod ' + name)
|
||||||
|
v1.delete_namespaced_service(name=name + "-service", namespace=namespace)
|
||||||
|
return "删除成功"
|
||||||
|
|
||||||
|
|
||||||
|
def check_dm(name):
|
||||||
|
try:
|
||||||
|
service = v1.read_namespaced_service(name=name + "-service", namespace=namespace)
|
||||||
|
print(service.spec.cluster_ip)
|
||||||
|
db = dmPython.connect(user='SYSDBA', password='SYSDBA', host=service.spec.cluster_ip)
|
||||||
|
cursor = db.cursor()
|
||||||
|
records = cursor.execute("SELECT * FROM V$VERSION").fetchall()
|
||||||
|
for record in records:
|
||||||
|
print(record)
|
||||||
|
return "OK"
|
||||||
|
except:
|
||||||
|
traceback.print_exc()
|
||||||
|
return "NO"
|
|
@ -342,7 +342,12 @@ def FindTrain1SrcFunc(ID,testID):
|
||||||
# FindTrain1SrcFunc('20240101','54')
|
# FindTrain1SrcFunc('20240101','54')
|
||||||
|
|
||||||
|
|
||||||
def AddTrainScoreFunc(ID,testID,score,trainResult):
|
def AddTrainScoreFunc(ID,testID,score,trainResult,succeed):
|
||||||
|
a=[]
|
||||||
|
for i in succeed:
|
||||||
|
a.append(succeed[i])
|
||||||
|
a=set(a)
|
||||||
|
print(a)
|
||||||
cursor=db.cursor()
|
cursor=db.cursor()
|
||||||
cursor.execute("UPDATE TRAINSCORE SET TF='true', RESULT=(?), TRAINRESULT=(?) WHERE STUDENT_ID=(?) AND TEST_ID=(?)",(score,trainResult,ID,testID))
|
cursor.execute("UPDATE TRAINSCORE SET TF='true', RESULT=(?), TRAINRESULT=(?) WHERE STUDENT_ID=(?) AND TEST_ID=(?)",(score,trainResult,ID,testID))
|
||||||
db.commit()
|
db.commit()
|
||||||
|
|
|
@ -1,4 +1,12 @@
|
||||||
print('a')
|
a=[]
|
||||||
|
succeed={0:'计算机基础', 1:'计算机概念', 2:'通信技术', 3:'计算机网络'}
|
||||||
|
for i in succeed:
|
||||||
|
a.append(succeed[i])
|
||||||
|
|
||||||
|
result_string = ','.join(set(a))
|
||||||
|
|
||||||
|
print(result_string+'需要加强')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue