From 545bec6961014c87b6c0dcad98568117274b4540 Mon Sep 17 00:00:00 2001 From: garciay Date: Mon, 15 Jul 2019 16:28:58 +0200 Subject: [PATCH] Validate MEC simulator for UETAG --- simu/data/ue_information_list.csv | 2 +- simu/mec_database.py | 6 ++++-- simu/mec_http_server.py | 8 ++++++++ simu/mec_simulator.py | 4 ++-- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/simu/data/ue_information_list.csv b/simu/data/ue_information_list.csv index fbd902c..fae9142 100644 --- a/simu/data/ue_information_list.csv +++ b/simu/data/ue_information_list.csv @@ -1,6 +1,6 @@ appInst,ueTag,address,state appInst01,UeTagA,acr:192.0.0.1,UNREGISTERED -appInst01,UeTagC,acr:192.0.0.3,UNREGISTERED +appInst01,UeTagC,acr:192.0.0.3,INVALID_STATE appInst02,UeTagB,acr:192.0.0.2,UNREGISTERED appInst03,UeTagD,acr:192.0.0.4,UNREGISTERED appInst03,UeTagE,acr:192.0.0.5,UNREGISTERED diff --git a/simu/mec_database.py b/simu/mec_database.py index c4f5ce5..b55e31a 100644 --- a/simu/mec_database.py +++ b/simu/mec_database.py @@ -212,13 +212,15 @@ class mec_database: def registerUEidentity(self, p_app_inst, p_json_msg): print(">>> registerUEidentity", p_json_msg) if p_json_msg["state"] != "REGISTERED" and p_json_msg["state"] != "UNREGISTERED": - return None + return '400 Bad Request' resp = None try: # Check the record exists r = tuple(self.__ue_information_list__.loc[p_app_inst, p_json_msg["ueIdentityTag"]]) print("registerUEidentity: Find zoneId for appInst: ", p_app_inst, ", r= ", r) - self.__ue_information_list__.loc[p_app_inst, p_json_msg["ueIdentityTag"]]['state'] = p_json_msg["state"] + if self.__ue_information_list__.loc[p_app_inst, p_json_msg["ueIdentityTag"]]['state'] == 'INVALID_STATE': + return '412 Precondition Failed' + self.__ue_information_list__.loc[p_app_inst, p_json_msg["ueIdentityTag"]]['state'] = p_json_msg["state"] l = (p_json_msg["ueIdentityTag"], p_json_msg["state"]) resp = self.__to_ueIdentityTagInfo__(p_json_msg["ueIdentityTag"], l) except KeyError: diff --git a/simu/mec_http_server.py b/simu/mec_http_server.py index 37c937a..f7e323e 100644 --- a/simu/mec_http_server.py +++ b/simu/mec_http_server.py @@ -96,12 +96,20 @@ class myHandler(http.server.BaseHTTPRequestHandler): else: if resp.find('Not Found') != -1: self.send_response(404, 'Not Found') + resp = "" elif resp.find('Forbidden') != -1: self.send_response(403, 'Forbidden') + resp = "" elif resp.find('Bad Request') != -1: self.send_response(400, 'Bad Request') + resp = "" + elif resp.find('Precondition Failed') != -1: + self.send_response(412, 'Precondition Failed') + resp = "{\"problemDetails\": {\t\"type\": \"Precondition Failed\",\t\"title\": \"N/A\",\t\"status\": 412,\t\"detail\": \"Wrong preconditions\",\t\"instance\": \"N/A\"}}" + content_type = 'application/problem+json' elif resp.find('userTrackingSubscription') != -1: self.send_response(201, 'Created') + resp = "" else: self.send_response(200, 'OK') self.send_header('Host', self.headers.get('Host')) # send_header() shall be after send_response() diff --git a/simu/mec_simulator.py b/simu/mec_simulator.py index 88b42a2..f10cd56 100644 --- a/simu/mec_simulator.py +++ b/simu/mec_simulator.py @@ -8,9 +8,9 @@ import sys, os, time import msvcrt # MEC simulator IPv4 address -#ADDRESS_BINDING = '172.28.4.87' +ADDRESS_BINDING = '172.28.4.87' #ADDRESS_BINDING = '192.168.1.21' -ADDRESS_BINDING = '192.168.0.17' +#ADDRESS_BINDING = '192.168.0.17' #ADDRESS_BINDING = '127.0.0.1' # MEC simulator IPv4 listening port PORT_NUMBER = 8081 -- GitLab