139 lines
5.2 KiB
Python
139 lines
5.2 KiB
Python
from pyramid.view import view_config
|
|
import requests
|
|
from datetime import datetime
|
|
|
|
def get_poc_address(request):
|
|
addr_obj = list(request.db['pocConfiguration'].find({"_id": "pocIPAddress"}))
|
|
address = False
|
|
if len(addr_obj) > 0:
|
|
address = addr_obj[0]['pocIPAddress']
|
|
return address
|
|
|
|
|
|
@view_config(route_name="json_updateconfig", renderer="prettyjson", request_method='POST', permission="edit")
|
|
def json_updateconfig(request):
|
|
conv_to_float = [
|
|
'deltaT',
|
|
'pumpDiameter',
|
|
'fluidGradient',
|
|
'tubingID',
|
|
'tubingOD',
|
|
'tubingAnchorDepth',
|
|
'structuralRating',
|
|
'stuffingBoxFriction',
|
|
'tubingHeadPressure'
|
|
]
|
|
t_conv_to_float = ['length', 'diameter', 'dampingFactor']
|
|
jsb = request.json_body
|
|
new_config = {}
|
|
new_config['timestamp'] = datetime.utcnow()
|
|
new_config['storedBy'] = request.authenticated_userid
|
|
new_config['wellName'] = jsb['wellName']
|
|
new_config['tapers'] = []
|
|
for p in conv_to_float:
|
|
new_config[p] = float(jsb[p])
|
|
|
|
for t_i in range(0, len(jsb['tapers'])):
|
|
t = {}
|
|
for p in t_conv_to_float:
|
|
t[p] = float(jsb['tapers'][t_i][p])
|
|
t['material'] = jsb['tapers'][t_i]['material']
|
|
new_config['tapers'].append(t)
|
|
|
|
result = request.db['wellConfiguration'].insert(new_config)
|
|
|
|
addr_obj = list(request.db['pocConfiguration'].find({"_id": "pocIPAddress"}))
|
|
address = 'localhost'
|
|
if len(addr_obj) > 0:
|
|
address = addr_obj[0]['pocIPAddress']
|
|
|
|
update_url = "http://{}:8000/config?update=true".format(address)
|
|
r = requests.get(update_url)
|
|
pocCmdSts = "OK" if r.status_code == 200 else "failed"
|
|
|
|
return {'new_config': request.json_body, 'stored_result': result, 'updated': pocCmdSts}
|
|
|
|
|
|
@view_config(route_name="json_cmd", renderer="prettyjson", permission="edit")
|
|
def json_cmd(request):
|
|
print("got here")
|
|
action = request.matchdict['action']
|
|
address = get_poc_address(request) or 'localhost'
|
|
|
|
java_url = {}
|
|
java_url['start'] = "http://{}:8000/command?cmd=start&user={}".format(address, request.authenticated_userid)
|
|
java_url['stop'] = "http://{}:8000/command?cmd=stop&user={}".format(address, request.authenticated_userid)
|
|
# java_url['shake'] = "http://{}:8000/shake".format(address)
|
|
|
|
r = requests.get(java_url[action])
|
|
return r.text if r.status_code == 200 else {"status": "failure sending command"}
|
|
|
|
|
|
@view_config(route_name="json_shake", renderer="prettyjson", permission="view")
|
|
def json_shake(request):
|
|
address = get_poc_address(request) or 'localhost'
|
|
url = "http://{}:8000/shake".format(address)
|
|
|
|
r = requests.get(url)
|
|
return r.text if r.status_code == 200 else {"status": "failure sending command"}
|
|
|
|
|
|
@view_config(route_name="json_update_poc_address", renderer="prettyjson", request_method='POST', permission="edit")
|
|
def json_update_poc_address(request):
|
|
try:
|
|
new_addr = request.json_body['pocIPAddress']
|
|
upsert = request.db['pocConfiguration'].update_one({"_id": "pocIPAddress"}, {"$set": {'pocIPAddress': new_addr}}, upsert=True)
|
|
return {"status": "OK"}
|
|
except KeyError:
|
|
return {"status": "failure"}
|
|
|
|
|
|
@view_config(route_name='setpoints', renderer='templates/setpoints.jinja2', permission='edit')
|
|
def setpoints(request):
|
|
return {"navgroup": "setpoints"}
|
|
|
|
|
|
@view_config(route_name="json_setpoints", renderer="prettyjson", request_method='GET', permission='edit')
|
|
def json_setpoints(request):
|
|
return {'setpoints': list(request.db['setpoints'].find())}
|
|
|
|
|
|
@view_config(route_name="json_setpoints", renderer="prettyjson", request_method='POST', permission='edit')
|
|
def json_setpoints_post(request):
|
|
jsb = request.json_body
|
|
try:
|
|
name = jsb['name']
|
|
value = jsb['value']
|
|
upsert = request.db['setpoints'].update_one({"name": name}, {"$set": {'value': value, 'storedBy': request.authenticated_userid, 'lastStored': datetime.utcnow()}}, upsert=True)
|
|
|
|
address = get_poc_address(request) or 'localhost'
|
|
url = "http://{}:8000/update?setpoint={}".format(address, name)
|
|
print(url)
|
|
r = requests.get(url)
|
|
update_status = r.text if r.status_code == 200 else {"status": "failure sending command"}
|
|
|
|
return {"updated": list(request.db['setpoints'].find_one({"name": name})), 'status': update_status}
|
|
except KeyError:
|
|
return {"status": "bad reqest"}
|
|
|
|
|
|
runModes = {0: 'poc', 1: 'manual', 2: 'timer'}
|
|
|
|
|
|
@view_config(route_name="json_mode", renderer="prettyjson", request_method='POST', permission='edit')
|
|
def json_mode_post(request):
|
|
jsb = request.json_body
|
|
try:
|
|
mode = jsb['mode']
|
|
upsert = request.db['setpoints'].update_one({"name": "runMode"}, {"$set": {'value': mode, 'storedBy': request.authenticated_userid, 'lastStored': datetime.utcnow()}}, upsert=True)
|
|
|
|
address = get_poc_address(request) or 'localhost'
|
|
url = "http://{}:8000/mode?mode={}&user={}".format(address, runModes[mode], request.authenticated_userid)
|
|
print(url)
|
|
r = requests.get(url)
|
|
update_status = r.text if r.status_code == 200 else {"status": "failure sending command"}
|
|
|
|
return {"updated": request.db['setpoints'].find_one({"name": "runMode"}), 'status': update_status}
|
|
except KeyError:
|
|
return {"status": "bad reqest"}
|