projects
/
osm
/
SO.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
update from RIFT as of 696b75d2fe9fb046261b08c616f1bcf6c0b54a9b second try
[osm/SO.git]
/
rwlaunchpad
/
plugins
/
rwvns
/
rift
/
topmgr
/
rwtopmgr.py
diff --git
a/rwlaunchpad/plugins/rwvns/rift/topmgr/rwtopmgr.py
b/rwlaunchpad/plugins/rwvns/rift/topmgr/rwtopmgr.py
index
af4b75b
..
f7e0e61
100755
(executable)
--- a/
rwlaunchpad/plugins/rwvns/rift/topmgr/rwtopmgr.py
+++ b/
rwlaunchpad/plugins/rwvns/rift/topmgr/rwtopmgr.py
@@
-1,4
+1,3
@@
-
#
# Copyright 2016 RIFT.IO Inc
#
#
# Copyright 2016 RIFT.IO Inc
#
@@
-16,8
+15,8
@@
#
import asyncio
#
import asyncio
-
import gi
import gi
+
gi.require_version('RwDts', '1.0')
gi.require_version('RwcalYang', '1.0')
gi.require_version('RwTypes', '1.0')
gi.require_version('RwDts', '1.0')
gi.require_version('RwcalYang', '1.0')
gi.require_version('RwTypes', '1.0')
@@
-35,16
+34,20
@@
from gi.repository import (
from gi.repository.RwTypes import RwStatus
import rift.tasklets
from gi.repository.RwTypes import RwStatus
import rift.tasklets
+gi.require_version('RwKeyspec', '1.0')
+from gi.repository.RwKeyspec import quoted_key
+
class NwtopDiscoveryDtsHandler(object):
""" Handles DTS interactions for the Discovered Topology registration """
DISC_XPATH = "D,/nd:network"
class NwtopDiscoveryDtsHandler(object):
""" Handles DTS interactions for the Discovered Topology registration """
DISC_XPATH = "D,/nd:network"
- def __init__(self, dts, log, loop,
acctstore
, nwdatastore):
+ def __init__(self, dts, log, loop,
project, acctmgr
, nwdatastore):
self._dts = dts
self._log = log
self._loop = loop
self._dts = dts
self._log = log
self._loop = loop
- self._acctstore = acctstore
+ self._project = project
+ self._acctmgr = acctmgr
self._nwdatastore = nwdatastore
self._regh = None
self._nwdatastore = nwdatastore
self._regh = None
@@
-54,6
+57,13
@@
class NwtopDiscoveryDtsHandler(object):
""" The registration handle associated with this Handler"""
return self._regh
""" The registration handle associated with this Handler"""
return self._regh
+ def deregister(self):
+ self._log.debug("De-register Topology discovery handler for project {}".
+ format(self._project.name))
+ if self._regh:
+ self._regh.deregister()
+ self._regh = None
+
@asyncio.coroutine
def register(self):
""" Register for the Discovered Topology path """
@asyncio.coroutine
def register(self):
""" Register for the Discovered Topology path """
@@
-93,7
+103,7
@@
class NwtopDiscoveryDtsHandler(object):
nw.server_provided = False
nw.network_id = name + ':' + nw.network_id
self._log.debug("...Network id %s", nw.network_id)
nw.server_provided = False
nw.network_id = name + ':' + nw.network_id
self._log.debug("...Network id %s", nw.network_id)
- nw_xpath = ("D,/nd:network[network-id=
\'{}\']").format(nw.network_id
)
+ nw_xpath = ("D,/nd:network[network-id=
{}]").format(quoted_key(nw.network_id)
)
xact_info.respond_xpath(rwdts.XactRspCode.MORE,
nw_xpath, nw)
xact_info.respond_xpath(rwdts.XactRspCode.MORE,
nw_xpath, nw)
@@
-108,7
+118,7
@@
class NwtopDiscoveryDtsHandler(object):
on_prepare=on_prepare,
)
on_prepare=on_prepare,
)
- yield from self._dts.register(
+
self._regh =
yield from self._dts.register(
NwtopDiscoveryDtsHandler.DISC_XPATH,
flags=rwdts.Flag.PUBLISHER,
handler=handler
NwtopDiscoveryDtsHandler.DISC_XPATH,
flags=rwdts.Flag.PUBLISHER,
handler=handler
@@
-119,11
+129,12
@@
class NwtopStaticDtsHandler(object):
""" Handles DTS interactions for the Static Topology registration """
STATIC_XPATH = "C,/nd:network"
""" Handles DTS interactions for the Static Topology registration """
STATIC_XPATH = "C,/nd:network"
- def __init__(self, dts, log, loop,
acctstore
, nwdatastore):
+ def __init__(self, dts, log, loop,
project, acctmgr
, nwdatastore):
self._dts = dts
self._log = log
self._loop = loop
self._dts = dts
self._log = log
self._loop = loop
- self._acctstore = acctstore
+ self._project = project
+ self._acctmgr = acctmgr
self._regh = None
self.pending = {}
self._regh = None
self.pending = {}
@@
-133,8
+144,14
@@
class NwtopStaticDtsHandler(object):
def regh(self):
""" The registration handle associated with this Handler"""
return self._regh
def regh(self):
""" The registration handle associated with this Handler"""
return self._regh
-
-
+
+ def deregister(self):
+ self._log.debug("De-register Topology static handler for project {}".
+ format(self._project.name))
+ if self._regh:
+ self._regh.deregister()
+ self._regh = None
+
@asyncio.coroutine
def register(self):
""" Register for the Static Topology path """
@asyncio.coroutine
def register(self):
""" Register for the Static Topology path """
@@
-173,8
+190,6
@@
class NwtopStaticDtsHandler(object):
on_apply=apply_nw_config)
with self._dts.appconf_group_create(handler=handler) as acg:
on_apply=apply_nw_config)
with self._dts.appconf_group_create(handler=handler) as acg:
- acg.register(xpath = NwtopStaticDtsHandler.STATIC_XPATH,
- flags = rwdts.Flag.SUBSCRIBER,
- on_prepare=prepare_nw_cfg)
-
-
+ self._regh = acg.register(xpath = NwtopStaticDtsHandler.STATIC_XPATH,
+ flags = rwdts.Flag.SUBSCRIBER,
+ on_prepare=prepare_nw_cfg)