diff options
-rwxr-xr-x | docker/docker-entrypoint.sh | 2 | ||||
-rw-r--r-- | lcm/ns/tests/test_sol_ns_heal_api.py | 8 | ||||
-rw-r--r-- | lcm/ns/tests/test_sol_ns_scale_api.py | 2 | ||||
-rw-r--r-- | lcm/ns/tests/test_sol_ns_terminate_api.py | 5 | ||||
-rw-r--r-- | lcm/ns/urls.py | 6 | ||||
-rw-r--r-- | lcm/ns/views/sol/health_check.py | 24 |
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 |