Exemplo n.º 1
0
    def _validate_server(self, inputcheck):
        server = self.get_input(inputcheck.input_obj)

        # If not set, fail the check to keep the button insensitive, but don't
        # display an error
        if not server:
            return InputCheck.CHECK_SILENT

        (valid, error) = network.is_valid_hostname(server)
        if not valid:
            return "'%s' is not a valid hostname: %s" % (server, error)
        else:
            return InputCheck.CHECK_OK
Exemplo n.º 2
0
    def _validateServer(self, inputcheck):
        server = self.get_input(inputcheck.input_obj)

        # If not set, fail the check to keep the button insensitive, but don't
        # display an error
        if not server:
            return InputCheck.CHECK_SILENT

        (valid, error) = network.is_valid_hostname(server)
        if not valid:
            return "'%s' is not a valid hostname: %s" % (server, error)
        else:
            return InputCheck.CHECK_OK
Exemplo n.º 3
0
    def parse(self, args):
        hostname_only_command = is_hostname_only_network_args(args)
        # call the overridden command to do it's job first
        retval = super().parse(args)

        if hostname_only_command:
            retval.bootProto = ""

        if retval.hostname:
            (result, reason) = is_valid_hostname(retval.hostname)
            if not result:
                message = "Hostname '{}' given in network kickstart command is invalid: {}"\
                    .format(retval.hostname, reason)
                raise KickstartParseError(message, lineno=self.lineno)

        return retval
Exemplo n.º 4
0
    def on_server_edited(self, renderer, path, new_text, *args):
        if not path:
            return

        (valid, error) = network.is_valid_hostname(new_text)
        if not valid:
            log.error("'%s' is not a valid hostname: %s", new_text, error)
            return

        itr = self._serversStore.get_iter(path)

        if self._serversStore[itr][SERVER_HOSTNAME] == new_text:
            return

        self._serversStore.set_value(itr, SERVER_HOSTNAME, new_text)
        self._serversStore.set_value(itr, SERVER_WORKING, constants.NTP_SERVER_QUERY)

        self._refresh_server_working(itr)
Exemplo n.º 5
0
    def apply(self):
        """Apply all of our settings."""
        # Inform network module that device configurations might have been changed
        # and we want to generate kickstart from device configurations
        # (persistent NM / config files configuration), instead of using original kickstart.
        self._network_module.NetworkDeviceConfigurationChanged()

        (valid, error) = network.is_valid_hostname(self.hostname, local=True)
        if not self.hostname or valid:
            self._network_module.SetHostname(self.hostname)
        else:
            self.errors.append(_("Host name is not valid: %s") % error)
            self.hostname = self._network_module.Hostname

        if self._apply:
            self._apply = False
            if ANACONDA_ENVIRON in flags.environs:
                from pyanaconda.payload.manager import payloadMgr
                payloadMgr.restart_thread(self.payload, checkmount=False)
Exemplo n.º 6
0
    def apply(self):
        """Apply all of our settings."""
        # Inform network module that device configurations might have been changed
        # and we want to generate kickstart from device configurations
        # (persistent NM / ifcfg configuration), instead of using original kickstart.
        self._network_module.proxy.NetworkDeviceConfigurationChanged()

        (valid, error) = network.is_valid_hostname(self.hostname)
        if valid:
            self._network_module.proxy.SetHostname(self.hostname)
        else:
            self.errors.append(_("Host name is not valid: %s") % error)
            self.hostname = self._network_module.proxy.Hostname

        if self._apply:
            self._apply = False
            if ANACONDA_ENVIRON in flags.environs:
                from pyanaconda.payload.manager import payloadMgr
                payloadMgr.restart_thread(self.storage, self.data, self.payload, checkmount=False)
Exemplo n.º 7
0
    def on_server_edited(self, renderer, path, new_text, *args):
        self._active_server = None

        if not path:
            return

        (valid, error) = network.is_valid_hostname(new_text)
        if not valid:
            log.error("'%s' is not a valid hostname: %s", new_text, error)
            return

        itr = self._serversStore.get_iter(path)
        server = self._serversStore[itr][SERVER_OBJECT]

        if server.hostname == new_text:
            return

        server.hostname = new_text
        self._states.check_status(server)
        self._refresh_row(itr)
