update from RIFT as of 696b75d2fe9fb046261b08c616f1bcf6c0b54a9b second try
[osm/SO.git] / rwlaunchpad / plugins / rwlaunchpadtasklet / rift / tasklets / rwlaunchpad / datacenters.py
diff --git a/rwlaunchpad/plugins/rwlaunchpadtasklet/rift/tasklets/rwlaunchpad/datacenters.py b/rwlaunchpad/plugins/rwlaunchpadtasklet/rift/tasklets/rwlaunchpad/datacenters.py
deleted file mode 100644 (file)
index 05731a6..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-
-# 
-#   Copyright 2016 RIFT.IO Inc
-#
-#   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 asyncio
-
-from gi.repository import (
-    RwDts,
-    RwLaunchpadYang,
-)
-
-import rift.mano.dts as mano_dts
-import rift.openmano.openmano_client as openmano_client
-import rift.tasklets
-
-
-class DataCenterPublisher(mano_dts.DtsHandler):
-    """
-    This class is reponsible for exposing the data centers associated with an
-    openmano cloud account.
-    """
-
-    XPATH = "D,/rw-launchpad:datacenters"
-
-    def __init__(self, log, dts, loop):
-        """Creates an instance of a DataCenterPublisher
-
-        Arguments:
-            tasklet - the tasklet that this publisher is registered for
-
-        """
-        super().__init__(log, dts, loop)
-
-        self._ro_sub = mano_dts.ROAccountConfigSubscriber(
-                        self.log,
-                        self.dts,
-                        self.loop,
-                        callback=self.on_ro_account_change
-                        )
-        self.ro_accounts = {}
-
-    def on_ro_account_change(self, ro_account, action):
-        if action in  [ RwDts.QueryAction.CREATE, RwDts.QueryAction.UPDATE ]:
-            self.ro_accounts[ro_account.name] = ro_account
-        elif action == RwDts.QueryAction.DELETE and ro_account.name in self.ro_accounts:
-            del self.ro_accounts[ro_account.name]
-
-    @asyncio.coroutine
-    def register(self):
-        """Registers the publisher with DTS"""
-        yield from self._ro_sub.register()
-
-        @asyncio.coroutine
-        def on_prepare(xact_info, action, ks_path, msg):
-            try:
-                # Create a datacenters instance to hold all of the cloud
-                # account data.
-                datacenters = RwLaunchpadYang.DataCenters()
-
-                # Iterate over the known openmano accounts and populate cloud
-                # account instances with the corresponding data center info
-                for _, account in self.ro_accounts.items():
-                    if account.account_type != "openmano":
-                        continue
-
-                    try:
-                        ro_account = RwLaunchpadYang.ROAccount()
-                        ro_account.name = account.name
-
-                        # Create a client for this cloud account to query for
-                        # the associated data centers
-                        client = openmano_client.OpenmanoCliAPI(
-                                self.log,
-                                account.openmano.host,
-                                account.openmano.port,
-                                account.openmano.tenant_id,
-                                )
-
-                        # Populate the cloud account with the data center info
-                        for uuid, name in client.datacenter_list():
-                            ro_account.datacenters.append(
-                                    RwLaunchpadYang.DataCenter(
-                                        uuid=uuid,
-                                        name=name,
-                                        )
-                                    )
-
-                        datacenters.ro_accounts.append(ro_account)
-
-                    except Exception as e:
-                        self.log.exception(e)
-
-                xact_info.respond_xpath(
-                        RwDts.XactRspCode.MORE,
-                        'D,/rw-launchpad:datacenters',
-                        datacenters,
-                        )
-
-                xact_info.respond_xpath(RwDts.XactRspCode.ACK)
-
-            except Exception as e:
-                self.log.exception(e)
-                raise
-
-        handler = rift.tasklets.DTS.RegistrationHandler(on_prepare=on_prepare)
-
-        with self.dts.group_create() as group:
-            self.reg = group.register(
-                    xpath=DataCenterPublisher.XPATH,
-                    handler=handler,
-                    flags=RwDts.Flag.PUBLISHER,
-                    )