remove obsolete/python2 getTest endpoint
This commit is contained in:
parent
c0fe0dfba9
commit
8627c1de37
|
@ -135,108 +135,3 @@ class grandlyonIodas(BaseResource):
|
|||
'procedures': procedures,
|
||||
#'etapes': sorted(data['procedurespa']['procedurespa']['procedurepa'][nbProc]['etapes']['etape'], key=lambda x: x['id'], reverse=True) if 'procedures' in data else '',
|
||||
'found': 1 if 'procedurespa' in data else 0}
|
||||
|
||||
@endpoint(perm='can_access')
|
||||
def getTest(self, request, container):
|
||||
import urllib2
|
||||
import base64
|
||||
import dateutil.parser
|
||||
from collections import defaultdict
|
||||
from xml.etree import cElementTree as ET
|
||||
|
||||
# Convert XML to dict
|
||||
def etree_to_dict(t):
|
||||
d = {t.tag: {} if t.attrib else None}
|
||||
children = list(t)
|
||||
if children:
|
||||
dd = defaultdict(list)
|
||||
for dc in map(etree_to_dict, children):
|
||||
for k, v in dc.items():
|
||||
dd[k.replace('{http://www.opengroup.org/xsd/omi/1.0/}','').replace('{http://www.opengroup.org/xsd/odf/1.0/}','')].append(v)
|
||||
d = {t.tag: {k: v[0] if len(v) == 1 else v for k, v in dd.items()}}
|
||||
if t.attrib:
|
||||
d[t.tag].update((k, v) for k, v in t.attrib.items())
|
||||
if t.text:
|
||||
text = t.text.strip()
|
||||
if children or t.attrib:
|
||||
if text:
|
||||
d[t.tag]['text'] = text
|
||||
else:
|
||||
d[t.tag] = text
|
||||
return d
|
||||
|
||||
url = 'https://biotope-omi.alpha.grandlyon.com'
|
||||
|
||||
# Get container and sensor from csv file with ID from data.grandlyon.com
|
||||
reqContainer = requests.get('https://passerelle.guichet-dev.grandlyon.com/csvdatasource/biotope/data?q='+container)
|
||||
container = reqContainer.json()
|
||||
|
||||
# Get container
|
||||
containerDict={}
|
||||
if container['data'][0]['id'] and container['data'][0]['id'] != '' and len(container['data'][0]['id']) > 14 :
|
||||
payload='<omiEnvelope xmlns="http://www.opengroup.org/xsd/omi/1.0/" version="1.0" ttl="0">'
|
||||
payload+='<read msgformat="odf">'
|
||||
payload+='<msg>'
|
||||
payload+='<Objects xmlns="http://www.opengroup.org/xsd/odf/1.0/">'
|
||||
payload+='<Object>'
|
||||
payload+='<id>Organization:Mineris-V1.0.0</id>'
|
||||
payload+='<Object>'
|
||||
payload+='<id>Deployment:Bottle_Bank</id>'
|
||||
payload+='<Object>'
|
||||
payload+='<id>'+container['data'][0]['id']+'</id>'
|
||||
payload+='</Object>'
|
||||
payload+='</Object>'
|
||||
payload+='</Object>'
|
||||
payload+='</Objects>'
|
||||
payload+='</msg>'
|
||||
payload+='</read>'
|
||||
payload+='</omiEnvelope>'
|
||||
head = {"Content-type": "application/xml"}
|
||||
req = requests.post(url, headers=head, data=payload)
|
||||
# XML result to dict
|
||||
containerRes = ET.XML(req.text.encode('utf8'))
|
||||
containerDict = etree_to_dict(containerRes)
|
||||
|
||||
# Get sensor
|
||||
sensorDict={}
|
||||
if container['data'][0]['sensor'] and container['data'][0]['sensor'] != '' :
|
||||
payloadSensor='<omiEnvelope xmlns="http://www.opengroup.org/xsd/omi/1.0/" version="1.0" ttl="0">'
|
||||
payloadSensor+='<read msgformat="odf">'
|
||||
payloadSensor+='<msg>'
|
||||
payloadSensor+='<Objects xmlns="http://www.opengroup.org/xsd/odf/1.0/">'
|
||||
payloadSensor+='<Object>'
|
||||
payloadSensor+='<id>Organization:SigrenEa-V1.1.0</id>'
|
||||
payloadSensor+='<Object>'
|
||||
payloadSensor+='<id>Deployment:Bottle_Bank:1edd171c-5f2d-11e8-a6ab-10604b7fb2e7</id>'
|
||||
payloadSensor+='<Object>'
|
||||
payloadSensor+='<id>'+container['data'][0]['sensor']+'</id>'
|
||||
payloadSensor+='</Object>'
|
||||
payloadSensor+='</Object>'
|
||||
payloadSensor+='</Object>'
|
||||
payloadSensor+='</Objects>'
|
||||
payloadSensor+='</msg>'
|
||||
payloadSensor+='</read>'
|
||||
payloadSensor+='</omiEnvelope>'
|
||||
headSensor = {"Content-type": "application/xml"}
|
||||
reqSensor = requests.post(url, headers=headSensor, data=payloadSensor)
|
||||
# XML result to dict
|
||||
sensRes = ET.XML(reqSensor.text.encode('utf8'))
|
||||
sensorDict = etree_to_dict(sensRes)
|
||||
|
||||
# Build result dict
|
||||
result = {}
|
||||
if containerDict :
|
||||
# Container info
|
||||
for item in containerDict["{http://www.opengroup.org/xsd/omi/1.0/}omiEnvelope"]["response"]["result"]["msg"]["Objects"]["Object"]["Object"]["Object"]["InfoItem"] :
|
||||
result.update({ item["name"].replace('schema:','') : dateutil.parser.parse(item["value"]["text"]).strftime("%d/%m/%Y") if "date" in item["name"] else item["value"]["text"] })
|
||||
if sensorDict :
|
||||
# Id Container
|
||||
result.update({'idContainer':sensorDict["{http://www.opengroup.org/xsd/omi/1.0/}omiEnvelope"]["response"]["result"]["msg"]["Objects"]["Object"]["Object"]["Object"]["Object"]["Object"]['id']})
|
||||
# Sensor info
|
||||
for item in sensorDict["{http://www.opengroup.org/xsd/omi/1.0/}omiEnvelope"]["response"]["result"]["msg"]["Objects"]["Object"]["Object"]["Object"]["Object"]["Object"]["InfoItem"] :
|
||||
result.update({ item["name"].replace('schema:','').replace('FIWARE:','') : item["value"]["text"] })
|
||||
for subItem in sensorDict["{http://www.opengroup.org/xsd/omi/1.0/}omiEnvelope"]["response"]["result"]["msg"]["Objects"]["Object"]["Object"]["Object"]["Object"]["Object"]["Object"] :
|
||||
if 'InfoItem' in subItem :
|
||||
result.update({subItem['id'].replace('Container:',''):subItem['InfoItem']})
|
||||
|
||||
return result
|
||||
|
|
Loading…
Reference in New Issue