コード例 #1
0
    def check_setting_finish(self):
        ###check if user complete his setting, avoid the missing property exception
        info_dict = TypeConvert.dbus2py(self.settings_dict)
        try:
            if info_dict["connection"]["type"] == "802-3-ethernet":
                return self.is_wired_setting_ok(info_dict)

            elif info_dict["connection"]["type"] == "802-11-wireless":
                return self.is_wireless_setting_ok(info_dict)

            elif info_dict["connection"]["type"] == "pppoe":
                return self.is_dsl_setting_ok(info_dict)

            elif info_dict["connection"]["type"] == "vpn":
                return self.is_vpn_setting_ok(info_dict)

            elif info_dict["connection"]["type"] == "cdma":
                return self.is_cdma_setting_ok(info_dict)

            elif info_dict["connection"]["type"] == "gsm":
                return self.is_gsm_setting_ok(info_dict)

            else:
                return False
        except:
            traceback.print_exc()
コード例 #2
0
    def check_setting_finish(self):
        ###check if user complete his setting, avoid the missing property exception
        info_dict = TypeConvert.dbus2py(self.settings_dict)
        try:
            if info_dict["connection"]["type"] == "802-3-ethernet":
                return self.is_wired_setting_ok(info_dict)

            elif info_dict["connection"]["type"] == "802-11-wireless":
                return self.is_wireless_setting_ok(info_dict)

            elif info_dict["connection"]["type"] == "pppoe":
                return self.is_dsl_setting_ok(info_dict)

            elif info_dict["connection"]["type"] == "vpn":
                return self.is_vpn_setting_ok(info_dict)

            elif info_dict["connection"]["type"] == "cdma":
                return self.is_cdma_setting_ok(info_dict)

            elif info_dict["connection"]["type"] == "gsm":
                return self.is_gsm_setting_ok(info_dict)

            else:
                return False
        except:
            traceback.print_exc()
コード例 #3
0
    def check_setting_commit(self):
        ###delete invalid setting property before update
        for key in self.settings_dict.keys():
            for key2 in self.settings_dict[key]:
                if self.settings_dict[key][key2] == None:
                    self.settings_dict[key][key2] = ""

        info_dict = TypeConvert.dbus2py(self.settings_dict)
        try:
            if info_dict["connection"]["type"] == "802-3-ethernet":
                if not self.get_setting("802-3-ethernet").wired_valid():
                    ###or raise exception
                    return False
                self.get_setting("ipv4").adapt_ip4config_commit()

                if "ipv6" in info_dict.iterkeys():
                    self.get_setting("ipv6").adapt_ip6config_commit()

            elif info_dict["connection"]["type"] == "802-11-wireless":
                self.get_setting("802-11-wireless").adapt_wireless_commit()

                if "802-11-wireless-security" in info_dict.iterkeys():
                    self.get_setting("802-11-wireles-security"
                                     ).adapt_wireless_security_commit()

                self.get_setting("ipv4").adapt_ip4config_commit()

                if "ipv6" in info_dict.iterkeys():
                    self.get_setting("ipv6").adapt_ip6config_commit()

            elif info_dict["connection"]["type"] == "pppoe":
                if not self.get_setting("802-3-ethernet").wired_valid():
                    return False
                self.get_setting("ipv4").adapt_ip4config_commit()

                if "ipv6" in info_dict.iterkeys():
                    self.get_setting("ipv6").adapt_ip6config_commit()

            elif info_dict["connection"]["type"] == "vpn":
                pass

            elif info_dict["connection"]["type"] == "cdma":
                pass

            elif info_dict["connection"]["type"] == "gsm":
                pass

            else:
                print "invalid connection_type"
        except:
            pass
