diff options
author | Yogendra Pal <yogendra@aarnanetworks.com> | 2022-03-03 00:15:48 +0530 |
---|---|---|
committer | yogendrapal <yogendra@aarnanetworks.com> | 2022-03-04 22:32:37 +0530 |
commit | 3faa47c04cc54b21d32876debb88bd22e667547e (patch) | |
tree | bb6809f67a50aace96a879fb755f36bde74f68c0 | |
parent | 0eaeb819661d1579f08d6c44bd7b266a5f5acda0 (diff) |
Add the support of activate/deactivate events to RAN NSSMF simulator
Issue-ID: INT-2080
Signed-off-by: yogendrapal <yogendra@aarnanetworks.com>
Change-Id: If4e7bd29c4350e41ef2a1c2bf7ce40cea0bd2a66
3 files changed, 94 insertions, 1 deletions
diff --git a/test/mocks/ran-nssmf-simulator/RanNssmfSimulator/MainApp.py b/test/mocks/ran-nssmf-simulator/RanNssmfSimulator/MainApp.py index 6074e7634..05edfa872 100644 --- a/test/mocks/ran-nssmf-simulator/RanNssmfSimulator/MainApp.py +++ b/test/mocks/ran-nssmf-simulator/RanNssmfSimulator/MainApp.py @@ -2,6 +2,7 @@ # ============LICENSE_START======================================================= # Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. +# Contribution (C) 2022 Aarna Networks, Inc. All rights reserved. # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -21,7 +22,7 @@ from flask import Flask, request, Response from schematics.exceptions import DataError from .utils import REST_PORT, LOGGING_LEVEL -from .SliceDataType import AllocateNssi, DeAllocateNssi +from .SliceDataType import AllocateNssi, DeAllocateNssi, ActivateNssi, DeActivateNssi from . import AuthManager from . import NssManager @@ -97,6 +98,48 @@ def handleDeallocateNssi(sliceProfileId): return NssManager.deallocateNssi(sliceProfileId, request.json), 200 +@app.route("/api/rest/provMns/v1/an/NSS/<string:snssai>/activations", methods=['PUT']) +def handleActivateNssi(snssai): + """ + Method: handleActivateNssi + This method handles slice activation event generated by SO NSSMF adapter. + As part of this event, SO NSSMF adapter will send the associated 'snssai'. + 'snssai' is string type value and example is: "01-2557D9". Wherein, + sst: "01" and sd: "2557D9". + Argument: snssai + 'sst': Identifies the service (e.g eMBB, URLLC,...) + 'sd' : service differentiator within sst. + Return value: http status 200 + """ + AuthManager.checkAuthToken(request.headers) + + app.logger.info("Receive ActivateNssi request for snssai:%s\n%s" + % (snssai, json.dumps(request.json, indent=2))) + + ActivateNssi(request.json).validate() + + return NssManager.activateNssi(snssai, request.json), 200 + +@app.route("/api/rest/provMns/v1/an/NSS/<string:snssai>/deactivation", methods=['PUT']) +def handleDeActivateNssi(snssai): + """ + Method: handleDeActivateNssi + This method handles slice deactivation event generated by SO NSSMF adapter. + As part of this event, SO NSSMF adapter will send the associated 'snssai'. + Example 'snssai' : "01-2557D9". + Argument: snssai + 'sst': Identifies the service (e.g eMBB, URLLC,...) + 'sd' : service differentiator within sst. + Return value: http status 200 + """ + AuthManager.checkAuthToken(request.headers) + + app.logger.info("Receive DeActivateNssi request for snssai:%s\n%s" + % (snssai, json.dumps(request.json, indent=2))) + + DeActivateNssi(request.json).validate() + + return NssManager.deactivateNssi(snssai, request.json), 200 def main(): AuthManager.startAuthManagerJob() diff --git a/test/mocks/ran-nssmf-simulator/RanNssmfSimulator/NssManager.py b/test/mocks/ran-nssmf-simulator/RanNssmfSimulator/NssManager.py index f515968f1..817f5d92f 100644 --- a/test/mocks/ran-nssmf-simulator/RanNssmfSimulator/NssManager.py +++ b/test/mocks/ran-nssmf-simulator/RanNssmfSimulator/NssManager.py @@ -1,5 +1,6 @@ # ============LICENSE_START======================================================= # Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. +# Contribution (C) 2022 Aarna Networks, Inc. All rights reserved. # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -46,3 +47,41 @@ def deallocateNssi(sliceProfileId, requestBody): logger.info("Deallocate NSSI for sliceProfileId %s success, nSSId: %s" % (sliceProfileId, nSSId)) return "" + +def activateNssi(snssai, requestBody): + """ + Method: activateNssi + This method is internal and invoked from handleActivateNssi() + callflow. As part of this, it logs the activate snssai, nssiId + values from incoming request. + Arguments: snssai, requestBody + snssai represents below: + 'sst': Identifies the service (e.g eMBB, URLLC,...) + 'sd' : service differentiator within sst. + requestBody: Incoming http request payload. + Return value: '' + """ + nssiId = requestBody["nssiId"] + #nsiId = requestBody["nsiId"] + + logger.info("Activate NSSI for snssai %s successful, nssiId: %s" % (snssai, nssiId)) + return "" + +def deactivateNssi(snssai, requestBody): + """ + Method: deactivateNssi + This method is internal and invoked from handleDeActivateNssi() + callflow. As part of this, it logs the deactivate snssai, nssiId + values from incoming request. + Argument: snssai, requestBody + snssai represents below: + 'sst': Identifies the service (e.g eMBB, URLLC,...) + 'sd' : service differentiator within sst. + requestBody: Incoming http request payload. + Return value: '' + """ + nssiId = requestBody["nssiId"] + #nsiId = requestBody["nsiId"] + + logger.info("DeActivate NSSI for snssai %s successful, nssiId: %s" % (snssai, nssiId)) + return "" diff --git a/test/mocks/ran-nssmf-simulator/RanNssmfSimulator/SliceDataType.py b/test/mocks/ran-nssmf-simulator/RanNssmfSimulator/SliceDataType.py index 7309701e3..37ec0a3af 100644 --- a/test/mocks/ran-nssmf-simulator/RanNssmfSimulator/SliceDataType.py +++ b/test/mocks/ran-nssmf-simulator/RanNssmfSimulator/SliceDataType.py @@ -1,5 +1,6 @@ # ============LICENSE_START======================================================= # Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. +# Contribution (C) 2022 Aarna Networks, Inc. All rights reserved. # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -62,3 +63,13 @@ class AllocateNssi(Model): class DeAllocateNssi(Model): """Reference 3GPP TS 28.531 V16.6.0.""" nSSId = StringType(required=True) + +class ActivateNssi(Model): + """Reference 3GPP TS 28.531 V16.6.0.""" + nsiId = StringType(required=True) + nssiId = StringType(required=True) + +class DeActivateNssi(Model): + """Reference 3GPP TS 28.531 V16.6.0.""" + nsiId = StringType(required=True) + nssiId = StringType(required=True) |