# # powerel.py # # (c) copyright 2016, VanTosh, All rights reserved. # Author: Toshaan Bharvani # License: GNU General Public License v2 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # from pyanaconda.installclass import BaseInstallClass from pyanaconda.constants import * from pyanaconda.product import * from pyanaconda.kickstart import getAvailableDiskSpace from pyanaconda import network from pyanaconda import nm from blivet.partspec import PartSpec from blivet.platform import platform from blivet.devicelibs import swap from blivet.size import Size import types class InstallClass(BaseInstallClass): id = "powerel" name = "PowerEL" sortPriority = 20000 if not productName.startswith("PowerEL"): hidden = True defaultFS = "xfs" bootloaderTimeoutDefault = 5 # where did this come from ? #bootloaderExtraArgs = [] ignoredPackages = [ ] installUpdates = False _l10n_domain = "comps" efi_dir = "powerel" help_placeholder = "PowerELPlaceholder.html" help_placeholder_with_links = "PowerELPlaceholderWithLinks.html" def configure(self, anaconda): BaseInstallClass.configure(self, anaconda) BaseInstallClass.setDefaultPartitioning(self, anaconda.storage) def setNetworkOnbootDefault(self, ksdata): if ksdata.method.method not in ("url", "nfs"): return if network.has_some_wired_autoconnect_device(): return # choose the device used during installation # (ie for majority of cases the one having the default route) dev = network.default_route_device() or network.default_route_device(family="inet6") if not dev: return # ignore wireless (its ifcfgs would need to be handled differently) if nm.nm_device_type_is_wifi(dev): return network.update_onboot_value(dev, "yes", ksdata) def __init__(self): BaseInstallClass.__init__(self) class AtomicInstallClass(BaseInstallClass): id = "powerelatomic" name = "PowerEL Atomic Host" sortPriority=21001 hidden = not productName.startswith(("PowerEL Atomic Host", "PowerEL Atomic")) def setDefaultPartitioning(self, storage): autorequests = [PartSpec(mountpoint="/", fstype=storage.defaultFSType, size=Size("1GiB"), maxSize=Size("3GiB"), grow=True, lv=True)] bootreqs = platform.setDefaultPartitioning() if bootreqs: autorequests.extend(bootreqs) disk_space = getAvailableDiskSpace(storage) swp = swap.swapSuggestion(disk_space=disk_space) autorequests.append(PartSpec(fstype="swap", size=swp, grow=False, lv=True, encrypted=True)) for autoreq in autorequests: if autoreq.fstype is None: if autoreq.mountpoint == "/boot": autoreq.fstype = storage.defaultBootFSType autoreq.size = Size("300MiB") else: autoreq.fstype = storage.defaultFSType storage.autoPartitionRequests = autorequests