aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xdocker/docker-entrypoint.sh2
-rw-r--r--lcm/ns/tests/test_sol_ns_heal_api.py8
-rw-r--r--lcm/ns/tests/test_sol_ns_scale_api.py2
-rw-r--r--lcm/ns/tests/test_sol_ns_terminate_api.py5
-rw-r--r--lcm/ns/urls.py6
-rw-r--r--lcm/ns/views/sol/health_check.py24
6 files changed, 44 insertions, 3 deletions
diff --git a/docker/docker-entrypoint.sh b/docker/docker-entrypoint.sh
index 814d1798..e116c33b 100755
--- a/docker/docker-entrypoint.sh
+++ b/docker/docker-entrypoint.sh
@@ -1,5 +1,7 @@
#!/bin/bash
+find /service -name '*.sh'|xargs chmod a+x
+
if [ -z "$SERVICE_IP" ]; then
export SERVICE_IP=`hostname -i`
fi
diff --git a/lcm/ns/tests/test_sol_ns_heal_api.py b/lcm/ns/tests/test_sol_ns_heal_api.py
index 8ff4ced5..ebd8ba0d 100644
--- a/lcm/ns/tests/test_sol_ns_heal_api.py
+++ b/lcm/ns/tests/test_sol_ns_heal_api.py
@@ -13,6 +13,7 @@
# limitations under the License.
import json
+import uuid
import mock
from django.test import Client
@@ -28,7 +29,8 @@ from lcm.pub.utils.jobutil import JobUtil, JOB_TYPE
class TestHealNsApi(TestCase):
def setUp(self):
self.url = "/api/nslcm/v1/ns_instances/%s/heal"
- self.ns_inst_id = '1'
+ # self.ns_inst_id = '1'
+ self.ns_inst_id = str(uuid.uuid4())
self.nf_inst_id = '1'
self.nf_uuid = '1-1-1'
@@ -93,6 +95,8 @@ class TestHealNsApi(TestCase):
self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code, response.data)
self.assertIsNotNone(response.data)
self.assertIsNotNone(response['Location'])
+ response = self.client.get(response['Location'], format='json')
+ self.assertEqual(response.status_code, status.HTTP_200_OK)
# add healNsData
@@ -117,6 +121,8 @@ class TestHealNsApi(TestCase):
response = self.client.post(self.url % self.ns_inst_id, data=data)
self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code, response.data)
self.assertIsNotNone(response['Location'])
+ response = self.client.get(response['Location'], format='json')
+ self.assertEqual(response.status_code, status.HTTP_200_OK)
@mock.patch.object(NSHealService, "start")
def test_heal_vnf_non_existing_ns(self, mock_start):
diff --git a/lcm/ns/tests/test_sol_ns_scale_api.py b/lcm/ns/tests/test_sol_ns_scale_api.py
index c484a88d..9d4ed938 100644
--- a/lcm/ns/tests/test_sol_ns_scale_api.py
+++ b/lcm/ns/tests/test_sol_ns_scale_api.py
@@ -198,6 +198,8 @@ class TestScaleNsApi(TestCase):
response = self.client.post(self.url % self.ns_inst_id, data=data)
self.failUnlessEqual(status.HTTP_202_ACCEPTED, response.status_code)
self.assertIsNotNone(response['Location'])
+ response = self.client.get(response['Location'], format='json')
+ self.assertEqual(response.status_code, status.HTTP_200_OK)
@mock.patch.object(NSManualScaleService, 'start')
def test_ns_manual_scale_empty_data(self, mock_start):
diff --git a/lcm/ns/tests/test_sol_ns_terminate_api.py b/lcm/ns/tests/test_sol_ns_terminate_api.py
index 44de00e7..5aec52e9 100644
--- a/lcm/ns/tests/test_sol_ns_terminate_api.py
+++ b/lcm/ns/tests/test_sol_ns_terminate_api.py
@@ -25,7 +25,8 @@ class TestTerminateNsApi(TestCase):
def setUp(self):
self.client = Client()
self.url = "/api/nslcm/v1/ns_instances/%s/terminate"
- self.ns_inst_id = '1'
+ # self.ns_inst_id = '1'
+ self.ns_inst_id = str(uuid.uuid4())
self.nf_inst_id = '1'
self.vnffg_id = str(uuid.uuid4())
self.vim_id = str(uuid.uuid4())
@@ -62,6 +63,8 @@ class TestTerminateNsApi(TestCase):
response = self.client.post(self.url % self.ns_inst_id, data=req_data)
self.failUnlessEqual(status.HTTP_202_ACCEPTED, response.status_code)
self.assertIsNotNone(response['Location'])
+ response = self.client.get(response['Location'], format='json')
+ self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_method_not_allowed(self):
response = self.client.put(self.url % '1', data={}, format='json')
diff --git a/lcm/ns/urls.py b/lcm/ns/urls.py
index 529883a9..d24ad6c2 100644
--- a/lcm/ns/urls.py
+++ b/lcm/ns/urls.py
@@ -34,6 +34,7 @@ from lcm.ns.views.sol.subscriptions_view import SubscriptionsView
from lcm.ns.views.sol.update_ns_view import UpdateNSView
from lcm.ns.views.sol.scale_ns_views import ScaleNSView
from lcm.ns.views.sol.heal_ns_view import HealNSView
+from lcm.ns.views.sol.health_check import HealthCheckView
urlpatterns = [
# API will be deprecated in the future release
@@ -56,7 +57,10 @@ urlpatterns = [
url(r'^api/nslcm/v1/ns_instances/(?P<ns_instance_id>[0-9a-zA-Z_-]+)/heal$', HealNSView.as_view()),
url(r'^api/nslcm/v1/ns_instances/(?P<ns_instance_id>[0-9a-zA-Z_-]+)$', IndividualNsInstanceView.as_view()),
url(r'^api/nslcm/v1/subscriptions$', SubscriptionsView.as_view()),
- url(r'^api/nslcm/v1/ns_lcm_op_occs$', QueryMultiNsLcmOpOccs.as_view())
+ url(r'^api/nslcm/v1/ns_lcm_op_occs$', QueryMultiNsLcmOpOccs.as_view()),
+
+ # health check
+ url(r'^api/nslcm/v1/health_check$', HealthCheckView.as_view())
]
diff --git a/lcm/ns/views/sol/health_check.py b/lcm/ns/views/sol/health_check.py
new file mode 100644
index 00000000..863ef597
--- /dev/null
+++ b/lcm/ns/views/sol/health_check.py
@@ -0,0 +1,24 @@
+# Copyright (c) 2018, CMCC Technologies Co., Ltd.
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+
+# http://www.apache.org/licenses/LICENSE-2.0
+
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import logging
+
+from rest_framework.views import APIView
+
+logger = logging.getLogger(__name__)
+
+
+class HealthCheckView(APIView):
+ logger.debug("Health check.")
+ pass