diff --git a/net-dhcp/interface.py b/net-dhcp/interface.py index f7af6fa..dec5c96 100644 --- a/net-dhcp/interface.py +++ b/net-dhcp/interface.py @@ -27,6 +27,8 @@ def GetInterfaces(library): elif library == 'IPR': for itf in iproute.get_links(): interfaces.append(Interface(itf)) + else: + raise NetDhcpError(f'No Interface Library selected') return interfaces def GetInterface(library, ifname): @@ -34,6 +36,8 @@ def GetInterface(library, ifname): return Interface(ndb.interfaces[ifname]) elif library == 'IPR': return Interface(iproute.get_links(ifname=ifname)[0]) + else: + raise NetDhcpError(f'No Interface Library selected') return None class Interface: @@ -52,6 +56,8 @@ class Interface: self.ipr = interface elif isinstance(interface, pyroute2.ndb.objects.interface.Interface): self.ndb = interface + else: + raise NetDhcpError(f'Unknown Interface type') def _initialize_attributes_(self): if self.ndb: @@ -103,6 +109,8 @@ class Interface: route['gateway'] = attrs['RTA_GATEWAY'] if 'RTA_GATEWAY' in attrs else None route['dst_len'] = r['dst_len'] self.routes.append(route) + else: + raise NetDhcpError(f'No Interface Library selected') def SetAddress(self, address): self.address = address @@ -110,18 +118,24 @@ class Interface: self.ndb.set('address', self.address).commit() elif self.ipr: iproute.link('set', index=self.index, address=self.address) + else: + raise NetDhcpError(f'No Interface Library selected') def Up(self): if self.ndb: self.ndb.set('state', 'up').commit() elif self.ipr: iproute.link("set", index=self.index, state="up") + else: + raise NetDhcpError(f'No Interface Library selected') def Down(self): if self.ndb: self.ndb.set('state', 'down').commit() elif self.ipr: iproute.link("set", index=self.index, state="down") + else: + raise NetDhcpError(f'No Interface Library selected') def CreateInterface(library, ifname, kind, peer): try: @@ -131,6 +145,8 @@ def CreateInterface(library, ifname, kind, peer): elif library == 'IPR': iproute.link("add", ifname=ifname, kind=kind, peer=peer) return Interface(iproute.get_links(ifname=ifname)[0]) + else: + raise NetDhcpError(f'No Interface Library selected') return None except Exception as e: return None @@ -141,6 +157,8 @@ def RemoveInterface(library, ifname): ndb.interfaces[ifname].remove().commit() elif library == 'IPR': iproute.link("del", index=iproute.link_lookup(ifname=ifname)[0]) + else: + raise NetDhcpError(f'No Interface Library selected') except Exception as e: return @@ -150,6 +168,8 @@ def AddPort(library, bridge, ifname): ndb.interfaces[bridge].add_port(ifname).commit() elif library == 'IPR': iproute.link("set", index=iproute.link_lookup(ifname=ifname)[0], master=iproute.link_lookup(ifname=bridge)[0]) + else: + raise NetDhcpError(f'No Interface Library selected') except Exception as e: return @@ -159,6 +179,8 @@ def DelPort(library, bridge, ifname): ndb.interfaces[bridge].del_port(ifname).commit() elif library == 'IPR': iproute.link("set", index=iproute.link_lookup(ifname=ifname)[0], master=0) + else: + raise NetDhcpError(f'No Interface Library selected') except Exception as e: return