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
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
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
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)
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)
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)
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)
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])
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]
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])