Rewrite 'exists' to 'get_by_name'
This commit is contained in:
		| @@ -6,14 +6,15 @@ class NullHandler(logging.Handler): | ||||
|         pass | ||||
|  | ||||
|  | ||||
| def exists(yaml, ifname): | ||||
|     """ Return True if the BondEthernet exists """ | ||||
| def get_by_name(yaml, ifname): | ||||
|     """ Return the BondEthernet by name, if it exists. Return None otherwise. """ | ||||
|     try: | ||||
|         if ifname in yaml['bondethernets']: | ||||
|             return True | ||||
|             return yaml['bondethernets'][ifname] | ||||
|     except: | ||||
|         pass | ||||
|     return False | ||||
|     return None | ||||
|  | ||||
|  | ||||
| def bondethernet(args, yaml): | ||||
|     result = True | ||||
| @@ -27,7 +28,7 @@ def bondethernet(args, yaml): | ||||
|     for ifname, iface in yaml['bondethernets'].items(): | ||||
|         logger.debug("bondethernet %s: %s" % (ifname, iface)) | ||||
|         for member in iface['interfaces']: | ||||
|             if not interface.exists(yaml, member): | ||||
|             if not interface.get_by_name(yaml, member): | ||||
|                 msgs.append("bondethernet %s member %s doesn't exist" % (ifname, member)) | ||||
|                 result = False | ||||
|  | ||||
|   | ||||
| @@ -5,6 +5,25 @@ class NullHandler(logging.Handler): | ||||
|     def emit(self, record): | ||||
|         pass | ||||
|  | ||||
| def get_by_name(yaml, ifname): | ||||
|     """ Returns the interface or sub-interface by a given name, or None if it does not exist """ | ||||
|     if '.' in ifname: | ||||
|         ifname, subid = ifname.split('.') | ||||
|         subid = int(subid) | ||||
|         try: | ||||
|             iface = yaml['interfaces'][ifname]['sub-interfaces'][subid] | ||||
|             return iface | ||||
|         except: | ||||
|             return None | ||||
|  | ||||
|     try: | ||||
|         iface = yaml['interfaces'][ifname] | ||||
|         return iface | ||||
|     except: | ||||
|         pass | ||||
|     return None | ||||
|  | ||||
|  | ||||
| def has_sub(yaml, ifname): | ||||
|     """ Returns True if this interface has sub-interfaces """ | ||||
|     if not 'interfaces' in yaml: | ||||
| @@ -16,6 +35,7 @@ def has_sub(yaml, ifname): | ||||
|             return True | ||||
|     return False | ||||
|  | ||||
|  | ||||
| def has_address(yaml, ifname): | ||||
|     """ Returns True if this interface or sub-interface has one or more addresses""" | ||||
|     if not 'interfaces' in yaml: | ||||
| @@ -38,6 +58,7 @@ def has_address(yaml, ifname): | ||||
|         pass | ||||
|     return False | ||||
|  | ||||
|  | ||||
| def is_bond_member(yaml, ifname): | ||||
|     """ Returns True if this interface is a member of a BondEthernet """ | ||||
|     if not 'bondethernets' in yaml: | ||||
| @@ -50,6 +71,7 @@ def is_bond_member(yaml, ifname): | ||||
|             return True | ||||
|     return False | ||||
|  | ||||
|  | ||||
| def has_lcp(yaml, ifname): | ||||
|     """ Returns True if this interface or sub-interface has an LCP""" | ||||
|     if not 'interfaces' in yaml: | ||||
| @@ -72,19 +94,6 @@ def has_lcp(yaml, ifname): | ||||
|         pass | ||||
|     return False | ||||
|  | ||||
| def exists(yaml, ifname): | ||||
|     """ Returns true if ifname exists as a phy or sub-int """ | ||||
|     try: | ||||
|         if ifname in yaml['interfaces']: | ||||
|             return True | ||||
|         if '.' in ifname: | ||||
|             ifname, subid = ifname.split('.') | ||||
|             subid = int(subid) | ||||
|             if subid in yaml['interfaces'][ifname]['sub-interfaces']: | ||||
|                 return True | ||||
|     except: | ||||
|         pass | ||||
|     return False | ||||
|  | ||||
| def valid_encapsulation(yaml, sub_ifname): | ||||
|     try: | ||||
| @@ -117,7 +126,7 @@ def interface(args, yaml): | ||||
|  | ||||
|     for ifname, iface in yaml['interfaces'].items(): | ||||
|         logger.debug("interface %s" % iface) | ||||
|         if ifname.startswith("BondEthernet") and not bondethernet.exists(yaml, ifname): | ||||
|         if ifname.startswith("BondEthernet") and not bondethernet.get_by_name(yaml, ifname): | ||||
|             msgs.append("interface %s does not exist in bondethernets" % ifname) | ||||
|             result = False | ||||
|  | ||||
|   | ||||
| @@ -4,14 +4,14 @@ class NullHandler(logging.Handler): | ||||
|     def emit(self, record): | ||||
|         pass | ||||
|  | ||||
| def exists(yaml, ifname): | ||||
|     """ Returns true if ifname exists as a loopback """ | ||||
| def get_by_name(yaml, ifname): | ||||
|     """ Return the loopback by name, if it exists. Return None otherwise. """ | ||||
|     try: | ||||
|         if ifname in yaml['loopbacks']: | ||||
|             return True | ||||
|             return yaml['loopbacks'][ifname] | ||||
|     except: | ||||
|         pass | ||||
|     return False | ||||
|     return None | ||||
|  | ||||
|  | ||||
| def loopback(args, yaml): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user