-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathnode.py
More file actions
160 lines (143 loc) · 4.88 KB
/
node.py
File metadata and controls
160 lines (143 loc) · 4.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
#!/usr/bin/env python3
import requests
import json
import os
import time
import version
from log import log
TokenUrl = 'https://www.phoenix.global/sdk/computation/user/genToken'
NodeServerUrl = 'https://www.phoenix.global/prd/node/'
NodeJobsServerUrl = 'http://pnodeapi.phoenix.global/prd/node/'
def GetToken(email,pwd):
params = {'email':email,'passwd':pwd }
x = requests.post(TokenUrl,data=json.dumps(params))
dic = eval(x.text)
if dic['code'] == 200:
return dic['token']
else:
return ''
def GetKey(token):
header = {'token': token}
x = requests.get(NodeServerUrl+'genKey', headers=header)
dic = eval(x.text)
if dic['code'] == 200:
return dic['data']['key']
else:
return ''
def RegisterNode(token,key,name,type,guid):
header = {'token': token}
params = {'key': key, 'name': name,'type':type,'guid':guid}
x = requests.post(NodeServerUrl+'addNode', headers=header, data=json.dumps(params))
print("response of RegisterNode is ", x.text)
log(f'response of RegisterNode is {x.text}')
dic = eval(x.text)
if dic['code'] == 200:
return 1
else:
return 0
def SubJobResult(job_id,key,name,type,files):
file_name = files[8:]
file = {
"resultFile": (file_name,open(files, "rb"), "image/jpeg") #
}
datas = {'key': key, 'name': name,'computation_type':type,'job_id':job_id}
x = requests.post(NodeJobsServerUrl+'subJobResult', files=file, data=datas, timeout=(150, 480))
print("response of subJobResult is ", x.text)
log(f'response of subJobResult is {x.text}')
try:
dic = eval(x.text)
except:
print("eval(x.text) error,x.text is ", x.text)
log(f'eval(x.text) error,x.text is {x.text}')
return 0
if dic['code'] == 200:
return 1
else:
print("SubJobResult fail")
log("SubJobResult fail")
return 0
def GetJobData(job_id,key,name):
url_params = "job_id="+job_id+"&key="+key+"&name="+name
url=NodeJobsServerUrl+'generateData?'+url_params
x = requests.get(url, timeout=(150, 480))
print("response of generateData is ", x.text)
log(f'response of generateData is {x.text}')
ret_arr = []
computation_type = ""
try:
dic = eval(x.text)
except:
print("eval(x.text) error,x.text is ", x.text)
log(f'eval(x.text) error,x.text is {x.text}')
return ret_arr, computation_type
if dic["code"] == 200:
ret_arr.append(dic["data"]["x_train_url"])
ret_arr.append(dic["data"]["y_train_url"])
ret_arr.append(dic["data"]["x_test_url"])
computation_type = dic["data"]["computation_type"]
return ret_arr,computation_type
def HeartBeat(key,name):
params = {'key': key, 'name': name}
x = requests.post(NodeServerUrl+'heartbeat', data=json.dumps(params))
print("response of HeartBeat is ", x.text)
log(f'response of HeartBeat is {x.text}')
try:
dic = eval(x.text)
except:
print("HeartBeat eval(x.text) error,x.text is ", x.text)
log(f'HeartBeat eval(x.text) error,x.text is {x.text}')
return 1
if dic['code'] == 200:
return 1
else:
print("HeartBeat fail")
log("HeartBeat fail")
return 0
# def CheckVersion(key,name):
# v = version.VERSION
# params = {'key': key, 'name': name,'version':v}
# x = requests.post(NodeServerUrl+'checkVersion', data=json.dumps(params))
# dic = eval(x.text)
# print("response of CheckVersion is ", x.text)
# log(f'response of CheckVersion is {x.text}')
# if dic['code'] == 200:
# return 1
# else:
# print("CheckVersion fail")
# log("CheckVersion fail")
# return 0
def CheckVersion():
v = version.VERSION
x = requests.get(NodeServerUrl+'getVersion')
print("response of getVersion is ", x.text)
log(f'response of getVersion is {x.text}')
dic = eval(x.text)
if dic['code'] == 200:
serverVersion=dic["data"]["version"]
if v == serverVersion:
return 1
else:
return 0
else:
print("CheckVersion getVersion fail")
log("CheckVersion getVersion fail")
return 0
def CleanFiles():
print("Begin start CleanFiles")
log("Begin start CleanFiles")
directory = "./files"
exclude_file = "test.txt"
now = time.time()
three_days_ago = now - 12 * 60 * 60
for filename in os.listdir(directory):
file_path = os.path.join(directory, filename)
if os.path.isfile(file_path) and filename != exclude_file:
file_mod_time = os.path.getmtime(file_path)
if file_mod_time < three_days_ago:
try:
os.remove(file_path)
print(f"Deleted: {file_path}")
except Exception as e:
print(f"Error deleting {file_path}: {e}")
print("End CleanFiles")
log("End CleanFiles")