1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" id="sixapart-standard">
5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6 <meta name="generator" content="Movable Type 5.2.3" />
8 <link rel="stylesheet" href="http://defaria.com/blogs/Status/styles-site.css" type="text/css" />
9 <link rel="alternate" type="application/atom+xml" title="Atom" href="http://defaria.com/blogs/Status/atom.xml" />
10 <link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://defaria.com/blogs/Status/index.xml"$>" />
12 <title>Status for Andrew DeFaria: October 2007 Archives</title>
14 <link rel="start" href="http://defaria.com/blogs/Status/" title="Home" />
15 <link rel="prev" href="http://defaria.com/blogs/Status/archives/2007_09.html" title="September 2007" />
16 <link rel="next" href="http://defaria.com/blogs/Status/archives/2007_11.html" title="November 2007" />
18 <body class="layout-one-column">
20 <div id="container-inner" class="pkg">
23 <div id="banner-inner" class="pkg">
24 <h1 id="banner-header"><a href="http://defaria.com/blogs/Status/" accesskey="1">Status for Andrew DeFaria</a></h1>
25 <h2 id="banner-description">Searchable status reports and work log</h2>
30 <div id="pagebody-inner" class="pkg">
32 <div id="alpha-inner" class="pkg">
34 <p class="content-nav">
35 <a href="http://defaria.com/blogs/Status/archives/2007_09.html">« September 2007</a> |
36 <a href="http://defaria.com/blogs/Status/">Main</a>
37 | <a href="http://defaria.com/blogs/Status/archives/2007_11.html">November 2007 »</a>
42 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
43 xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
44 xmlns:dc="http://purl.org/dc/elements/1.1/">
46 rdf:about="http://defaria.com/blogs/Status/archives/2007_10.html#entry-000689"
47 trackback:ping="http://defaria.com/mt/mt-tb.cgi/76"
48 dc:title="Blocking/Modal cqtool/Perl statndards"
49 dc:identifier="http://defaria.com/blogs/Status/archives/2007_10.html#entry-000689"
50 dc:subject="General Dynamics"
51 dc:description=" With the help of some GD folks who know Qt, got a modal/blocking cqtool working. Had to subclass the QProcess class and interject an eventloop, returning on the cqtool process terminating only. Attempting to get cqtool running in the..."
53 dc:date="2007-10-17T18:09:13-06:00" />
58 <h2 class="date-header">October 17, 2007</h2>
60 <div class="entry" id="entry-689">
61 <h3 class="entry-header">Blocking/Modal cqtool/Perl statndards</h3>
62 <div class="entry-content">
63 <div class="entry-body">
65 <li>With the help of some GD folks who know Qt, got a modal/blocking cqtool working. Had to subclass the QProcess class and interject an eventloop, returning on the cqtool process terminating only.</li>
67 <li>Attempting to get cqtool running in the background and feeding it commands. This will require changing the CQProcess eventloop to look for the end of a cqtool command and it's prompt. It will also need to handle returning output.</li>
69 <li>Attended meeting regarding Perl standards</li>
72 <p class="entry-footer">
73 <span class="post-footers">Posted by at 6:09 PM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000689.html">Permalink</a>
75 | <a href="http://defaria.com/blogs/Status/archives/000689.html#trackback">TrackBacks (0)</a>
82 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
83 xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
84 xmlns:dc="http://purl.org/dc/elements/1.1/">
86 rdf:about="http://defaria.com/blogs/Status/archives/2007_10.html#entry-000688"
87 trackback:ping="http://defaria.com/mt/mt-tb.cgi/75"
88 dc:title="UCMWB enhancements/Helpdesk Tickets"
89 dc:identifier="http://defaria.com/blogs/Status/archives/2007_10.html#entry-000688"
90 dc:subject="General Dynamics"
91 dc:description=" Added CreateWOR button and hooked it so that we can now create WORs in UCMWB (from File: Create New WOR or the Create WOR toolbar button) Added multiselection to View browser Enhanced Delete View to be Delete View(s) and..."
93 dc:date="2007-10-12T17:25:07-06:00" />
98 <h2 class="date-header">October 12, 2007</h2>
100 <div class="entry" id="entry-688">
101 <h3 class="entry-header">UCMWB enhancements/Helpdesk Tickets</h3>
102 <div class="entry-content">
103 <div class="entry-body">
105 <li>Added CreateWOR button and hooked it so that we can now create WORs in UCMWB (from <b>File: Create New WOR</b> or the Create WOR toolbar button)</li>
107 <li>Added multiselection to View browser</li>
109 <li>Enhanced Delete View to be Delete View(s) and to iterate over the selected views deleting them. Need to clean up the display of change sets and view private files when more than one view is selected.</li>
111 <li>Worked with Judy regarding <b>RANCQ00017440:</b> Update RanSimcello Switcher config spec for P4.0.24</li>
113 <li>Closed tickets:</li>
116 <li><b>RANCQ00016665:</b> UEH Tools Based on 4.0.6 versus 4.0.24 Config Spec</li>
118 <li><b>RANCQ00016964:</b> RoseRT does not open</li>
122 <p class="entry-footer">
123 <span class="post-footers">Posted by at 5:25 PM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000688.html">Permalink</a>
125 | <a href="http://defaria.com/blogs/Status/archives/000688.html#trackback">TrackBacks (0)</a>
132 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
133 xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
134 xmlns:dc="http://purl.org/dc/elements/1.1/">
136 rdf:about="http://defaria.com/blogs/Status/archives/2007_10.html#entry-000687"
137 trackback:ping="http://defaria.com/mt/mt-tb.cgi/74"
139 dc:identifier="http://defaria.com/blogs/Status/archives/2007_10.html#entry-000687"
140 dc:subject="General Dynamics"
141 dc:description=" Sent cqtool out for code review..."
143 dc:date="2007-10-10T15:08:55-06:00" />
148 <h2 class="date-header">October 10, 2007</h2>
150 <div class="entry" id="entry-687">
151 <h3 class="entry-header">cqtool</h3>
152 <div class="entry-content">
153 <div class="entry-body">
155 <li>Sent cqtool out for code review</li>
158 <h3>Introducing cqtool</h3>
160 <p>I have implemented a new script called cqtool. This is to replace
161 the unsupported /opt/rational/clearquest/bin/cqtool which is going
162 away as of Clearquest 7.0. UCMWB utilized IBM/Rational's cqtool to
163 perform certain actions. Additionally, as per Erik's RANCQ00014935
164 request to enhance UCMWB to be able to create child WORs a tool needed
165 to be developed to do that. So the new cqtool solves the following
169 <li>Provides a supported replacement for the following bits of UCMWB
172 <li>Cloning of WORs (Right click: Continue work in Clone on a
173 closed non-orphan WOR)<br>
175 <li> Creation of Helpdesk tickets (Tools: Submit Helpdesk Request)</li>
177 <li>Adds the following functionality:</li>
179 <li>Allows for creation of new WORs</li>
180 <li>Allows for linking of parent WOR to child WOR</li>
184 <p>Additionally, with the create WOR functionality, UCMWB can offer
185 the ability to create a new, non parent/child WOR. Finally, as has
186 been stated, with this new cqtool we don't have to worry about
187 IBM/Rational's cqtool disappearing in CQ 7.0.</p>
189 <p>This is an involved process so I created this in a modularized
190 fashion thus several Perl modules are involved. As per Ken's mandate,
191 I am calling for a code review of what I have so far. Next I will hook
194 <p>So far I have a cqperl script called cqtool. It relies on several Perl
195 Modules, some of which I have added to Clearcase and our <i>standard
196 lib</i> directory already
197 (/cleartrig/ent/SNSD/muos/ccadm_tools/vobs/ranccadm/scripts/lib):</p>
199 <table align="center" border="1" cellpadding="2" cellspacing="0"
203 <th bgcolor="#33ccff" valign="top">Module<br>
205 <th bgcolor="#33ccff" valign="top">Description<br>
207 <th bgcolor="#33ccff" valign="top">Location<br>
211 <td valign="top"><b>Display<br>
213 <td valign="top">Module for providing consistent output</td>
214 <td valign="top"><i>standard lib</i><br>
218 <td valign="top"><b>CQTool<br>
220 <td valign="top">Handles communications with Clearquest</td>
221 <td valign="top">~p6258c/adm/lib<br>
225 <td valign="top"><b>CreateWORUI</b></td>
226 <td valign="top">UI for CreateWOR</td>
227 <td valign="top">~p6258c/adm/lib</td>
230 <td valign="top"><b>CreateHelpDeskUI</b></td>
231 <td valign="top">UI for CreateHelpDesk</td>
232 <td valign="top">~p6258c/adm/lib</td>
235 <td valign="top"><b>Tk::MyText</b></td>
236 <td valign="top">Subclasses the Tk TextUndo<br>
237 widget. This is used for the description fields in both CreateWOR<br>
238 and CreateHelpDesk. The subclassing was necessary in order to<br>
239 provide for a modified callback that allows us to tell when the<br>
240 widget has text and thus can set the Submit button to active.</td>
241 <td valign="top">~p6258c/adm/lib</td>
246 <p>Additionally there is a cqtool script itself which is a command
247 line interface/driver that was initially used to test the
248 functionality provided in the above modules. It has been oriented to
249 be the primary interface to this functionality. The thought is that
250 UCMWB will fire up cqtool in the background at start up and then, if
251 and when it's functionality is needed, UCMWB will feed commands to the
252 already running cqtool.</p>
254 <p>When run interactively, cqtool prompts for a command. It will also
255 read commands from $ARGV, execute them and exit. So, in a sense,
256 cqtool works like cleartool.</p>
258 <p>If you type help at the prompt the following is displayed:</p>
260 <div class=code><pre>
261 cqtool Version 0.9: Program to talk to Clearquest
265 createwor: Create a new WOR
266 createhd: Create a new Help Desk Ticket
267 clone <wor> Clones a WOR
268 link <parent wor> <child wor> Link a parent WOR to a child
270 exit|quit: Exits cqtool
272 usage: Displays command line usage
273 version: Displays version of cqtool
276 <p>createwor and createhd both are Perl/Tk applications that interact
277 with Clearquest and display a GUI that obtains the necessary and
278 required fields to create a WOR or a Helpdesk ticket. Note, only the
279 bare minimum fields are available. IOW I didn't implement the whole UI
280 that Clearquest provides. Instead it's just enough to create the WOR
281 or Helpdesk ticket.</p>
283 <p>cqtool pays attention to a few environment variables:</p>
286 <dt><b>CQ_DBSET</b></dt>
288 <dd>Set to the dbset name of the Clearquest database to work with.
289 For testing purposes set this to XTST3. Production would be
292 <dt><b>CQ_USER</b></dt>
294 <dd>Name of the user to log in as. By default $USER is used. For
295 testing purposes set this to "ccadm" (for the XTST3 database that
298 <dt><b>CQ_PASSWORD</b></dt>
300 <dd>Set to the password for CQ_USER. For testing purposes set this
301 to "ccadm" (for the XTST3 database that is). If this is not set
302 then cqtool prompts for a password.</dd>
305 <p>So then, with the proper environment variables set one can:</p>
308 <div class=code><pre>
310 cqtool Version 0.9: Program to talk to Clearquest
314 createwor: Create a new WOR
315 createhd: Create a new Help Desk Ticket
316 clone <wor> Clones a WOR
317 link <parent wor> <child wor> Link a parent WOR to a child
319 exit|quit: Exits cqtool
321 usage: Displays command line usage
322 version: Displays version of cqtool
327 <div class=code><pre>
331 <p>Oh, where is cqtool? Well for now it's in ~p6258c/adm/cq/cqtool
332 (libs in ~p6258c/adm/lib/*).</p>
335 <p class="entry-footer">
336 <span class="post-footers">Posted by at 3:08 PM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000687.html">Permalink</a>
338 | <a href="http://defaria.com/blogs/Status/archives/000687.html#trackback">TrackBacks (0)</a>
345 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
346 xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
347 xmlns:dc="http://purl.org/dc/elements/1.1/">
349 rdf:about="http://defaria.com/blogs/Status/archives/2007_10.html#entry-000686"
350 trackback:ping="http://defaria.com/mt/mt-tb.cgi/73"
352 dc:identifier="http://defaria.com/blogs/Status/archives/2007_10.html#entry-000686"
353 dc:subject="General Dynamics"
354 dc:description=" Fixed issue with clone. Was core dumping cqperl. Should not be calling cloneWor unless the WOR is in a closed state. Changed code to check that the WOR is closed before attempting call to FireRecordScript for cloneWor. Resolved issues..."
356 dc:date="2007-10-09T19:14:26-06:00" />
361 <h2 class="date-header">October 9, 2007</h2>
363 <div class="entry" id="entry-686">
364 <h3 class="entry-header">cqtalk</h3>
365 <div class="entry-content">
366 <div class="entry-body">
368 <li>Fixed issue with clone. Was core dumping cqperl. Should not be calling cloneWor unless the WOR is in a closed state. Changed code to check that the WOR is closed before attempting call to FireRecordScript for cloneWor.</li>
370 <li>Resolved issues with cqtalk's createwor and createhd Perl/Tk apps. They used to blow up when run a second time. Turns out you need to make sure you destroy and undef all global objects first.</li>
372 <li>Fixed issue with link option. Turns out that if we hit an error say getting an entity, because it was provided to use incorrectly (say typo), then even though we are using eval to trap this error, internal state of the session variable gets screwed up. The workaround is to re-establish the session by closing and re-opening the database. Time consuming but it works.</li>
375 <p class="entry-footer">
376 <span class="post-footers">Posted by at 7:14 PM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000686.html">Permalink</a>
378 | <a href="http://defaria.com/blogs/Status/archives/000686.html#trackback">TrackBacks (0)</a>
385 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
386 xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
387 xmlns:dc="http://purl.org/dc/elements/1.1/">
389 rdf:about="http://defaria.com/blogs/Status/archives/2007_10.html#entry-000685"
390 trackback:ping="http://defaria.com/mt/mt-tb.cgi/72"
391 dc:title="CreateWOR: Subclassing TextUndo"
392 dc:identifier="http://defaria.com/blogs/Status/archives/2007_10.html#entry-000685"
393 dc:subject="General Dynamics"
394 dc:description=" Added onChange like callbacks to CreateWOR's text field and text widget. This required subclassing the TextUndo class and properly handling the call back...."
396 dc:date="2007-10-03T11:17:48-06:00" />
401 <h2 class="date-header">October 3, 2007</h2>
403 <div class="entry" id="entry-685">
404 <h3 class="entry-header">CreateWOR: Subclassing TextUndo</h3>
405 <div class="entry-content">
406 <div class="entry-body">
408 <li>Added onChange like callbacks to CreateWOR's text field and text widget. This required subclassing the TextUndo class and properly handling the call back.</li>
411 <h3>Subclassing TextUndo</h3>
413 <p>This is not working exactly as it should. I can't seem to store things like the onChange callback and a scalar representing the contents of the TextUndo widget in the new MyText object. I rely on overriding the methods InsertKeypress, insert, delete and replace in order to trap when modifications are made to the text, changing the $text member and to call the appropriate callback, but the object that's passed in is different than the object as it was in new and member variables for $text and $modified_CB are missing! So instead I use a package global but this means that only one, the same one, $modification_CB is used for all instantiations of MyText and the $text variable doesn't work at all. Instead one must call get_text in the &$modified_CB:</p>
415 <div class=code><pre>
416 # Subclass TextUndo widget to trap and call subroutine when text changes
420 use base qw/Tk::TextUndo/;
422 Construct Tk::Widget "MyText";
431 $modified_CB = delete $parms{-modified} if $parms{-modified};
432 $self->{text} = delete $parms{-text} if $parms{-text};
434 $class->SUPER::new ($self, %parms);
440 return $self->{text};
446 $self->SUPER::InsertKeypress (@_);
447 $self->{text} = $self->get ("1.0", "end");
448 &$modified_CB ($self) if $modified_CB;
454 $self->SUPER::insert (@_);
455 $self->{text} = $self->get ("1.0", "end");
461 $self->SUPER::delete (@_);
462 $self->{text} = $self->get ("1.0", "end");
463 &$modified_CB ($self) if $modified_CB;
469 $self->SUPER::replace (@_);
470 $self->{text} = $self->get ("1.0", "end");
471 &$modified_CB ($self) if $modified_CB;
476 <p class="entry-footer">
477 <span class="post-footers">Posted by at 11:17 AM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000685.html">Permalink</a>
479 | <a href="http://defaria.com/blogs/Status/archives/000685.html#trackback">TrackBacks (0)</a>
486 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
487 xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
488 xmlns:dc="http://purl.org/dc/elements/1.1/">
490 rdf:about="http://defaria.com/blogs/Status/archives/2007_10.html#entry-000684"
491 trackback:ping="http://defaria.com/mt/mt-tb.cgi/71"
493 dc:identifier="http://defaria.com/blogs/Status/archives/2007_10.html#entry-000684"
494 dc:subject="General Dynamics"
495 dc:description=" Created CreateWOR Perl/Tk application. This will be used by UCMWB Checked in and symlinked the switch config area in /prj/muosran. Investigating other symlinks such that our /prj/muosran area is using what's checked into Clearcase...."
497 dc:date="2007-10-02T11:15:22-06:00" />
502 <h2 class="date-header">October 2, 2007</h2>
504 <div class="entry" id="entry-684">
505 <h3 class="entry-header">CreateWOR</h3>
506 <div class="entry-content">
507 <div class="entry-body">
509 <li>Created CreateWOR Perl/Tk application. This will be used by UCMWB</li>
511 <li>Checked in and symlinked the switch config area in /prj/muosran.</li>
513 <li>Investigating other symlinks such that our /prj/muosran area is using what's checked into Clearcase.</li>
515 <p class="entry-footer">
516 <span class="post-footers">Posted by at 11:15 AM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000684.html">Permalink</a>
518 | <a href="http://defaria.com/blogs/Status/archives/000684.html#trackback">TrackBacks (0)</a>