Exemplo n.º 8
0
    def is_valid_hostname_test(self):

        self.assertFalse(network.is_valid_hostname("")[0])
        self.assertFalse(network.is_valid_hostname(None)[0])

        # section length < 64
        self.assertTrue(network.is_valid_hostname("h"*63)[0])
        self.assertFalse(network.is_valid_hostname("h"*64)[0])

        # length < 256
        self.assertTrue(network.is_valid_hostname("section." * 31+"section")[0])
        self.assertFalse(network.is_valid_hostname("section." * 31+"sectionx")[0])

        self.assertFalse(network.is_valid_hostname(
            "section.must.be..nonempty.")[0])
        self.assertFalse(network.is_valid_hostname(
            ".section.must.be.nonempty.")[0])
        self.assertTrue(network.is_valid_hostname(
            "section.can.contain.only.alphanums.012.or.hyp-hens")[0])
        self.assertFalse(network.is_valid_hostname(
            "section.can.contain.only.alphanums.012.or.hyp-hens!!!")[0])
        self.assertFalse(network.is_valid_hostname(
            "section.may.not.start.with.-hyphen")[0])
        self.assertFalse(network.is_valid_hostname(
            "section.may.not.end.with.hyphen-")[0])

        self.assertTrue(network.is_valid_hostname("0-0.")[0])
        self.assertTrue(network.is_valid_hostname("0.")[0])

        self.assertFalse(network.is_valid_hostname("Lennart's Laptop")[0])
Exemplo n.º 9
0
    def test_is_valid_hostname(self):
        """Test hostname validation."""

        assert not network.is_valid_hostname("")[0]
        assert not network.is_valid_hostname(None)[0]

        # section length < 64
        assert network.is_valid_hostname("h" * 63)[0]
        assert not network.is_valid_hostname("h" * 64)[0]

        # length < 65
        assert network.is_valid_hostname("section." * 7 + "sectionx")[0]
        assert not network.is_valid_hostname("section." * 7 + "sectionxx")[0]

        assert not network.is_valid_hostname("section.must.be..nonempty.")[0]
        assert not network.is_valid_hostname(".section.must.be.nonempty.")[0]
        assert network.is_valid_hostname(
            "section.can.contain.only.alphanums.012.or.hyp-hens")[0]
        assert not network.is_valid_hostname(
            "section.can.contain.only.alphanums.012.or.hyp-hens!!!")[0]
        assert not network.is_valid_hostname(
            "section.may.not.start.with.-hyphen")[0]
        assert not network.is_valid_hostname(
            "section.may.not.end.with.hyphen-")[0]

        assert network.is_valid_hostname("0-0.")[0]
        assert network.is_valid_hostname("0.")[0]

        assert not network.is_valid_hostname("Lennart's Laptop")[0]

        assert not network.is_valid_hostname("own.hostname.cannot.end.in.dot.",
                                             local=True)[0]
Exemplo n.º 10
0
    def is_valid_hostname_test(self):

        self.assertFalse(network.is_valid_hostname("")[0])
        self.assertFalse(network.is_valid_hostname(None)[0])

        # section length < 64
        self.assertTrue(network.is_valid_hostname("h" * 63)[0])
        self.assertFalse(network.is_valid_hostname("h" * 64)[0])

        # length < 256
        self.assertTrue(
            network.is_valid_hostname("section." * 31 + "section")[0])
        self.assertFalse(
            network.is_valid_hostname("section." * 31 + "sectionx")[0])

        self.assertFalse(
            network.is_valid_hostname("section.must.be..nonempty.")[0])
        self.assertFalse(
            network.is_valid_hostname(".section.must.be.nonempty.")[0])
        self.assertTrue(
            network.is_valid_hostname(
                "section.can.contain.only.alphanums.012.or.hyp-hens")[0])
        self.assertFalse(
            network.is_valid_hostname(
                "section.can.contain.only.alphanums.012.or.hyp-hens!!!")[0])
        self.assertFalse(
            network.is_valid_hostname("section.may.not.start.with.-hyphen")[0])
        self.assertFalse(
            network.is_valid_hostname("section.may.not.end.with.hyphen-")[0])

        self.assertTrue(network.is_valid_hostname("0-0.")[0])
        self.assertTrue(network.is_valid_hostname("0.")[0])

        self.assertFalse(network.is_valid_hostname("Lennart's Laptop")[0])