nsd = self.db.get_one("nsds", _filter)
del _filter["_id"]
+ # check NSD is not disabled
+ step = "checking nsdOperationalState"
+ if nsd["_admin"]["operationalState"] == "DISABLED":
+ raise EngineException("nsd with id '{}' is DISABLED, and thus cannot be used to create "
+ "a network service".format(ns_request["nsdId"]), http_code=HTTPStatus.CONFLICT)
+
nsr_id = str(uuid4())
now = time()
return nsr_id, None
except (ValidationError, EngineException, DbException, MsgException, FsException) as e:
- raise type(e)("{} while '{}".format(e, step), http_code=e.http_code)
+ raise type(e)("{} while '{}'".format(e, step), http_code=e.http_code)
def edit(self, session, _id, indata=None, kwargs=None, content=None):
raise EngineException("Method edit called directly", HTTPStatus.INTERNAL_SERVER_ERROR)
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())