Feature 10509 manual scaling for native k8s charm
[osm/LCM.git] / osm_lcm / tests / test_ns.py
index 192f8e0..62de111 100644 (file)
@@ -394,6 +394,37 @@ class TestMyNS(asynctest.TestCase):
         self.assertEqual(return_value, expected_value)
         # print("scale_result: {}".format(self.db.get_one("nslcmops", {"_id": nslcmop_id}).get("detailed-status")))
 
+        # Test scale() for native kdu
+        # this also includes testing _scale_kdu()
+        nsr_id = descriptors.test_ids["TEST-NATIVE-KDU"]["ns"]
+        nslcmop_id = descriptors.test_ids["TEST-NATIVE-KDU"]["instantiate"]
+
+        self.my_ns.k8sclusterjuju.scale = asynctest.mock.CoroutineMock()
+        self.my_ns.k8sclusterjuju.exec_primitive = asynctest.mock.CoroutineMock()
+        self.my_ns.k8sclusterjuju.get_scale_count = asynctest.mock.CoroutineMock(
+            return_value=1
+        )
+        await self.my_ns.scale(nsr_id, nslcmop_id)
+        expected_value = "COMPLETED"
+        return_value = self.db.get_one("nslcmops", {"_id": nslcmop_id}).get(
+            "operationState"
+        )
+        self.assertEqual(return_value, expected_value)
+        self.my_ns.k8sclusterjuju.scale.assert_called_once()
+
+        # Test scale() for native kdu with 2 resource
+        nsr_id = descriptors.test_ids["TEST-NATIVE-KDU-2"]["ns"]
+        nslcmop_id = descriptors.test_ids["TEST-NATIVE-KDU-2"]["instantiate"]
+
+        self.my_ns.k8sclusterjuju.get_scale_count.return_value = 2
+        await self.my_ns.scale(nsr_id, nslcmop_id)
+        expected_value = "COMPLETED"
+        return_value = self.db.get_one("nslcmops", {"_id": nslcmop_id}).get(
+            "operationState"
+        )
+        self.assertEqual(return_value, expected_value)
+        self.my_ns.k8sclusterjuju.scale.assert_called()
+
     async def test_vca_status_refresh(self):
         nsr_id = descriptors.test_ids["TEST-A"]["ns"]
         nslcmop_id = descriptors.test_ids["TEST-A"]["instantiate"]
@@ -415,7 +446,10 @@ class TestMyNS(asynctest.TestCase):
                                 "operate-vnf-op-config"
                             ]["day1-2"]
                         ):
-                            if "juju" in v["execution-environment-list"][k]:
+                            if (
+                                v.get("execution-environment-list")
+                                and "juju" in v["execution-environment-list"][k]
+                            ):
                                 expected_value = self.db.get_list("nsrs")[i][
                                     "vcaStatus"
                                 ]