def setstationmode(netconfigdata=None): writedatedlogmsg(networklog, 'Setting station mode. ', 3, networkloglevel) from time import sleep if not netconfigdata: writedatedlogmsg(networklog, 'Retrieving unfound netconfig data. ', 3, networkloglevel) try: netconfigdata = readonedbrow(systemdatadatabase, 'netconfig')[0] except: writedatedlogmsg(networklog, 'Error reading netconfig data. ', 0, networkloglevel) else: writedatedlogmsg(networklog, 'Read netconfig data. ', 4, networkloglevel) killapservices() if netconfigdata['addtype'] == 'static': writedatedlogmsg(networklog, 'Configuring static address. ', 3, networkloglevel) subprocess.call(['cp', '/usr/lib/iicontrollibs/misc/interfaces/interfaces.sta.static', '/etc/network/interfaces']) # update IP from netconfig writedatedlogmsg(networklog, 'Updating netconfig with ip ' + netconfigdata['address'], 3, networkloglevel) replaceifaceparameters('/etc/network/interfaces', '/etc/network/interfaces', 'wlan0', ['address', 'gateway'], [netconfigdata['address'], netconfigdata['gateway']]) elif netconfigdata['addtype'] == 'dhcp': writedatedlogmsg(networklog, 'Configuring dhcp. ', 3, networkloglevel) subprocess.call(['cp', '/usr/lib/iicontrollibs/misc/interfaces/interfaces.sta.dhcp', '/etc/network/interfaces']) writedatedlogmsg(networklog, 'Resetting wlan. ', 3, networkloglevel) resetwlan() sleep(1) resetwlan()
def runconfig(onboot=False): import subprocess try: netconfigdata = readonedbrow(systemdatadatabase, 'netconfig')[0] except: writedatedlogmsg(networklog, 'Error reading netconfig data. ', 0, networkloglevel) else: writedatedlogmsg(networklog, 'Successfully read netconfig data', 3, networkloglevel) if netconfigdata['enabled']: writedatedlogmsg(networklog, 'Netconfig is enabled', 3, networkloglevel) # This will grab the specified SSID and the credentials and update # the wpa_supplicant file updatewpasupplicant() # Copy the correct interfaces file if netconfigdata['mode'] == 'station': setstationmode(netconfigdata) elif netconfigdata['mode'] in ['ap', 'tempap']: setapmode() # Unfortunately, we currently need to reboot prior to setting # ap mode to get it to stick unless we are doing it at bootup if not onboot: writedatedlogmsg(networklog, 'Rebooting after set ap mode', 0, networkloglevel) writedatedlogmsg(systemstatuslog, 'Rebooting after set ap mode ', 0, systemstatusloglevel) # subprocess.call(['reboot']) else: writedatedlogmsg(networklog, 'Netconfig is disabled', 3, networkloglevel)
def setstationmode(netconfigdata=None): writedatedlogmsg(networklog, 'Setting station mode. ', 3, networkloglevel) from time import sleep if not netconfigdata: writedatedlogmsg(networklog, 'Retrieving unfound netconfig data. ', 3, networkloglevel) try: netconfigdata = readonedbrow(systemdatadatabase, 'netconfig')[0] except: writedatedlogmsg(networklog, 'Error reading netconfig data. ', 0, networkloglevel) else: writedatedlogmsg(networklog, 'Read netconfig data. ', 4, networkloglevel) killapservices() if netconfigdata['addtype'] == 'static': writedatedlogmsg(networklog, 'Configuring static address. ', 3, networkloglevel) subprocess.call([ 'cp', '/usr/lib/iicontrollibs/misc/interfaces/interfaces.sta.static', '/etc/network/interfaces' ]) # update IP from netconfig writedatedlogmsg( networklog, 'Updating netconfig with ip ' + netconfigdata['address'], 3, networkloglevel) replaceifaceparameters( '/etc/network/interfaces', '/etc/network/interfaces', 'wlan0', ['address', 'gateway'], [netconfigdata['address'], netconfigdata['gateway']]) elif netconfigdata['addtype'] == 'dhcp': writedatedlogmsg(networklog, 'Configuring dhcp. ', 3, networkloglevel) subprocess.call([ 'cp', '/usr/lib/iicontrollibs/misc/interfaces/interfaces.sta.dhcp', '/etc/network/interfaces' ]) writedatedlogmsg(networklog, 'Resetting wlan. ', 3, networkloglevel) resetwlan() sleep(1) resetwlan()
__license__ = "Apache 2.0" __version__ = "1.0" __maintainer__ = "Colin Reese" __email__ = "*****@*****.**" __status__ = "Development" import os,sys,inspect,subprocess top_folder = os.path.split(os.path.realpath(os.path.abspath(os.path.split(inspect.getfile( inspect.currentframe() ))[0])))[0] if top_folder not in sys.path: sys.path.insert(0,top_folder) from cupid.pilib import readonedbrow,systemdatadatabase # Read the config from the database netsettings = readonedbrow(systemdatadatabase,'netconfig')[0] args = sys.argv reboot=False if len(args)>1: print('argument found') arg2 = args[1] print('argument ' + arg2) if args=='reboot': reboot=True def runconfig(reboot): # Copy the correct interfaces file if netsettings['nettype']=='station': print('station mode')
def monitor(port='/dev/ttyAMA0', baudrate=115200, timeout=1, checkstatus=True): import serial import cupid.pilib as pilib from time import mktime, localtime data = [] if checkstatus: systemstatus = pilib.readonedbrow(pilib.controldatabase, 'systemstatus')[0] runhandler = systemstatus['serialhandlerenabled'] checktime = mktime(localtime()) checkfrequency = 15 # seconds if runhandler: pilib.log(pilib.iolog, "Starting monitoring of serial port", 1, pilib.iologlevel) else: pilib.log(pilib.iolog, "Not starting monitoring of serial port. How did I get here?", 1, pilib.iologlevel) else: runhandler = True if runhandler: ser = serial.Serial(port=port, baudrate=baudrate, timeout=timeout) print("Monitoring serial port " + ser.name) else: print('not monitoring serial port ') while runhandler: ch = ser.read(1) if len(ch) == 0: # rec'd nothing print all if len(data) > 0: s = '' for x in data: s += '%s' % x # ord(x) # Here for diagnostics # print '%s [len = %d]' % (s, len(data)) # now process data # print(s) # print(s.split('\n')) try: # print('*************** processing datadict') datadicts, messages = processserialdata(s) # print('ALL MY DATADICTS') # print(datadicts) # print('END OF DICTS') except IOError: print('error processing message') except Exception as ex: template = "An exception of type {0} occured. Arguments:\n{1!r}" message = template.format(type(ex).__name__, ex.args) print message else: for datadict, message in zip(datadicts, messages): if datadict: print("datadict: ") print(datadict) # print("message: ") # print(message) publish = False for k in datadict: # print(k + datadict[k]) if k not in ['nodeid','RX_RSSI']: pass # if 'cmd' in datadict: publish = True if publish: print('publishing message') statusresult = lograwmessages(message) pilib.sizesqlitetable(pilib.motesdatabase, 'readmessages', 1000) statusresult = processremotedata(datadict, message) else: if message: print('message: ') print(message) # except: # print('error processing returned datadict, message:') # print(message) # else: # print("message parse was successful") # print(message) else: # no data, let's see if we should send message try: lastqueuedmessage = pilib.getfirsttimerow(pilib.motesdatabase, 'queuedmessages', 'queuedtime')[0] except IndexError: # no rows # print('we have an error getting a queued message. Could be just no message.') pass else: # send queued message print(lastqueuedmessage) try: print('going to send message:') print(lastqueuedmessage['message']) ser.write(lastqueuedmessage['message'].encode()) # sendserialmessage(ser, lastqueuedmessage['message']) except: print('oops') else: print('that worked out. remove message from queue') conditionnames = ['queuedtime', 'message'] conditionvalues = [lastqueuedmessage['queuedtime'], lastqueuedmessage['message']] delquery = pilib.makedeletesinglevaluequery('queuedmessages', {'conditionnames':conditionnames, 'conditionvalues':conditionvalues}) pilib.sqlitequery(pilib.motesdatabase, delquery) print('move to sent messages') pilib.sqliteinsertsingle(pilib.motesdatabase, 'sentmessages', [lastqueuedmessage['queuedtime'], pilib.gettimestring(), lastqueuedmessage['message']]) data = [] else: data.append(ch) if checkstatus: thetime = mktime(localtime()) if thetime-checktime > checkfrequency: print('checking control status') systemstatus = pilib.readonedbrow(pilib.controldatabase, 'systemstatus')[0] runserialhandler = systemstatus['serialhandlerenabled'] if runserialhandler: checktime = thetime pilib.log(pilib.iolog, 'Continuing serialhandler based on status check',3,pilib.iologlevel) else: runhandler=False pilib.log(pilib.iolog, 'Aborting serialhandler based on status check',3,pilib.iologlevel)
def updateifacestatus(): import resource.pyiface.iface as pyiface from cupid.pilib import sqlitemultquery, setsinglevalue, systemdatadatabase, readonedbrow, gettimestring import subprocess netconfigdata = readonedbrow(systemdatadatabase, 'netconfig')[0] netstatus = readonedbrow(systemdatadatabase, 'netstatus')[0] # Networking check querylist = [] table = 'netifaces' querylist.append('drop table if exists ' + table) querylist.append( "create table " + table + " (name text, hwaddr text, address text, ifaceindex integer, bcast text, mask text, flags text)") pilib.writedatedlogmsg(pilib.networklog, 'Reading ifaces with pyiface. ', 4, pilib.networkloglevel) allIfaces = pyiface.getIfaces() pilib.writedatedlogmsg(pilib.networklog, 'Got ifaces data. ', 5, pilib.networkloglevel) runquery=False for iface in allIfaces: runquery=True querylist.append( "insert into " + table + " values ( \'" + iface.name + "\' , \'" + iface.hwaddr + "\' , \'" + iface._Interface__sockaddrToStr( iface.addr) + "\' , \'" + str(iface.index) + "\' , \'" + iface._Interface__sockaddrToStr( iface.broadaddr) + "\' , \'" + iface._Interface__sockaddrToStr( iface.netmask) + "\' , \'" + pyiface.flagsToStr(iface.flags) + "\')") if runquery: pilib.writedatedlogmsg(pilib.networklog, 'Sending ifaces query. ', 5, pilib.networkloglevel) sqlitemultquery(systemdatadatabase, querylist) else: pilib.writedatedlogmsg(pilib.networklog, 'Empty ifaces query. ', 5, pilib.networkloglevel) pilib.writedatedlogmsg(pilib.networklog, 'Completed pyiface ifaces. ', 4, pilib.networkloglevel) # Interfaces check # WAN check pilib.writedatedlogmsg(pilib.networklog, 'Checking pingtimes. ', 4, pilib.networkloglevel) okping = float(netconfigdata['pingthreshold']) from netfun import runping pingresults = runping('8.8.8.8') # pingresults = [20, 20, 20] pingresult = sum(pingresults)/float(len(pingresults)) if pingresult == 0: wanaccess = 0 latency = 0 else: if pingresult < okping: wanaccess = 1 else: wanaccess = 0 latency = pingresult querylist.append(pilib.makesinglevaluequery('netstatus', 'latency', str(latency))) pilib.writedatedlogmsg(pilib.networklog, 'Done checking pings. ', 4, pilib.networkloglevel) # Check supplicant status, set on/offtime if necessary. wpastatusdict = netconfig.getwpaclientstatus() try: if wpastatusdict['wpa_state'] == 'COMPLETED': wpaconnected = 1 if netstatus['connected'] == 0 or netstatus['onlinetime'] == '': pilib.writedatedlogmsg(pilib.networklog, 'setting online time', 2, pilib.networkloglevel) querylist.append(pilib.makesinglevaluequery('netstatus', 'onlinetime', gettimestring())) querylist.append(pilib.makesinglevaluequery('netstatus', 'offlinetime', '')) else: wpaconnected = 0 except KeyError: wpaconnected = 0 if wpaconnected == 0: if netstatus['connected'] == 1 or netstatus['offlinetime'] == '': if netconfigdata['mode'] == "station": pilib.writedatedlogmsg(pilib.networklog, 'setting offline time', 2, pilib.networkloglevel) querylist.append(pilib.makesinglevaluequery('netstatus', 'offlinetime', gettimestring())) querylist.append(pilib.makesinglevaluequery('netstatus', 'onlinetime', '')) else: pilib.writedatedlogmsg(pilib.networklog, 'setting online time', 2, pilib.networkloglevel) querylist.append(pilib.makesinglevaluequery('netstatus', 'offlinetime', '')) # Check dhcp server status pilib.writedatedlogmsg(pilib.networklog, 'Checking dhcp server status ', 4, pilib.networkloglevel) try: result = subprocess.Popen(['service', 'isc-dhcp-server', 'status'], stdout=subprocess.PIPE) except: dhcpstatus = 0 pilib.writedatedlogmsg(pilib.networklog, 'Error in reading dhcp server status.', 1, pilib.networkloglevel) else: for line in result.stdout: if line.find('not running') > 0: dhcpstatus = 0 elif line.find('is running') > 0: dhcpstatus = 1 else: dhcpstatus = '\?' pilib.writedatedlogmsg(pilib.networklog, 'Done checking dhcp server status. ', 4, pilib.networkloglevel) pilib.writedatedlogmsg(pilib.networklog, 'Updating netstatus. ', 4, pilib.networkloglevel) wpastatusdict['connected'] = wpaconnected try: wpastatusdict['dhcpstatus'] = dhcpstatus except: wpastatusdict['dhcpstatus'] = 0 dhcpstatus = 0 try: mode = wpastatusdict['mode'] except KeyError: mode = 'none' try: ssid = wpastatusdict['ssid'] except KeyError: ssid = 'none' try: address = wpastatusdict['ip_address'] except KeyError: address = 'none' # print('myaddress is ' + address) querylist.append(pilib.makesinglevaluequery('netstatus', 'dhcpstatus', dhcpstatus)) querylist.append(pilib.makesinglevaluequery('netstatus', 'connected', str(wpaconnected))) if netconfigdata['mode'] in ['ap','tempap']: pilib.writedatedlogmsg(pilib.networklog, 'Updating netstatus to AP mode', 1, pilib.networkloglevel) querylist.append(pilib.makesinglevaluequery('netstatus', 'mode', netconfigdata['mode'])) querylist.append(pilib.makesinglevaluequery('netstatus', 'SSID', 'cupidwifi')) else: pilib.writedatedlogmsg(pilib.networklog, 'Updating netstatus to station mode', 1, pilib.networkloglevel) querylist.append(pilib.makesinglevaluequery('netstatus', 'mode', str(mode))) querylist.append(pilib.makesinglevaluequery('netstatus', 'SSID', str(ssid))) querylist.append(pilib.makesinglevaluequery('netstatus', 'WANaccess', str(wanaccess))) querylist.append(pilib.makesinglevaluequery('netstatus', 'address', str(address))) pilib.writedatedlogmsg(pilib.networklog, 'Running netstatus query. ', 4, pilib.networkloglevel) pilib.sqlitemultquery(pilib.systemdatadatabase, querylist) pilib.writedatedlogmsg(pilib.networklog, 'Completed netstatus query. ', 4, pilib.networkloglevel) pilib.writedatedlogmsg(pilib.networklog, 'Completed netstatus update. ', 4, pilib.networkloglevel) return wpastatusdict
def monitor(port='/dev/ttyAMA0', baudrate=115200, timeout=1, checkstatus=True): import serial import cupid.pilib as pilib from time import mktime, localtime from time import sleep data = [] stringmessage = '' rawseriallog = True if rawseriallog: print('serial logging is enabled.') logfile = open(pilib.seriallog, 'a', 1) logfile.write('\n' + pilib.gettimestring() + ": Initializing serial log\n") if checkstatus: systemstatus = pilib.readonedbrow(pilib.controldatabase, 'systemstatus')[0] runhandler = systemstatus['serialhandlerenabled'] checktime = mktime(localtime()) checkfrequency = 15 # seconds if runhandler: pilib.log(pilib.iolog, "Starting monitoring of serial port", 1, pilib.iologlevel) else: pilib.log(pilib.iolog, "Not starting monitoring of serial port. How did I get here?", 1, pilib.iologlevel) else: runhandler = True if runhandler: ser = serial.Serial(port=port, baudrate=baudrate, timeout=timeout) print("Monitoring serial port " + ser.name) else: print('not monitoring serial port ') while runhandler: # This reading has to happen faster than the messages come, or they will all be stuck together try: ch = ser.read(1) # if ch == '\x0D': # print('carriage return') # elif ch == '\x00': # print('null character') if len(ch) == 0 or ch == '\x0D': # print('LEN ZERO OR END CHAR: PROCESS TIME') # rec'd nothing print all if len(data) > 0: s = '' for x in data: s += '%s' % x # ord(x) # Here for diagnostics # print '%s [len = %d]' % (s, len(data)) # now process data # print(s) # print(s.split('\n')) try: # print('*************** processing datadict') datadicts, messages = processserialdata(s) # print('ALL MY DATADICTS') # print(datadicts) # print('END OF DICTS') except IOError: print('error processing message') except Exception as ex: template = "An exception of type {0} occured. Arguments:\n{1!r}" message = template.format(type(ex).__name__, ex.args) print message else: for datadict, message in zip(datadicts, messages): if datadict: # print("datadict: ") # print(datadict) # print("message: ") # print(message) publish = False for k in datadict: # print(k + datadict[k]) if k not in ['nodeid','RX_RSSI']: pass # if 'cmd' in datadict: publish = True if publish: # print('publishing message') statusresult = lograwmessages(message) pilib.sizesqlitetable(pilib.motesdatabase, 'readmessages', 1000) statusresult = processremotedata(datadict, message) else: if message: print('message: ') print(message) # Log message if rawseriallog: try: logfile.write(pilib.gettimestring() + ' : ' + message + '\n') except Exception as e: template = "An exception of type {0} occured. Arguments:\n{1!r}" message = template.format(type(ex).__name__, ex.args) print message else: # no data, let's see if we should send message # print('no data, try sending') pass pilib.log(pilib.seriallog, "Attempting send routine", 1, 1) # See if there are messages to send. # try: runsendhandler(ser) # except Exception as e: # pilib.log(pilib.seriallog, "Error in send routine", 1, 1) # # template = "An exception of type {0} occured. Arguments:\n{1!r}" # message = template.format(type(ex).__name__, ex.args) # pilib.log(pilib.seriallog, message, 1, 1) # print message data = [] else: # print('DATA NOT ZERO') # print(ch) data.append(ch) stringmessage += str(ch) if checkstatus: print('checking status') thetime = mktime(localtime()) if thetime-checktime > checkfrequency: print('checking control status') systemstatus = pilib.readonedbrow(pilib.controldatabase, 'systemstatus')[0] runserialhandler = systemstatus['serialhandlerenabled'] if runserialhandler: checktime = thetime pilib.log(pilib.iolog, 'Continuing serialhandler based on status check',3,pilib.iologlevel) else: runhandler=False pilib.log(pilib.iolog, 'Aborting serialhandler based on status check',3,pilib.iologlevel) except KeyboardInterrupt: print('\n Exiting on keyboard interrupt\n') logfile.close() return except: # print('no characters available!') sleep(0.5) # return #runsendhandler(ser) logfile.close() ser.close() return
def updateifacestatus(): import resource.pyiface.iface as pyiface from cupid.pilib import sqlitemultquery, setsinglevalue, systemdatadatabase, readonedbrow, gettimestring import subprocess netconfigdata = readonedbrow(systemdatadatabase, 'netconfig')[0] netstatus = readonedbrow(systemdatadatabase, 'netstatus')[0] # Networking check querylist = [] table = 'netifaces' querylist.append('drop table if exists ' + table) querylist.append( "create table " + table + " (name text, hwaddr text, address text, ifaceindex integer, bcast text, mask text, flags text)" ) pilib.writedatedlogmsg(pilib.networklog, 'Reading ifaces with pyiface. ', 4, pilib.networkloglevel) allIfaces = pyiface.getIfaces() pilib.writedatedlogmsg(pilib.networklog, 'Got ifaces data. ', 5, pilib.networkloglevel) runquery = False for iface in allIfaces: runquery = True querylist.append("insert into " + table + " values ( \'" + iface.name + "\' , \'" + iface.hwaddr + "\' , \'" + iface._Interface__sockaddrToStr(iface.addr) + "\' , \'" + str(iface.index) + "\' , \'" + iface._Interface__sockaddrToStr(iface.broadaddr) + "\' , \'" + iface._Interface__sockaddrToStr(iface.netmask) + "\' , \'" + pyiface.flagsToStr(iface.flags) + "\')") if runquery: pilib.writedatedlogmsg(pilib.networklog, 'Sending ifaces query. ', 5, pilib.networkloglevel) sqlitemultquery(systemdatadatabase, querylist) else: pilib.writedatedlogmsg(pilib.networklog, 'Empty ifaces query. ', 5, pilib.networkloglevel) pilib.writedatedlogmsg(pilib.networklog, 'Completed pyiface ifaces. ', 4, pilib.networkloglevel) # Interfaces check # WAN check pilib.writedatedlogmsg(pilib.networklog, 'Checking pingtimes. ', 4, pilib.networkloglevel) okping = float(netconfigdata['pingthreshold']) from netfun import runping pingresults = runping('8.8.8.8') # pingresults = [20, 20, 20] pingresult = sum(pingresults) / float(len(pingresults)) if pingresult == 0: wanaccess = 0 latency = 0 else: if pingresult < okping: wanaccess = 1 else: wanaccess = 0 latency = pingresult querylist.append( pilib.makesinglevaluequery('netstatus', 'latency', str(latency))) pilib.writedatedlogmsg(pilib.networklog, 'Done checking pings. ', 4, pilib.networkloglevel) # Check supplicant status, set on/offtime if necessary. wpastatusdict = netconfig.getwpaclientstatus() try: if wpastatusdict['wpa_state'] == 'COMPLETED': wpaconnected = 1 if netstatus['connected'] == 0 or netstatus['onlinetime'] == '': pilib.writedatedlogmsg(pilib.networklog, 'setting online time', 2, pilib.networkloglevel) querylist.append( pilib.makesinglevaluequery('netstatus', 'onlinetime', gettimestring())) querylist.append( pilib.makesinglevaluequery('netstatus', 'offlinetime', '')) else: wpaconnected = 0 except KeyError: wpaconnected = 0 if wpaconnected == 0: if netstatus['connected'] == 1 or netstatus['offlinetime'] == '': if netconfigdata['mode'] == "station": pilib.writedatedlogmsg(pilib.networklog, 'setting offline time', 2, pilib.networkloglevel) querylist.append( pilib.makesinglevaluequery('netstatus', 'offlinetime', gettimestring())) querylist.append( pilib.makesinglevaluequery('netstatus', 'onlinetime', '')) else: pilib.writedatedlogmsg(pilib.networklog, 'setting online time', 2, pilib.networkloglevel) querylist.append( pilib.makesinglevaluequery('netstatus', 'offlinetime', '')) # Check dhcp server status pilib.writedatedlogmsg(pilib.networklog, 'Checking dhcp server status ', 4, pilib.networkloglevel) try: result = subprocess.Popen(['service', 'isc-dhcp-server', 'status'], stdout=subprocess.PIPE) except: dhcpstatus = 0 pilib.writedatedlogmsg(pilib.networklog, 'Error in reading dhcp server status.', 1, pilib.networkloglevel) else: for line in result.stdout: if line.find('not running') > 0: dhcpstatus = 0 elif line.find('is running') > 0: dhcpstatus = 1 else: dhcpstatus = '\?' pilib.writedatedlogmsg(pilib.networklog, 'Done checking dhcp server status. ', 4, pilib.networkloglevel) pilib.writedatedlogmsg(pilib.networklog, 'Updating netstatus. ', 4, pilib.networkloglevel) wpastatusdict['connected'] = wpaconnected try: wpastatusdict['dhcpstatus'] = dhcpstatus except: wpastatusdict['dhcpstatus'] = 0 dhcpstatus = 0 try: mode = wpastatusdict['mode'] except KeyError: mode = 'none' try: ssid = wpastatusdict['ssid'] except KeyError: ssid = 'none' try: address = wpastatusdict['ip_address'] except KeyError: address = 'none' # print('myaddress is ' + address) querylist.append( pilib.makesinglevaluequery('netstatus', 'dhcpstatus', dhcpstatus)) querylist.append( pilib.makesinglevaluequery('netstatus', 'connected', str(wpaconnected))) if netconfigdata['mode'] in ['ap', 'tempap']: pilib.writedatedlogmsg(pilib.networklog, 'Updating netstatus to AP mode', 1, pilib.networkloglevel) querylist.append( pilib.makesinglevaluequery('netstatus', 'mode', netconfigdata['mode'])) querylist.append( pilib.makesinglevaluequery('netstatus', 'SSID', 'cupidwifi')) else: pilib.writedatedlogmsg(pilib.networklog, 'Updating netstatus to station mode', 1, pilib.networkloglevel) querylist.append( pilib.makesinglevaluequery('netstatus', 'mode', str(mode))) querylist.append( pilib.makesinglevaluequery('netstatus', 'SSID', str(ssid))) querylist.append( pilib.makesinglevaluequery('netstatus', 'WANaccess', str(wanaccess))) querylist.append( pilib.makesinglevaluequery('netstatus', 'address', str(address))) pilib.writedatedlogmsg(pilib.networklog, 'Running netstatus query. ', 4, pilib.networkloglevel) pilib.sqlitemultquery(pilib.systemdatadatabase, querylist) pilib.writedatedlogmsg(pilib.networklog, 'Completed netstatus query. ', 4, pilib.networkloglevel) pilib.writedatedlogmsg(pilib.networklog, 'Completed netstatus update. ', 4, pilib.networkloglevel) return wpastatusdict