コード例 #1
0
ファイル: dhcpserver.py プロジェクト: hubo1016/vlcp
 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)
コード例 #2
0
ファイル: dhcpserver.py プロジェクト: missuzhang/vlcp
 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)
コード例 #3
0
 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())
コード例 #4
0
 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)
コード例 #5
0
 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)
コード例 #6
0
ファイル: arpresponder.py プロジェクト: vtanrun/vlcp
 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())
コード例 #7
0
ファイル: arpresponder.py プロジェクト: hubo1016/vlcp
 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())
コード例 #8
0
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']))