def setDnsManual(self, config): primaryDns = self._get_param(config, 'primary') secondaryDns = self._get_param(config, 'secondary', '') if (not utils.isIpValid(primaryDns)): raise ValueError("Invalid Primary DNS IP Address: %s" % primaryDns) if (secondaryDns != '' and not utils.isIpValid(secondaryDns)): raise ValueError("Invalid Secondary DNS IP Address: %s" % secondaryDns) self.DnsStatus = 0 self.PrimaryDns = primaryDns self.SecondaryDns = secondaryDns
def setLanAddress(self, config): ipaddress = self._get_param(config, 'ipaddress') netmask = self._get_param(config, 'netmask', '255.255.255.0') url = self._get_param(config, 'url', 'homerouter.cpe') if (not utils.isIpValid(ipaddress)): raise ValueError("Invalid LAN IP Address: %s" % ipaddress) if (not utils.isIpValid(netmask)): raise ValueError("Invalid LAN Netmask: %s" % netmask) self.DhcpIPAddress = ipaddres self.DhcpLanNetmask = netmask self.homeurl = url
def setDhcpOn(self, config): startAddress = self._get_param(config, 'startaddress') endAddress = self._get_param(config, 'endaddress') leaseTime = self._get_param(config, 'leasetime', 86400) if not utils.isIpValid(startAddress): raise ValueError("Invalid DHCP starting IP Address: %s" % startAddress) if not utils.isIpValid(endAddress): raise ValueError("Invalid DHCP ending IP Address: %s" % endAddress) self.DhcpStatus = 1 self.DhcpStartIPAddress = startAddress self.DhcpEndIPAddress = endAddress self.DhcpLeaseTime = leaseTime
def __init__(self, config): #Define properties first to support XML serialisation super(VirtualServer, self).__init__() self.VirtualServerIPName = '' self.VirtualServerStatus = 1 self.VirtualServerRemoteIP = '' self.VirtualServerWanPort = 0 self.VirtualServerWanEndPort = 0 self.VirtualServerLanPort = 0 self.VirtualServerLanEndPort = 0 self.VirtualServerIPAddress = '' self.VirtualServerProtocol = '' if isinstance(config, basestring): self.parseXML(config) else: name = self._get_param(config, 'name') startWanPort = self._get_param(config, 'startwanport') endWanPort = self._get_param(config, 'endwanport', startWanPort) startLanPort = self._get_param(config, 'startlanport') endLanPort = self._get_param(config, 'endlanport', startLanPort) localIp = self._get_param(config, 'localip') protocol = self._get_param(config, 'protocol', 'BOTH') if protocol not in self.PROTOCOLS: raise ValueError('Invalid protocol specified for port forwarding (Virtual Server). Must be one of: [%s]' % ', '.join(self.PROTOCOLS.keys)) protocol = self.PROTOCOLS[protocol] if not utils.isIpValid(localIp): raise ValueError('Invalid ipaddress specified for port fowarding target server') self.VirtualServerIPName = name self.VirtualServerWanPort = startWanPort self.VirtualServerWanEndPort = endWanPort self.VirtualServerLanPort = startLanPort self.VirtualServerLanEndPort = endLanPort self.VirtualServerIPAddress = localIp self.VirtualServerProtocol = protocol
def __init__(self, config): super(StaticHost, self).__init__() self.HostIndex = 0 self.HostHw = '' self.HostIp = '' self.HostEnabled = 1 if isinstance(config, basestring): self.parseXML(config) else: mac = self._get_param(config, self.P_MAC_ADDRESS) ip = self._get_param(config, self.P_IP_ADDRESS) if (not utils.isMacValid(mac)): raise ValueError("Invalid static host MAC address: %s" % mac) if (not utils.isIpValid(ip)): raise ValueError("Invalid static host IP Address: %s" % ip) self.HostHw = mac self.HostIp = ip
def set(self, mode, config=False): self.connectionmode = mode if not config: if mode == self.MODE_AUTO or mode == self.MODE_LAN: return else: config = {} #Set values only if they exist in the supplied config if mode == self.MODE_DYNAMIC or mode == self.MODE_PPPOE_DYNAMIC or mode == self.MODE_AUTO: if self.P_PRIMARY_DNS in config: dns = self._get_param(config, self.P_PRIMARY_DNS) if dns == '': dns = self.NO_DNS if (dns != self.NO_DNS): if (not utils.isIpValid(dns)): raise ValueError( "Invalid IP Address for Dynamic Primary DNS: %s" % dns) self.dynamicprimarydns = dns if dns != self.NO_DNS: self.dynamicsetdnsmanual = 1 else: self.dynamicsetdnsmanual = 0 if self.P_SECONDARY_DNS in config: dns = self._get_param(config, self.P_SECONDARY_DNS) if dns == '': dns = self.NO_DNS if (dns != self.NO_DNS): if (not utils.isIpValid(dns)): raise ValueError( "Invalid IP Address for Dynamic Secondary DNS: %s" % dns) self.dynamicsecondarydns = dns if dns != self.NO_DNS: self.dynamicsetdnsmanual = 1 if self.P_DNS_MANUAL in config: dns = self._get_param(config, self.P_DNS_MANUAL) if dns not in [0, 1]: raise ValueError("%s must be 1 or 0: %s" % (self.P_DNS_MANUAL, dns)) if self.dynamicprimarydns == self.NO_DNS: raise ValueError( "Manual DNS specified, Primary DNS must be set") self.dynamicsetdnsmanual = dns if self.P_MTU in config: self.dynamicipmtu = self._get_param(config, self.P_MTU) if mode == self.MODE_PPPOE or mode == self.MODE_PPPOE_DYNAMIC or mode == self.MODE_AUTO: if self.P_PPOE_PASSWORD in config: val = self._get_param(config, self.P_PPOE_PASSWORD) if len(val) > 63: raise ValueError( 'PPPOE password can contain a maximum of 63 characters, including letters, numbers, and symbols (ASCII characters 32-126).' ) self.pppoepwd = val elif mode != self.MODE_AUTO and self.pppoepwd == '': raise ValueError('PPOE password must be provided') if self.P_PPOE_USERNAME in config: val = self._get_param(config, self.P_PPOE_USERNAME) if len(val) > 63: raise ValueError( 'PPPOE user can contain a maximum of 63 characters, including letters, numbers, and symbols (ASCII characters 32-126).' ) self.pppoeuser = val elif mode != self.MODE_AUTO and self.username == '': raise ValueError('PPOE username must be provided') if self.P_PPOE_AUTH in config: mode = self._get_param(config, self.P_PPOE_AUTH) if not mode in [self.AUTH_AUTO, self.AUTH_PAP, self.AUTH_CHAP]: raise ValueError( 'PPOE auth mode must be one of: 0 (AUTO), 1 (PAP), 2 (CHAP)' ) self.pppoeauth = self._get_param(config, self.P_PPOE_AUTH) if self.P_MTU in config: self.pppoemtu = self._get_param(config, self.P_MTU) if mode == self.MODE_STATIC: if self.P_STATIC_IP_ADDRESS in config: ip = self._get_param(config, self.P_STATIC_IP_ADDRESS) if (not utils.isIpValid(ip)): raise ValueError("Invalid IP Address: %s" % ip) self.ipaddress = ip self.netmask = '255.255.255.0' else: raise ValueError('%s must be provided' % self.P_STATIC_IP_ADDRESS) if self.P_STATIC_NETMASK in config: self.netmask = self._get_param(config, self.P_STATIC_NETMASK) if self.P_STATIC_GATEWAY in config: self.gateway = self._get_param(config, self.P_STATIC_GATEWAY) else: if self.gateway == '': raise ValueError('%s must be provided' % self.P_STATIC_GATEWAY) if self.P_MTU in config: self.staticipmtu = self._get_param(config, self.P_MTU) if self.P_STATIC_PRIMARY_DNS in config: dns = self._get_param(config, self.P_STATIC_PRIMARY_DNS) if (not utils.isIpValid(dns)): raise ValueError("Invalid IP Address for Primary DNS: %s" % dns) self.primarydns = dns if self.P_STATIC_SECONDARY_DNS in config: dns = self._get_param(config, self.P_STATIC_SECONDARY_DNS) if (not utils.isIpValid(dns)): raise ValueError( "Invalid IP Address for Secondary DNS: %s" % dns) self.secondarydns = dns if self.P_MAX_IDLE in config: self.maxidletime = self._get_param(config, self.P_MAX_IDLE) if self.P_DIAL_MODE in config: mode = self._get_param(config, self.P_DIAL_MODE) if not mode in [self.DIAL_AUTO, self.DIAL_ON_DEMAND]: raise ValueError( 'PPOE dial up mode must be one of: 0 (AUTO), 1 (On Demand)' ) self.dialmode = mode
def set(self, mode, config=False): self.connectionmode = mode if not config: if mode == self.MODE_AUTO or mode == self.MODE_LAN: return else: config = {} # Set values only if they exist in the supplied config if mode == self.MODE_DYNAMIC or mode == self.MODE_PPPOE_DYNAMIC or mode == self.MODE_AUTO: if 'primarydns' in config: dns = self._get_param(config, 'primarydns') if dns == '': dns = self.NO_DNS if (dns != self.NO_DNS): if (not utils.isIpValid(dns)): raise ValueError( "Invalid IP Address for Dynamic Primary DNS: %s" % dns) self.dynamicprimarydns = dns if dns != self.NO_DNS: self.dynamicsetdnsmanual = 1 else: self.dynamicsetdnsmanual = 0 if 'secondarydns' in config: dns = self._get_param(config, 'secondarydns') if dns == '': dns = self.NO_DNS if (dns != self.NO_DNS): if (not utils.isIpValid(dns)): raise ValueError( "Invalid IP Address for Dynamic Secondary DNS: %s" % dns) self.dynamicsecondarydns = dns if dns != self.NO_DNS: self.dynamicsetdnsmanual = 1 if 'dnsmanual' in config: dns = self._get_param(config, 'dnsmanual') if dns not in [0, 1]: raise ValueError("dnsmanual must be 1 or 0: %s" % dns) if self.dynamicprimarydns == self.NO_DNS: raise ValueError( "Manual DNS specified, Primary DNS must be set") self.dynamicsetdnsmanual = dns if 'mtu' in config: self.dynamicipmtu = self._get_param(config, 'mtu') if mode == self.MODE_PPPOE or mode == self.MODE_PPPOE_DYNAMIC or mode == self.MODE_AUTO: if 'password' in config: val = self._get_param(config, 'password') if len(val) > 63: raise ValueError( 'PPPOE password can contain a maximum of 63 characters, including letters, numbers, and symbols (ASCII characters 32-126).' ) self.pppoepwd = val elif mode != self.MODE_AUTO and self.pppoepwd == '': raise ValueError('PPOE password must be provided') if 'username' in config: val = self._get_param(config, 'username') if len(val) > 63: raise ValueError( 'PPPOE user can contain a maximum of 63 characters, including letters, numbers, and symbols (ASCII characters 32-126).' ) self.pppoeuser = val elif mode != self.MODE_AUTO and self.username == '': raise ValueError('PPOE username must be provided') if 'authmode' in config: mode = self._get_param(config, 'authmode') if not mode in [self.AUTH_AUTO, self.AUTH_PAP, self.AUTH_CHAP]: raise ValueError( 'PPOE auth mode must be one of: 0 (AUTO), 1 (PAP), 2 (CHAP)' ) self.pppoeauth = self._get_param(config, 'authmode') if 'mtu' in config: self.pppoemtu = self._get_param(config, 'mtu') if mode == self.MODE_STATIC: if 'ipaddress' in config: ip = self._get_param(config, 'ipaddress') if (not utils.isIpValid(ip)): raise ValueError("Invalid IP Address: %s" % ip) self.ipaddress = ip self.netmask = '255.255.255.0' else: raise ValueError('ipaddress must be provided') if 'netmask' in config: self.netmask = self._get_param(config, 'netmask') if 'gateway' in config: self.gateway = self._get_param(config, 'gateway') else: if self.gateway == '': raise ValueError('gateway must be provided') if 'mtu' in config: self.staticipmtu = self._get_param(config, 'mtu') if 'primarydns' in config: dns = self._get_param(config, 'primarydns') if (not utils.isIpValid(dns)): raise ValueError("Invalid IP Address for Primary DNS: %s" % dns) self.primarydns = dns if 'secondarydns' in config: dns = self._get_param(config, 'secondarydns') if (not utils.isIpValid(dns)): raise ValueError( "Invalid IP Address for Secondary DNS: %s" % dns) self.secondarydns = dns if 'maxidletime' in config: self.maxidletime = self._get_param(config, 'maxidletime') if 'dialmode' in config: self.dialmode = self._get_param(config, 'dialmode')