def __init__(self, parent, existing=None): self.parent = parent self.existing = existing raid_names = {raid.name for raid in parent.model.all_raids()} if existing is None: title = _('Create software RAID ("MD") disk') label = _('Create') x = 0 while True: name = 'md{}'.format(x) if name not in raid_names: break x += 1 initial = { 'devices': {}, 'name': name, 'level': raidlevels_by_value["raid1"], 'size': '-', } else: raid_names.remove(existing.name) title = _('Edit software RAID disk "{name}"').format( name=existing.name) label = _('Save') name = existing.name if name.startswith('md/'): name = name[3:] devices = {} for d in existing.devices: devices[d] = 'active' for d in existing.spare_devices: devices[d] = 'spare' initial = { 'devices': devices, 'name': name, 'level': raidlevels_by_value[existing.raidlevel] } possible_components = get_possible_components( self.parent.model, existing, initial['devices'], lambda dev: dev.ok_for_raid) form = self.form = RaidForm( self.parent.model, possible_components, initial, raid_names) form.devices.widget.set_supports_spares( initial['level'].supports_spares) form.buttons.base_widget[0].set_label(label) connect_signal(form.level.widget, 'select', self._select_level) connect_signal(form.devices.widget, 'change', self._change_devices) connect_signal(form, 'submit', self.done) connect_signal(form, 'cancel', self.cancel) rows = form.as_rows() super().__init__( title, [Pile(rows), Text(""), self.form.buttons], 0, 0)
def __init__(self, parent, existing=None): self.parent = parent self.existing = existing vg_names = {vg.name for vg in parent.model.all_volgroups()} if existing is None: title = _('Create LVM volume group') label = _('Create') x = 0 while True: name = 'vg{}'.format(x) if name not in vg_names: break x += 1 initial = { 'devices': {}, 'name': name, 'size': '-', } else: vg_names.remove(existing.name) title = _('Edit volume group "{name}"').format(name=existing.name) label = _('Save') devices = {} key = "" for d in existing.devices: if d.type == "dm_crypt": key = d.key d = d.volume devices[d] = 'active' initial = { 'devices': devices, 'name': existing.name, 'encrypt': bool(key), 'password': key, 'confirm_password': key, } possible_components = get_possible_components( self.parent.model, existing, initial['devices'], lambda dev: dev.ok_for_lvm_vg) form = self.form = VolGroupForm( self.parent.model, possible_components, initial, vg_names) self.form.buttons.base_widget[0].set_label(label) self.form.devices.widget.set_supports_spares(False) connect_signal(form.devices.widget, 'change', self._change_devices) connect_signal(form, 'submit', self.done) connect_signal(form, 'cancel', self.cancel) rows = form.as_rows() super().__init__( title, [Pile(rows), Text(""), self.form.buttons], 0, 0)