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: Identify boot methods, retrieve files and check file 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 2: Prepare kick start file to cover test cases
Most of the test cases can be covered by configure different kick start files. There are kickstart templates in different installation method folders.
Method | Kick Start File Template | |
---|---|---|
Install | URL | /url_install/ks.cfg |
DVD | dvd_install/ks.cfg | |
CD | cd_install/ks.cfg | |
boot.iso | bootiso_install/ks.cfg | |
Upgrade | ||
Rescure |
The kick start options are below [1]:
Install Kick start options | |||||
---|---|---|---|---|---|
Operation | Options | Values | Description | Required | Typical |
Template (these options has been written in kickstart template.) | |||||
mode | text | text | |||
graphical | graphical | ||||
reboot | --reject | reboot | |||
firstboot | --enable or --enabled | no | |||
--disable or --disabled | |||||
--reconfig | |||||
shutdown | shutdown | ||||
poweroff | no | poweroff | |||
halt | no | halt | |||
keyboard | keyboard us | ||||
lang | lang en_US.UTF-8 | ||||
timezone | --utc | timezone --utc America/New_York | |||
rootpw | --iscrypted/--plaintext | rootpw --iscrypted $1$Cuh1FaJT$ogG37tqIhVDeq27uvfAYK1 | |||
--lock | |||||
install | url | url --url | |||
cdrom | cdrom | ||||
harddrive | |||||
nfs | |||||
selinux | --disabled | style="font-style:italic;" | |||
--enforcing | |||||
--permissive | selinux --permissive | ||||
firewall | --enabled or --enable | ||||
--disabled or --disable | firewall --disabled | ||||
--trust= | |||||
<incoming> | |||||
--port= | |||||
--service= | |||||
Disk Partition | |||||
clearpart | --all | ||||
--drives | |||||
--initlabel | |||||
--linux | |||||
--none | |||||
zerombr | zerombr | zerombr | |||
autopart | autopart | ||||
--encrypted --passphrase | |||||
part or partition | --size | ||||
--grow | |||||
--maxsize | |||||
--noformat | |||||
--onpart= or --usepart= | |||||
--ondisk= or --ondrive= | |||||
--asprimary | |||||
--fsprofile= | |||||
--fstype= | |||||
--fsoptions= | |||||
--label= | |||||
--recommended | |||||
--onbiosdisk= | |||||
--encrypted | |||||
--passphrase= | |||||
--escrowcert=<url> | |||||
--backuppassphrase | |||||
ignoredisk | ignoredisk --drives=[disk1,disk2,...] | no | |||
ignoredisk --only-use=[disk1,disk2,...] | |||||
autostep | --autoscreenshot | no | |||
bootloader | --append | yes | |||
--driveorder | |||||
--location | |||||
--password | |||||
--md5pass | |||||
--upgrade | |||||
--timeout | |||||
comdline | |||||
device | --opts | ||||
dmraid | dmraid --name= --dev= | ||||
group | group --name=<name> [--gid=<gid>] | ||||
logging | --host= | no | |||
--port= | |||||
--level= | |||||
raid | --level | no | |||
--device | |||||
--spares= | |||||
--fstype | |||||
--fsoptions | |||||
--label= | |||||
--noformat | |||||
--useexisting | |||||
--encrypted | |||||
--passphrase= | |||||
--escrowcert=<url> | |||||
--backuppassphrase | |||||
repo | --name= | no | |||
--baseurl= | |||||
--mirrorlist= | |||||
--cost= | |||||
--excludepkgs= | |||||
--includepkgs= | |||||
--proxy=[protocol://][username[:password]@]host[:port] | |||||
--ignoregroups=true | |||||
--noverifyssl | |||||
rescue | --romount] | no | |||
sshpw | --username | no | |||
--plaintext | |||||
--lock | |||||
skipx | skipx | no | skipx | ||
updates | updates [URL] | ||||
services | --enabled= | no | |||
--disabled= | |||||
user | --name= | no | |||
--gecos= | |||||
--groups= | |||||
--homedir= | |||||
--lock | |||||
--password= | |||||
--plaintext | |||||
--shell= | |||||
--uid= | |||||
vnc | --host= | no | |||
--port= | |||||
--password= | |||||
volgroup | <name> | no | |||
--noformat | |||||
--useexiting | |||||
--pesize | |||||
xconfig | --defaultdesktop= | ||||
--startxonboot | |||||
zfcp | --devnum= | ||||
--fcplun= | |||||
--wwpn= |
List test scenarios,it will make clear that which suite needs to
support.
Test Scenarios | ||||||
---|---|---|---|---|---|---|
Boot Method [2] | ||||||
Test | DVD | CD | boot.iso | PXE images | efidisk.img | Live Image |
Installation Method [3][4] | ||||||
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 [4] | ||||||
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 [4] | ||||||
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 3: Install Fedora
from virtguest import VirtGuest, the methods to initialize a guest for both tree compose and iso image have been implemented.
Identify potential test drivers that trigger off of those events.
- URL install source available (typically, http://download.fedoraproject.org/pub/fedora/linux/development/13/i386/os)
- url_install.py
- iso_sanity.py (for provided
images/boot.iso
) - bootiso_install.py
- pxe_install.py (kind of silly, but a possible future test)
- DVD image(s) available (typically, somewhere on http://serverbeach1.fedoraproject.org/pub/alt/stage/)
- iso_sanity.py
- dvd_install.py
- hdiso_install.py
- nfsiso_install.py
- CD image(s) available (typically, somewhere on http://serverbeach1.fedoraproject.org/pub/alt/stage/)
- iso_sanity.py
- cd_install.py
- hdiso_install.py
- nfsiso_install.py
Step 5
Write test drivers using requirements gathered in steps #2,#3,#4
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
- ↑ Kick start options: http://fedoraproject.org/wiki/Anaconda/Kickstart
- ↑ 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
- ↑ 4.0 4.1 4.2 Anaconda Boot Options: http://fedoraproject.org/wiki/Anaconda/Options