- Sent cqtool out for code review
Introducing cqtoolI have implemented a new script called cqtool. This is to replace the unsupported /opt/rational/clearquest/bin/cqtool which is going away as of Clearquest 7.0. UCMWB utilized IBM/Rational's cqtool to perform certain actions. Additionally, as per Erik's RANCQ00014935 request to enhance UCMWB to be able to create child WORs a tool needed to be developed to do that. So the new cqtool solves the following issues:
- Provides a supported replacement for the following bits of UCMWB functionality:
- Cloning of WORs (Right click: Continue work in Clone on a closed non-orphan WOR)
- Creation of Helpdesk tickets (Tools: Submit Helpdesk Request)
- Adds the following functionality:
- Allows for creation of new WORs
- Allows for linking of parent WOR to child WOR
This is an involved process so I created this in a modularized fashion thus several Perl modules are involved. As per Ken's mandate, I am calling for a code review of what I have so far. Next I will hook this into UCMWB.
So far I have a cqperl script called cqtool. It relies on several Perl Modules, some of which I have added to Clearcase and our standard lib directory already (/cleartrig/ent/SNSD/muos/ccadm_tools/vobs/ranccadm/scripts/lib):
|Display||Module for providing consistent output||standard lib|
|CQTool||Handles communications with Clearquest||~p6258c/adm/lib|
|CreateWORUI||UI for CreateWOR||~p6258c/adm/lib|
|CreateHelpDeskUI||UI for CreateHelpDesk||~p6258c/adm/lib|
|Tk::MyText||Subclasses the Tk TextUndo|
widget. This is used for the description fields in both CreateWOR
and CreateHelpDesk. The subclassing was necessary in order to
provide for a modified callback that allows us to tell when the
widget has text and thus can set the Submit button to active.
Additionally there is a cqtool script itself which is a command line interface/driver that was initially used to test the functionality provided in the above modules. It has been oriented to be the primary interface to this functionality. The thought is that UCMWB will fire up cqtool in the background at start up and then, if and when it's functionality is needed, UCMWB will feed commands to the already running cqtool.
When run interactively, cqtool prompts for a command. It will also read commands from $ARGV, execute them and exit. So, in a sense, cqtool works like cleartool.
If you type help at the prompt the following is displayed:
cqtool Version 0.9: Program to talk to Clearquest Valid commands are: createwor: Create a new WOR createhd: Create a new Help Desk Ticket clone <wor> Clones a WOR link <parent wor> <child wor> Link a parent WOR to a child WOR exit|quit: Exits cqtool help: This display usage: Displays command line usage version: Displays version of cqtool
createwor and createhd both are Perl/Tk applications that interact with Clearquest and display a GUI that obtains the necessary and required fields to create a WOR or a Helpdesk ticket. Note, only the bare minimum fields are available. IOW I didn't implement the whole UI that Clearquest provides. Instead it's just enough to create the WOR or Helpdesk ticket.
cqtool pays attention to a few environment variables:
- Set to the dbset name of the Clearquest database to work with. For testing purposes set this to XTST3. Production would be RANCQ
- Name of the user to log in as. By default $USER is used. For testing purposes set this to "ccadm" (for the XTST3 database that is)
- Set to the password for CQ_USER. For testing purposes set this to "ccadm" (for the XTST3 database that is). If this is not set then cqtool prompts for a password.
$ cqtool help cqtool Version 0.9: Program to talk to Clearquest Valid commands are: createwor: Create a new WOR createhd: Create a new Help Desk Ticket clone <wor> Clones a WOR link <parent wor> <child wor> Link a parent WOR to a child WOR exit|quit: Exits cqtool help: This display usage: Displays command line usage version: Displays version of cqtool
$ cqtool createwor