Add callback sample api 65/86465/1
authorfujinhua <fu.jinhua@zte.com.cn>
Sun, 28 Apr 2019 03:51:51 +0000 (11:51 +0800)
committerfujinhua <fu.jinhua@zte.com.cn>
Sun, 28 Apr 2019 03:51:51 +0000 (11:51 +0800)
Change-Id: Ie0817c834512467704bbfaa244f738248bf3290b
Issue-ID: VFC-1306
Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
catalog/packages/biz/vnf_pkg_subscription.py
catalog/samples/tests.py
catalog/samples/urls.py
catalog/samples/views.py

index 3ab5235..e0e6ff0 100755 (executable)
@@ -64,12 +64,17 @@ class CreateSubscription(object):
                      "to %s" % self.callback_uri)
         try:
             response = requests.get(self.callback_uri, timeout=2)
-            if response.status_code not in (status.HTTP_204_NO_CONTENT, status.HTTP_200_OK):
-                raise VnfPkgSubscriptionException("callbackUri %s returns %s status "
-                                                  "code." % (self.callback_uri, response.status_code))
+            if response.status_code != status.HTTP_204_NO_CONTENT:
+                raise VnfPkgSubscriptionException(
+                    "callbackUri %s returns %s status code." % (
+                        self.callback_uri,
+                        response.status_code
+                    )
+                )
         except Exception:
-            raise VnfPkgSubscriptionException("callbackUri %s didn't return 204 or 200 status"
-                                              "code." % self.callback_uri)
+            raise VnfPkgSubscriptionException(
+                "callbackUri %s didn't return 204 status code." % self.callback_uri
+            )
 
     def do_biz(self):
         self.subscription_id = str(uuid.uuid4())
@@ -77,7 +82,9 @@ class CreateSubscription(object):
         self.check_valid_auth_info()
         self.check_valid()
         self.save_db()
-        subscription = VnfPkgSubscriptionModel.objects.get(subscription_id=self.subscription_id)
+        subscription = VnfPkgSubscriptionModel.objects.get(
+            subscription_id=self.subscription_id
+        )
         if subscription:
             return subscription.toDict()
 
index 9e4c027..2be964a 100644 (file)
@@ -31,3 +31,15 @@ class SampleViewTest(unittest.TestCase):
         self.assertEqual(status.HTTP_200_OK, response.status_code, response.content)
         resp_data = json.loads(response.content)
         self.assertEqual({"status": "active"}, resp_data)
+
+
+class CallbackSampleTest(unittest.TestCase):
+    def setUp(self):
+        self.client = Client()
+
+    def tearDown(self):
+        pass
+
+    def test_callback(self):
+        response = self.client.get("/api/catalog/v1/callback_sample")
+        self.assertEqual(status.HTTP_204_NO_CONTENT, response.status_code, response.content)
index 9ab008a..8e3483c 100644 (file)
@@ -17,4 +17,6 @@ from catalog.samples import views
 
 urlpatterns = [
     url(r'^api/catalog/v1/mandb/(?P<modelName>[a-zA-Z\-]+)$', views.TablesList.as_view()),
-    url(r'^samples/$', views.SampleList.as_view()), ]
+    url(r'^api/catalog/v1/callback_sample$', views.CallbackSample.as_view()),
+    url(r'^samples/$', views.SampleList.as_view())
+]
index 524280f..006f0e5 100644 (file)
@@ -31,6 +31,15 @@ class SampleList(APIView):
         return Response({"status": "active"})
 
 
+class CallbackSample(APIView):
+    """
+    Callback Sample.
+    """
+    def get(self, request, format=None):
+        logger.debug("Callback Sample")
+        return Response(data={}, status=status.HTTP_204_NO_CONTENT)
+
+
 class TablesList(APIView):
     def delete(self, request, modelName):
         logger.debug("Start delete model %s", modelName)