diff options
Diffstat (limited to 'vicn/resource/icn')
-rw-r--r-- | vicn/resource/icn/central.py | 6 | ||||
-rw-r--r-- | vicn/resource/icn/cicn.py | 7 |
2 files changed, 11 insertions, 2 deletions
diff --git a/vicn/resource/icn/central.py b/vicn/resource/icn/central.py index aa8ea357..fd272bf6 100644 --- a/vicn/resource/icn/central.py +++ b/vicn/resource/icn/central.py @@ -81,6 +81,8 @@ class ICNFaces(Resource): def __delete__(self): raise NotImplementedError + def __after__(self): + return ("VPPInterface",) #-------------------------------------------------------------------------- # Internal methods #-------------------------------------------------------------------------- @@ -102,7 +104,11 @@ class ICNFaces(Resource): map_ = data['map_node_interface'] src = self._state.manager.by_uuid(map_[src_node_uuid]) + if src.has_vpp_child: + src = src.vppinterface dst = self._state.manager.by_uuid(map_[dst_node_uuid]) + if dst.has_vpp_child: + dst = dst.vppinterface log.debug('{} -> {} ({} -> {})'.format(src_node_uuid, dst_node_uuid, src.device_name, dst.device_name)) diff --git a/vicn/resource/icn/cicn.py b/vicn/resource/icn/cicn.py index 8ab36ec9..597692c8 100644 --- a/vicn/resource/icn/cicn.py +++ b/vicn/resource/icn/cicn.py @@ -71,7 +71,7 @@ class CICNForwarder(Forwarder): @inherit_parent def __get__(self): def parse(rv): - if rv.return_value > 0 or 'cicn: not enabled' in rv.stdout: + if rv.return_value > 0 or 'cicn: not enabled' in rv.stdout or "Forwarder : disabled" in rv.stdout: raise ResourceNotFound return BashTask(self.node, CMD_VPP_CICN_GET, lock = self.node.vpp.vppctl_lock, parse=parse) @@ -134,6 +134,9 @@ class CICNForwarder(Forwarder): def _get_cache_size(self): def parse(rv): - return int(rv.stdout) + if not rv.stdout: + return 0 + else: + return int(rv.stdout) return BashTask(self.node, CMD_VPP_CICN_GET_CACHE_SIZE, parse=parse, lock = self.node.vpp.vppctl_lock) |