More changes for projects support
Signed-off-by: Philip Joseph <philip.joseph@riftio.com>
diff --git a/common/python/rift/mano/sdn/config.py b/common/python/rift/mano/sdn/config.py
index 20b17cc..1ae65a5 100644
--- a/common/python/rift/mano/sdn/config.py
+++ b/common/python/rift/mano/sdn/config.py
@@ -78,9 +78,10 @@
class SDNAccountConfigSubscriber(object):
XPATH = "C,/rw-sdn:sdn/rw-sdn:account"
- def __init__(self, dts, log, rwlog_hdl, sdn_callbacks, acctstore):
+ def __init__(self, dts, log, project, rwlog_hdl, sdn_callbacks, acctstore):
self._dts = dts
self._log = log
+ self._project = project
self._rwlog_hdl = rwlog_hdl
self._reg = None
@@ -205,8 +206,9 @@
xact_info.respond_xpath(rwdts.XactRspCode.ACK)
+ xpath = self._project.add_project(SDNAccountConfigSubscriber.XPATH)
self._log.debug("Registering for SDN Account config using xpath: %s",
- SDNAccountConfigSubscriber.XPATH,
+ xpath,
)
acg_handler = rift.tasklets.AppConfGroup.Handler(
@@ -215,7 +217,7 @@
with self._dts.appconf_group_create(acg_handler) as acg:
self._reg = acg.register(
- xpath=SDNAccountConfigSubscriber.XPATH,
+ xpath=xpath,
flags=rwdts.Flag.SUBSCRIBER | rwdts.Flag.DELTA_READY | rwdts.Flag.CACHE,
on_prepare=on_prepare,
)
diff --git a/common/python/rift/mano/sdn/operdata.py b/common/python/rift/mano/sdn/operdata.py
index 094d804..732c600 100644
--- a/common/python/rift/mano/sdn/operdata.py
+++ b/common/python/rift/mano/sdn/operdata.py
@@ -29,10 +29,11 @@
class SDNAccountDtsOperdataHandler(object):
- def __init__(self, dts, log, loop):
+ def __init__(self, dts, log, loop, project):
self._dts = dts
self._log = log
self._loop = loop
+ self._project = project
self.sdn_accounts = {}
self._oper = None
@@ -63,9 +64,10 @@
def _register_show_status(self):
def get_xpath(sdn_name=None):
- return "D,/rw-sdn:sdn/account{}/connection-status".format(
- "[name='%s']" % sdn_name if sdn_name is not None else ''
- )
+ return self._project.add_project("D,/rw-sdn:sdn/account{}/connection-status".
+ format(
+ "[name='%s']" % sdn_name
+ if sdn_name is not None else ''))
@asyncio.coroutine
def on_prepare(xact_info, action, ks_path, msg):
diff --git a/common/python/rift/mano/utils/project.py b/common/python/rift/mano/utils/project.py
index 9157f89..96d1de5 100644
--- a/common/python/rift/mano/utils/project.py
+++ b/common/python/rift/mano/utils/project.py
@@ -651,12 +651,14 @@
except Exception as e:
self._log.exception("Project {} create for {} failed: {}".
format(name, self._get_tasklet_name(), e))
+ raise e
try:
yield from self._get_project(name).register()
except Exception as e:
self._log.exception("Project {} register for tasklet {} failed: {}".
format(name, self._get_tasklet_name(), e))
+ raise e
@asyncio.coroutine
def on_delete_prepare(self, name):