Ejemplo n.º 1
0
    def _activated_device_msg(self, devname):
        msg = _("Wired (%(interface_name)s) connected\n") \
                % {"interface_name": devname}

        ipv4config = nm_device_ip_config(devname, version=4)
        ipv6config = nm_device_ip_config(devname, version=6)

        if ipv4config and ipv4config[0]:
            addr_str, prefix, gateway_str = ipv4config[0][0]
            netmask_str = network.prefix2netmask(prefix)
            dnss_str = ",".join(ipv4config[1])
        else:
            addr_str = dnss_str = gateway_str = netmask_str = ""
        msg += _(" IPv4 Address: %s Netmask: %s Gateway: %s\n") % (
            addr_str, netmask_str, gateway_str)
        msg += _(" DNS: %s\n") % dnss_str

        if ipv6config and ipv6config[0]:
            for ipv6addr in ipv6config[0]:
                addr_str, prefix, gateway_str = ipv6addr
                # Do not display link-local addresses
                if not addr_str.startswith("fe80:"):
                    msg += _(" IPv6 Address: %s/%d\n") % (addr_str, prefix)

            dnss_str = ",".join(ipv6config[1])

        return msg
Ejemplo n.º 2
0
    def mapAnacondaValues(self, info):
        """ Should be called only after json file has loaded 
            These are variables read directly from anaconda objects or 
            derived from them.  
            XXX: This really should be a file of mappings"""
        ## This method basically has to reverse engineer what
        ## other parts of anaconda is doing
        ksdata = self.data
        mapping = {}
        mapping["Kickstart_Lang"] = "ksdata.lang.lang"
        mapping["Kickstart_Langsupport"] = mapping["Kickstart_Lang"]
        mapping["Kickstart_Timezone"] = "ksdata.timezone.timezone"
        # Need to find a better way to get NTP info.
        # mapping["Kickstart_PublicNTPHost"] = "ksdata.timezone.ntpservers"
        mapping["Kickstart_PublicDNSServers"] = "self.readDNSConfig()"
        ## Network may not be up, so these may fail
        try:
            mapping[
                "Kickstart_PublicInterface"] = "network.default_route_device()"
            mapping[
                "Kickstart_PublicAddress"] = "network.get_default_device_ip()"
            mapping[
                "Kickstart_PublicFQDN"] = "subprocess.check_output(['hostname']).strip()"
            mapping[
                "Kickstart_PublicHostname"] = "subprocess.check_output(['hostname']).strip().split('.',1)[0]"
            mapping[
                "Kickstart_PublicDNSDomain"] = "subprocess.check_output(['hostname']).strip().split('.',1)[1]"
            ## get the public networking values
            pubif = eval(mapping["Kickstart_PublicInterface"])
            pubaddr = eval(mapping["Kickstart_PublicAddress"])
            cidr = nm.nm_device_ip_config(pubif)[0][0][1]
            gateway = nm.nm_device_ip_config(pubif)[0][0][2]
            netmask = network.prefix2netmask(cidr)
            nparts = map(lambda x: int(x), netmask.split('.'))
            aparts = map(lambda x: int(x), pubaddr.split('.'))
            netaddr = map(lambda x: nparts[x] & aparts[x],
                          range(0, len(nparts)))
            pubnetwork = ".".join(map(lambda x: x.__str__(), netaddr))
            mapping["Kickstart_PublicNetwork"] = "pubnetwork"
            mapping["Kickstart_PublicNetmask"] = "netmask"
            mapping["Kickstart_PublicNetmaskCIDR"] = "cidr"
            mapping["Kickstart_PublicGateway"] = "gateway"
            mtu = nm.nm_device_property(pubif, 'Mtu')
            mapping["Kickstart_PublicMTU"] = mtu.__str__()
        except:
            pass

        ## set the values in our own info structure
        for var in mapping.keys():
            try:
                setValue(info, var, eval(mapping[var]))
            except Exception as e:
                self.log.info("ROCKS: Exception(%s) setting var (%s)" %
                              (e, var))