Revert "RIFT-14721: Added update mode for RO account, also enabled unit tests for... 78/478/1
authorKIRAN KASHALKAR <kiran.kashalkar@riftio.com>
Mon, 3 Oct 2016 22:17:27 +0000 (18:17 -0400)
committerKIRAN KASHALKAR <kiran.kashalkar@riftio.com>
Mon, 3 Oct 2016 23:11:14 +0000 (19:11 -0400)
This reverts commit c827d48c2a9ed56690446d2855df28eb43d123a8.

Signed-off-by: KIRAN KASHALKAR <kiran.kashalkar@riftio.com>
common/python/rift/mano/dts/__init__.py
common/python/rift/mano/dts/subscriber/ns_subscriber.py
rwlaunchpad/plugins/rwnsm/rift/tasklets/rwnsmtasklet/cloud.py
rwlaunchpad/test/CMakeLists.txt
rwlaunchpad/test/utest_ro_account.py [changed mode: 0755->0644]

index 20d3978..a56fa04 100644 (file)
@@ -20,9 +20,6 @@ from .core import DtsHandler
 # Subscribers
 from .subscriber.core import AbstractOpdataSubscriber, AbstractConfigSubscriber
 from .subscriber.vnf_subscriber import VnfdCatalogSubscriber, VnfrCatalogSubscriber
-from .subscriber.ns_subscriber import (
-        NsrCatalogSubscriber,
-        NsdCatalogSubscriber,
-        NsInstanceConfigSubscriber)
+from .subscriber.ns_subscriber import NsrCatalogSubscriber, NsdCatalogSubscriber
 from .subscriber.store import SubscriberStore
 from .subscriber.ro_account import ROAccountConfigSubscriber
\ No newline at end of file
index c16f771..1078e85 100644 (file)
@@ -50,13 +50,3 @@ class NsdCatalogSubscriber(core.AbstractConfigSubscriber):
 
     def get_xpath(self):
         return "C,/nsd:nsd-catalog/nsd:nsd"
-
-
-class NsInstanceConfigSubscriber(core.AbstractConfigSubscriber):
-    """ The network service descriptor DTS handler """
-
-    def key_name(self):
-        return "id"
-
-    def get_xpath(self):
-        return "C,/nsr:ns-instance-config/nsr:nsr"
index 05be1aa..6be3761 100644 (file)
@@ -177,33 +177,22 @@ class ROAccountPluginSelector(object):
                 self._loop,
                 callback=self.on_ro_account_change
                 )
-        self._nsr_sub = mano_dts.NsInstanceConfigSubscriber(
-                self._log,
-                self._dts,
-                self._loop,
-                self.handle_nsr)
 
         # The default plugin will be RwNsPlugin
+        self._plugin_instances = {}
         self._ro_plugin = self._create_plugin(self.DEFAULT_PLUGIN, None)
-        self.live_instances = 0
 
     @property
     def ro_plugin(self):
         return self._ro_plugin
 
-    def handle_nsr(self, nsr, action):
-        if action == rwdts.QueryAction.CREATE:
-            self.live_instances += 1
-        elif action == rwdts.QueryAction.DELETE:
-            self.live_instances -= 1
-
     def on_ro_account_change(self, ro_account, action):
-        if action in [rwdts.QueryAction.CREATE, rwdts.QueryAction.UPDATE]:
-            self._on_ro_account_change(ro_account)
+        if action == rwdts.QueryAction.CREATE:
+            self._on_ro_account_added(ro_account)
         elif action == rwdts.QueryAction.DELETE:
             self._on_ro_account_deleted(ro_account)
 
-    def _on_ro_account_change(self, ro_account):
+    def _on_ro_account_added(self, ro_account):
         self._log.debug("Got nsm plugin RO account: %s", ro_account)
         try:
             nsm_cls = self._nsm_plugins.class_by_plugin_name(
@@ -216,24 +205,25 @@ class ROAccountPluginSelector(object):
                 )
             nsm_cls = self.DEFAULT_PLUGIN
 
-        ro_plugin = self._create_plugin(nsm_cls, ro_account)
-        if self.live_instances == 0:
-            self._ro_plugin = ro_plugin
-        else:
-            raise ValueError("Unable to change the plugin when live NS instances exists!")
+        self._ro_plugin = self._create_plugin(nsm_cls, ro_account)
 
     def _on_ro_account_deleted(self, ro_account):
         self._ro_plugin = None
 
     def _create_plugin(self, nsm_cls, ro_account):
