remove obsolete/python2 getTest endpoint

This commit is contained in:
Frédéric Péters 2022-06-29 12:07:19 +02:00
parent c0fe0dfba9
commit 8627c1de37
1 changed files with 0 additions and 105 deletions

View File

@ -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