You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
3.6 KiB
112 lines
3.6 KiB
6 years ago
|
#
|
||
|
# powerel.py
|
||
|
#
|
||
|
# (c) copyright 2016, VanTosh, All rights reserved.
|
||
|
# Author: Toshaan Bharvani <toshaan@vantosh.com>
|
||
|
# 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 <http://www.gnu.org/licenses/>.
|
||
|
#
|
||
|
|
||
|
|
||
|
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
|