def get_ssid_associate_connections(self, ssid): '''return wireless connection objects have the given ssid''' try: return filter(lambda x: TypeConvert.ssid_ascii2string(x.settings_dict["802-11-wireless"]["ssid"]) == ssid, self.get_wireless_connections()) except: return []
def run(self): for conn in self.conns: if self.run_flag: ssid = TypeConvert.ssid_ascii2string(conn.settings_dict["802-11-wireless"]["ssid"]) if ssid in self.device.get_ssid_record(): try: specific = self.device.get_ap_by_ssid(ssid) nmclient = get_cache().getobject("/org/freedesktop/NetworkManager") active_conn = nmclient.activate_connection(conn.object_path, self.device.object_path, specific.object_path) while(active_conn.get_state() == 1 and self.run_flag): time.sleep(1) if active_conn.get_state() == 2: self.stop_run() return True else: continue except: pass else: continue else: return False self.stop_run()
def run(self): for conn in self.conns: if self.run_flag: ssid = TypeConvert.ssid_ascii2string( conn.settings_dict["802-11-wireless"]["ssid"]) if ssid in self.device.get_ssid_record(): try: specific = self.device.get_ap_by_ssid(ssid) nmclient = get_cache().getobject( "/org/freedesktop/NetworkManager") active_conn = nmclient.activate_connection( conn.object_path, self.device.object_path, specific.object_path) while (active_conn.get_state() == 1 and self.run_flag): time.sleep(1) if active_conn.get_state() == 2: self.stop_run() return True else: continue except: pass else: continue else: return False self.stop_run()
def active_ssid_connection(self, ssid): '''try only one connection now''' if get_cache().getobject(self.object_path).is_active(): conn = get_cache().getobject(self.object_path).get_active_connection().get_connection() if TypeConvert.ssid_ascii2string(conn.settings_dict["802-11-wireless"]["ssid"])== ssid: return None else: pass nm_remote_settings = get_cache().getobject("/org/freedesktop/NetworkManager/Settings") connections = nm_remote_settings.get_ssid_associate_connections(ssid) #print connections, "active ssid connection" if connections: conn = sorted(connections, key = lambda x: int(nm_remote_settings.cf.get("conn_priority", x.settings_dict["connection"]["uuid"])), reverse = True)[0] try: specific = self.get_ap_by_ssid(ssid) nmclient = get_cache().getobject("/org/freedesktop/NetworkManager") nmclient.activate_connection(conn.object_path, self.object_path, specific.object_path) if get_cache().getobject(self.object_path).is_active(): return None else: return conn except: return conn else: return nm_remote_settings.new_wireless_connection(ssid, None)
def get_ssid_not_associate_connections(self, ssid): try: return filter( lambda x: TypeConvert.ssid_ascii2string(x.settings_dict[ "802-11-wireless"]["ssid"]) != ssid, self.get_wireless_connections()) except: return []
def get_ssid_associate_connections(self, ssid): '''return wireless connection objects have the given ssid''' try: return filter( lambda x: TypeConvert.ssid_ascii2string(x.settings_dict[ "802-11-wireless"]["ssid"]) == ssid, self.get_wireless_connections()) except: return []
def active_ssid_connection(self, ssid): '''try only one connection now''' if get_cache().getobject(self.object_path).is_active(): conn = get_cache().getobject( self.object_path).get_active_connection().get_connection() if TypeConvert.ssid_ascii2string( conn.settings_dict["802-11-wireless"]["ssid"]) == ssid: return None else: pass nm_remote_settings = get_cache().getobject( "/org/freedesktop/NetworkManager/Settings") connections = nm_remote_settings.get_ssid_associate_connections(ssid) #print connections, "active ssid connection" if connections: conn = sorted(connections, key=lambda x: int( nm_remote_settings.cf.get( "conn_priority", x.settings_dict["connection" ]["uuid"])), reverse=True)[0] try: specific = self.get_ap_by_ssid(ssid) nmclient = get_cache().getobject( "/org/freedesktop/NetworkManager") nmclient.activate_connection(conn.object_path, self.object_path, specific.object_path) if get_cache().getobject(self.object_path).is_active(): return None else: return conn except: return conn else: return nm_remote_settings.new_wireless_connection(ssid, None)
def get_ssid(self): if self.properties["Ssid"]: return TypeConvert.ssid_ascii2string(self.properties["Ssid"]) else: return None
def get_ssid_not_associate_connections(self, ssid): try: return filter(lambda x: TypeConvert.ssid_ascii2string(x.settings_dict["802-11-wireless"]["ssid"]) != ssid, self.get_wireless_connections()) except: return []
def get_ssid (self): if self.properties["Ssid"]: return TypeConvert.ssid_ascii2string(self.properties["Ssid"]) else: return None