X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=catalog%2Fpackages%2Fbiz%2Fnsdm_subscription.py;h=a551c2cb9adc8b13c9e5611354b1120f87a786cd;hb=246df561b466d1202a40ece1c133a4bf70ab958f;hp=e2af6e49b29aa1b860e8fdb67cbe1f4d798169cb;hpb=a32c2b20207885d895bd96204cc166fca14db97b;p=modeling%2Fetsicatalog.git diff --git a/catalog/packages/biz/nsdm_subscription.py b/catalog/packages/biz/nsdm_subscription.py index e2af6e4..a551c2c 100644 --- a/catalog/packages/biz/nsdm_subscription.py +++ b/catalog/packages/biz/nsdm_subscription.py @@ -15,19 +15,18 @@ import ast import json import logging -import requests import uuid - from collections import Counter +import requests from rest_framework import status from catalog.packages import const from catalog.pub.database.models import NsdmSubscriptionModel from catalog.pub.exceptions import CatalogException, \ - ResourceNotFoundException, \ - NsdmBadRequestException, NsdmDuplicateSubscriptionException + NsdmBadRequestException, NsdmDuplicateSubscriptionException, SubscriptionDoesNotExistsException from catalog.pub.utils.values import ignore_case_get +from catalog.pub.config.config import MSB_BASE_URL logger = logging.getLogger(__name__) @@ -52,8 +51,8 @@ class NsdmSubscription: NsdmSubscriptionModel.objects.filter( subscriptionid=subscription_id) if not subscription.exists(): - raise ResourceNotFoundException( - "Subscription(%s) doesn't exists" % subscription_id) + raise SubscriptionDoesNotExistsException( + "Subscription(%s) doesn't exist" % subscription_id) logger.debug("Subscription found... ") return self.fill_resp_data(subscription[0]) @@ -63,8 +62,8 @@ class NsdmSubscription: NsdmSubscriptionModel.objects.filter( subscriptionid=subscription_id) if not subscription.exists(): - raise ResourceNotFoundException( - "Subscription(%s) doesn't exists" % subscription_id) + raise SubscriptionDoesNotExistsException( + "Subscription(%s) doesn't exist" % subscription_id) subscription.delete() logger.debug("Deleted Subscription... ") @@ -76,14 +75,14 @@ class NsdmSubscription: for query, value in list(self.params.items()): if query in const.NSDM_NOTIFICATION_FILTERS and value: query_data[query + '__icontains'] = json.dumps(list(set(value))) - # Query the database with filters if the request + # Query the database with filter if the request # has fields in request params, else fetch all records if query_data: subscriptions = NsdmSubscriptionModel.objects.filter(**query_data) else: subscriptions = NsdmSubscriptionModel.objects.all() if not subscriptions.exists(): - raise ResourceNotFoundException("Subscriptions doesn't exist") + raise SubscriptionDoesNotExistsException("Subscriptions doesn't exist") return [self.fill_resp_data(subscription) for subscription in subscriptions] @@ -91,7 +90,7 @@ class NsdmSubscription: logger.debug("Create Subscription --> Test Callback URI --" "Sending GET request to %s" % self.callback_uri) try: - response = requests.get(self.callback_uri, timeout=2) + response = requests.get(self.callback_uri, timeout=2, verify=False) if response.status_code != status.HTTP_204_NO_CONTENT: raise CatalogException("callbackUri %s returns %s status " "code." % (self.callback_uri, @@ -183,17 +182,19 @@ class NsdmSubscription: def check_valid(self): logger.debug("Create Subscription --> Checking DB if " - "same subscription exists already exists... ") + "same subscription has already existed... ") subscriptions = \ NsdmSubscriptionModel.objects.filter( callback_uri=self.callback_uri) - if not subscriptions.exists(): - return + for subscription in subscriptions: if self.check_filter_exists(subscription): + links = json.loads(subscription.links) + logger.error( + "Subscription has already existed with the " + "same callbackUri and filter:%s" % links) raise NsdmDuplicateSubscriptionException( - "Already Subscription exists with the " - "same callbackUri and filter") + "%s/%s" % (MSB_BASE_URL, links["self"]["href"])) def save_db(self): logger.debug("Create Subscription --> Saving the subscription " @@ -201,13 +202,13 @@ class NsdmSubscription: links = { "self": { "href": - const.NSDM_SUBSCRIPTION_ROOT_URI + self.subscription_id + const.NSDM_SUBSCRIPTION_ROOT_URI + self.subscription_id } } subscription_save_db = { "subscriptionid": self.subscription_id, "callback_uri": self.callback_uri, - "auth_info": self.authentication, + "auth_info": json.dumps(self.authentication), "links": json.dumps(links) } for filter_type in const.NSDM_NOTIFICATION_FILTERS: