View | Details | Raw Unified | Return to bug 39044
Collapse All | Expand All

(-)a/base/univention-system-setup/umc/python/setup/__init__.py (-8 / +10 lines)
 Lines 341-348   def cleanup(self, request): Link Here 
341
		util.cleanup()
341
		util.cleanup()
342
		MODULE.info('... cleanup done')
342
		MODULE.info('... cleanup done')
343
343
344
	@simple_response
344
	@simple_response(with_flavor=True)
345
	def validate(self, values=None):
345
	def validate(self, values=None, flavor=None):
346
		'''Validate the specified values given in the dict as option named "values".
346
		'''Validate the specified values given in the dict as option named "values".
347
		Return a dict (with variable names as key) of dicts with the structure:
347
		Return a dict (with variable names as key) of dicts with the structure:
348
		{ "valid": True/False, "message": "..." }'''
348
		{ "valid": True/False, "message": "..." }'''
 Lines 351-356   def validate(self, values=None): Link Here 
351
		messages = []
351
		messages = []
352
		values = values or {}
352
		values = values or {}
353
		orgValues = util.load_values()
353
		orgValues = util.load_values()
354
		is_wizard_mode = flavor == 'wizard'
354
355
355
		# determine new system role
356
		# determine new system role
356
		newrole = values.get('server/role', orgValues.get('server/role', ''))
357
		newrole = values.get('server/role', orgValues.get('server/role', ''))
 Lines 393-403   def _append(key, message): Link Here 
393
		_check('domainname', util.is_domainname, _("Please enter a valid fully qualified domain name (e.g. host.example.com)."))
394
		_check('domainname', util.is_domainname, _("Please enter a valid fully qualified domain name (e.g. host.example.com)."))
394
		hostname = allValues.get('hostname', '')
395
		hostname = allValues.get('hostname', '')
395
		domainname = allValues.get('domainname', '')
396
		domainname = allValues.get('domainname', '')
396
		if len('%s%s' % (hostname, domainname)) >= 63:
397
		if hostname or domainname:
397
			_append('domainname', _('The length of fully qualified domain name is greater than 63 characters.'))
398
			if len('%s%s' % (hostname, domainname)) >= 63:
398
		if hostname == domainname.split('.')[0]:
399
				_append('domainname', _('The length of fully qualified domain name is greater than 63 characters.'))
399
			_append('domainname', _("Hostname is equal to domain name."))
400
			if hostname == domainname.split('.')[0]:
400
		if not util.is_system_joined():
401
				_append('domainname', _("Hostname is equal to domain name."))
402
		if is_wizard_mode and not util.is_system_joined():
401
			if newrole == 'domaincontroller_master' and not values.get('domainname'):
403
			if newrole == 'domaincontroller_master' and not values.get('domainname'):
402
				_append('domainname', _("No fully qualified domain name has been specified for the system."))
404
				_append('domainname', _("No fully qualified domain name has been specified for the system."))
403
			elif not values.get('hostname'):
405
			elif not values.get('hostname'):
 Lines 460-466   def guess_domain(obj): Link Here 
460
					if guessed_domain:
462
					if guessed_domain:
461
						return guessed_domain
463
						return guessed_domain
462
464
463
		if not util.is_system_joined() and (newrole not in ['domaincontroller_master', 'basesystem'] or ad_member):
465
		if is_wizard_mode and not util.is_system_joined() and (newrole not in ['domaincontroller_master', 'basesystem'] or ad_member):
464
			if all(nameserver in values and not values[nameserver] for nameserver in ('nameserver1', 'nameserver2', 'nameserver3')):
466
			if all(nameserver in values and not values[nameserver] for nameserver in ('nameserver1', 'nameserver2', 'nameserver3')):
465
				# 'nameserver1'-key exists → widget is displayed → = not in UCS/debian installer mode
467
				# 'nameserver1'-key exists → widget is displayed → = not in UCS/debian installer mode
466
				if not any(interface.ip4dynamic or interface.ip6dynamic for interface in interfaces.values()):
468
				if not any(interface.ip4dynamic or interface.ip6dynamic for interface in interfaces.values()):

Return to bug 39044