| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Merge baseudev into storage.udev.
|
| |
|
| |
|
|
|
|
|
| |
We now use ksdata and execute methods for storing and writing
configuration.
|
|
|
|
|
|
|
| |
ksdata are updated in NetworkSpoke.apply from ifcfg files.
At the end of installation we need to modify ifcfg files
(network configuration) for devices used by storage and to
set ONBOOT defaults. So update also ksdata.
|
|
|
|
|
|
|
|
| |
The storage instance contains a platform instance, so there's no need
to pass one in explicitly.
Also, setDefaultPartitioning seems to be a good place to set fstype
for boot requests only once.
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
Makefile.am
anaconda
data/systemd/anaconda.target
pyanaconda/bootloader.py
pyanaconda/constants.py
pyanaconda/iutil.py
pyanaconda/kickstart.py
pyanaconda/network.py
pyanaconda/vnc.py
scripts/makeupdates
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We were using an algorithm that suggested the swap size as 2 GB + size of
RAM, but this resulted in huge swaps on machines with a lot of RAM. The new
algorithm comes from the discussion with other teams.
(ported 84b3444a277b73abeaddf7d4b186a79569eb56d2 from rhel6-branch)
(ported 37415063594d00c896ff3c50496582f0c4e9e3d9 from rhel6-branch)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is almost the final step, the object is not used anymore,
I am keeping the rest only not to forget to handle what is left:
- I need to look at imageInstall
- creating default ifcfg files (setDefaultConfig) should go to
dracut or some network initialization step
The whole patchset removes anaconda.network object aiming to have all
data/configuration in ksdata.
The object was needed for our GUI using nm-c-e. We used to keep list of device
configuration objects (basically ifcfg dictionaries) in it so that we could
tweak them to be able to use nm-c-e for configuration/activation of devices.
Now it seems we can do without the list although we still need to do some
modifications of ifcfg files at the end of installation (setting onboot policy,
setting values for devices used for storage)
Hopefuly we'll be able to represent all the data stored in network object
in ksdata.
Following to the patchset I want to update ksdata with NetworkData objects
for all devices and use it to replace network.getDevices(). I have to think
where it should happen:
- in kickstart.py
- or somewhere in pre-gui network initialization (so that it happens also
for non-ks cases) where we e.g. activate default device if needed.
- or in initialize of standalone spoke - seems to late, we'll need it
already for eventual bring-up of network
-----
To sum up what the network.py serves for now:
Some of network utility functions (more of them are in isys):
- hostname sanity checking
- ip sanity checking
- hostname resolution
- status of networking
- connected?
- list of active devices
- logging (ifcfg files)
Network configuration:
- hostname setting (getting?)
- note: storage (lvm, raid) is using hostname for default names
- ksdevice resolution (link, MAC address, bootif)
- probably we'll be able to remove it, now it is only used
for unspecified --device in kickstart network command
- write kickstart (currently from ifcfg config)
- used by apply method
- write dracut arguments (from ifcfg config)
- note: depends on storage
- modify configuration of target system (ifcfg files)
- note: depends on storage
- ONBOOT policy (differs on rhel and Fedora)
- FCoE - ONBOOT=yes the devices
- root on iSCSI - NM_CONTROLLED=no for root on iscsi
(there is a NM BZ to fix this)
- write /etc/sysconfig/network configuration
- this should be reviewed
- copy network configuration files to system
- ifcfg-<iface> files and wireless key-<iface> files
- dhclient-<iface>.conf files
(dhcpclass and dhcp timeout which is not supported in noloader)
- /etc/sysconfig/network
- /etc/resolv.conf - genrated by NM
- /etc/udev/rules.d/70-persistent-net.rules (review)
- disable ipv6 on target system (noipv6 boot/ks option)
|
| |
| |
| |
| |
| |
| |
| | |
Our tangled set of imports means that anaconda was still trying to import
partIntfHelpers through dispatch and rescue mode. This patch breaks those
imports (which likely further breaks rescue and upgrade modes) and makes
the gui work again.
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
Makefile.am
anaconda
anaconda.spec.in
loader/loader.c
loader/net.c
loader/unpack.c
po/POTFILES.in
pyanaconda/__init__.py
pyanaconda/bootloader.py
pyanaconda/cmdline.py
pyanaconda/constants.py
pyanaconda/dispatch.py
pyanaconda/errors.py
pyanaconda/flags.py
pyanaconda/iutil.py
pyanaconda/kickstart.py
pyanaconda/platform.py
pyanaconda/storage/__init__.py
pyanaconda/storage/devicetree.py
pyanaconda/storage/fcoe.py
pyanaconda/storage/formats/swap.py
pyanaconda/storage/iscsi.py
pyanaconda/storage/partitioning.py
pyanaconda/yuminstall.py
scripts/makeupdates
|
| |
| |
| |
| |
| |
| |
| |
| | |
This creates an ExecStartPre on the anaconda-sshd.service that will
check for a kickstart entry for sshpw. It will add/modify users
accordingly prior to launching the sshd service. Since now sshpw and
sshd bring up happens outside of and before anaconda starts, we can
remove sshd.py and any reference to it.
|
| |
| |
| |
| |
| |
| | |
When an installed system cannot be upgraded it may be helpful to know if
it was the product, version or arch that didn't match. This propagates
that info up from productUpgradable so that it can be show to the user.
|
| |
| |
| |
| | |
Things that should be on lvm should not necessarily be on btrfs.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
make runspoke SPOKE_MODULE=source
or
make runspoke SPOKE_MODULE=source SPOKE_CLASS=InstallSource
- runspoke now accepts the name of the module containing
the spoke the user wants to run on command line and
will find the spoke automatically
- as an optional second argument, the script accepts the
name of the spoke class
- install classes and gi introspection files are looked for
in anaconda sources first, so there is no need to install
the anaconda-widgets package to the system
- anaconda should use ANACONDA_DATA, ANACONDA_WIDGETS_DATA and
ANACONDA_INSTALL_CLASSES env variables to look for data files
if those variables are defined
- there was a circular dependency between yuminstall,
backend and kickstart modules, which caused import yuminstall
to fail, because:
yuminstall called backend, which called kickstart, which
requested NoSuchGroup from yuminstall. NoSuchGroup was
present in the source, but much later, so it hadn't been
evaluated yet and the import failed with missing symbol error.
|
| |
| |
| |
| |
| | |
Certain portions of the install are now implemented as kickstart scripts,
so they need to start being run.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Those appear to have a lot of information still in them that may not be
present either in pykickstart or elsewhere in anaconda. Those still won't
be called, but I'm not yet comfortable removing them entirely.
Also, use pykickstart to do the writeKS stuff now.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
I've first removed the definitions of getBackend from our standard install
classes. The base class returns None. For other products with their own
install classes, they can have getBackend return something. For our
products, we will fall back to looking up the payload class based on flags.
Note that payload.setup() still needs to be called, but this should be done
intentionally when it's needed since it must happen after the network is up
and storage is populated.
Note also that this adds more crud to Anaconda, but we're going to be removing
most of this object later so hopefully it won't be so bad. We'll also need
to better document install classes.
|
| | |
|
|/ |
|
|
|
|
|
|
| |
If no device was activated during install (e.g. DVD install),
set ONBOOT=yes for first wired device having link found.
(Which means the device will be brought up after system boot).
|
|
|
|
|
|
|
| |
When doing composes pungi (and lorax) uses a flag --isfinal, to set
a final release, otherwise it is considered a beta release by default.
This patch makes the final vs beta more consistent with the composes.
|
|
|
|
|
|
| |
Previously, with a 60G disk you'd end up with something like
50G/7G root/home split. With this change it's more like 39G/19G,
which is probably more what people would expect.
|
|
|
|
|
|
|
| |
This will avoid duplicities in the resulting kernel boot argument line.
The patch is merged from the rhel6-branch and since bootloader.py has been
overhauled the changes there are different.
|
|
|
|
| |
Use LVM by default.
|
|
|
|
| |
Follow the same convention as the other dispatcher methods.
|
|
|
|
| |
Follow the same convention as the other dispatcher methods.
|
|
|
|
|
|
|
|
| |
dispatch.skipStep("step", skip=0) is
dispatch.request_step("step") now and can not be unskipped again.
dispatch.stepInSkipList is dispatch.step_disabled and there's a function
for the inverse check: dispatch.step_enabled.
|
|
|
|
|
|
|
|
|
|
|
| |
This step is not scheduled by default, it is skipped for any text
installation and many kickstart commands (like autopart), it is requested
if the user selects "review partitioning layout" on the parttype screen.
There is a mechanism in autopartitioning that enables manual partitioning
screen (if available) when autopartitioning fails. Instead of checking the
availability this just tries to request the manual partitioning step and
catches DispatcherError for those cases where this is not possible.
|
|
|
|
|
| |
That means skipStep("step", permanent=1) is redundant. Also, since the new
dispatch interface does not support it, remove the skip=1 argument.
|
| |
|
|
|
|
|
|
| |
In particular, 'scheduled' will run if not explicitly skipped, 'skipped'
means 'is never going to be run' and 'requested' means 'will run and can
not be skipped'.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Involves:
- making the RescueInterface compatible with the gui and tui
interfaces (so they all can be instantiated in the same way)
- the rescue step is disabled by default and never returns. It is
enabled if kickstart/command line requires it.
- kickstart step is disabled by default, enabled only if a
kickstart file was provided.
- all the sshd methods (setting user accounts, generating keys)
were moved to a separete file, 'sshd.py'
- the order of actions during anaconda startup had to be changed
(setupDisplay() was called before we parsed kickstart which tells us
whether or not to use vnc)
Related: https://fedoraproject.org/wiki/Anaconda/Features/Rework_dispatch
|
|
|
|
|
|
| |
This was largely a duplicate of what we do when looking for upgradable
roots. Along the way, however, I've gotten rid of the ability to upgrade
from one arch to another. We were already saying it was unlikely to work.
|
| |
|
|
|
|
|
|
|
|
|
| |
In Fedora, for instance, there's no comps localization file (there's
neither a product.img).
This patch should make the installation tasks look translated
Related: rhbz#681404
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
By passing buildinstall --isbeta, this in turn gets passed to mk-images
which will then write out IsBeta=true to the .buildstamp file. anaconda
can then read that and make the right decision.
liveinst has to be different, of course.
|
| |
|
|
a real Python package.
Also updates the build and autotools stuff to work with the new structure
|