Initial add of defaria.com
[clearscm.git] / defaria.com / blogs / Status / archives / 2007_10.html
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">
4 <head>
5    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6    <meta name="generator" content="Movable Type 5.2.3" />
7
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"$>" />
11
12    <title>Status for Andrew DeFaria: October 2007 Archives</title>
13
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" />
17 </head>
18 <body class="layout-one-column">
19    <div id="container">
20       <div id="container-inner" class="pkg">
21
22          <div id="banner">
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>
26             </div>
27          </div>
28
29          <div id="pagebody">
30             <div id="pagebody-inner" class="pkg">
31                <div id="alpha">
32                   <div id="alpha-inner" class="pkg">
33                      
34                      <p class="content-nav">
35                         <a href="http://defaria.com/blogs/Status/archives/2007_09.html">&laquo; 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 &raquo;</a>
38                      </p>
39                      
40                      
41                      <!--
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/">
45 <rdf:Description
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..."
52     dc:creator=""
53     dc:date="2007-10-17T18:09:13-06:00" />
54 </rdf:RDF>
55 -->
56
57
58                      <h2 class="date-header">October 17, 2007</h2>
59                      <a id="a000689"></a>
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">
64                               <ul>
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>
66
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>
68
69   <li>Attended meeting regarding Perl standards</li>
70 </ul>
71                               
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>
74                                  
75                                  | <a href="http://defaria.com/blogs/Status/archives/000689.html#trackback">TrackBacks (0)</a>
76                               </p>
77                            </div>
78                         </div>
79                      </div>
80                      
81                      <!--
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/">
85 <rdf:Description
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..."
92     dc:creator=""
93     dc:date="2007-10-12T17:25:07-06:00" />
94 </rdf:RDF>
95 -->
96
97
98                      <h2 class="date-header">October 12, 2007</h2>
99                      <a id="a000688"></a>
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">
104                               <ul>
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>
106
107   <li>Added multiselection to View browser</li>
108
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>
110
111   <li>Worked with Judy regarding <b>RANCQ00017440:</b> Update RanSimcello Switcher config spec for P4.0.24</li>
112
113   <li>Closed tickets:</li>
114
115     <ul>
116       <li><b>RANCQ00016665:</b> UEH Tools Based on 4.0.6 versus 4.0.24 Config Spec</li>
117
118       <li><b>RANCQ00016964:</b> RoseRT does not open</li>
119     </ul>
120 </ul>
121                               
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>
124                                  
125                                  | <a href="http://defaria.com/blogs/Status/archives/000688.html#trackback">TrackBacks (0)</a>
126                               </p>
127                            </div>
128                         </div>
129                      </div>
130                      
131                      <!--
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/">
135 <rdf:Description
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"
138     dc:title="cqtool"
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..."
142     dc:creator=""
143     dc:date="2007-10-10T15:08:55-06:00" />
144 </rdf:RDF>
145 -->
146
147
148                      <h2 class="date-header">October 10, 2007</h2>
149                      <a id="a000687"></a>
150                      <div class="entry" id="entry-687">
151                         <h3 class="entry-header">cqtool</h3>
152                         <div class="entry-content">
153                            <div class="entry-body">
154                               <ul>
155   <li>Sent cqtool out for code review</li>
156 </ul>
157                               
158                               <h3>Introducing cqtool</h3>
159
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
166 issues:</p>
167
168 <ul>
169   <li>Provides a supported replacement for the following bits of UCMWB
170 functionality:</li>
171   <ul>
172     <li>Cloning of WORs (Right click: Continue work in Clone on a
173 closed non-orphan WOR)<br>
174     </li>
175     <li> Creation of Helpdesk tickets (Tools: Submit Helpdesk Request)</li>
176   </ul>
177   <li>Adds the following functionality:</li>
178   <ul>
179     <li>Allows for creation of new WORs</li>
180     <li>Allows for linking of parent WOR to child WOR</li>
181   </ul>
182 </ul>
183
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>
188
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
192 this into UCMWB.</p>
193
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>
198
199 <table align="center" border="1" cellpadding="2" cellspacing="0"
200  width="90%">
201   <tbody>
202     <tr>
203       <th bgcolor="#33ccff" valign="top">Module<br>
204       </th>
205       <th bgcolor="#33ccff" valign="top">Description<br>
206       </th>
207       <th bgcolor="#33ccff" valign="top">Location<br>
208       </th>
209     </tr>
210     <tr>
211       <td valign="top"><b>Display<br>
212       </b></td>
213       <td valign="top">Module for providing consistent output</td>
214       <td valign="top"><i>standard lib</i><br>
215       </td>
216     </tr>
217     <tr>
218       <td valign="top"><b>CQTool<br>
219       </b></td>
220       <td valign="top">Handles communications with Clearquest</td>
221       <td valign="top">~p6258c/adm/lib<br>
222       </td>
223     </tr>
224     <tr>
225       <td valign="top"><b>CreateWORUI</b></td>
226       <td valign="top">UI for CreateWOR</td>
227       <td valign="top">~p6258c/adm/lib</td>
228     </tr>
229     <tr>
230       <td valign="top"><b>CreateHelpDeskUI</b></td>
231       <td valign="top">UI for CreateHelpDesk</td>
232       <td valign="top">~p6258c/adm/lib</td>
233     </tr>
234     <tr>
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>
242     </tr>
243   </tbody>
244 </table>
245
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>
253
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>
257
258 <p>If you type help at the prompt the following is displayed:</p>
259
260 <div class=code><pre>
261 cqtool Version 0.9: Program to talk to Clearquest
262
263 Valid commands are:
264
265 createwor:                      Create a new WOR
266 createhd:                       Create a new Help Desk Ticket
267 clone &lt;wor&gt;                       Clones a WOR
268 link &lt;parent wor&gt; &lt;child wor&gt;       Link a parent WOR to a child
269 WOR
270 exit|quit:                      Exits cqtool
271 help:                           This display
272 usage:                          Displays command line usage
273 version:                        Displays version of cqtool
274 </pre></div>
275
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>
282
283 <p>cqtool pays attention to a few environment variables:</p>
284
285 <dl>
286   <dt><b>CQ_DBSET</b></dt>
287
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
290     RANCQ</dd>
291
292   <dt><b>CQ_USER</b></dt>
293
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
296     is)</dd>
297
298   <dt><b>CQ_PASSWORD</b></dt>
299
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>
303 </dl>
304
305 <p>So then, with the proper environment variables set one can:</p>
306
307
308 <div class=code><pre>
309 $ cqtool help
310 cqtool Version 0.9: Program to talk to Clearquest
311
312 Valid commands are:
313
314 createwor:                      Create a new WOR
315 createhd:                       Create a new Help Desk Ticket
316 clone &lt;wor&gt;                       Clones a WOR
317 link &lt;parent wor&gt; &lt;child wor&gt;       Link a parent WOR to a child
318 WOR
319 exit|quit:                      Exits cqtool
320 help:                           This display
321 usage:                          Displays command line usage
322 version:                        Displays version of cqtool
323 </pre></div>
324
325 <p>or</p>
326
327 <div class=code><pre>
328 $ cqtool createwor
329 </pre></div>
330
331 <p>Oh, where is cqtool? Well for now it's in ~p6258c/adm/cq/cqtool
332 (libs in ~p6258c/adm/lib/*).</p>
333
334                               
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>
337                                  
338                                  | <a href="http://defaria.com/blogs/Status/archives/000687.html#trackback">TrackBacks (0)</a>
339                               </p>
340                            </div>
341                         </div>
342                      </div>
343                      
344                      <!--
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/">
348 <rdf:Description
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"
351     dc:title="cqtalk"
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..."
355     dc:creator=""
356     dc:date="2007-10-09T19:14:26-06:00" />
357 </rdf:RDF>
358 -->
359
360
361                      <h2 class="date-header">October  9, 2007</h2>
362                      <a id="a000686"></a>
363                      <div class="entry" id="entry-686">
364                         <h3 class="entry-header">cqtalk</h3>
365                         <div class="entry-content">
366                            <div class="entry-body">
367                               <ul>
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>
369
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>
371
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>
373 </ul>
374                               
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>
377                                  
378                                  | <a href="http://defaria.com/blogs/Status/archives/000686.html#trackback">TrackBacks (0)</a>
379                               </p>
380                            </div>
381                         </div>
382                      </div>
383                      
384                      <!--
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/">
388 <rdf:Description
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&apos;s text field and text widget. This required subclassing the TextUndo class and properly handling the call back...."
395     dc:creator=""
396     dc:date="2007-10-03T11:17:48-06:00" />
397 </rdf:RDF>
398 -->
399
400
401                      <h2 class="date-header">October  3, 2007</h2>
402                      <a id="a000685"></a>
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">
407                               <ul>
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>
409 </ul>
410                               
411                               <h3>Subclassing TextUndo</h3>
412
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>
414
415 <div class=code><pre>
416 # Subclass TextUndo widget to trap and call subroutine when text changes
417 package Tk::MyText;
418   use Tk::TextUndo;
419
420   use base qw/Tk::TextUndo/;
421
422   Construct Tk::Widget "MyText";
423
424   my $modified_CB;
425
426   sub new {
427     my $class   = shift;
428     my $self    = shift;
429     my %parms   = @_;
430
431     $modified_CB        = delete $parms{-modified}      if $parms{-modified};
432     $self->{text}       = delete $parms{-text}          if $parms{-text};
433
434     $class->SUPER::new ($self, %parms);
435   } # new
436
437   sub get_text {
438     my $self = shift;
439
440     return $self->{text};
441   } # get_text
442
443   sub InsertKeypress {
444     my $self = shift;
445
446     $self->SUPER::InsertKeypress (@_);
447     $self->{text} = $self->get ("1.0", "end");
448     &$modified_CB ($self) if $modified_CB;
449   } # InsertKeypress
450
451   sub insert {
452     my $self = shift;
453
454     $self->SUPER::insert (@_);
455     $self->{text} = $self->get ("1.0", "end");
456   } # insert
457
458   sub delete {
459     my $self = shift;
460
461     $self->SUPER::delete (@_);
462     $self->{text} = $self->get ("1.0", "end");
463     &$modified_CB ($self) if $modified_CB;
464   } # delete
465
466   sub replace {
467     my $self = shift;
468
469     $self->SUPER::replace (@_);
470     $self->{text} = $self->get ("1.0", "end");
471     &$modified_CB ($self) if $modified_CB;
472   } # replace
473
474 </pre></div> 
475                               
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>
478                                  
479                                  | <a href="http://defaria.com/blogs/Status/archives/000685.html#trackback">TrackBacks (0)</a>
480                               </p>
481                            </div>
482                         </div>
483                      </div>
484                      
485                      <!--
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/">
489 <rdf:Description
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"
492     dc:title="CreateWOR"
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&apos;s checked into Clearcase...."
496     dc:creator=""
497     dc:date="2007-10-02T11:15:22-06:00" />
498 </rdf:RDF>
499 -->
500
501
502                      <h2 class="date-header">October  2, 2007</h2>
503                      <a id="a000684"></a>
504                      <div class="entry" id="entry-684">
505                         <h3 class="entry-header">CreateWOR</h3>
506                         <div class="entry-content">
507                            <div class="entry-body">
508                               <ul>
509   <li>Created CreateWOR Perl/Tk application. This will be used by UCMWB</li>
510
511   <li>Checked in and symlinked the switch config area in /prj/muosran.</li>
512
513   <li>Investigating other symlinks such that our /prj/muosran area is using what's checked into Clearcase.</li>
514                               
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>
517                                  
518                                  | <a href="http://defaria.com/blogs/Status/archives/000684.html#trackback">TrackBacks (0)</a>
519                               </p>
520                            </div>
521                         </div>
522                      </div>
523                      
524                   </div>
525                </div>
526             </div>
527          </div>
528       </div>
529    </div>
530 </body>
531 </html>