X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FNBI.git;a=blobdiff_plain;f=osm_nbi%2Fadmin_topics.py;h=f831b6301a8ac21d3e884846af3a5778c694aaa2;hp=bc13c9f478f3f4aefe5b1a032cc1be0d750c6579;hb=refs%2Fchanges%2F27%2F9327%2F9;hpb=e19707be54905bd804289a967812e617c8e2ce98 diff --git a/osm_nbi/admin_topics.py b/osm_nbi/admin_topics.py index bc13c9f..f831b63 100644 --- a/osm_nbi/admin_topics.py +++ b/osm_nbi/admin_topics.py @@ -22,7 +22,8 @@ from osm_nbi.validation import user_new_schema, user_edit_schema, project_new_sc vim_account_new_schema, vim_account_edit_schema, sdn_new_schema, sdn_edit_schema, \ wim_account_new_schema, wim_account_edit_schema, roles_new_schema, roles_edit_schema, \ k8scluster_new_schema, k8scluster_edit_schema, k8srepo_new_schema, k8srepo_edit_schema, \ - validate_input, ValidationError, is_valid_uuid # To check that User/Project Names don't look like UUIDs + osmrepo_new_schema, osmrepo_edit_schema, \ + validate_input, ValidationError, is_valid_uuid # To check that User/Project Names don't look like UUIDs from osm_nbi.base_topic import BaseTopic, EngineException from osm_nbi.authconn import AuthconnNotFoundException, AuthconnConflictException from osm_common.dbbase import deep_update_rfc7396 @@ -324,14 +325,14 @@ class CommonVimWimSdn(BaseTopic): # do not remove reference, but order via kafka to delete it if session["project_id"] and session["project_id"]: other_projects_referencing = next((p for p in db_content["_admin"]["projects_read"] - if p not in session["project_id"]), None) + if p not in session["project_id"] and p != "ANY"), None) # check if there are projects referencing it (apart from ANY, that means, public).... if other_projects_referencing: # remove references but not delete - update_dict_pull = {"_admin.projects_read.{}".format(p): None for p in session["project_id"]} - update_dict_pull.update({"_admin.projects_write.{}".format(p): None for p in session["project_id"]}) - self.db.set_one(self.topic, filter_q, update_dict=None, pull=update_dict_pull) + update_dict_pull = {"_admin.projects_read": session["project_id"], + "_admin.projects_write": session["project_id"]} + self.db.set_one(self.topic, filter_q, update_dict=None, pull_list=update_dict_pull) return None else: can_write = next((p for p in db_content["_admin"]["projects_write"] if p == "ANY" or @@ -397,6 +398,7 @@ class WimAccountTopic(CommonVimWimSdn): class SdnTopic(CommonVimWimSdn): topic = "sdns" topic_msg = "sdn" + quota_name = "sdn_controllers" schema_new = sdn_new_schema schema_edit = sdn_edit_schema multiproject = True @@ -520,6 +522,15 @@ class K8sRepoTopic(CommonVimWimSdn): return oid +class OsmRepoTopic(BaseTopic): + topic = "osmrepos" + topic_msg = "osmrepos" + schema_new = osmrepo_new_schema + schema_edit = osmrepo_edit_schema + multiproject = True + # TODO: Implement user/password + + class UserTopicAuth(UserTopic): # topic = "users" # topic_msg = "users"