View | Details | Raw Unified | Return to bug 30816 | Differences between
and this patch

Collapse All | Expand All

(-)a/branches/ucs-3.2/ucs-3.2-0/base/univention-system-setup/umc/js/de.po (-13 / +13 lines)
 Lines 95-101   msgid "" Link Here 
95
"<i>Bond</i> interfaces allows two or more physical network interfaces to be "
95
"<i>Bond</i> interfaces allows two or more physical network interfaces to be "
96
"coupled."
96
"coupled."
97
msgstr ""
97
msgstr ""
98
"<i>Bond</i> Geräte erlaubt einen Verbund von einem oder mehreren "
98
"<i>Bond</i> Netzwerkschnittstellen erlaubt einen Verbund von einem oder mehreren "
99
"physikalischen Netzwerkgeräten."
99
"physikalischen Netzwerkgeräten."
100
100
101
#: umc/js/setup/InterfaceWizard.js: umc/js/setup/InterfaceWizard.js:
101
#: umc/js/setup/InterfaceWizard.js: umc/js/setup/InterfaceWizard.js:
 Lines 103-109   msgid "" Link Here 
103
"<i>Bridge</i> interfaces allows a physical network interface to be shared to "
103
"<i>Bridge</i> interfaces allows a physical network interface to be shared to "
104
"connect one or more network segments. "
104
"connect one or more network segments. "
105
msgstr ""
105
msgstr ""
106
"<i>Bridge</i> Geräte erlaubt physikalischen Netzwerkgeräten gemeinsam "
106
"<i>Bridge</i> Netzwerkschnittstellen erlaubt physikalischen Netzwerkgeräten gemeinsam "
107
"benutzt zu werden um ein oder mehrere Netzwerksegemente miteinander zu "
107
"benutzt zu werden um ein oder mehrere Netzwerksegemente miteinander zu "
108
"verbinden."
108
"verbinden."
109
109
 Lines 120-126   msgid "" Link Here 
120
"<i>VLAN</i> interfaces can be used to separate network traffic logically "
120
"<i>VLAN</i> interfaces can be used to separate network traffic logically "
121
"while using only one or more physical network interfaces. "
121
"while using only one or more physical network interfaces. "
122
msgstr ""
122
msgstr ""
123
"<i>VLAN</i> Geräte können benutzt werden, um Netzwerkverkehr logisch mit nur "
123
"<i>VLAN</i> Netzwerkschnittstellen können benutzt werden, um Netzwerkverkehr logisch mit nur "
124
"einem oder mehreren physikalischen Netzwerkgeräten zu trennen."
124
"einem oder mehreren physikalischen Netzwerkgeräten zu trennen."
125
125
126
#: umc/js/setup/BasisPage.js:
126
#: umc/js/setup/BasisPage.js:
 Lines 193-223   msgstr "Bond konfiguration" Link Here 
193
193
194
#: umc/js/setup/InterfaceWizard.js:
194
#: umc/js/setup/InterfaceWizard.js:
195
msgid "Bond interface configuration"
195
msgid "Bond interface configuration"
196
msgstr "Bond Gerätekonfiguration"
196
msgstr "Bond Netzwekkonfiguration"
197
197
198
#: umc/js/setup/InterfaceWizard.js:
198
#: umc/js/setup/InterfaceWizard.js:
199
msgid "Bond primary"
199
msgid "Bond primary"
200
msgstr ""
200
msgstr "Primäre Bond-Netzwerkschnittstellen"
201
201
202
#: umc/js/setup/InterfaceWizard.js: umc/js/setup/Interfaces.js:
202
#: umc/js/setup/InterfaceWizard.js: umc/js/setup/Interfaces.js:
203
msgid "Bond slaves"
203
msgid "Bond slaves"
204
msgstr ""
204
msgstr "Bond Kindnetzwerkschnittstellen"
205
205
206
#: umc/js/setup/types.js:
206
#: umc/js/setup/types.js:
207
msgid "Bonding"
207
msgid "Bonding"
208
msgstr ""
208
msgstr "Kanalbündelung (Bonding)"
209
209
210
#: umc/js/setup/types.js:
210
#: umc/js/setup/types.js:
211
msgid "Bridge"
211
msgid "Bridge"
212
msgstr ""
212
msgstr "Netzwerk-Bridge"
213
213
214
#: umc/js/setup/InterfaceWizard.js:
214
#: umc/js/setup/InterfaceWizard.js:
215
msgid "Bridge configuration"
215
msgid "Bridge configuration"
216
msgstr "Bridge konfiguration"
216
msgstr "Bridge-Konfiguration"
217
217
218
#: umc/js/setup/InterfaceWizard.js:
218
#: umc/js/setup/InterfaceWizard.js:
219
msgid "Bridge interface configuration"
219
msgid "Bridge interface configuration"
220
msgstr "Bridge Gerätekonfiguration"
220
msgstr "Bridge Netzwerkkonfiguration"
221
221
222
#: umc/js/setup/InterfaceWizard.js: umc/js/setup/Interfaces.js:
222
#: umc/js/setup/InterfaceWizard.js: umc/js/setup/Interfaces.js:
223
msgid "Bridge ports"
223
msgid "Bridge ports"
 Lines 376-382   msgstr "E-Mailadresse" Link Here 
