def _update_walk(self): logport_keys = [p.getkey() for p,_ in self._lastlogports] lognet_keys = [n.getkey() for n,_ in self._lastlognets] lognet_mapkeys = [LogicalNetworkMap.default_key(n.id) for n,_ in self._lastlognets] self._initialkeys = logport_keys + lognet_keys + lognet_mapkeys self._walkerdict = dict(itertools.chain(((n, self._walk_lognet) for n in lognet_keys), ((p, self._walk_logport) for p in logport_keys))) self.subroutine(self.restart_walk(), False)
def _update_walk(self): logport_keys = [p.getkey() for p, _ in self._lastlogports] lognet_keys = [n.getkey() for n, _ in self._lastlognets] lognet_mapkeys = [ LogicalNetworkMap.default_key(n.id) for n, _ in self._lastlognets ] self._initialkeys = logport_keys + lognet_keys + lognet_mapkeys self._walkerdict = dict( itertools.chain(((n, self._walk_lognet) for n in lognet_keys), ((p, self._walk_logport) for p in logport_keys))) self.subroutine(self.restart_walk(), False)
def _walk_lognet(self, key, value, walk, save): save(key) if value is None: return if self._parent.prepush: # Acquire all logical ports with suppress(WalkKeyNotRetrieved): netmap = walk(LogicalNetworkMap.default_key(value.id)) save(netmap.getkey()) for logport in netmap.ports.dataset(): with suppress(WalkKeyNotRetrieved): p = walk(logport.getkey()) #if p is not None and hasattr(p, 'mac_address') and hasattr(p, 'ip_address'): save(logport.getkey())
def walker(walk, write, timestamp, parameters_dict): for key, parameters in reorder_dict(parameters_dict): try: value = walk(key) except KeyError: pass else: id_ = parameters['id'] lognet = create_new(LogicalNetwork, value, id_) logmap = LogicalNetworkMap.create_instance(id_) logmap.network = lognet.create_reference() try: phynet = walk( PhysicalNetwork.default_key( parameters['physicalnetwork'])) except KeyError: pass else: lognet.physicalnetwork = phynet.create_reference() try: phymap = walk( PhysicalNetworkMap._network.leftkey(phynet)) except KeyError: pass else: create_processor(lognet, logmap, phynet, phymap, walk, write, parameters=parameters) phymap.logicnetworks.dataset().add( lognet.create_weakreference()) write(phymap.getkey(), phymap) write(lognet.getkey(), lognet) write(logmap.getkey(), logmap) try: logicalnetworkset = walk(LogicalNetworkSet.default_key()) except KeyError: pass else: logicalnetworkset.set.dataset().add( lognet.create_weakreference()) write(logicalnetworkset.getkey(), logicalnetworkset)
def _walk_lognet(key, value, walk, save): save(key) if value is None: return try: phynet = walk(value.physicalnetwork.getkey()) except KeyError: pass else: if phynet is not None and getattr(phynet, 'type') == 'vxlan': try: vxlan_endpoint_key = VXLANEndpointSet.default_key(value.id) walk(vxlan_endpoint_key) except KeyError: pass else: save(vxlan_endpoint_key) if prepush: # Acquire all logical ports try: netmap = walk(LogicalNetworkMap.default_key(value.id)) except KeyError: pass else: save(netmap.getkey()) for logport in netmap.ports.dataset(): try: _ = walk(logport.getkey()) except KeyError: pass else: save(logport.getkey()) try: _, (portid, ) = LogicalPort._getIndices( logport.getkey()) portinfokey = LogicalPortVXLANInfo.default_key( portid) _ = walk(portinfokey) except KeyError: pass else: save(portinfokey)
def _walk_lognet(self, key, value, walk, save): save(key) if value is None: return if self._parent.prepush: # Acquire all logical ports try: netmap = walk(LogicalNetworkMap.default_key(value.id)) except KeyError: pass else: save(netmap.getkey()) for logport in netmap.ports.dataset(): try: p = walk(logport.getkey()) except KeyError: pass else: #if p is not None and hasattr(p, 'mac_address') and hasattr(p, 'ip_address'): save(logport.getkey())
def default_logicalnetwork_keys(phynet_id, parameters): return (PhysicalNetwork.default_key(phynet_id), PhysicalNetworkMap.default_key(phynet_id), LogicalNetworkSet.default_key(), LogicalNetworkMap.default_key(parameters['id']))