Example #1
0
 def route_add(self, node, nh, mac):
     log.info('Adding route for %s' % node)
     nh = nh if nh else None
     mac = mac if mac else None
     if nh is None and mac is None:
         log.error('No next hop or dev')
         return [False, 'No next hop or dev']
     if not node:
         log.error('Node is empty')
         return [False, 'Node is empty']
     if node == 'default':
         node = '0.0.0.0/0'
     if not UO.validate_node(node):
         log.error('Node %s is invalid' % node)
         return [False, 'Node %s is invalid' % node]
     if UO.check_node_existance(node):
         log.error('Node %s is duplicated' % node)
         return [False, 'Node %s is duplicated' % node]
     if mac is not None:
         dev = UO.get_name_by_mac(mac)
         if dev is None:
             log.error('Device %s is invalid' % mac)
             return [False, 'Device %s is invalid' % mac]
     else:
         dev = None
     if nh is not None and not UO.validate_ip(nh + '/32'):
         log.error('Next hop %s is invalid' % nh)
         return [False, 'Next hop %s is invalid' % nh]
     if not UO.add_route(node, nh, mac):
         log.error('Add route for %s error' % node)
         return [False, 'Add route for %s error' % node]
     if node == '0.0.0.0/0':
         UO.write_default_route_config(nh)
     Config.add_route(node, nh, mac)
     return [True, '']
Example #2
0
 def route_add(self, node, nh, mac):
     log.info('Adding route for %s' % node)
     nh = nh if nh else None
     mac = mac if mac else None
     if nh is None and mac is None:
         log.error('No next hop or dev')
         return [False, 'No next hop or dev']
     if not node:
         log.error('Node is empty')
         return [False, 'Node is empty']
     if node == 'default':
         node = '0.0.0.0/0'
     if not UO.validate_node(node):
         log.error('Node %s is invalid' % node)
         return [False, 'Node %s is invalid' % node]
     if UO.check_node_existance(node):
         log.error('Node %s is duplicated' % node)
         return [False, 'Node %s is duplicated' % node]
     if mac is not None:
         dev = UO.get_name_by_mac(mac)
         if dev is None:
             log.error('Device %s is invalid' % mac)
             return [False, 'Device %s is invalid' % mac]
     else:
         dev = None
     if nh is not None and not UO.validate_ip(nh + '/32'):
         log.error('Next hop %s is invalid' % nh)
         return [False, 'Next hop %s is invalid' % nh]
     if not UO.add_route(node, nh, mac):
         log.error('Add route for %s error' % node)
         return [False, 'Add route for %s error' % node]
     if node == '0.0.0.0/0':
         UO.write_default_route_config(nh)
     Config.add_route(node, nh, mac)
     return [True, '']
Example #3
0
 def route_del(self, node):
     log.info('Deleting route for %s' % node)
     if not node:
         log.error('Node is empty')
         return [False, 'Node is empty']
     if node == 'default':
         node = '0.0.0.0/0'
     if not UO.validate_node(node):
         log.error('Node %s is invalid' % node)
         return [False, 'Node %s is invalid' % node]
     if not UO.check_node_existance(node):
         log.error('Node %s not exist' % node)
         return [False, 'Node %s not exist' % node]
     if not UO.del_route(node):
         log.error('Delete route error')
         return [False, 'Delete route error']
     if node == '0.0.0.0/0':
         UO.remove_default_route_config()
     Config.del_route(node)
     return [True, '']
Example #4
0
 def route_del(self, node):
     log.info('Deleting route for %s' % node)
     if not node:
         log.error('Node is empty')
         return [False, 'Node is empty']
     if node == 'default':
         node = '0.0.0.0/0'
     if not UO.validate_node(node):
         log.error('Node %s is invalid' % node)
         return [False, 'Node %s is invalid' % node]
     if not UO.check_node_existance(node):
         log.error('Node %s not exist' % node)
         return [False, 'Node %s not exist' % node]
     if not UO.del_route(node):
         log.error('Delete route error')
         return [False, 'Delete route error']
     if node == '0.0.0.0/0':
         UO.remove_default_route_config()
     Config.del_route(node)
     return [True, '']