Unity MSB address
[modeling/etsicatalog.git] / catalog / packages / biz / notificationsutil.py
index a18c4b3..31760cc 100644 (file)
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+import json
 import logging
+import traceback
 import uuid
+
 import requests
-import json
-from rest_framework import status
+from django.db.models import Q
 from requests.auth import HTTPBasicAuth
-from catalog.packages import const
-from catalog.pub.database.models import VnfPackageModel, VnfPkgSubscriptionModel, NsdmSubscriptionModel
+from rest_framework import status
+
 import catalog.pub.utils.timeutil
-from catalog.pub.utils.values import remove_none_key
-from catalog.pub.config import config as pub_config
-import traceback
-from django.db.models import Q
+from catalog.packages import const
 from catalog.packages.serializers.vnf_pkg_notifications import PkgChangeNotificationSerializer, \
     PkgOnboardingNotificationSerializer
+from catalog.pub.config import config as pub_config
+from catalog.pub.database.models import VnfPackageModel, VnfPkgSubscriptionModel, NsdmSubscriptionModel
+from catalog.pub.utils.values import remove_none_key
 
 logger = logging.getLogger(__name__)
 
@@ -59,10 +61,7 @@ class NotificationsUtil(object):
             # set subscription id
             notification["subscriptionId"] = sub.get_subscription_id()
             notification['_links']['subscription'] = {
-                'href': 'http://%s:%s/%s%s' % (pub_config.MSB_SERVICE_IP,
-                                               pub_config.MSB_SERVICE_PORT,
-                                               self.subscription_root_uri,
-                                               notification["subscriptionId"])
+                'href': '%s/%s%s' % (pub_config.MSB_BASE_URL, self.subscription_root_uri, notification["subscriptionId"])
             }
             callbackuri = sub.callback_uri
             """
@@ -87,8 +86,13 @@ class NotificationsUtil(object):
                     params = auth_info.get("paramsBasic", {})
                     username = params.get("userName")
                     password = params.get("password")
-                    resp = requests.post(callbackuri, data=notification, headers={'Connection': 'close'},
-                                         auth=HTTPBasicAuth(username, password))
+                    resp = requests.post(callbackuri,
+                                         data=json.dumps(notification),
+                                         headers={'Connection': 'close',
+                                                  'content-type': 'application/json',
+                                                  'accept': 'application/json'},
+                                         auth=HTTPBasicAuth(username, password),
+                                         verify=False)
                 elif const.OAUTH2_CLIENT_CREDENTIALS in auth_info.get("authType", ''):
                     # todo
                     pass
@@ -96,11 +100,17 @@ class NotificationsUtil(object):
                     # todo
                     pass
             else:
-                resp = requests.post(callbackuri, data=notification, headers={'Connection': 'close'})
-            if resp.status_code != status.HTTP_204_NO_CONTENT:
-                logger.error("Sending notification to %s failed: %s" % (callbackuri, resp.text))
-            else:
+                resp = requests.post(callbackuri,
+                                     data=json.dumps(notification),
+                                     headers={'Connection': 'close',
+                                              'content-type': 'application/json',
+                                              'accept': 'application/json'},
+                                     verify=False)
+
+            if resp.status_code == status.HTTP_204_NO_CONTENT:
                 logger.info("Sending notification to %s successfully.", callbackuri)
+            else:
+                logger.error("Sending notification to %s failed: %s" % (callbackuri, resp))
         except:
             logger.error("Post notification failed.")
             logger.error(traceback.format_exc())
@@ -139,10 +149,7 @@ class PkgNotifications(NotificationsUtil):
             'vnfdId': vnfd_id,
             '_links': {
                 'vnfPackage': {
-                    'href': 'http://%s:%s/%s/vnf_packages/%s' % (pub_config.MSB_SERVICE_IP,
-                                                                 pub_config.MSB_SERVICE_PORT,
-                                                                 const.PKG_URL_PREFIX,
-                                                                 self.vnf_pkg_id)
+                    'href': '%s/%s/vnf_packages/%s' % (pub_config.MSB_BASE_URL, const.PKG_URL_PREFIX, self.vnf_pkg_id)
                 }
             }
         }
@@ -185,10 +192,7 @@ class NsdNotifications(NotificationsUtil):
             'nsdId': self.nsd_id,
             '_links': {
                 'nsdInfo': {
-                    'href': 'http://%s:%s/%s/ns_descriptors/%s' % (pub_config.MSB_SERVICE_IP,
-                                                                   pub_config.MSB_SERVICE_PORT,
-                                                                   const.NSD_URL_PREFIX,
-                                                                   self.nsd_info_id)
+                    'href': '%s/%s/ns_descriptors/%s' % (pub_config.MSB_BASE_URL, const.NSD_URL_PREFIX, self.nsd_info_id)
                 }
             }
         }
@@ -228,10 +232,9 @@ class PnfNotifications(NotificationsUtil):
             'pnfdId': self.pnfd_id,
             '_links': {
                 'pnfdInfo': {
-                    'href': 'http://%s:%s/%s/pnf_descriptors/%s' % (pub_config.MSB_SERVICE_IP,
-                                                                    pub_config.MSB_SERVICE_PORT,
-                                                                    const.NSD_URL_PREFIX,
-                                                                    self.pnfd_info_id)
+                    'href': '%s/%s/pnf_descriptors/%s' % (pub_config.MSB_BASE_URL,
+                                                          const.NSD_URL_PREFIX,
+                                                          self.pnfd_info_id)
                 }
             }
         }