X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FNBI.git;a=blobdiff_plain;f=osm_nbi%2Fdescriptor_topics.py;h=d01dc1396a772512023e4b32df6f5c35bf6ff22e;hp=b63e5d2db70fbeb5e161a086db8025bc157a80cb;hb=16db949804909ad4e68bea83cc546124eaf562a0;hpb=b4844abca6fd9f8a7cf45fdc168d3606d2c34c39 diff --git a/osm_nbi/descriptor_topics.py b/osm_nbi/descriptor_topics.py index b63e5d2..d01dc13 100644 --- a/osm_nbi/descriptor_topics.py +++ b/osm_nbi/descriptor_topics.py @@ -20,8 +20,8 @@ import json from hashlib import md5 from osm_common.dbbase import DbException, deep_update_rfc7396 from http import HTTPStatus -from validation import ValidationError, pdu_new_schema, pdu_edit_schema -from base_topic import BaseTopic, EngineException, get_iterable +from osm_nbi.validation import ValidationError, pdu_new_schema, pdu_edit_schema +from osm_nbi.base_topic import BaseTopic, EngineException, get_iterable from osm_im.vnfd import vnfd as vnfd_im from osm_im.nsd import nsd as nsd_im from osm_im.nst import nst as nst_im @@ -33,8 +33,8 @@ __author__ = "Alfonso Tierno " class DescriptorTopic(BaseTopic): - def __init__(self, db, fs, msg): - BaseTopic.__init__(self, db, fs, msg) + def __init__(self, db, fs, msg, auth): + BaseTopic.__init__(self, db, fs, msg, auth) def check_conflict_on_edit(self, session, final_content, edit_content, _id): super().check_conflict_on_edit(session, final_content, edit_content, _id) @@ -117,10 +117,13 @@ class DescriptorTopic(BaseTopic): :param indata: data to be inserted :param kwargs: used to override the indata descriptor :param headers: http request headers - :return: _id: identity of the inserted data. + :return: _id, None: identity of the inserted data; and None as there is not any operation """ try: + # Check Quota + self.check_quota(session) + # _remove_envelop if indata: if "userDefinedData" in indata: @@ -136,7 +139,7 @@ class DescriptorTopic(BaseTopic): self.format_on_new(content, session["project_id"], make_public=session["public"]) _id = self.db.create(self.topic, content) rollback.append({"topic": self.topic, "_id": _id}) - return _id + return _id, None except ValidationError as e: raise EngineException(e, HTTPStatus.UNPROCESSABLE_ENTITY) @@ -394,8 +397,8 @@ class VnfdTopic(DescriptorTopic): topic = "vnfds" topic_msg = "vnfd" - def __init__(self, db, fs, msg): - DescriptorTopic.__init__(self, db, fs, msg) + def __init__(self, db, fs, msg, auth): + DescriptorTopic.__init__(self, db, fs, msg, auth) @staticmethod def _remove_envelop(indata=None): @@ -652,8 +655,8 @@ class NsdTopic(DescriptorTopic): topic = "nsds" topic_msg = "nsd" - def __init__(self, db, fs, msg): - DescriptorTopic.__init__(self, db, fs, msg) + def __init__(self, db, fs, msg, auth): + DescriptorTopic.__init__(self, db, fs, msg, auth) @staticmethod def _remove_envelop(indata=None): @@ -791,8 +794,8 @@ class NstTopic(DescriptorTopic): topic = "nsts" topic_msg = "nst" - def __init__(self, db, fs, msg): - DescriptorTopic.__init__(self, db, fs, msg) + def __init__(self, db, fs, msg, auth): + DescriptorTopic.__init__(self, db, fs, msg, auth) @staticmethod def _remove_envelop(indata=None): @@ -854,7 +857,7 @@ class NstTopic(DescriptorTopic): return # Get Network Slice Template from Database _filter = self._get_project_filter(session) - _filter["nst-id"] = _id + _filter["_admin.nst-id"] = _id if self.db.get_list("nsis", _filter): raise EngineException("there is at least one Netslice Instance using this descriptor", http_code=HTTPStatus.CONFLICT) @@ -866,8 +869,8 @@ class PduTopic(BaseTopic): schema_new = pdu_new_schema schema_edit = pdu_edit_schema - def __init__(self, db, fs, msg): - BaseTopic.__init__(self, db, fs, msg) + def __init__(self, db, fs, msg, auth): + BaseTopic.__init__(self, db, fs, msg, auth) @staticmethod def format_on_new(content, project_id=None, make_public=False):