376
376
377
#: umc/js/setup/types.js:
377
#: umc/js/setup/types.js:
378
msgid "Ethernet"
378
msgid "Ethernet"
379
msgstr ""
379
msgstr "Ethernet"
380
380
381
#: umc/js/setup/NetworkPage.js:
381
#: umc/js/setup/NetworkPage.js:
382
msgid "External name server"
382
msgid "External name server"
 Lines 409-415   msgstr "" Link Here 
409
409
410
#: umc/js/setup/InterfaceWizard.js:
410
#: umc/js/setup/InterfaceWizard.js:
411
msgid "Forwarding delay"
411
msgid "Forwarding delay"
412
msgstr ""
412
msgstr "Forwarding-Verzögerung"
413
413
414
#: umc/js/setup/BasisPage.js:
414
#: umc/js/setup/BasisPage.js:
415
msgid "Fully qualified domain name"
415
msgid "Fully qualified domain name"
 Lines 625-631   msgstr "Standorteinstellungen" Link Here 
625
625
626
#: umc/js/setup/InterfaceWizard.js:
626
#: umc/js/setup/InterfaceWizard.js:
627
msgid "MII link monitoring frequency"
627
msgid "MII link monitoring frequency"
628
msgstr ""
628
msgstr "MII-Trägerüberwachungsfrequenz"
629
629
630
#: umc/js/setup/SystemRolePage.js:
630
#: umc/js/setup/SystemRolePage.js:
631
msgid "Member server"
631
msgid "Member server"
(-)a/branches/ucs-3.2/ucs-3.2-0/base/univention-system-setup/umc/python/setup/network.py (-28 / +43 lines)
 Lines 200-205   class Interfaces(dict): Link Here 
200
				# set device order
200
				# set device order
201
				device.order = i
201
				device.order = i
202
				i += 1
202
				i += 1
203
				device.start = True
203
204
204
			devices = dict((device, (subdevs - leave)) for device, subdevs in devices.iteritems() if device not in leave)
205
			devices = dict((device, (subdevs - leave)) for device, subdevs in devices.iteritems() if device not in leave)
205
206
 Lines 290-299   class Device(object): Link Here 
290
		self._remove_old_fallback_variables()
291
		self._remove_old_fallback_variables()
291
292
292
		self.order = None
293
		self.order = None
293
		self.start = True
294
		self.start = False
294
295
		self.type = 'manual'
295
		if self.ip4dynamic:
296
			self.type = 'dhcp'
297
296
298
	def _remove_old_fallback_variables(self):
297
	def _remove_old_fallback_variables(self):
299
		# removes deprecated UCR variables from UCS <= 3.1-1... can be removed in future
298
		# removes deprecated UCR variables from UCS <= 3.1-1... can be removed in future
 Lines 304-309   class Device(object): Link Here 
304
		self.validate_name()
303
		self.validate_name()
305
		self.validate_ip4()
304
		self.validate_ip4()
306
		self.validate_ip6()
305
		self.validate_ip6()
306
		if self.ip4dynamic:
307
			self.type = 'dhcp'
308
		elif self.ipv4 or self.ipv6:
309
			self.type = 'static'
307
310
308
	def validate_name(self):
311
	def validate_name(self):
