Before creating a Network Slice, check underlying NST is not in DISABLED state 26/9526/2
authorFrank Bryden <frank.bryden@etsi.org>
Tue, 28 Jul 2020 12:50:23 +0000 (12:50 +0000)
committertierno <alfonso.tiernosepulveda@telefonica.com>
Tue, 4 Aug 2020 13:33:23 +0000 (15:33 +0200)
Change-Id: If58bd7fb17e807293b79141f18653fd3350531c5
Signed-off-by: Frank Bryden <frank.bryden@etsi.org>
osm_nbi/instance_topics.py

index b4fae6a..f4d4c73 100644 (file)
@@ -1271,6 +1271,12 @@ class NsiTopic(BaseTopic):
             nstd = self.db.get_one("nsts", _filter)
             del _filter["_id"]
 
             nstd = self.db.get_one("nsts", _filter)
             del _filter["_id"]
 
+            # check NSD is not disabled
+            step = "checking operationalState"
+            if nstd["_admin"]["operationalState"] == "DISABLED":
+                raise EngineException("nst with id '{}' is DISABLED, and thus cannot be used to create "
+                                      "a network slice".format(slice_request["nstId"]), http_code=HTTPStatus.CONFLICT)
+
             nstd.pop("_admin", None)
             nstd_id = nstd.pop("_id", None)
             nsi_id = str(uuid4())
             nstd.pop("_admin", None)
             nstd_id = nstd.pop("_id", None)
             nsi_id = str(uuid4())