コード例 #4
0
    def check_setting_commit(self):
        ###delete invalid setting property before update
        for key in self.settings_dict.keys():
            for key2 in self.settings_dict[key]:
                if self.settings_dict[key][key2] == None:
                    self.settings_dict[key][key2] = ""

        info_dict = TypeConvert.dbus2py(self.settings_dict)
        try:
            if info_dict["connection"]["type"] == "802-3-ethernet":
                if not self.get_setting("802-3-ethernet").wired_valid():
                    ###or raise exception
                    return False
                self.get_setting("ipv4").adapt_ip4config_commit()

                if "ipv6" in info_dict.iterkeys():
                    self.get_setting("ipv6").adapt_ip6config_commit()

            elif info_dict["connection"]["type"] == "802-11-wireless":
                self.get_setting("802-11-wireless").adapt_wireless_commit()

                if "802-11-wireless-security" in info_dict.iterkeys():
                    self.get_setting("802-11-wireles-security").adapt_wireless_security_commit()

                self.get_setting("ipv4").adapt_ip4config_commit()

                if "ipv6" in info_dict.iterkeys():
                    self.get_setting("ipv6").adapt_ip6config_commit()

            elif info_dict["connection"]["type"] == "pppoe":
                if not self.get_setting("802-3-ethernet").wired_valid():
                    return False
                self.get_setting("ipv4").adapt_ip4config_commit()

                if "ipv6" in info_dict.iterkeys():
                    self.get_setting("ipv6").adapt_ip6config_commit()

            elif info_dict["connection"]["type"] == "vpn":
                pass

            elif info_dict["connection"]["type"] == "cdma":
                pass

            elif info_dict["connection"]["type"] == "gsm":
                pass

            else:
                print "invalid connection_type"
        except:
            pass
コード例 #5
0
 def lcp_echo_interval(self):
     if "lcp-echo-interval" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["lcp-echo-interval"])
     else:
         return 0
コード例 #6
0
 def mtu(self):
     if "mtu" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["mtu"])
     else:
         return 0
コード例 #7
0
 def crtscts(self):
     if "crtscts" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["crtscts"])
     else:
         return False
コード例 #8
0
 def read_only(self):
     if "read-only" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["read-only"])
     else:
         return False
コード例 #9
0
 def zone(self):
     if "zone" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["zone"])
コード例 #10
0
 def method(self):
     if "method" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["method"])
コード例 #11
0
 def dhcp_client_id(self):
     if "dhcp-client-id" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["dhcp-client-id"])
コード例 #12
0
 def lcp_echo_failure(self):
     if "lcp-echo-failure" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["lcp-echo-failure"])
     else:
         return 0
コード例 #13
0
 def mtu(self):
     if "mtu" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["mtu"])
     else:
         return 0
コード例 #14
0
 def crtscts(self):
     if "crtscts" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["crtscts"])
     else:
         return False
コード例 #15
0
 def mppe_stateful(self):
     if "mppe-stateful" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["mppe-stateful"])
     else:
         return False
コード例 #16
0
 def require_mppe_128(self):
     if "require-mppe-128" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["require-mppe-128"])
     else:
         return False
コード例 #17
0
 def no_vj_comp(self):
     if "no-vj-comp" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["no-vj-comp"])
     else:
         return False
コード例 #18
0
 def nodeflate(self):
     if "nodeflate" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["nodeflate"])
     else:
         return False
コード例 #19
0
 def channel(self):
     if "channel" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["channel"])
     else:
         return 0
コード例 #20
0
 def routes(self):
     if "routes" not in self.prop_dict.iterkeys():
         self.clear_routes()
     return map(lambda x: TypeConvert.ip4route_net2native(x),
                TypeConvert.dbus2py(self.prop_dict["routes"]))
コード例 #21
0
 def lcp_echo_interval(self):
     if "lcp-echo-interval" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["lcp-echo-interval"])
     else:
         return 0
コード例 #22
0
 def never_default(self):
     if "never-default" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["never-default"])
     else:
         return False
コード例 #23
0
 def noauth(self):
     if "noauth" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["noauth"])
     else:
         return True
コード例 #24
0
 def timestamp(self):
     if "timestamp" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["timestamp"])
     else:
         return  0
コード例 #25
0
 def refuse_chap(self):
     if "refuse-chap" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["refuse-chap"])
     else:
         return False
コード例 #26
0
 def id(self):
     if "id" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["id"])
コード例 #27
0
 def refuse_mschapv2(self):
     if "refuse-mschapv2" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["refuse-mschapv2"])
     else:
         return False
コード例 #28
0
 def tx_power(self):
     if "tx-power" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["tx-power"])
     else:
         return 0
コード例 #29
0
 def refuse_chap(self):
     if "refuse-chap" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["refuse-chap"])
     else:
         return False
