def __init__(self, config): Network.__init__(self) self.config = config import pyconnman import dbus self.dbus = dbus self.p = pyconnman try: self.manager = pyconnman.ConnManager() except self.dbus.exceptions.DBusException as e: logging.warning("Connman not a known service on DBus") return self.technologies = self.manager.get_technologies() self.wifi = None self.ethernet = None self.bluetooth = None self.aps_by_path = {} for t in self.technologies: (path, params) = t if params['Name'] == "WiFi": self.wifi = pyconnman.ConnTechnology(path) self._start_agent() elif params['Name'] == "Wired": self.ethernet = pyconnman.ConnTechnology(path) elif params['Name'] == "Bluetooth": self.bluetooth = t self.manager.add_signal_receiver(self.services_changed, self.manager.SIGNAL_SERVICES_CHANGED, None) if self.wifi: self.wifi.add_signal_receiver(self.wifi_changed, self.wifi.SIGNAL_PROPERTY_CHANGED, None)
def _get_state(): try: state = pyconnman.ConnManager().get_property('State') except Exception as exc: raise salt.exceptions.CommandExecutionError( 'Connman daemon error: {0}'.format(exc)) return state
def _get_technologies(): strTech = '' technologies = pyconnman.ConnManager().get_technologies() for path, params in technologies: strTech += '{0}\n\tName = {1}\n\tType = {2}\n\tPowered = {3}\n\tConnected = {4}\n'.format( path, params['Name'], params['Type'], params['Powered'] == 1, params['Connected'] == 1) return strTech
def __init__(self, autoconnect_timeout): self.__bus = dbus.SystemBus() # self.bus = dbus.SessionBus() self.manager = dbus.Interface( self.__bus.get_object("net.connman", "/"), "net.connman.Manager") # self.technology = dbus.Interface(self.bus.get_object("net.connman", # "/"), "net.connman.Service") self.dbus = dbus.Interface(self.__bus.get_object(DBUS_DOMAIN, '/'), 'net.connman.Service') self.manager_py = pyconnman.ConnManager() try: # manager = pyconnman.ConnManager() self.manager_py.add_signal_receiver( self.dump_signal, pyconnman.ConnManager.SIGNAL_TECHNOLOGY_ADDED, None) self.manager_py.add_signal_receiver( self.dump_signal, pyconnman.ConnManager.SIGNAL_TECHNOLOGY_REMOVED, # noqa None) self.manager_py.add_signal_receiver( self.dump_signal, pyconnman.ConnManager.SIGNAL_SERVICES_CHANGED, None) self.manager_py.add_signal_receiver( self.dump_signal, pyconnman.ConnManager.SIGNAL_PROPERTY_CHANGED, None) except dbus.exceptions.DBusException: print 'Unable to complete:', sys.exc_info()
def test_manager_basic(self): manager = pyconnman.ConnManager() print repr(manager) print '=========================================================' print manager print '=========================================================' print 'Technologies:', manager.get_technologies() print 'Services:', manager.get_services()
def test_manager_basic(self): manager = pyconnman.ConnManager() print(repr(manager)) print('=========================================================') print(manager) print('=========================================================') print('Technologies:', manager.get_technologies()) print('Services:', manager.get_services())
def _get_services(): """ Returns a list with all connman services """ serv = [] services = pyconnman.ConnManager().get_services() for path, _ in services: serv.append(six.text_type(path[len(SERVICE_PATH) :])) return serv
def _get_services(): ''' Returns a list with all connman services. ''' serviceList = [] services = pyconnman.ConnManager().get_services() for path, params in services: serviceList.append(six.text_type(path[len(SERVICE_PATH):])) return serviceList
def _get_state(): ''' Returns the state of connman ''' try: return pyconnman.ConnManager().get_property('State') except KeyError: return 'offline' except dbus.DBusException as exc: raise salt.exceptions.CommandExecutionError('Connman daemon error: {0}'.format(exc))
def test_agent_registration(self): agent = '/agent/myagent' manager = pyconnman.ConnManager() try: exception_raised = False manager.register_agent(agent) manager.unregister_agent(agent) except: exception_raised = True self.assertFalse(exception_raised)
def _get_state(): """ Returns the state of connman """ try: return pyconnman.ConnManager().get_property("State") except KeyError: return "offline" except dbus.DBusException as exc: raise salt.exceptions.CommandExecutionError( "Connman daemon error: {0}".format(exc))
def wifi_connect(ssid, password): try: wifi_enable() path = wifi_service_path(ssid) if (path is None): return False print path + ' [' + ssid + ']' agent_path = '/bwsetup/agent' agent = pyconnman.SimpleWifiAgent(agent_path) agent.set_service_params(path, None, ssid, None, None, None, password, None) pyconnman.ConnManager().register_agent(agent_path) try: service = pyconnman.ConnService(path) service.set_property('autoconnect', 'yes') service.set_property('ipv4', 'dhcp') service.connect() except Exception, e: print e pyconnman.ConnManager().unregister_agent(agent_path) return True
def test_service_basic(self): manager = pyconnman.ConnManager() services = manager.get_services() serv = pyconnman.ConnService(services[0][0]) print "Serv:", serv print '=========================================================' serv.connect() serv.disconnect() serv.move_before('a service') serv.move_after('a service') serv.reset_counters() serv.remove() serv.clear_property('a property')
def wifi_service_path(ssid): try: tech = pyconnman.ConnTechnology(CONNCTRL_TECH_PATH_WIFI) tech.scan() services = pyconnman.ConnManager().get_services() for i in services: (path, params) = i if (params['Type'] == 'wifi'): if (params['Name'] == ssid): return path return None except Exception, e: print e return None
def _get_technologies(): """ Returns the technologies of connman """ tech = "" technologies = pyconnman.ConnManager().get_technologies() for path, params in technologies: tech += "{0}\n\tName = {1}\n\tType = {2}\n\tPowered = {3}\n\tConnected = {4}\n".format( path, params["Name"], params["Type"], params["Powered"] == 1, params["Connected"] == 1, ) return tech
def test_scan(self): manager = pyconnman.ConnManager() technologies = manager.get_technologies() tech = pyconnman.ConnTechnology(technologies[0][0]) print repr(tech) print '=========================================================' print tech print '=========================================================' added = 'Added' removed = 'Removed' signal = pyconnman.ConnManager.SIGNAL_SERVICES_CHANGED user = mock.MagicMock() manager.add_signal_receiver(user.callback_fn, signal, self) tech.scan() self.mock_system_bus.add_signal_receiver.assert_called() cb = self.mock_system_bus.add_signal_receiver.call_args_list[0][0][0] cb(added, removed) user.callback_fn.assert_called_with(signal, self, added, removed) user.callback_fn.assert_called() manager.remove_signal_receiver(signal) self.mock_system_bus.remove_signal_receiver.assert_called()
def __init__(self): self.manager = pyconnman.ConnManager() self.bInternetConnected = False self.status = STATUS_DISCONNECTED self.agent = None self.services = None self.connectedSSID = None self.bScanning = False self.activePath = None self.waitForWifiInterface() self.setWifiPower(True) time.sleep(1) # Monitor the state of wifi and internet status every few seconds. def monitor(): while True: self.getStatus() time.sleep(3) t = threading.Thread(target=monitor, args=()) t.setDaemon(True) t.start()
cmd_entry.func(args) else: print('Error: Command "{}" was not recognized.'.format(cmd)) def timeout_handler(signum, frame): while GLib.MainLoop().get_context().pending(): GLib.MainLoop().get_context().iteration(False) dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) signal.signal(signal.SIGALRM, timeout_handler) signal.setitimer(signal.ITIMER_REAL, 0.01, 0.01) try: manager = pyconnman.ConnManager() manager.add_signal_receiver(dump_signal, pyconnman.ConnManager.SIGNAL_TECHNOLOGY_ADDED, None) manager.add_signal_receiver( dump_signal, pyconnman.ConnManager.SIGNAL_TECHNOLOGY_REMOVED, # noqa None) manager.add_signal_receiver(dump_signal, pyconnman.ConnManager.SIGNAL_SERVICES_CHANGED, None) manager.add_signal_receiver(dump_signal, pyconnman.ConnManager.SIGNAL_PROPERTY_CHANGED, None) except dbus.exceptions.DBusException: print('Unable to complete:', sys.exc_info())