This page provides a high-level roadmap for implementing the Is_anaconda_broken_proposal project. More detailed tasks can be found in autoqa TRAC roadmap. We follow these steps to define the methods by which we initiate testing
Step 1:Setup test enviroment
- Virtualization
- python-fedora installed
- libvirt installed
- qemu-kvm installed
- python-virtinst installed
- pax installed
- service libvirtd started
- Logging
- service rsyslog started
- rsyslog listening on specific port
Step 2: Identifying boot methods, preparing installation media and checking media sanity
Method | Files | Sanity | Implementation |
---|---|---|---|
URL | initrd.img, vmlinuz | sha256sum,md5sum,version | url_install/url_sanity.py |
DVD | DVD.iso | size,sha256sum, md5sum | dvd_install/dvd_sanity.py |
CD | 4 CD.iso | size,sha256sum, md5sum | cd_install/cd_sanity.py |
Minimal Boot Media | boot.iso | size,sha256sum, md5sum | bootiso_install/bootiso_sanity.py |
Live | live.iso | size,sha256sum, md5sum | live_install/live_sanity.py |
Step 3: Preparing kick start file
Most of the test cases can be covered by configuring different kick start files. As the startup, the typical kick start template is choose to be implemented.
Installation Kick Start Options
Description | Scripts | Test Case | |
---|---|---|---|
Partitioning | autopart |
# Clear the Master Boot Record zerombr # Partition clearing information clearpart --all --initlabel # Disk partitioning information autopart |
QA:Testcase Anaconda autopart install |
autopart encrypted | # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all --initlabel # Disk partitioning information autopart --encrypted --passphrase=redhat |
QA:Testcase Anaconda autopart (encrypted) install | |
specify partition | # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all --initlabel # Disk partitioning information part / --fstype="ext4" --size=3000 part /boot --fstype="ext4" --size=500 part swap --fstype="swap" --size=500 |
||
Install Source | Http | repo=http://download.fedora.redhat.com/pub/fedora/linux/development/i386/os |
QA/TestCases/InstallSourceHttp |
Anonymous Ftp | repo=ftp://download.fedora.redhat.com/pub/fedora/linux/development/i386/os |
QA/TestCases/InstallSourceFtpAnonymous | |
NonAnonymous Ftp | repo=ftp://USER:PASS@download.fedora.redhat.com/pub/fedora/linux/development/i386/os |
QA/TestCases/InstallSourceFtpNonAnonymous |
Upgrade Kick Start Options
Description | Scripts | Test Case | |
---|---|---|---|
Boot loader | Install new bootloader |
# System bootloader configuration bootloader --location=mbr |
QA:Testcase Anaconda Upgrade New Bootloader |
Do not install a bootloader | # System bootloader configuration bootloader --location=none |
QA:Testcase Anaconda Upgrade Skip Bootloader | |
Upgrade Exiting boot loader | # System bootloader configuration bootloader --location=none --upgrade |
QA:Testcase Anaconda Upgrade Update Bootloader |
Rescure Kick Start Options List test scenarios,it will make clear that which suite needs to support.
Test Scenarios | ||||||
---|---|---|---|---|---|---|
Boot Method [1] | ||||||
Test | DVD | CD | boot.iso | PXE images | efidisk.img | Live Image |
Installation Method [2][3] | ||||||
autodetect cdrom | yes | yes | yes | yes | yes | no |
repo=cdrom | yes | yes | yes | yes | yes | no |
repo=http://host/path | yes | yes | yes | yes | yes | no |
repo=ftp://[user:passwd@]server/path | yes | yes | yes | yes | yes | no |
repo=nfs:server:/path | yes | yes | yes | yes | yes | no |
repo=nfsiso:server:/path | yes | yes | yes | yes | yes | no |
repo=hd:device/path | yes | yes | yes | yes | yes | no |
repo=hdiso: | yes | yes | yes | yes | yes | no |
repo=livecd: | no | no | no | no | no | yes |
Methods to locate kickstart file [3] | ||||||
ks (autodetect from dhcp ???(default is nfs)) | yes | yes | yes | yes | yes | unknown |
ks=http://server/path | yes | yes | yes | yes | yes | unknown |
ks=ftp://[user:passwd@]server/path | yes | yes | yes | yes | yes | unknown |
ks=nfs:server:/path | yes | yes | yes | yes | yes | unknown |
ks=file:/path | yes | yes | yes | yes | yes | unknown |
ks=hd:device:/path | yes | yes | yes | yes | yes | unknown |
ks=bd:biosdevice:/path | yes | yes | yes | yes | yes | unknown |
ks=floppy | yes | yes | yes | yes | yes | unknown |
ks=cdrom | yes | yes | yes | yes | yes | unknown |
Methods to locate updates.img | ||||||
updates | yes | yes | yes | yes | yes | no |
updates=http | yes | yes | yes | yes | yes | no |
images/updates.img | no | no | no | yes | yes | no |
RHUpdates | no | no | no | yes | yes | no |
Methods to determine display device | ||||||
graphical | yes | yes | yes | yes | yes | yes |
text | yes | yes | yes | yes | yes | yes |
vnc | yes | yes | yes | yes | yes | no |
cmdline | yes | yes | yes | yes | yes | no |
serial console=ttyS0 | yes | yes | yes | yes | yes | no |
telnet | yes | yes | yes | yes | yes | no |
Methods to choose kickstart network device [3] | ||||||
ksdevice=link | yes | yes | yes | yes | yes | no |
ksdevice=bootif | yes | yes | yes | yes | yes | no |
ksdevice=eth0 | yes | yes | yes | yes | yes | no |
ksdevice=AA:BB:CC:DD:EE:FF | yes | yes | yes | yes | yes | no |
Methods to activate network device | ||||||
ip=dhcp | yes | yes | yes | yes | yes | no |
ip=a.b.c.d | yes | yes | yes | yes | yes | no |
dns= | yes | yes | yes | yes | yes | no |
gateway= | yes | yes | yes | yes | yes | no |
netmask= | yes | yes | yes | yes | yes | no |
Step 4: Creating Virt Guest
virt-install is adopted to initialize the guest. The functions to create guest with virt-install from url, DVD,ect. should be defined firstly. The following functions are defined in the class VirtGuest located in /lib/python/virtguest.py.
Method | Function |
---|---|
URL | url_create() |
DVD,CD,boot.iso | iso_create() |
Identify potential test drivers that trigger off of those events.
- URL install source available (typically, http://download.fedoraproject.org/pub/fedora/linux/development/15/i386/os)
- url_sanity.py (for provided
images/boot.iso
) - url_install.py
- bootiso_install.py
- pxe_install.py (kind of silly, but a possible future test)
- url_sanity.py (for provided
- DVD image(s) available (typically, somewhere on http://serverbeach1.fedoraproject.org/pub/alt/stage/)
- dvd_sanity.py
- dvd_install.py
- hddvc_install.py
- nfsdvc_install.py
- CD image(s) available (typically, somewhere on http://serverbeach1.fedoraproject.org/pub/alt/stage/)
- cd_sanity.py
- cd_install.py
- hdcd_install.py
- nfscd_install.py
Step 5 : Logging and watching the steps of installation
Get the installation output and logs at every step:
Stage | Log file | End label |
---|---|---|
Boot | boot.log | Greetings |
Stage1 | stage1.log | Running anaconda [version], system installer - please wait |
Stage2 | stage2.log |
Key
Set priorities for each test. The test drivers will support the tests with high priority.
Colour | Explanation |
---|---|
yes | supported and default (high priority) |
yes | supported (medium priority) |
yes | supported (low priority) |
no | unsupported configuration |
unknown | unknown |
References
- ↑ Boot Method: http://docs.fedoraproject.org/en-US/Fedora/14/html/Installation_Guide/ch04s06.html
- ↑ Installation Method: http://docs.fedoraproject.org/en-US/Fedora/14/html/Installation_Guide/s1-installmethod-x86.html
- ↑ 3.0 3.1 3.2 Anaconda Boot Options: http://fedoraproject.org/wiki/Anaconda/Options