309
		"""
312
		"""
 Lines 414-422   class Device(object): Link Here 
414
417
415
		self.start = ucr.is_true(value=vals.pop('interfaces/%s/start' % (name), None))
418
		self.start = ucr.is_true(value=vals.pop('interfaces/%s/start' % (name), None))
416
419
417
		type_ = vals.pop('interfaces/%s/type' % (name), None)
420
		self.type = vals.pop('interfaces/%s/type' % (name), None)
418
		if type_ is not None:
419
			self.type = type_
420
421
421
		order = vals.pop('interfaces/%s/order' % (name), "")
422
		order = vals.pop('interfaces/%s/order' % (name), "")
422
		if order.isdigit():
423
		if order.isdigit():
 Lines 428-438   class Device(object): Link Here 
428
		address, netmask = vals.pop('interfaces/%s/address' % (name), ''), vals.pop('interfaces/%s/netmask' % (name), '24')
429
		address, netmask = vals.pop('interfaces/%s/address' % (name), ''), vals.pop('interfaces/%s/netmask' % (name), '24')
429
		if address:
430
		if address:
430
			self.ip4.append((address, netmask))
431
			self.ip4.append((address, netmask))
431
			# a link local address indicates that this interface is DHCP
432
			# a link-local address probably from a failed DHCP
432
			if address.startswith('169.254.'):
433
			if address.startswith('169.254.'):
433
				self.type = 'dhcp'
434
				self.type = 'dhcp'
435
			# FIXME PMH: the above look wrong: a manually configured lla is
436
			# still valid and may be preferred to an ever changing address when
437
			# dhcp fails.
434
438
435
		self.ip4dynamic = 'dhcp' == self.type
439
		self.ip4dynamic = self.type in ('dhcp', 'dynamic')
436
		self.ip6dynamic = ucr.is_true(value=vals.pop('interfaces/%s/ipv6/acceptRA' % (name), None))
440
		self.ip6dynamic = ucr.is_true(value=vals.pop('interfaces/%s/ipv6/acceptRA' % (name), None))
437
441
438
		for key in vals.copy():
442
		for key in vals.copy():
 Lines 456-462   class Device(object): Link Here 
456
		self.options.sort()
460
		self.options.sort()
457
		self._leftover.sort()
461
		self._leftover.sort()
458
462
459
	def to_ucr(self):
463
	def to_ucr(self, extra_options=None):
460
		"""Returns a dict of UCR variables to set or unset.
464
		"""Returns a dict of UCR variables to set or unset.
461
			Values which are None should be unset.
465
			Values which are None should be unset.
462
		"""
466
		"""
 Lines 474-481   class Device(object): Link Here 
474
		if self.start is not None:
478
		if self.start is not None:
475
			vals['interfaces/%s/start' % (name)] = str(bool(self.start)).lower()
479
			vals['interfaces/%s/start' % (name)] = str(bool(self.start)).lower()
476
480
477
		if isinstance(self.type, str):
481
		if isinstance(self.type, basestring):
478
			if self.type not in ('static', 'manual', 'dhcp', 'appliance-mode-temporary'):
482
			if self.type not in ('static', 'manual', 'dhcp', 'dynamic', 'appliance-mode-temporary'):
479
				MODULE.warn('Unknown interfaces/%s/type: %r' % (self.name, self.type))
483
				MODULE.warn('Unknown interfaces/%s/type: %r' % (self.name, self.type))
480
			vals['interfaces/%s/type' % (name)] = self.type
484
			vals['interfaces/%s/type' % (name)] = self.type
481
485
 Lines 506-512   class Device(object): Link Here 
506
510
507
		vals['interfaces/%s/ipv6/acceptRA' % (name)] = str(bool(self.ip6dynamic)).lower()
511
		vals['interfaces/%s/ipv6/acceptRA' % (name)] = str(bool(self.ip6dynamic)).lower()
508
512
509
		for i, option in enumerate(self.options):
513
		for i, option in enumerate(self.options + (extra_options or [])):
510
			vals['interfaces/%s/options/%d' % (name, i)] = option
514
			vals['interfaces/%s/options/%d' % (name, i)] = option
511
515
512
		return vals
516
		return vals
 Lines 606-613   class VLAN(Device): Link Here 