コード例 #30
0
 def baud(self):
     if "baud" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["baud"])
     else:
         return 0
コード例 #31
0
 def nobsdcomp(self):
     if "nobsdcomp" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["nobsdcomp"])
     else:
         return False
コード例 #32
0
 def lcp_echo_failure(self):
     if "lcp-echo-failure" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["lcp-echo-failure"])
     else:
         return 0
コード例 #33
0
 def data(self):
     if "data" not in self.prop_dict.iterkeys():
         self.prop_dict["data"] = dbus.Dictionary({}, signature = dbus.Signature('ss'))
     return TypeConvert.dbus2py(self.prop_dict["data"])
コード例 #34
0
 def noauth(self):
     if "noauth" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["noauth"])
     else:
         return True
コード例 #35
0
 def seen_bssids(self):
     if "seen-bssids" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py([
             TypeConvert.ssid_ascii2string(x)
             for x in self.prop_dict["seen-bssids"]
         ])
コード例 #36
0
 def refuse_mschapv2(self):
     if "refuse-mschapv2" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["refuse-mschapv2"])
     else:
         return False
コード例 #37
0
    def guess_secret_info(self):
        '''guess_secret_info'''
        info_dict = TypeConvert.dbus2py(self.settings_dict)

        if "vpn" in info_dict.iterkeys():
            self.secret_setting_name = "vpn"
            self.secret_method = "password"
            return (self.secret_setting_name, self.secret_method)

        elif "pppoe" in info_dict.iterkeys(
        ) and "802-3-ethernet" in info_dict.iterkeys():
            self.secret_setting_name = "pppoe"
            self.secret_method = "password"
            return (self.secret_setting_name, self.secret_method)

        elif "802-11-wireless" in info_dict.iterkeys():
            ###for wireless no password
            if not "802-11-wireless-security" in info_dict.iterkeys():
                self.secret_setting_name = None
                self.secret_method = None
                return (self.secret_setting_name, self.secret_method)

            ###for wireless has password
            self.secret_setting_name = "802-11-wireless-security"

            if "key-mgmt" in info_dict["802-11-wireless-security"].iterkeys():
                ###for wpa/psk
                if info_dict["802-11-wireless-security"][
                        "key-mgmt"] == "wpa-psk":
                    self.secret_method = "psk"
                    return (self.secret_setting_name, self.secret_method)

                elif info_dict["802-11-wireless-security"][
                        "key-mgmt"] == "none":
                    ###for wep
                    if "wep-key-type" in info_dict[
                            "802-11-wireless-security"].iterkeys():
                        if "wep-tx-keyidx" in info_dict[
                                "802-11-wireless-security"].iterkeys():
                            if info_dict["802-11-wireless-security"][
                                    "wep-tx-keyidx"] == 0:
                                self.secret_method = "wep-key0"
                            elif info_dict["802-11-wireless-security"][
                                    "wep-tx-keyidx"] == 1:
                                self.secret_method = "wep-key1"
                            elif info_dict["802-11-wireless-security"][
                                    "wep-tx-keyidx"] == 2:
                                self.secret_method = "wep-key2"
                            elif info_dict["802-11-wireless-security"][
                                    "wep-tx-keyidx"] == 3:
                                self.secret_method = "wep-key3"
                            else:
                                print "unsupported wep key idx"
                                self.secret_method = None

                            return (self.secret_setting_name,
                                    self.secret_method)
                        else:
                            ###set default for wep key index
                            self.secret_method = "wep-key0"
                            return (self.secret_setting_name,
                                    self.secret_method)
                    else:
                        # print "must have wep-key-type to indicate wep connection"
                        self.secret_method = None
                        return (self.secret_setting_name, self.secret_method)

                ###for wpa
                elif info_dict["802-11-wireless-security"][
                        "key-mgmt"] == "wpa-eap":
                    # print "no agent available for wpa-eap"
                    self.secret_method = None
                    return (self.secret_setting_name, self.secret_method)

                elif info_dict["802-11-wireless-security"][
                        "key-mgmt"] == "ieee8021x":
                    if "auth-alg" in info_dict[
                            "802-11-wireless-security"].iterkeys():
                        if info_dict["802-11-wireless-security"][
                                "auth-alg"] == "leap":
                            self.secret_method = "leap-password"
                            return (self.secret_setting_name,
                                    self.secret_method)
                    else:
                        # print "no ageent available for dynamic wep"
                        self.secret_method = None
                        return (self.secret_setting_name, self.secret_method)
                else:
                    # print "unknown key mgmt"
                    self.secret_method = None
                    return (self.secret_setting_name, self.secret_method)

            else:
                # print "must have key mgmt for 802.11 wireless security"
                self.secret_method = None
                return (self.secret_setting_name, self.secret_method)

        elif "gsm" in info_dict.iterkeys():
            self.secret_setting_name = "gsm"
            self.secret_method = "password"
            return (self.secret_setting_name, self.secret_method)

        elif "cdma" in info_dict.iterkeys():
            self.secret_setting_name = "cdma"
            self.secret_method = "password"
            return (self.secret_setting_name, self.secret_method)

        elif "802-3-ethernet" in info_dict.iterkeys():
            self.secret_setting_name = None
            self.secret_method = None
            return (self.secret_setting_name, self.secret_method)

        elif "ppp" in info_dict.iterkeys():
            self.secret_setting_name = ""
            self.secret_method = ""
            return (self.secret_setting_name, self.secret_method)

        elif "802-1x" in info_dict.iterkeys():
            self.secret_setting_name = ""
            self.secret_method = ""
            return (self.secret_setting_name, self.secret_method)

        else:
            self.secret_setting_name = None
            self.secret_method = None
            return (self.secret_setting_name, self.secret_method)
