Loading simu/mec_database.py +42 −5 Original line number Diff line number Diff line Loading @@ -153,6 +153,15 @@ class mec_database: return resp # End of method __to_transport_info__ def __to_rni_subscriptions__(self, p_subscription, p_subscription_type): """ Build a RNI subscription Json message. """ print(">>> __to_rni_subscriptions__") resp = "{\"CellChangeSubscription\": {\"subscriptionType\": \"" + p_subscription_type + "\",\"callbackReference\": \"http://meAppClient.example.com/rni/v2/notifications/cell_change/77777\", \"_links\": {\"self\": \"http://example.com/exampleAPI/rni/v2/subscriptions\"}, \"filterCriteria\": {\"appInsId\": \"01\", \"associateId\": [{\"type\": \"UE_IPV4_ADDRESS\", \"value\": 1}], \"plmn\": {\"mcc\": \"01\", \"mnc\": \"001\"}, \"cellId\": [\"0x800000A\"], \"hoStatus\": \"COMPLETED\"}, \"expiryDeadline\": {\"seconds\": 1577836800, \"nanoSeconds\": 0}}}" # resp = "{\"CellChangeSubscription\": {\"callbackReference\": " + p_subscription['callbackReference'] + ", \"_links\": {\"self\": " + p_subscription['_links'] + "}, \"filterCriteria\": {\"appInsId\": " + p_subscription['filterCriteria']['appInsId'] + ", \"associateId\": [{\"type\": " + p_subscription['filterCriteria']['associateId']['type'] + ", \"value\": " + p_subscription['filterCriteria']['associateId']['value'] + "}], \"plmn\": {\"mcc\": " + p_subscription['filterCriteria']['plmn']['mcc'] + ", \"mnc\": " + p_subscription['filterCriteria']['plmn']['mnc'] + "}, \"cellId\": [" + p_subscription['filterCriteria']['cellId'] + "], 'hoStatus': " + p_subscription['filterCriteria']['hoStatus'] + "}, \"expiryDeadline\": {\"seconds\": " + p_subscription['expiryDeadline']['seconds'] + ", \"nanoSeconds\": \"" + p_subscription['expiryDeadline']['nanoSeconds'] + "}}" print("__to_rni_subscriptions__: ", resp) return resp # end of __to_rni_subscriptions__ def getSubscriberList(self, p_uri): """ Build a SubscriberList Json message. """ print(">>> getSubscriberList") Loading Loading @@ -307,6 +316,14 @@ class mec_database: return resp # End of method getUEidentityTagInfo def getBwAllocationAppInst(self, p_app_inst, p_ue_identity_tag): print(">>> getBwAllocationAppInst: ", p_app_inst, ", ", p_ue_identity_tag) resp = None resp = "{\"bwInfo\": {\"timeStamp\": {\"seconds\": 0,\"nanoSeconds\": 0},\"appInsId\": \"string\",\"requestType\": \"APPLICATION_SPECIFIC_BW_ALLOCATION\",\"sessionFilter\": [{\"sourceIp\": \"string\",\"sourcePort\": [\"string\"],\"dstAddress\": \"string\",\"dstPort\": [\"string\"],\"protocol\": \"string\"}],\"fixedBWPriority\": \"not defined in the present document\",\"fixedAllocation\": \"string\",\"allocationDirection\": \"00 = Downlink (towards the UE)\"}}" print("getBwAllocationAppInst: ", resp) return resp # End of method getBwAllocationAppInst 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": Loading Loading @@ -363,12 +380,32 @@ class mec_database: return resp # End of unregisterSubscription def getBwAllocationAppInst(self, p_app_inst, p_ue_identity_tag): print(">>> getBwAllocationAppInst: ", p_app_inst, ", ", p_ue_identity_tag) def registerRniSubscription(self, p_json_msg): print(">>> registerRniSubscription: ", p_json_msg) resp = None resp = "{\"bwInfo\": {\"timeStamp\": {\"seconds\": 0,\"nanoSeconds\": 0},\"appInsId\": \"string\",\"requestType\": \"APPLICATION_SPECIFIC_BW_ALLOCATION\",\"sessionFilter\": [{\"sourceIp\": \"string\",\"sourcePort\": [\"string\"],\"dstAddress\": \"string\",\"dstPort\": [\"string\"],\"protocol\": \"string\"}],\"fixedBWPriority\": \"not defined in the present document\",\"fixedAllocation\": \"string\",\"allocationDirection\": \"00 = Downlink (towards the UE)\"}}" print("getBwAllocationAppInst: ", resp) if p_json_msg['subscriptionType'] == 'CELL_CHANGE': resp = self.__to_rni_subscriptions__(p_json_msg, 'CELL_CHANGE') return resp # End of method getBwAllocationAppInst # End of registerRniSubscription def getRabInfo(self, p_cell_id): print(">>> getRabInfo: ", p_cell_id) resp = None if p_cell_id == '0xFFFFFFFF': resp = "{\"problemDetails\": {\t\"type\": \"Bad Request\",\t\"title\": \"RnisAPI\",\t\"status\": 400,\t\"detail\": \"Wrong parameters\",\t\"instance\": \"string\"}}" else: resp = "{ \"RabInfo\": { \"timeStamp\": { \"seconds\": 1577836800, \"nanoSeconds\": 0 }, \"appInsId\": \"01\", \"requestId\": \"01\", \"cellUserInfo\": { \"ecgi\": { \"plmn\": { \"mcc\": \"001\", \"mnc\": \"01\" }, \"cellId\": \"" + p_cell_id + "\" }, \"ueInfo\": { \"associateId\": null, \"type\": \"1\", \"value\": \"192.0.2.0\", \"erabInfo\": { \"erabId\": 10 }, \"erabQosParameters\": { \"qci\": 7, \"qosInformation\": { \"erabMbrDl\": 10, \"erabMbrUl\": 10, \"erabGbrDl\": 10, \"erabGbrUl\": 10 } } } } } }" return resp # End of getRabInfo def getPlmnInfo(self, p_app_inst): print(">>> getPlmnInfo: ", p_app_inst) resp = None if p_app_inst == '99': resp = "{\"problemDetails\": {\t\"type\": \"Bad Request\",\t\"title\": \"RnisAPI\",\t\"status\": 400,\t\"detail\": \"Wrong parameters\",\t\"instance\": \"string\"}}" else: resp = "{ \"PlmnInfo\": { \"timeStamp\": { \"seconds\": 1577836800, \"nanoSeconds\": 0 }, \"appInsId\": \"" + p_app_inst + "\", \"ecgi\": { \"plmn\": { \"mcc\": \"001\", \"mnc\": \"01\" }, \"cellId\": \"0x800000A\" } } }" return resp # End of getPlmnInfo # End of class mec_database simu/mec_http_server.py +49 −11 Original line number Diff line number Diff line Loading @@ -100,9 +100,8 @@ class myHandler(http.server.BaseHTTPRequestHandler): elif resp.find('Forbidden') != -1: self.send_response(403, 'Forbidden') resp = "" elif resp.find('Bad Request') != -1: elif resp.find('Bad Request') != -1 or resp.find('Wrong parameters') != -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\"}}" Loading @@ -110,6 +109,8 @@ class myHandler(http.server.BaseHTTPRequestHandler): elif resp.find('userTrackingSubscription') != -1: self.send_response(201, 'Created') resp = "" elif resp.find('CellChangeSubscription') != -1: self.send_response(201, 'Created') else: self.send_response(200, 'OK') self.send_header('Host', self.headers.get('Host')) # send_header() shall be after send_response() Loading Loading @@ -172,9 +173,6 @@ class myHandler(http.server.BaseHTTPRequestHandler): 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() Loading Loading @@ -377,8 +375,7 @@ class myHandler(http.server.BaseHTTPRequestHandler): content_type = 'application/problem+json' if (resp == None): resp = "{\"problemDetails\": {\t\"type\": \"Bad Request\",\t\"title\": \"UEidentityAPI\",\t\"status\": 400,\t\"detail\": \"Wrong parameters\",\t\"instance\": \"string\"}}" content_type = 'application/problem+json' elif resp.find('problemDetails') != -1: if resp.find('problemDetails') != -1: content_type = 'application/problem+json' print ("<<< __process__ue__identity__api__: ", resp, ", ", content_type) Loading @@ -393,24 +390,63 @@ class myHandler(http.server.BaseHTTPRequestHandler): if p_split[4].startswith('subscriptions'): if p_split.__len__() == 5: s = p_split[4].split('?') if s.__len__() == 1: resp = self.__db__.getSubscriptionLinkList(self.path) if s.__len__() == 1: # Chek message body # Register/Unregister operation body = None # Extract the body if any content_len = int(self.headers.get('Content-Length')) if (content_len != 0): body = self.rfile.read(content_len) json_msg = self.__decode__json__body__(body) if (json_msg == None): resp = "{\"problemDetails\": {\t\"type\": \"Body processing not supported\",\t\"title\": \"UEidentityAPI\",\t\"status\": 400,\t\"detail\": \"Unknown request\",\t\"instance\": \"string\"}}" else: resp = self.__db__.registerRniSubscription(json_msg) elif s[0] != 'subscriptions': resp = "{\"problemDetails\": {\t\"type\": \"Bad Request\",\t\"title\": \"RnisAPI\",\t\"status\": 400,\t\"detail\": \"Wrong parameters\",\t\"instance\": \"string\"}}" content_type = 'application/problem+json' else: s = s[1].split('=') print('__process__rnis__api__: ', s) if s[0] != 'subscription_type': resp = "{\"problemDetails\": {\t\"type\": \"Bad Request\",\t\"title\": \"RnisAPI\",\t\"status\": 400,\t\"detail\": \"Wrong parameters\",\t\"instance\": \"string\"}}" content_type = 'application/problem+json' elif s[1] == 'wrongSubscriptionType': resp = "{\"problemDetails\": {\t\"type\": \"Bad Request\",\t\"title\": \"RnisAPI\",\t\"status\": 400,\t\"detail\": \"Wrong parameters\",\t\"instance\": \"string\"}}" else: resp = self.__db__.getSubscriptionLinkList(self.path) elif p_split.__len__() == 6: if p_split[5] == '': resp = self.__db__.getSubscriptionLinkList(self.path) elif s[0] != 'subscriptions': resp = "{\"problemDetails\": {\t\"type\": \"Bad Request\",\t\"title\": \"RnisAPI\",\t\"status\": 400,\t\"detail\": \"Wrong parameters\",\t\"instance\": \"string\"}}" else: s = s[1].split('=') print('__process__rnis__api__: ', s) if s[0] != 'subscription_type': resp = "{\"problemDetails\": {\t\"type\": \"Bad Request\",\t\"title\": \"RnisAPI\",\t\"status\": 400,\t\"detail\": \"Wrong parameters\",\t\"instance\": \"string\"}}" elif s[1] == 'wrongSubscriptionType': resp = "{\"problemDetails\": {\t\"type\": \"Bad Request\",\t\"title\": \"RnisAPI\",\t\"status\": 400,\t\"detail\": \"Wrong parameters\",\t\"instance\": \"string\"}}" else: resp = self.__db__.getSubscriptionLinkList(self.path) elif p_split[4].startswith('queries'): if p_split.__len__() == 5: s = p_split[4].split('?') if s.__len__() == 1: # Chek message body pass else: if s[0] != 'queries': resp = "{\"problemDetails\": {\t\"type\": \"Bad Request\",\t\"title\": \"RnisAPI\",\t\"status\": 400,\t\"detail\": \"Wrong parameters\",\t\"instance\": \"string\"}}" else: s = s[1].split('=') print('__process__rnis__api__ (queries): ', s) if s[0] == 'cell_id': resp = self.__db__.getRabInfo(s[1]) elif s[0] == 'plmn_info': resp = self.__db__.getPlmnInfo(s[1]) else: resp = "{\"problemDetails\": {\t\"type\": \"Bad Request\",\t\"title\": \"RnisAPI\",\t\"status\": 400,\t\"detail\": \"Wrong parameters\",\t\"instance\": \"string\"}}" if (resp == None): resp = "{\"problemDetails\": {\t\"type\": \"Not supported\",\t\"title\": \"RnisAPI\",\t\"status\": 400,\t\"detail\": \"Wrong parameters\",\t\"instance\": \"string\"}}" if resp.find('problemDetails') != -1: content_type = 'application/problem+json' print ("<<< __process__rnis__api__: ", resp, ", ", content_type) Loading Loading @@ -481,6 +517,8 @@ class myHandler(http.server.BaseHTTPRequestHandler): return json_msg.get("ueIdentityTags")[0] elif ("userTrackingSubscription" in json_msg.keys()) == True: return json_msg.get("userTrackingSubscription") elif ("CellChangeSubscription" in json_msg.keys()) == True: return json_msg.get("CellChangeSubscription") return None # End of __decode__json__body__ Loading Loading
simu/mec_database.py +42 −5 Original line number Diff line number Diff line Loading @@ -153,6 +153,15 @@ class mec_database: return resp # End of method __to_transport_info__ def __to_rni_subscriptions__(self, p_subscription, p_subscription_type): """ Build a RNI subscription Json message. """ print(">>> __to_rni_subscriptions__") resp = "{\"CellChangeSubscription\": {\"subscriptionType\": \"" + p_subscription_type + "\",\"callbackReference\": \"http://meAppClient.example.com/rni/v2/notifications/cell_change/77777\", \"_links\": {\"self\": \"http://example.com/exampleAPI/rni/v2/subscriptions\"}, \"filterCriteria\": {\"appInsId\": \"01\", \"associateId\": [{\"type\": \"UE_IPV4_ADDRESS\", \"value\": 1}], \"plmn\": {\"mcc\": \"01\", \"mnc\": \"001\"}, \"cellId\": [\"0x800000A\"], \"hoStatus\": \"COMPLETED\"}, \"expiryDeadline\": {\"seconds\": 1577836800, \"nanoSeconds\": 0}}}" # resp = "{\"CellChangeSubscription\": {\"callbackReference\": " + p_subscription['callbackReference'] + ", \"_links\": {\"self\": " + p_subscription['_links'] + "}, \"filterCriteria\": {\"appInsId\": " + p_subscription['filterCriteria']['appInsId'] + ", \"associateId\": [{\"type\": " + p_subscription['filterCriteria']['associateId']['type'] + ", \"value\": " + p_subscription['filterCriteria']['associateId']['value'] + "}], \"plmn\": {\"mcc\": " + p_subscription['filterCriteria']['plmn']['mcc'] + ", \"mnc\": " + p_subscription['filterCriteria']['plmn']['mnc'] + "}, \"cellId\": [" + p_subscription['filterCriteria']['cellId'] + "], 'hoStatus': " + p_subscription['filterCriteria']['hoStatus'] + "}, \"expiryDeadline\": {\"seconds\": " + p_subscription['expiryDeadline']['seconds'] + ", \"nanoSeconds\": \"" + p_subscription['expiryDeadline']['nanoSeconds'] + "}}" print("__to_rni_subscriptions__: ", resp) return resp # end of __to_rni_subscriptions__ def getSubscriberList(self, p_uri): """ Build a SubscriberList Json message. """ print(">>> getSubscriberList") Loading Loading @@ -307,6 +316,14 @@ class mec_database: return resp # End of method getUEidentityTagInfo def getBwAllocationAppInst(self, p_app_inst, p_ue_identity_tag): print(">>> getBwAllocationAppInst: ", p_app_inst, ", ", p_ue_identity_tag) resp = None resp = "{\"bwInfo\": {\"timeStamp\": {\"seconds\": 0,\"nanoSeconds\": 0},\"appInsId\": \"string\",\"requestType\": \"APPLICATION_SPECIFIC_BW_ALLOCATION\",\"sessionFilter\": [{\"sourceIp\": \"string\",\"sourcePort\": [\"string\"],\"dstAddress\": \"string\",\"dstPort\": [\"string\"],\"protocol\": \"string\"}],\"fixedBWPriority\": \"not defined in the present document\",\"fixedAllocation\": \"string\",\"allocationDirection\": \"00 = Downlink (towards the UE)\"}}" print("getBwAllocationAppInst: ", resp) return resp # End of method getBwAllocationAppInst 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": Loading Loading @@ -363,12 +380,32 @@ class mec_database: return resp # End of unregisterSubscription def getBwAllocationAppInst(self, p_app_inst, p_ue_identity_tag): print(">>> getBwAllocationAppInst: ", p_app_inst, ", ", p_ue_identity_tag) def registerRniSubscription(self, p_json_msg): print(">>> registerRniSubscription: ", p_json_msg) resp = None resp = "{\"bwInfo\": {\"timeStamp\": {\"seconds\": 0,\"nanoSeconds\": 0},\"appInsId\": \"string\",\"requestType\": \"APPLICATION_SPECIFIC_BW_ALLOCATION\",\"sessionFilter\": [{\"sourceIp\": \"string\",\"sourcePort\": [\"string\"],\"dstAddress\": \"string\",\"dstPort\": [\"string\"],\"protocol\": \"string\"}],\"fixedBWPriority\": \"not defined in the present document\",\"fixedAllocation\": \"string\",\"allocationDirection\": \"00 = Downlink (towards the UE)\"}}" print("getBwAllocationAppInst: ", resp) if p_json_msg['subscriptionType'] == 'CELL_CHANGE': resp = self.__to_rni_subscriptions__(p_json_msg, 'CELL_CHANGE') return resp # End of method getBwAllocationAppInst # End of registerRniSubscription def getRabInfo(self, p_cell_id): print(">>> getRabInfo: ", p_cell_id) resp = None if p_cell_id == '0xFFFFFFFF': resp = "{\"problemDetails\": {\t\"type\": \"Bad Request\",\t\"title\": \"RnisAPI\",\t\"status\": 400,\t\"detail\": \"Wrong parameters\",\t\"instance\": \"string\"}}" else: resp = "{ \"RabInfo\": { \"timeStamp\": { \"seconds\": 1577836800, \"nanoSeconds\": 0 }, \"appInsId\": \"01\", \"requestId\": \"01\", \"cellUserInfo\": { \"ecgi\": { \"plmn\": { \"mcc\": \"001\", \"mnc\": \"01\" }, \"cellId\": \"" + p_cell_id + "\" }, \"ueInfo\": { \"associateId\": null, \"type\": \"1\", \"value\": \"192.0.2.0\", \"erabInfo\": { \"erabId\": 10 }, \"erabQosParameters\": { \"qci\": 7, \"qosInformation\": { \"erabMbrDl\": 10, \"erabMbrUl\": 10, \"erabGbrDl\": 10, \"erabGbrUl\": 10 } } } } } }" return resp # End of getRabInfo def getPlmnInfo(self, p_app_inst): print(">>> getPlmnInfo: ", p_app_inst) resp = None if p_app_inst == '99': resp = "{\"problemDetails\": {\t\"type\": \"Bad Request\",\t\"title\": \"RnisAPI\",\t\"status\": 400,\t\"detail\": \"Wrong parameters\",\t\"instance\": \"string\"}}" else: resp = "{ \"PlmnInfo\": { \"timeStamp\": { \"seconds\": 1577836800, \"nanoSeconds\": 0 }, \"appInsId\": \"" + p_app_inst + "\", \"ecgi\": { \"plmn\": { \"mcc\": \"001\", \"mnc\": \"01\" }, \"cellId\": \"0x800000A\" } } }" return resp # End of getPlmnInfo # End of class mec_database
simu/mec_http_server.py +49 −11 Original line number Diff line number Diff line Loading @@ -100,9 +100,8 @@ class myHandler(http.server.BaseHTTPRequestHandler): elif resp.find('Forbidden') != -1: self.send_response(403, 'Forbidden') resp = "" elif resp.find('Bad Request') != -1: elif resp.find('Bad Request') != -1 or resp.find('Wrong parameters') != -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\"}}" Loading @@ -110,6 +109,8 @@ class myHandler(http.server.BaseHTTPRequestHandler): elif resp.find('userTrackingSubscription') != -1: self.send_response(201, 'Created') resp = "" elif resp.find('CellChangeSubscription') != -1: self.send_response(201, 'Created') else: self.send_response(200, 'OK') self.send_header('Host', self.headers.get('Host')) # send_header() shall be after send_response() Loading Loading @@ -172,9 +173,6 @@ class myHandler(http.server.BaseHTTPRequestHandler): 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() Loading Loading @@ -377,8 +375,7 @@ class myHandler(http.server.BaseHTTPRequestHandler): content_type = 'application/problem+json' if (resp == None): resp = "{\"problemDetails\": {\t\"type\": \"Bad Request\",\t\"title\": \"UEidentityAPI\",\t\"status\": 400,\t\"detail\": \"Wrong parameters\",\t\"instance\": \"string\"}}" content_type = 'application/problem+json' elif resp.find('problemDetails') != -1: if resp.find('problemDetails') != -1: content_type = 'application/problem+json' print ("<<< __process__ue__identity__api__: ", resp, ", ", content_type) Loading @@ -393,24 +390,63 @@ class myHandler(http.server.BaseHTTPRequestHandler): if p_split[4].startswith('subscriptions'): if p_split.__len__() == 5: s = p_split[4].split('?') if s.__len__() == 1: resp = self.__db__.getSubscriptionLinkList(self.path) if s.__len__() == 1: # Chek message body # Register/Unregister operation body = None # Extract the body if any content_len = int(self.headers.get('Content-Length')) if (content_len != 0): body = self.rfile.read(content_len) json_msg = self.__decode__json__body__(body) if (json_msg == None): resp = "{\"problemDetails\": {\t\"type\": \"Body processing not supported\",\t\"title\": \"UEidentityAPI\",\t\"status\": 400,\t\"detail\": \"Unknown request\",\t\"instance\": \"string\"}}" else: resp = self.__db__.registerRniSubscription(json_msg) elif s[0] != 'subscriptions': resp = "{\"problemDetails\": {\t\"type\": \"Bad Request\",\t\"title\": \"RnisAPI\",\t\"status\": 400,\t\"detail\": \"Wrong parameters\",\t\"instance\": \"string\"}}" content_type = 'application/problem+json' else: s = s[1].split('=') print('__process__rnis__api__: ', s) if s[0] != 'subscription_type': resp = "{\"problemDetails\": {\t\"type\": \"Bad Request\",\t\"title\": \"RnisAPI\",\t\"status\": 400,\t\"detail\": \"Wrong parameters\",\t\"instance\": \"string\"}}" content_type = 'application/problem+json' elif s[1] == 'wrongSubscriptionType': resp = "{\"problemDetails\": {\t\"type\": \"Bad Request\",\t\"title\": \"RnisAPI\",\t\"status\": 400,\t\"detail\": \"Wrong parameters\",\t\"instance\": \"string\"}}" else: resp = self.__db__.getSubscriptionLinkList(self.path) elif p_split.__len__() == 6: if p_split[5] == '': resp = self.__db__.getSubscriptionLinkList(self.path) elif s[0] != 'subscriptions': resp = "{\"problemDetails\": {\t\"type\": \"Bad Request\",\t\"title\": \"RnisAPI\",\t\"status\": 400,\t\"detail\": \"Wrong parameters\",\t\"instance\": \"string\"}}" else: s = s[1].split('=') print('__process__rnis__api__: ', s) if s[0] != 'subscription_type': resp = "{\"problemDetails\": {\t\"type\": \"Bad Request\",\t\"title\": \"RnisAPI\",\t\"status\": 400,\t\"detail\": \"Wrong parameters\",\t\"instance\": \"string\"}}" elif s[1] == 'wrongSubscriptionType': resp = "{\"problemDetails\": {\t\"type\": \"Bad Request\",\t\"title\": \"RnisAPI\",\t\"status\": 400,\t\"detail\": \"Wrong parameters\",\t\"instance\": \"string\"}}" else: resp = self.__db__.getSubscriptionLinkList(self.path) elif p_split[4].startswith('queries'): if p_split.__len__() == 5: s = p_split[4].split('?') if s.__len__() == 1: # Chek message body pass else: if s[0] != 'queries': resp = "{\"problemDetails\": {\t\"type\": \"Bad Request\",\t\"title\": \"RnisAPI\",\t\"status\": 400,\t\"detail\": \"Wrong parameters\",\t\"instance\": \"string\"}}" else: s = s[1].split('=') print('__process__rnis__api__ (queries): ', s) if s[0] == 'cell_id': resp = self.__db__.getRabInfo(s[1]) elif s[0] == 'plmn_info': resp = self.__db__.getPlmnInfo(s[1]) else: resp = "{\"problemDetails\": {\t\"type\": \"Bad Request\",\t\"title\": \"RnisAPI\",\t\"status\": 400,\t\"detail\": \"Wrong parameters\",\t\"instance\": \"string\"}}" if (resp == None): resp = "{\"problemDetails\": {\t\"type\": \"Not supported\",\t\"title\": \"RnisAPI\",\t\"status\": 400,\t\"detail\": \"Wrong parameters\",\t\"instance\": \"string\"}}" if resp.find('problemDetails') != -1: content_type = 'application/problem+json' print ("<<< __process__rnis__api__: ", resp, ", ", content_type) Loading Loading @@ -481,6 +517,8 @@ class myHandler(http.server.BaseHTTPRequestHandler): return json_msg.get("ueIdentityTags")[0] elif ("userTrackingSubscription" in json_msg.keys()) == True: return json_msg.get("userTrackingSubscription") elif ("CellChangeSubscription" in json_msg.keys()) == True: return json_msg.get("CellChangeSubscription") return None # End of __decode__json__body__ Loading