Lines 456-462
class Device(object):
|
Link Here
|
---|
|
456 |
self.options.sort() |
456 |
self.options.sort() |
457 |
self._leftover.sort() |
457 |
self._leftover.sort() |
458 |
|
458 |
|
459 |
def to_ucr(self): |
459 |
def to_ucr(self, options=None): |
460 |
"""Returns a dict of UCR variables to set or unset. |
460 |
"""Returns a dict of UCR variables to set or unset. |
461 |
Values which are None should be unset. |
461 |
Values which are None should be unset. |
462 |
""" |
462 |
""" |
Lines 506-512
class Device(object):
|
Link Here
|
---|
|
506 |
|
506 |
|
507 |
vals['interfaces/%s/ipv6/acceptRA' % (name)] = str(bool(self.ip6dynamic)).lower() |
507 |
vals['interfaces/%s/ipv6/acceptRA' % (name)] = str(bool(self.ip6dynamic)).lower() |
508 |
|
508 |
|
509 |
for i, option in enumerate(self.options): |
509 |
for i, option in enumerate(self.options + (options or [])): |
510 |
vals['interfaces/%s/options/%d' % (name, i)] = option |
510 |
vals['interfaces/%s/options/%d' % (name, i)] = option |
511 |
|
511 |
|
512 |
return vals |
512 |
return vals |
|
606 |
super(VLAN, self).validate_name() |
606 |
super(VLAN, self).validate_name() |
607 |
if not '.' in self.name: |
607 |
if not '.' in self.name: |
608 |
raise DeviceError(_('Invalid device name: %r') % (self.name,)) |
608 |
raise DeviceError(_('Invalid device name: %r') % (self.name,)) |
609 |
if not (1 <= self.vlan_id <= 4096): |
609 |
if not (1 <= self.vlan_id <= 4095): |
610 |
raise DeviceError(_('Invalid VLAN ID. Must be between 1 and 4096.'), self.name) |
610 |
raise DeviceError(_('Invalid VLAN ID. Must be between 1 and 4095.'), self.name) |
611 |
|
611 |
|
612 |
@property |
612 |
@property |
613 |
def dict(self): |
613 |
def dict(self): |
|
618 |
)) |
618 |
)) |
619 |
return d |
619 |
return d |
620 |
|
620 |
|
|
|
621 |
def parse_ucr(self): |
622 |
super(Bond, self).parse_ucr() |
623 |
options = [] |
624 |
for option in self.options: |
625 |
try: |
626 |
name, value = option.split(None, 1) |
627 |
except ValueError: |
628 |
name, value = option, '' |
629 |
|
630 |
if name == 'vlan-raw-device': |
631 |
pass |
632 |
else: |
633 |
options.append(option) |
634 |
self.options = options |
635 |
|
636 |
def to_ucr(self): |
637 |
options = [ |
638 |
'vlan-raw-device %s' % (self.parent_device,), |
639 |
] |
640 |
return super(Bond, self).to_ucr(options) |
641 |
|
621 |
|
642 |
|
622 |
class Bond(Device): |
643 |
class Bond(Device): |
623 |
"""A network bonding interface""" |
644 |
"""A network bonding interface""" |
|
731 |
'bond-slaves %s' % (' '.join(self.bond_slaves),), |
752 |
'bond-slaves %s' % (' '.join(self.bond_slaves),), |
732 |
'bond-mode %s' % (self.bond_mode,), |
753 |
'bond-mode %s' % (self.bond_mode,), |
733 |
] |
754 |
] |
734 |
if self.bond_primary: |
755 |
if self.bind_mode == 1 and self.bond_primary: |
735 |
options.append('bond-primary %s' % (' '.join(self.bond_primary),)) |
756 |
options.append('bond-primary %s' % (' '.join(self.bond_primary),)) |
736 |
if self.miimon is not None: |
757 |
if self.miimon is not None: |
737 |
options.append('miimon %s' % (self.miimon,)) |
758 |
options.append('miimon %s' % (self.miimon,)) |
738 |
|
759 |
|
739 |
vals = super(Bond, self).to_ucr() |
760 |
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 |
|
761 |
|
744 |
|
762 |
|
745 |
class Bridge(Device): |
763 |
class Bridge(Device): |
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__': |