Bug 236915

Summary: add dogtail command to kickstart
Product: [Fedora] Fedora Reporter: Alexander Todorov <atodorov>
Component: pykickstartAssignee: Chris Lumens <clumens>
Status: CLOSED WONTFIX QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: wwoods
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-06-05 10:56:49 EDT Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Bug Depends On:    
Bug Blocks: 235704    
Attachments:
Description Flags
New option in pykickstart/parser.py
none
patch to pykicstart/data.py
none
Classes to handle dogtail command in commands/*.py, pykickstart v1.0
none
Import dogtail in commands/__init__.py, pykickstart v1.0
none
Add dogtail to F7 & RHEL5 in handlers/control.py, pykickstart v1.0 none

Description Alexander Todorov 2007-04-18 09:07:30 EDT
Description of problem:


Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.
  
Actual results:


Expected results:


Additional info:
Comment 1 Alexander Todorov 2007-04-18 09:11:04 EDT
Created attachment 152900 [details]
New option in pykickstart/parser.py

I hit enter accidently. Sorry for that.

New option "dogtail <url>" added to kickstart.
This is needed in order to support dogtail scripts in anaconda.
Comment 2 Alexander Todorov 2007-04-18 09:14:29 EDT
The rpm version is 0.43-1.el5.
The related Dogtail+Ananconda bug is: 
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=172891
Comment 3 Alexander Todorov 2007-04-18 10:34:40 EDT
Created attachment 152909 [details]
patch to pykicstart/data.py

added self.dogtail = "" in __init__
Comment 4 Chris Lumens 2007-04-20 13:30:36 EDT
We won't be able to put a change of this complexity into RHEL5 (since it needs
all the stuff in anaconda as well to really make sense) so I'm going to move
this to the Fedora product.  The pykickstart in Fedora is pretty different so
it'll take a bit of modification to make the patch work, but shouldn't be too
difficult.

I'll target this dogtail work for the first thing on F8.
Comment 5 Alexander Todorov 2007-04-30 11:18:57 EDT
It is better to use None instead of "" in
   self.dogtail = ""

Please consider this when modifying patch to work with Fedora.
Comment 6 Alexander Todorov 2007-05-03 07:55:19 EDT
Created attachment 154020 [details]
Classes to handle dogtail command in commands/*.py, pykickstart v1.0
Comment 7 Alexander Todorov 2007-05-03 07:55:57 EDT
Created attachment 154021 [details]
Import dogtail in commands/__init__.py, pykickstart v1.0
Comment 8 Alexander Todorov 2007-05-03 07:56:42 EDT
Created attachment 154022 [details]
Add dogtail to F7 & RHEL5 in handlers/control.py, pykickstart v1.0
Comment 9 Chris Lumens 2007-06-05 10:56:49 EDT
While we are interested in adding dogtail support to anaconda for this next
release, I don't know that it makes much sense to add it into kickstart as well.
 When you think about it, kickstart is an automated installation mechanism.  It
steps through things automatically, skipping steps that do not need to be
displayed because it already has the information those screens provide. 
Similarly, dogtail is an automated mechanism that will also steps through
anaconda screens automatically.  If kickstart is already stepping through them,
dogtail won't be able to do anything.

I think it makes more sense to provide this functionality with a command line
parameter.
Comment 10 Alexander Todorov 2007-06-05 11:22:47 EDT
(In reply to comment #9)
> Similarly, dogtail is an automated mechanism that will also steps through
> anaconda screens automatically.

Not always. Dogtail is automated GUI testing tool. Dogtail testcases may NOT
need to step over anaconda. It may perform tests independently of kickstart
(e.g. translation tests). Or trying to detect widget creation (exception message
dialog for example).

> I think it makes more sense to provide this functionality with a command line
> parameter.

There is a patch for a command line parameter:
https://bugzilla.redhat.com/bugzilla/attachment.cgi?id=154122

However kickstart is used for automated installation. Adding dogtail command may
be helpful to automate dogtail testing. AFAIK there is no way to specify command
line parameters with kickstart. Am I right?
Comment 11 Chris Lumens 2007-06-05 11:31:47 EDT
(In reply to comment #10)
> Not always. Dogtail is automated GUI testing tool. Dogtail testcases may NOT
> need to step over anaconda. It may perform tests independently of kickstart
> (e.g. translation tests). Or trying to detect widget creation (exception
message dialog for example).

Well the point here is that with kickstart, you're not going to see any of the
screens to perform tests on them.  The only way you'd get a screen would be to
remove information from the kickstart file, in which case you're now editing the
kickstart file for each run.

What I'm saying is that the automated nature of kickstart makes dogtail sort of
useless, since kickstart will skip over all the interested and complicated UIs
that we'll want to test with dogtail.

> There is a patch for a command line parameter:
> https://bugzilla.redhat.com/bugzilla/attachment.cgi?id=154122

I'll be reviewing this in a week or two after we get through some common Fedora
bugs and RHEL5 stuff.

> However kickstart is used for automated installation. Adding dogtail command may
> be helpful to automate dogtail testing. AFAIK there is no way to specify command
> line parameters with kickstart. Am I right?

Correct, command line parameters are processed before any kickstart file is
downloaded.  I can sort of see a point to having a kickstart file containing
just the dogtail script location, but that could also just as easily be added to
the PXE boot parameters.
Comment 12 Alexander Todorov 2007-06-06 09:55:52 EDT
(In reply to comment #11)
> What I'm saying is that the automated nature of kickstart makes dogtail sort of
> useless, since kickstart will skip over all the interested and complicated UIs
> that we'll want to test with dogtail.
> 

One may use kickstart to proceed up to screen X where is a new gui widget or
something of interest. This can be tested with Dogtail and then let kickstart
finish the rest of the installation.
An example:
A ks.cfg file containing all but the root password. This will result in anaconda
jumping straigth to the root password entry screen. A dogtail testcase is
waiting for this screen and performs some check (e.g. is the translation
correct, are all strings translated, are buttons, textboxes enabled). Then it
fills the textboxes with root password and clicks next. From this step anaconda
continues with installing packages since it has all information needed.
Comment 16 Alexander Todorov 2007-06-08 06:11:59 EDT
Another thing:
AFAIK anaconda has limit of command line parameters length. It's 255 chars or
something like that. A longer dogtail url combined with other parameters can
easily go beyond that limit.