2 <html lang="en-us" itemscope itemtype="http://schema.org/Article">
5 <meta name="description" content=" Checked in improved gpdb_add_project.pl script Started investigating Dave Smith's Monthly Matrix...">
6 <meta name="generator" content="Movable Type 5.2.3">
7 <title>Improved gpdp_add_project - Status</title>
8 <link rel="alternate" type="application/atom+xml" title="Recent Entries" href="http://defaria.com/blogs/Status/atom.xml">
9 <link rel="canonical" href="http://defaria.com/blogs/Status/2006/10/improved-gpdp-a.html">
10 <meta name="viewport" content="width=device-width,initial-scale=1">
11 <link rel="stylesheet" href="http://defaria.com/blogs/Status/styles.css">
13 <link rel="stylesheet" href="http://defaria.com/blogs/Status/styles_ie.css">
14 <script src="/mt/mt-static/support/theme_static/rainier/js/html5shiv.js"></script>
17 <link rel="start" href="http://defaria.com/blogs/Status/">
19 <link rel="prev" href="http://defaria.com/blogs/Status/2006/10/rexec-1.html" title="Rexec">
20 <link rel="next" href="http://defaria.com/blogs/Status/2006/10/gpdb-add-projec.html" title="gpdb_add_project.pl using gpdb user and Nice">
21 <!-- Open Graph Protocol -->
22 <meta property="og:type" content="article">
23 <meta property="og:locale" content="en-us">
24 <meta property="og:title" content="Improved gpdp_add_project">
25 <meta property="og:url" content="http://defaria.com/blogs/Status/2006/10/improved-gpdp-a.html">
26 <meta property="og:description" content=" Checked in improved gpdb_add_project.pl script Started investigating Dave Smith's Monthly Matrix...">
27 <meta property="og:site_name" content="Status">
28 <meta property="og:image" content="/mt/mt-static/support/theme_static/rainier/img/siteicon-sample.png">
30 <meta itemprop="description" content=" Checked in improved gpdb_add_project.pl script Started investigating Dave Smith's Monthly Matrix...">
31 <link itemprop="url" href="http://defaria.com/blogs/Status/2006/10/improved-gpdp-a.html">
32 <link itemprop="image" href="/mt/mt-static/support/theme_static/rainier/img/siteicon-sample.png">
37 <div id="container-inner">
38 <header id="header" role="banner">
39 <div id="header-inner">
40 <div id="header-content">
42 <a href="http://defaria.com/blogs/Status/">
51 <nav role="navigation">
53 <li><a href="http://defaria.com/blogs/Status/">Home</a></li>
62 <div id="content-inner">
63 <ul class="breadcrumb breadcrumb-list">
64 <li class="breadcrumb-list-item"><a href="http://defaria.com/blogs/Status/">Home</a></li>
65 <li class="breadcrumb-list-item">Improved gpdp_add_project</li>
67 <div id="individual-main" class="main" role="main">
68 <article id="entry-1837" class="entry entry-asset asset hentry">
69 <div class="asset-header">
70 <h2 itemprop="name" class="asset-name entry-title">Improved gpdp_add_project</h2>
71 <footer class="asset-meta">
72 <ul class="asset-meta-list">
73 <li class="asset-meta-list-item">Posted on <time datetime="2006-10-10T15:50:16-08:00" itemprop="datePublished">October 10, 2006</time></li>
74 <li class="asset-meta-list-item">by <span class="author entry-author vcard"></span></li>
77 <li class="asset-meta-list-item">in <a itemprop="articleSection" rel="tag" href="http://defaria.com/blogs/Status/gpdb/">GPDB</a></li>
83 <div class="entry-content asset-content" itemprop="articleBody">
85 <li>Checked in improved gpdb_add_project.pl script</li>
87 <li> Started investigating Dave Smith's <i>Monthly Matrix</i></li>
89 <p>I've gotten Michael's copy of gpdb_add_project.pl, which he placed into the cmtools/src vob, working now. Here's some of the changes:</p>
92 <li>Resolved all problems so that "use strict" could be used</li>
94 <li>Fixed bugs with tests for right spaced filled tests for siteName (e.g. $siteName eq "Dallas ")</li>
96 <li>Changed code so that failure to contact a remote site simply reports a warning and moves on to the next site (previously it would die after the first failure).</li>
98 <li>Changed reading of gpdb_site_list.txt file so that it reads from the correct location.</li>
100 <li>Added Protocol, Username and Password columns to gpdb_site_list.txt (and reading of site file).</li>
102 <li>Changed all rsh calls to call an "Rexec" function that takes a hash of the site line in gpdb_site_list.txt. This is to allow alternate username/password per site<sup>1</sup></li>
105 <p>Note that Rexec currently only supports the rsh protocol and the return code from this Rexec is the same as the return code for the rsh command itself, not the return code from the command that rsh is executing on the remote machine.</p>
107 <p>The thought with the Protocol column in the site file is to support additional protocols, notably ssh and telnet, in the future.</p>
109 <p>However, "rsh <machine> -l <user> command" doesn't prompt for password and you cannot supply password on the command line either<sup>1</sup>
110 ssh will prompt for a password. Telnet, of course, does not offer the ability to add a command. Finally specifying a password in a file is not very secure.</p>
112 <p>I've spent a little time coming up with a Perl module (strangely named Rexec) to implement remote command execution. Currently it is an object oriented approach that uses telnet and Expect to open a channel to the remote machine and execute commands returning the remotely executed command's status and output. I plan on extending it to first try ssh then rlogin and finally telnet. For the first protocol, if passwordless access is set up then no password is required. If it can't connect that way then it can fall back to rlogin or telnet and use Expect to drive the login and command execution (or optionally fail if no password is given). In general I think this would be a useful module to have for
115 <p>Another benefit would be that the usage would be such that you establish a connection, execute potentially hundreds of commands, then destroy the connection - which would be a lot faster than say hundreds of ssh/rsh's which each need to login, do the command and logout.</p>
117 <p>Another optimization I see for gpdb_add_project.pl would be to have the remote machine cut down the amount of data needed to be sent over the network connection. For example, gpdb_add_project.pl uses a remote connection to essentially niscat the auto_data automount map, returning hundreds of lines (6395 lines or 622559 bytes). Then it loops through that array looking for lines that say "sync_custom" (actually it first
118 sorts them - for no particular reason!). I propose that it instead does something like "niscat auto_data.org_dir | grep sync_custom" returning only 2 lines or 126 bytes and remove the needless sort(s).</p>
120 <p>Architecturally I think that what gpdb_add_project.pl does is interface between the outside world (in this case DesignSync) and GPDB. GPDB has a nice Perl module to allow consistent programmatic access to the output - GPDB (Thanks Michael). What would be nice is a Perl module that gathers all DesignSync info (which is what gpdb_add_project.pl does) allowing a consistent programmatic access to DesignSync info (and down the road - Clearcase). Then gpdb_add_project.pl could be greatly simplified to simply talk to these two architected interfaces.</p>
122 <nav class="page-navigation entry-navigation pagination content-nav">
123 <ul class="page-navigation-list">
125 <li class="page-navigation-list-item page-navigation-prev"><a rel="prev" href="http://defaria.com/blogs/Status/2006/10/rexec-1.html" title="Rexec">Previous entry</a></li>
128 <li class="page-navigation-list-item page-navigation-next"><a rel="next" href="http://defaria.com/blogs/Status/2006/10/gpdb-add-projec.html" title="gpdb_add_project.pl using gpdb user and Nice">Next entry</a></li>
133 <aside id="zenback" class="zenback feedback">
134 Please paste Zenback script code here.
141 <aside class="widgets related" role="complementary">
142 <nav class="widget-search widget">
143 <div class="widget-content">
144 <form method="get" id="search" action="http://defaria.com/mt/mt-search.cgi">
146 <input type="text" name="search" value="" placeholder="Search...">
148 <input type="hidden" name="IncludeBlogs" value="8">
150 <input type="hidden" name="limit" value="20">
151 <button type="submit" name="button">
152 <img alt="Search" src="/mt/mt-static/support/theme_static/rainier/img/search-icon.png">
158 <nav class="widget-archive-category widget">
159 <h3 class="widget-header">Categories</h3>
160 <div class="widget-content">
163 <ul class="widget-list">
166 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/ameriquest/">Ameriquest (99)</a>
174 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/audience/">Audience (3)</a>
182 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/broadcom/">Broadcom (76)</a>
190 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/gpdb/">GPDB (35)</a>
198 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/general-dynamics/">General Dynamics (61)</a>
206 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/general-electric/">General Electric (13)</a>
214 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/hewlett-packard/">Hewlett Packard (13)</a>
222 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/lynuxworks/">LynuxWorks (162)</a>
230 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/pqa/">PQA (35)</a>
238 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/salira/">Salira (79)</a>
246 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/tellabs/">Tellabs (2)</a>
254 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/texas-instruments/">Texas Instruments (31)</a>
266 <nav class="widget-archive-dropdown widget">
267 <h3 class="widget-header">Archives</h3>
268 <div class="widget-content">
270 <option>Select a Month...</option>
272 <option value="http://defaria.com/blogs/Status/2016/02/">February 2016</option>
276 <option value="http://defaria.com/blogs/Status/2014/09/">September 2014</option>
280 <option value="http://defaria.com/blogs/Status/2014/04/">April 2014</option>
284 <option value="http://defaria.com/blogs/Status/2014/03/">March 2014</option>
288 <option value="http://defaria.com/blogs/Status/2013/02/">February 2013</option>
292 <option value="http://defaria.com/blogs/Status/2012/09/">September 2012</option>
296 <option value="http://defaria.com/blogs/Status/2012/08/">August 2012</option>
300 <option value="http://defaria.com/blogs/Status/2012/05/">May 2012</option>
304 <option value="http://defaria.com/blogs/Status/2012/04/">April 2012</option>
308 <option value="http://defaria.com/blogs/Status/2012/02/">February 2012</option>
312 <option value="http://defaria.com/blogs/Status/2012/01/">January 2012</option>
316 <option value="http://defaria.com/blogs/Status/2011/10/">October 2011</option>
320 <option value="http://defaria.com/blogs/Status/2011/07/">July 2011</option>
324 <option value="http://defaria.com/blogs/Status/2010/09/">September 2010</option>
328 <option value="http://defaria.com/blogs/Status/2010/08/">August 2010</option>
332 <option value="http://defaria.com/blogs/Status/2010/04/">April 2010</option>
336 <option value="http://defaria.com/blogs/Status/2010/03/">March 2010</option>
340 <option value="http://defaria.com/blogs/Status/2010/02/">February 2010</option>
344 <option value="http://defaria.com/blogs/Status/2009/05/">May 2009</option>
348 <option value="http://defaria.com/blogs/Status/2009/04/">April 2009</option>
352 <option value="http://defaria.com/blogs/Status/2008/07/">July 2008</option>
356 <option value="http://defaria.com/blogs/Status/2008/05/">May 2008</option>
360 <option value="http://defaria.com/blogs/Status/2008/04/">April 2008</option>
364 <option value="http://defaria.com/blogs/Status/2008/03/">March 2008</option>
368 <option value="http://defaria.com/blogs/Status/2008/02/">February 2008</option>
372 <option value="http://defaria.com/blogs/Status/2008/01/">January 2008</option>
376 <option value="http://defaria.com/blogs/Status/2007/12/">December 2007</option>
380 <option value="http://defaria.com/blogs/Status/2007/11/">November 2007</option>
384 <option value="http://defaria.com/blogs/Status/2007/10/">October 2007</option>
388 <option value="http://defaria.com/blogs/Status/2007/09/">September 2007</option>
392 <option value="http://defaria.com/blogs/Status/2007/08/">August 2007</option>
396 <option value="http://defaria.com/blogs/Status/2007/07/">July 2007</option>
400 <option value="http://defaria.com/blogs/Status/2007/06/">June 2007</option>
404 <option value="http://defaria.com/blogs/Status/2007/05/">May 2007</option>
408 <option value="http://defaria.com/blogs/Status/2007/04/">April 2007</option>
412 <option value="http://defaria.com/blogs/Status/2007/03/">March 2007</option>
416 <option value="http://defaria.com/blogs/Status/2007/01/">January 2007</option>
420 <option value="http://defaria.com/blogs/Status/2006/12/">December 2006</option>
424 <option value="http://defaria.com/blogs/Status/2006/11/">November 2006</option>
428 <option value="http://defaria.com/blogs/Status/2006/10/">October 2006</option>
432 <option value="http://defaria.com/blogs/Status/2006/09/">September 2006</option>
436 <option value="http://defaria.com/blogs/Status/2006/07/">July 2006</option>
440 <option value="http://defaria.com/blogs/Status/2006/06/">June 2006</option>
444 <option value="http://defaria.com/blogs/Status/2006/05/">May 2006</option>
448 <option value="http://defaria.com/blogs/Status/2006/04/">April 2006</option>
452 <option value="http://defaria.com/blogs/Status/2006/03/">March 2006</option>
456 <option value="http://defaria.com/blogs/Status/2006/02/">February 2006</option>
460 <option value="http://defaria.com/blogs/Status/2006/01/">January 2006</option>
464 <option value="http://defaria.com/blogs/Status/2005/12/">December 2005</option>
468 <option value="http://defaria.com/blogs/Status/2005/11/">November 2005</option>
472 <option value="http://defaria.com/blogs/Status/2005/10/">October 2005</option>
476 <option value="http://defaria.com/blogs/Status/2005/09/">September 2005</option>
480 <option value="http://defaria.com/blogs/Status/2005/08/">August 2005</option>
484 <option value="http://defaria.com/blogs/Status/2005/07/">July 2005</option>
488 <option value="http://defaria.com/blogs/Status/2005/06/">June 2005</option>
492 <option value="http://defaria.com/blogs/Status/2005/05/">May 2005</option>
496 <option value="http://defaria.com/blogs/Status/2005/04/">April 2005</option>
500 <option value="http://defaria.com/blogs/Status/2005/03/">March 2005</option>
504 <option value="http://defaria.com/blogs/Status/2005/02/">February 2005</option>
508 <option value="http://defaria.com/blogs/Status/2005/01/">January 2005</option>
512 <option value="http://defaria.com/blogs/Status/2004/12/">December 2004</option>
516 <option value="http://defaria.com/blogs/Status/2004/09/">September 2004</option>
520 <option value="http://defaria.com/blogs/Status/2004/08/">August 2004</option>
524 <option value="http://defaria.com/blogs/Status/2004/07/">July 2004</option>
528 <option value="http://defaria.com/blogs/Status/2004/06/">June 2004</option>
532 <option value="http://defaria.com/blogs/Status/2004/05/">May 2004</option>
536 <option value="http://defaria.com/blogs/Status/2004/04/">April 2004</option>
540 <option value="http://defaria.com/blogs/Status/2004/03/">March 2004</option>
544 <option value="http://defaria.com/blogs/Status/2004/02/">February 2004</option>
548 <option value="http://defaria.com/blogs/Status/2004/01/">January 2004</option>
552 <option value="http://defaria.com/blogs/Status/2003/12/">December 2003</option>
556 <option value="http://defaria.com/blogs/Status/2003/11/">November 2003</option>
564 <div class="widget-syndication widget section">
565 <div class="widget-content">
566 <p><img src="http://defaria.com/mt/mt-static/images/status_icons/feed.gif" alt="Subscribe to feed" width="9" height="9" /> <a href="http://defaria.com/blogs/Status/atom.xml">Subscribe to this blog's feed</a></p>
574 <footer id="footer" role="contentinfo">
575 <div id="footer-inner">
576 <div id="footer-content">
577 <nav role="navigation">
579 <li><a href="http://defaria.com/blogs/Status/">Home</a></li>
585 <p class="license">© Copyright 2016.</p>
586 <p class="poweredby">Powered by <a href="http://www.movabletype.org/">Movable Type</a></p>
592 <script src="http://defaria.com/mt/mt-static/jquery/jquery.min.js"></script>
593 <script src="http://defaria.com/blogs/Status/mt-theme-scale2.js"></script>