コード例 #38
0
 def user_name(self):
     if "user-name" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["user-name"])
コード例 #39
0
 def channel(self):
     if "channel" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["channel"])
     else:
         return 0
コード例 #40
0
 def addresses(self):
     '''[['10.0.0.206', '255.255.255.0', '10.0.0.1'], ['192.168.1.120', '255.255.255.0', '192.168.1.1']]'''
     if "addresses" not in self.prop_dict.iterkeys():
         self.clear_addresses()
     return map(lambda x: TypeConvert.ip4address_net2native(x),
                TypeConvert.dbus2py(self.prop_dict["addresses"]))
コード例 #41
0
 def hidden(self):
     if "hidden" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["hidden"])
     else:
         return False
コード例 #42
0
 def ignore_auto_dns(self):
     if "ignore-auto-dns" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["ignore-auto-dns"])
     else:
         return False
コード例 #43
0
 def enumerate_devices(self):
     return TypeConvert.dbus2py(self.dbus_method("EnumerateDevices"))
コード例 #44
0
 def dhcp_hostname(self):
     if "dhcp-hostname" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["dhcp-hostname"])
コード例 #45
0
 def baud(self):
     if "baud" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["baud"])
コード例 #46
0
 def may_fail(self):
     if "may-fail" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["may-fail"])
     else:
         return True
コード例 #47
0
 def parity(self):
     if "parity" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["parity"])
コード例 #48
0
 def dns_search(self):
     if "dns-search" not in self.prop_dict.iterkeys():
         self.clear_dns_search()
     return TypeConvert.dbus2py(self.prop_dict["dns-search"])
コード例 #49
0
 def stopbits(self):
     if "stopbits" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["stopbits"])
コード例 #50
0
 def type(self):
     if "type" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["type"])
コード例 #51
0
 def send_delay(self):
     if "send-delay" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["send-delay"])
コード例 #52
0
 def autoconnect(self):
     if "autoconnect" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["autoconnect"])
     else:
         return True
コード例 #53
0
 def nodeflate(self):
     if "nodeflate" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["nodeflate"])
     else:
         return False
コード例 #54
0
 def master(self):
     if "master" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["master"])
コード例 #55
0
 def require_mppe_128(self):
     if "require-mppe-128" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["require-mppe-128"])
     else:
         return False
コード例 #56
0
 def slave_type(self):
     if "slave-type" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["slave-type"])
コード例 #57
0
 def mppe_stateful(self):
     if "mppe-stateful" in self.prop_dict.iterkeys():
         return TypeConvert.dbus2py(self.prop_dict["mppe-stateful"])
     else:
         return False