+        # Check to see if the plugin was already instantiated
+        if nsm_cls in self._plugin_instances:
+            self._log.debug("RO account nsm plugin already instantiated.  Using existing.")
+            return self._plugin_instances[nsm_cls]
 
+        # Otherwise, instantiate a new plugin using the cloud account
         self._log.debug("Instantiating new RO account using class: %s", nsm_cls)
         nsm_instance = nsm_cls(self._dts, self._log, self._loop,
                                self._records_publisher, ro_account)
 
+        self._plugin_instances[nsm_cls] = nsm_instance
         return nsm_instance
 
     @asyncio.coroutine
     def register(self):
         yield from self._ro_sub.register()
-        yield from self._nsr_sub.register()
index 1c18e26..bd1a51e 100644 (file)
@@ -59,11 +59,6 @@ rift_py3test(utest_rwnsm
   ${CMAKE_CURRENT_SOURCE_DIR}/utest_rwnsm.py
   )
 
-rift_py3test(utest_ro_account
-  TEST_ARGS
-  ${CMAKE_CURRENT_SOURCE_DIR}/utest_ro_account.py
-  )
-
 rift_py3test(tosca_ut
   TEST_ARGS
   ${CMAKE_CURRENT_SOURCE_DIR}/tosca_ut.py
old mode 100755 (executable)
new mode 100644 (file)
index aa485ef..6e480d4
@@ -114,7 +114,7 @@ class RoAccountDtsTestCase(rift.test.dts.AbstractDTSTest):
         mock_orch_acc = launchpadyang.ResourceOrchestrator.from_dict(
                 {'name': 'rift-ro', 'account_type': 'rift_ro', 'rift_ro': {'rift_ro': True}})
 
-        # Test rift-ro plugin CREATE
+        # Test rift-ro plugin
         w_xpath = "C,/rw-launchpad:resource-orchestrator"
         xpath = w_xpath
         yield from self.publisher.publish(w_xpath, xpath, mock_orch_acc)
@@ -122,36 +122,16 @@ class RoAccountDtsTestCase(rift.test.dts.AbstractDTSTest):
 
         assert type(orch.ro_plugin) is cloud.RwNsPlugin
 
-        # Test Openmano plugin CREATE
+        # Test Openmano plugin
         mock_orch_acc = launchpadyang.ResourceOrchestrator.from_dict(
                 {'name': 'openmano',
                  'account_type': 'openmano',
-                 'openmano': {'tenant_id': "abc",
-                              "port": 9999,
-                              "host": "10.64.11.77"}})
+                 'openmano': {'tenant_id': "abc"}})
         yield from self.publisher.publish(w_xpath, xpath, mock_orch_acc)
         yield from asyncio.sleep(5, loop=self.loop)
 
+        print (type(orch.ro_plugin))
         assert type(orch.ro_plugin) is openmano_nsm.OpenmanoNsPlugin
-        assert orch.ro_plugin._cli_api._port  == mock_orch_acc.openmano.port
-        assert orch.ro_plugin._cli_api._host  == mock_orch_acc.openmano.host
-
-        # Test update
-        mock_orch_acc.openmano.port = 9789
-        mock_orch_acc.openmano.host = "10.64.11.78"
-        yield from self.dts.query_update("C,/rw-launchpad:resource-orchestrator",
-                rwdts.XactFlag.ADVISE, mock_orch_acc)
-        assert orch.ro_plugin._cli_api._port  == mock_orch_acc.openmano.port
-        assert orch.ro_plugin._cli_api._host  == mock_orch_acc.openmano.host
-
-        # Test update when a live instance exists
-        # Exception should be thrown
-        orch.handle_nsr(None, rwdts.QueryAction.CREATE)
-        mock_orch_acc.openmano.port = 9788
-
-        with self.assertRaises(Exception):
-            yield from self.dts.query_update("C,/rw-launchpad:resource-orchestrator",
-                    rwdts.XactFlag.ADVISE, mock_orch_acc)
 
         # Test delete
         yield from self.dts.query_delete("C,/rw-launchpad:resource-orchestrator",