Initial add of defaria.com
[clearscm.git] / defaria.com / blogs / Status / archives / week_2005_09_25.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: September 25, 2005 - October  1, 2005 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/week_2005_09_18.html" title="September 18, 2005 - September 24, 2005" />
16    <link rel="next" href="http://defaria.com/blogs/Status/archives/week_2005_10_02.html" title="October  2, 2005 - October  8, 2005" />
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/week_2005_09_18.html">&laquo; September 18, 2005 - September 24, 2005</a> |
36                         <a href="http://defaria.com/blogs/Status/">Main</a>
37                         | <a href="http://defaria.com/blogs/Status/archives/week_2005_10_02.html">October  2, 2005 - October  8, 2005 &raquo;</a>
38                      </p>
39                      
40                      
41                      
42
43                      <h2 class="date-header">September 30, 2005</h2>
44                      <a id="a000438"></a>
45                      <div class="entry" id="entry-438">
46                         <h3 class="entry-header">More study of Rebase project to parent & Deliver between projects</h3>
47                         <div class="entry-content">
48                            <div class="entry-body">
49                               <ul>
50   <li>Studied Rebase project to parent in depth</li>
51
52   <li>Studied Deliver between projects in depth</li>
53
54   <li>Discussed SJ vob move with Jennifer and Chini</li>
55
56   <li>Met with Phil regarding merge problem - turns out to be no problem</li>
57 </ul>
58                               
59                               <h3>Rebase Project to Parent</h3>
60
61 <p>The procedure calls rebase_project which essentially calls ct rebase...</p>
62
63 <ul>
64   <li>Given a pvob and project rebase_project calls get_integration_stream to get the intergation stream</li>
65
66   <li>It then gets a list of the foundation baselines</li>
67
68   <li>For each foundation baseline it calls get_stream_for_baseline to get the stream for the foundation baseline.</li>
69
70   <li>Using that it calls get_project_for_stream to obtain the project name for this baseline.</li>
71
72   <li>Next it gets all of the recommended baselines for the project</li>
73 </ul>
74
75 <h3>Deliver Between Projects</h3>
76
77 <p>This procedure calls inter_project_deliver. UCM doesn't support the concept of delivering between projects so this procedure implement interproject delivery by using ct merge.</p>
78
79
80
81                               
82                               <p class="entry-footer">
83                                  <span class="post-footers">Posted by  at 10:07 AM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000438.html">Permalink</a>
84                                  
85                                  
86                               </p>
87                            </div>
88                         </div>
89                      </div>
90                      
91                      
92
93                      <h2 class="date-header">September 29, 2005</h2>
94                      <a id="a000437"></a>
95                      <div class="entry" id="entry-437">
96                         <h3 class="entry-header">Trigger config/Web config</h3>
97                         <div class="entry-content">
98                            <div class="entry-body">
99                               <p>Went to Salira to help Shuqing to set up a rel_3.1 branch.</p>
100
101 <ul>
102   <li>Changed trigger to recogonize rel_3.1/china_3.1 as a valid branches.</li>
103
104   <li>Cleaned up web area on sonsweb</li>
105
106   <li>Added link for old 2.3 releases</li>
107
108   <li>Created 3.1.1.8.bugs file</li>
109
110   <li>Explained to Shuqing how the whole set up worked</li>
111
112   <li>Created china_3.1.lst file for Shanghai. Changes to CheckInPreop.pl will replicate to Shanghai and should become effective tomorrow.</li>
113
114   <li>Investigated changing <b>Found In</b> and <b>Fixed In</b> dropped downs to be sorted in reverse order since they are working on the latest, therefore highest numbered releases first. Turns out this will require more work with a possible change to the Clearquest schema. Jeff has schema checked out so I couldn't do anything. Basically those fields tie into a stateless record which contains a <b>Release ID</b> and a <b>Description</b>. I'm not sure how to tell Clearquest to sort that drop down.</li>
115 </ul>
116
117 <p>Total time: 2 hours</p>
118                               
119                               <p class="entry-footer">
120                                  <span class="post-footers">Posted by  at 10:18 PM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000437.html">Permalink</a>
121                                  
122                                  
123                               </p>
124                            </div>
125                         </div>
126                      </div>
127                      
128                      
129
130                      
131                      <a id="a000436"></a>
132                      <div class="entry" id="entry-436">
133                         <h3 class="entry-header">UCM: Rebase project to parent & Deliver between projects</h3>
134                         <div class="entry-content">
135                            <div class="entry-body">
136                               <ul>
137   <li>Created UCM environment where I can rebase and deliver</li>
138
139   <li>Reproduced binary merge problem in both rebase and deliver mode</li>
140
141   <li>Studied UCMCustom for <i>Rebase project to parent</i> & <i>Deliver between projects</i> functions. The former uses cleartool rebase while the later does not use deliver in the classic UCM sense</li>
142 </ul>
143                               
144                               <p class="entry-footer">
145                                  <span class="post-footers">Posted by  at  3:41 PM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000436.html">Permalink</a>
146                                  
147                                  
148                               </p>
149                            </div>
150                         </div>
151                      </div>
152                      
153                      
154
155                      <h2 class="date-header">September 28, 2005</h2>
156                      <a id="a000435"></a>
157                      <div class="entry" id="entry-435">
158                         <h3 class="entry-header">Clearcase Deliver problem</h3>
159                         <div class="entry-content">
160                            <div class="entry-body">
161                               <ul>
162   <li>Helped Darren Edamura with a Clearcase problem</li>
163
164   <li>Started looking into Binary Merge problem</li>
165
166   <li>Added FixChar subroutine to CheckCodePage</li>
167 </ul>
168                               
169                               <h3>Clearcase Deliver Failiure Leaves Corrupted Version</h3>
170
171 <p>Worked with Darren Edamura on a problem he had during delivery. He says that he was working in a snapshot view and had inadvertantly had 2 hijaked files. When he wanted to deliver he had to do a rebase operation. Rebase noted the hijaked files and offered to check them in. He said he had checked them out. At this point he was left with a file version that had no activity associated with it. Right clicking that version in the version tree and selecting properties yielded:</p>
172
173 <img src="cc_corruption.jpg">
174
175 <p>Darren continued onward by checking out version 4 and checking in identical to create version 6 then delievered that.</p>
176
177 <p>In attempting to clean up version 5 we decided to remove that version. However doing so yielded:</p>
178
179 <img src="rmver_failure.jpg">
180
181 <p>Refreshing the version tree after that error revealed the activity on version 5 and now it all seems to be OK. I guess the rmver action cleared up the problem!</p>
182                               
183                               <p class="entry-footer">
184                                  <span class="post-footers">Posted by  at  2:56 PM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000435.html">Permalink</a>
185                                  
186                                  
187                               </p>
188                            </div>
189                         </div>
190                      </div>
191                      
192                      
193
194                      <h2 class="date-header">September 27, 2005</h2>
195                      <a id="a000432"></a>
196                      <div class="entry" id="entry-432">
197                         <h3 class="entry-header">Code Page/rgy_switchover</h3>
198                         <div class="entry-content">
199                            <div class="entry-body">
200                               <ul>
201   <li>Worked more on detecting and report invalid ASCII characters in PQA databases</li>
202
203   <li>Working with IBM Rational Support regarding rgy_switchover</li>
204 </ul>
205                               
206                               <h3>Code Page</h3>
207
208 <p>Managed to get the non ASCII characters in the databases down to a handful of cases and implement a "fix_char" routine. The basic mapping turns out to be:</p.
209
210 <div class="code"><pre>
211 # Translate from special char -> ASCII
212 my %char_mapping = (
213   "ffffff85"    => "_",
214   "ffffff91"    => "\'",
215   "ffffff92"    => "\'",
216   "ffffff93"    => "\"",
217   "ffffff94"    => "\"",
218   "ffffff96"    => "-",
219 #  "ffffffa2"   =>
220 #  "ffffffae"   =>
221   "ffffffb7"    => "\."
222 #  "ffffffbd"   => "1/2",
223 #  "ffffffe7"   => ???
224 );
225 </pre></div>
226
227 <p>The commented out lines represent characters I have not be able to determine the ASCII equivalents, except the 1/2 which is a 1/2 in one character. In order to translate the one character 1/2 to the 3 character 1/2 I would need to expand the array. I have not done this yet.</p>
228
229 <h3>PMR#59845,999,000 backup rgy switchover not working on Windows clients</h3>
230
231 <p>Steven Chaves wrote:</p>
232
233 <blockquote><p>Andrew,</p>
234
235 <p>During the tech session, other TSEs did say that rgy_switchover does not always work. For DNS resolution, running:  ipconfig /release and then afterwards ipconfig /renew usually works, but this would have to be done on each client. Can you give the servers fixed IP addresses.</p></blockquote>
236
237 <p>There still seems to be some confusion here. I will attempt to be explicit here.</p>
238
239 <p>I realize that rgy_switchover will not always work 100%. Client machines may be down, etc. However what I'm seeing is that rgy_switchover never works - or at least never works with any of the Windows client  machines who has their IP address assigned via DHCP and who's Windows machine name (WINS name) != Unix DNS CNAME.</p>
240
241 <p>Here's the situation. There are two Unix Solaris boxes: ccase-sj1-3 (10.16.191.241) and ccase-sj1-4 (10.16.191.243). Both are servers and have statically assigned IP addresses.</p>
242
243 <p>There are just a few Windows clients in this test scenario, mostly laptops. All fail. All have DHCP assigned IP addresses and Windows computer names that are not the same as DNS. Let's use my laptop as an example: ltsjca-adefaria (10.16.191.243) is it's name. It's a Windows XP box, is a laptop yet remains docked at my desk.</p>
244
245 <p>When the rgy_switchover command was run from ccase-sj1-3 to switch over to ccase-sj1-4 both ccase-sj1-3 and ccase-sj1-4 became aware of the change and switched over. None (i.e. 0) of the other clients (all DHCP assigned Windows boxes) failed, including my laptop (who's IP address, BTW, had not changed).</p>
246
247 <p>Investigating I find that I can nslookup and ping ccase-sj1-3 and ccase-sj1-4 from my laptop, ltsjca-adefaria</p>
248
249 <div class="code"><pre>
250     <font color="blue"><b>Local:</b></font><u>nslookup ccase-sj1-3</u>
251     Server:  dns-sj1-1b.sj.broadcom.com
252     Address:  10.16.64.11
253
254     Name:    ccase-sj1-3.sj.broadcom.com
255     Address:  10.16.191.241
256     Aliases:  ccase-sj1-3.broadcom.com
257
258     <font color="blue"><b>Local:</b></font><u>nslookup ccase-sj1-4</u>
259     Server:  dns-sj1-1b.sj.broadcom.com
260     Address:  10.16.64.11
261
262     Name:    ccase-sj1-4.sj.broadcom.com
263     Address:  10.16.191.243
264     Aliases:  ccase-sj1-4.broadcom.com
265     <font color="blue"><b>Local:</b></font><u>ping ccase-sj1-3</u>
266     Pinging ccase-sj1-3.sj.broadcom.com [10.16.191.241] with 32 bytes of data:
267
268     Reply from 10.16.191.241: bytes=32 time<1ms TTL=254
269     Reply from 10.16.191.241: bytes=32 time<1ms TTL=254
270     Reply from 10.16.191.241: bytes=32 time<1ms TTL=254
271     Reply from 10.16.191.241: bytes=32 time<1ms TTL=254
272
273     Ping statistics for 10.16.191.241:
274         Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
275     Approximate round trip times in milli-seconds:
276         Minimum = 0ms, Maximum = 0ms, Average = 0ms
277     <font color="blue"><b>Local:</b></font><u>ping ccase-sj1-4</u>
278     Pinging ccase-sj1-4.sj.broadcom.com [10.16.191.243] with 32 bytes of data:
279
280     Reply from 10.16.191.243: bytes=32 time<1ms TTL=254
281     Reply from 10.16.191.243: bytes=32 time<1ms TTL=254
282     Reply from 10.16.191.243: bytes=32 time<1ms TTL=254
283     Reply from 10.16.191.243: bytes=32 time<1ms TTL=254
284
285     Ping statistics for 10.16.191.243:
286         Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
287     Approximate round trip times in milli-seconds:
288         Minimum = 0ms, Maximum = 0ms, Average = 0ms
289 </pre></div>
290
291 <p>I can ping my laptop by name but I cannot nslookup it:</p>
292
293 <div class="code"><pre>
294     <font color="blue"><b>Local:</b></font><u>ping ltsjca-adefaria</u>
295     Pinging LTSJCA-ADEFARIA.corp.ad.broadcom.com [10.16.65.94] with 32 bytes of data:
296
297     Reply from 10.16.65.94: bytes=32 time<1ms TTL=64
298     Reply from 10.16.65.94: bytes=32 time<1ms TTL=64
299     Reply from 10.16.65.94: bytes=32 time<1ms TTL=64
300     Reply from 10.16.65.94: bytes=32 time<1ms TTL=64
301
302     Ping statistics for 10.16.65.94:
303         Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
304     Approximate round trip times in milli-seconds:
305         Minimum = 0ms, Maximum = 0ms, Average = 0ms
306     <font color="blue"><b>Local:</b></font><u>nslookup ltsjca-adefaria</u>
307     *** dns-sj1-1b.sj.broadcom.com can't find ltsjca-adefaria: Non-existent domain
308     Server:  dns-sj1-1b.sj.broadcom.com
309     Address:  10.16.64.11
310 </pre></div>
311
312 <p>From the Solaris boxes (either ccase-sj1-3 or ccase-sj1-4) I cannot nslookup nor ping ltsjca-adefaria by name:</p>
313
314 <div class="code"><pre>
315     <font color="red"><b>ccase-sj1-3:</b></font><u>nslookup ltsjca-adefaria</u>
316     Server:  dns-sj1-1c.sj.broadcom.com
317     Address:  10.16.128.11
318
319     *** dns-sj1-1c.sj.broadcom.com can't find ltsjca-adefaria: Non-existent host/domain
320     ccase-sj1-3:ping ltsjca-adefaria
321     ping: unknown host ltsjca-adefaria
322     ccase-sj1-3:
323 </pre></div>
324
325 <p>I can ping by IP address:</p>
326
327 <div class="code"><pre>
328     <font color="red"><b>ccase-sj1-3:</b></font><u>ping 10.16.65.94</u>
329     10.16.65.94 is alive
330 </pre></div>
331
332 <p>However the Solaris boxes (nor the laptop it seems) can resolve the name ltsjca-adefaria to an IP address:</p>
333
334 <div class="code"><pre>
335     <font color="red"><b>ccase-sj1-3:</b></font><u>nslookup ltsjca-adefaria</u>
336     Server:  dns-sj1-1c.sj.broadcom.com
337     Address:  10.16.128.11
338
339     *** dns-sj1-1c.sj.broadcom.com can't find ltsjca-adefaria: Non-existent host/domain
340 </pre></div>
341
342 <p>Finally a nslookup by IP address yields the following:</p>
343
344 <div class="code"><pre>
345     <font color="red"><b>ccase-sj1-3:</b></font><u>nslookup 10.16.65.94</u>
346     Server:  dns-sj1-1c.sj.broadcom.com
347     Address:  10.16.128.11
348
349     Name:    dhcpe1-sj1-094.sj.broadcom.com
350     Address:  10.16.65.94
351 </pre></div>
352
353 <p>Thus showing that the DNS CNAME for 10.16.65.94 is dhcpe1-sj1-094.sj.broadcom.com not ltsjca-adefaria.</p>
354
355 <p>If I cannot translate ltsjca-adefaria to an IP address for ping then how is rgy_switchover gonna do it?</p>
356
357 <p>Now assuming that it's prevalent or common here at my client's site to have Windows clients with DHCP assigned addresses who's Windows machine names do not resolve in DNS and assuming that if the client name does not resolve in DNS then rgy_switchover fails, can it be said that rgy_switchover is relatively useless given this enviornment?</p>
358
359                               
360                               <p class="entry-footer">
361                                  <span class="post-footers">Posted by  at  2:08 PM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000432.html">Permalink</a>
362                                  
363                                  
364                               </p>
365                            </div>
366                         </div>
367                      </div>
368                      
369                      
370
371                      <h2 class="date-header">September 26, 2005</h2>
372                      <a id="a000431"></a>
373                      <div class="entry" id="entry-431">
374                         <h3 class="entry-header">Clearquest Code Pages</h3>
375                         <div class="entry-content">
376                            <div class="entry-body">
377                               <p>Clearquest 2003.06.15 now uses Code Pages to insure that data entered into Clearquest databases are correct. When incorrect data is encountered there is a problem. The question is, which code page should we use?</p>
378
379                               
380                               <p>Chris had went through this decision when he migrated Clearquest data to San Diego. We are faced with this decision now by moving to 2003.06.15.</p>
381
382 <blockquote>If you have ClearQuest databases that were created with previous versions of ClearQuest, they may contain data from a variety of code pages. When you set the ClearQuest data code page, the data in your databases is not converted to characters in the selected code page. If your database contains characters that do not map to the newcode page characters, data corruption will occur.
383 </blockquote>
384
385 <p>There seems to be 4 choices for code pages:</p>
386
387 <ol>
388   <li>ASCII</li>
389
390   <li>Latin-1</li>
391
392   <li>Chinese - Simplified</li>
393
394   <li>Japanese</li>
395 </ol>
396
397 <p>I'm going to assume 3 and 4 are non issues. This leaves 1 and 2. Chris went with #1 and I think that's a good choice because ASCII is a base code set. However going with #1 means we need to clean up data now as we already have non ASCII characters in the databases.</p>
398
399 </p>There is also a <strong>NOCHECKING</strong> option which essentially turns off checking and allows any character in. Using <strong>NOCHECKING</strong> would mean that Clearquest Multisite will not be an option in the future as it does not support <strong>NOCHECKING</strong></p>.
400
401 <p>I believe if we went with #2 our non ASCII characters would not be a problem. However:</p>
402
403 <blockquote>All Windows clients must run the same operating system code page, and that code page must match the ClearQuest data code page. If you have mixed-platform environments (both Windows and UNIX clients), or clients using different operating system code pages, you must set the ClearQuest data code page to 20217 (ASCII), which is the common character set of all code pages. An alternate usage model is to set the ClearQuest data code page to a non-ASCII value and require that all users with UNIX systems interact with ClearQuest only with the Webclient.</blockquote>
404
405 <p>And</p>
406
407 <ul>
408   <li>If you set the ClearQuest data code page to a non-ASCII value, users can only modify data in that database from a Windows client running the same operating system code page. If the code pages do not match, the database is opened in read-only mode.</li>
409
410   <li>If you set the ClearQuest data code page to a non-ASCII value, UNIX clients will have read-only access to the databases. (UNIX users can choose to use the only the Web client, which prevents data corruption if a non-ASCII data code page value is selected.)</li>
411
412   <li>If you set the ClearQuest data code page to a non-ASCII value, invalid characters can still potentially enter the database without being detected by ClearQuest. For example, ClearQuest cannot validate text that you cut from an e-mail or Web page and paste into a database record. If the e-mail or Web page text contains characters outside of the ClearQuest data code page, the characters are corrupted during display and may show up as invalid characters (for example, a question mark (?) character).</li>
413 </ul>
414
415 <p>Bottom line appears to be use ASCII and bite the bullet now by cleaning up data or use Latin-1 and avoid data cleanup now with potentially a larger clean up later.</p>
416
417                               
418                               <p class="entry-footer">
419                                  <span class="post-footers">Posted by  at  6:32 PM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000431.html">Permalink</a>
420                                  
421                                  
422                               </p>
423                            </div>
424                         </div>
425                      </div>
426                      
427                      
428
429                      
430                      <a id="a000430"></a>
431                      <div class="entry" id="entry-430">
432                         <h3 class="entry-header">Clearquest Franchise/PQA Invalid ASCII characters</h3>
433                         <div class="entry-content">
434                            <div class="entry-body">
435                               <ul>
436   <li>Discussed SJ/Irvine migration</li>
437
438   <li>Drew up Clearquest Franchise plan</li>
439
440   <li>Modifed CheckCodePage.pl to show the invalid characters in a word context</li>
441
442   <li>Investigating Clearquest Data Code Pages</li>
443 </ul>
444                               
445                               <h3>Clearquest Data Code Pages</h3>
446
447 <p>It seems, in an effort to better support international charactersets, Clearquest is tighening its enforcement of data code pages. In practice here this means that the default character set of US-ASCII will not longer due. I've been scanning the data for invalid characters and we've got 'em. Oddly it's stuff like the apostrophe in worlds like "shouldn't" and the hyphen in phrases such as "this - or that". Now when I go in and replace them with typed versions it works OK. I can only think that this might be a result of copy and pasting from Microsoft Word, which tends to use such odd versions of such simple characters.</p>
448
449 <h3>Audit_Log</h3>
450
451 <p>Another problem raises its head in an odd way. After changing the odd apostrophe to a simple apostrophe and saving the record from the Clearquest client, I again get errors, this time in the Audit_Log. Seems that we have a hook script that basically captures the <em>old</em> and <em>new</em> strings of what had changed and logs them. Problem is, the <em>old</em> string has the old <strong>bad</strong> characters! Plus Audit_Log is not editable! So now we're stuck! Perhaps when we programmatically convert the database we will not hit a problem however I suspect that in order to add a record we need to validate it and the creation of Audit_Log is a function of Validate. If so we might be able to temporarily turn off the Create_Audit_Log function.
452                               
453                               <p class="entry-footer">
454                                  <span class="post-footers">Posted by  at  2:48 PM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000430.html">Permalink</a>
455                                  
456                                  
457                               </p>
458                            </div>
459                         </div>
460                      </div>
461                      
462                      
463
464                      <h2 class="date-header">September 25, 2005</h2>
465                      <a id="a000427"></a>
466                      <div class="entry" id="entry-427">
467                         <h3 class="entry-header">Triggers</h3>
468                         <div class="entry-content">
469                            <div class="entry-body">
470                               <ul>
471   <li>Worked on mktriggers script to mktriggers for all regions, all vobs</li>
472 </ul>
473                               
474                               <h2>Trigger Standardization</h2>
475
476 <p>I have been trying to centralize and standardize triggers. The idea here is to be able to add all the triggers to all of the necessary vobs quickly and easily and to insure that triggers - implementors of policy - are consistently applied. As triggers are not replicated by Multisite it is essential that you can add triggers to a replicate if needed. For example, we need it to add triggers to the new replicas of the San Jose and Irvine vobs. Also new triggers and new vobs come into being and you usually want to make sure that all vobs have the appropriate triggers in force.</p>
477
478 <blockquote><strong>Note:</strong> For example, the vob /vobs/CommEngine is replicated from Irvine <-> San Jose. Irvine has a set of triggers applied to their replica and we have a different set.
479 </blockquote>
480
481 <p>Within Broadcom there are various vobs in various regions. This makes automation a little more difficult but not impossible. Some standardization of what triggers go where and how Clearcase gains access to the trigger code is necessary. One way I've seen companies accomplish this in the past was to create an administration vob and place trigger code in that vob. This vob would be replicated to all sites and trigger code made available through the use of a snapshot view in a well known location. Other administrative scripts can be shared in a similar fashion. Additionally we need to address differences between Windows and Unix.</p>
482
483 <h2>Inconsistent paths</h2>
484
485 <p>As it stands now triggers seem to be in a few places and I don't think that this places are kept in sync. As such I see inconsistencies that are confusing me. For example there are the following paths to triggers mentioned in /home/vobadm/scripts/mktrtype.sh:</p>
486
487 <div class="code"><pre>
488        ccase-atla-1)
489           NTPATH="\\\cc-atla-storage\ccase\script\trigger"
490           UNIXPATH="/projects/ccase/script/trigger"
491           ;;
492
493        ccase-blr-1)
494           NTPATH="\\\cc-blr-storage\ccase\script\trigger"
495           UNIXPATH="/projects/ccase/script/trigger"
496           ;;
497
498        ccase-brsa-1)
499           NTPATH="\\\cc-brsa-storage\ccase\script\trigger"
500           UNIXPATH="/projects/ccase/script/trigger"
501           ;;
502
503        ccase-irva-2)
504           NTPATH="\\\Fs-irva-37\ccase\script\trigger"
505           UNIXPATH="/projects/ccase/script/trigger"
506           ;;
507
508        ccase-irva-4)
509           NTPATH="\\\Fs-irva-37\ccase\script\trigger"
510           UNIXPATH="/projects/ccase/script/trigger"
511           ;;
512
513        ccase-irva-tst)
514           NTPATH="\\\Fs-irva-37\ccase\script\trigger"
515           UNIXPATH="/projects/ccase/script/trigger"
516           ;;
517
518        ccase-mhtb-1)
519           NTPATH="\\\cc-mhtb-storage\ccase\script\trigger"
520           UNIXPATH="/projects/ccase/script/trigger"
521           ;;
522
523        ccase-peka-1)
524           NTPATH="\\\cc-peka-storage\ccase\script\trigger"
525           UNIXPATH="/projects/ccase/script/trigger"
526           ;;
527
528        ccase-rmna-3)
529           NTPATH="\\\cc-rmna-storage\ccase\script\trigger"
530           UNIXPATH="/projects/ccase/script/trigger"
531           ;;
532
533        ccase-sdoa-1|ccase-sdoa-2)
534           NTPATH="\\\Fs-irva-37\ccase\script\trigger"
535           UNIXPATH="/projects/ccase/script/trigger"
536           ;;
537
538        ccase-sj1-1)
539           NTPATH="\\\cc-sj-storage\ccase\bse\script\trigger"
540           UNIXPATH="/projects/ccase/bse/script/trigger"
541           ;;
542
543        ccase-tlva-1|ccase-tlva-1.il.broadcom.com)
544           NTPATH="\\\cc-tlva-storage\ccase\script\trigger"
545           UNIXPATH="/projects/ccase/script/trigger"
546           ;;
547 </pre></div>
548
549 <p>As you can see the NTPATH varies where the UNIXPATH is largely the same (ccase-sj1-1 puts scripts under bse). Also, with ccase-rmna-3 it says /projects/ccase/script/trigger yet is currently using /projects/cc4/triggers and the differences between those two directories are many. Which one is correct? Why the bse directory for San Jose?</p>
550
551 <p>I assume that the reasons for the different NTPATH names is to avoid going over the WAN to get trigger script code. I also assume that this is mitigated on Unix by use of the automounter and yet we cannot say that UNIXPATH is always the same due to the difference in San Jose. I wonder if DFS could be used to provide a consistent, globally well known path to trigger code under Windows...</p>
552
553 <p>In any event the question that rises is how are these various repositories of code kept in sync if at all?</p>
554
555 <h2>Inconsistent Application of Triggers</h2>
556
557 <p>Normally there are a certain set of triggers that are implementing policy that are consistently applied to all vobs (or at least all vobs in a region). For example, usually empty branches are considered bad and to be avoided. Thus there is normally a trigger script applied to all vobs to avoid this. Or if an organization determines that rmelem should not be performed then it is enforced with a trigger on all vobs. Yet there doesn't seem to be any triggers consistently applied to all vobs. In fact many vobs have no triggers at all!</p>
558
559 <p>I see, for example, 3 different triggers for preop checkins: GIpreci, preci and test_preci. Triggers could be written that can be applied to any vob and then they act only if the conditions are such that they should do something. IOW for situations where they don't apply they simple exit.</p>
560
561 <p>There are also triggers that do nothing but allow people to proceed or not based on whether the user is on an "approved" list. They carry with them a long list of -nusers. I would think that that would be more difficult to maintain than for a trigger to be written that opens up a file of approved users and validates the user based on that. Then to add/change/delete users one merely needs to update the data file, not re-create a trigger in a vob and then have to worry about what other vobs need their triggers updated. Of course the trigger would need to deal with the issue of what is the global file pathname to that data file.</p>
562                               
563                               <p class="entry-footer">
564                                  <span class="post-footers">Posted by  at 11:04 PM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000427.html">Permalink</a>
565                                  
566                                  
567                               </p>
568                            </div>
569                         </div>
570                      </div>
571                      
572                   </div>
573                </div>
574             </div>
575          </div>
576       </div>
577    </div>
578 </body>
579 </html>