606
		super(VLAN, self).validate_name()
610
		super(VLAN, self).validate_name()
607
		if not '.' in self.name:
611
		if not '.' in self.name:
608
			raise DeviceError(_('Invalid device name: %r') % (self.name,))
612
			raise DeviceError(_('Invalid device name: %r') % (self.name,))
609
		if not (1 <= self.vlan_id <= 4096):
613
		if not (1 <= self.vlan_id <= 4095):
610
			raise DeviceError(_('Invalid VLAN ID. Must be between 1 and 4096.'), self.name)
614
			raise DeviceError(_('Invalid VLAN ID. Must be between 1 and 4095.'), self.name)
611
615
612
	@property
616
	@property
613
	def dict(self):
617
	def dict(self):
 Lines 618-623   class VLAN(Device): Link Here 
618
		))
622
		))
619
		return d
623
		return d
620
624
625
	def parse_ucr(self):
626
		super(Bond, self).parse_ucr()
627
		options = []
628
		for option in self.options:
629
			try:
630
				name, value = option.split(None, 1)
631
			except ValueError:
632
				name, value = option, ''
633
634
			if name == 'vlan-raw-device':
635
				pass
636
			else:
637
				options.append(option)
638
		self.options = options
639
640
	def to_ucr(self):
641
		options = [
642
			'vlan-raw-device %s' % (self.parent_device,),
643
		]
644
		return super(Bond, self).to_ucr(options)
645
621
646
622
class Bond(Device):
647
class Bond(Device):
623
	"""A network bonding interface"""
648
	"""A network bonding interface"""
 Lines 649-656   class Bond(Device): Link Here 
649
			# make sure that used interfaces does not have any IPv4 or IPv6 address
674
			# make sure that used interfaces does not have any IPv4 or IPv6 address
650
			idevice.disable_ips()
675
			idevice.disable_ips()
651
676
652
		self.type = 'manual'
653
654
	def validate(self):
677
	def validate(self):
655
		super(Bond, self).validate()
678
		super(Bond, self).validate()
656
679
 Lines 731-745   class Bond(Device): Link Here 
731
				'bond-slaves %s' % (' '.join(self.bond_slaves),),
754
				'bond-slaves %s' % (' '.join(self.bond_slaves),),
732
				'bond-mode %s' % (self.bond_mode,),
755
				'bond-mode %s' % (self.bond_mode,),
733
				]
756
				]
734
		if self.bond_primary:
757
		if self.bind_mode == 1 and self.bond_primary:
735
			options.append('bond-primary %s' % (' '.join(self.bond_primary),))
758
			options.append('bond-primary %s' % (' '.join(self.bond_primary),))
736
		if self.miimon is not None:
759
		if self.miimon is not None:
737
			options.append('miimon %s' % (self.miimon,))
760
			options.append('miimon %s' % (self.miimon,))
738
761
739
		vals = super(Bond, self).to_ucr()
762
		return super(Bond, self).to_ucr(options)
740
		for i, option in enumerate(options, start=len(self.options)):
741
			vals['interfaces/%s/options/%d' % (self.name, i)] = option
742
		return vals
743
763
744
764
745
class Bridge(Device):
765
class Bridge(Device):
 Lines 763-770   class Bridge(Device): Link Here 
763
			# make sure that used interfaces does not have any IPv4 or IPv6 address
783
			# make sure that used interfaces does not have any IPv4 or IPv6 address
764
			idevice.disable_ips()
784
			idevice.disable_ips()
765
785
766
		self.type = 'manual'
767
768
	def validate(self):
786
	def validate(self):
769
		super(Bridge, self).validate()
787
		super(Bridge, self).validate()
770
788
 Lines 812-821   class Bridge(Device): Link Here 
812
				'bridge_fd %d' % (self.bridge_fd,),
830
				'bridge_fd %d' % (self.bridge_fd,),
813
				]
831
				]
814
832
815
		vals = super(Bridge, self).to_ucr()
833
		return super(Bridge, self).to_ucr(options)
816
		for i, option in enumerate(options, start=len(self.options)):
817
			vals['interfaces/%s/options/%d' % (self.name, i)] = option
818
		return vals
819
834
820
835
821
if __name__ == '__main__':
836
if __name__ == '__main__':

Return to bug 30816