From 8c799681ac1cf3383807d6eb404f56b71f938aba Mon Sep 17 00:00:00 2001 From: KIRAN KASHALKAR Date: Mon, 3 Oct 2016 18:17:27 -0400 Subject: [PATCH] Revert "RIFT-14721: Added update mode for RO account, also enabled unit tests for ro_account" This reverts commit c827d48c2a9ed56690446d2855df28eb43d123a8. Signed-off-by: KIRAN KASHALKAR --- common/python/rift/mano/dts/__init__.py | 5 +-- .../rift/mano/dts/subscriber/ns_subscriber.py | 10 ------ .../rwnsm/rift/tasklets/rwnsmtasklet/cloud.py | 32 +++++++------------ rwlaunchpad/test/CMakeLists.txt | 5 --- rwlaunchpad/test/utest_ro_account.py | 28 +++------------- 5 files changed, 16 insertions(+), 64 deletions(-) mode change 100755 => 100644 rwlaunchpad/test/utest_ro_account.py diff --git a/common/python/rift/mano/dts/__init__.py b/common/python/rift/mano/dts/__init__.py index 20d39787..a56fa049 100644 --- a/common/python/rift/mano/dts/__init__.py +++ b/common/python/rift/mano/dts/__init__.py @@ -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 diff --git a/common/python/rift/mano/dts/subscriber/ns_subscriber.py b/common/python/rift/mano/dts/subscriber/ns_subscriber.py index c16f7716..1078e853 100644 --- a/common/python/rift/mano/dts/subscriber/ns_subscriber.py +++ b/common/python/rift/mano/dts/subscriber/ns_subscriber.py @@ -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" diff --git a/rwlaunchpad/plugins/rwnsm/rift/tasklets/rwnsmtasklet/cloud.py b/rwlaunchpad/plugins/rwnsm/rift/tasklets/rwnsmtasklet/cloud.py index 05be1aa9..6be37611 100644 --- a/rwlaunchpad/plugins/rwnsm/rift/tasklets/rwnsmtasklet/cloud.py +++ b/rwlaunchpad/plugins/rwnsm/rift/tasklets/rwnsmtasklet/cloud.py @@ -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() diff --git a/rwlaunchpad/test/CMakeLists.txt b/rwlaunchpad/test/CMakeLists.txt index 1c18e262..bd1a51ea 100644 --- a/rwlaunchpad/test/CMakeLists.txt +++ b/rwlaunchpad/test/CMakeLists.txt @@ -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 diff --git a/rwlaunchpad/test/utest_ro_account.py b/rwlaunchpad/test/utest_ro_account.py old mode 100755 new mode 100644 index aa485efe..6e480d40 --- a/rwlaunchpad/test/utest_ro_account.py +++ b/rwlaunchpad/test/utest_ro_account.py @@ -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", -- 2.25.1