Author: fapeeler
Date: Fri Apr 17 16:18:58 2009
New Revision: 766072

URL: http://svn.apache.org/viewvc?rev=766072&view=rev
Log:
VCL-131


Updated getdyanmicaddress routine

- locked down to specific private address ranges.
- supports the use of 10. address for 'public' adapter, for sandbox testing



Modified:
    incubator/vcl/trunk/managementnode/lib/VCL/utils.pm

Modified: incubator/vcl/trunk/managementnode/lib/VCL/utils.pm
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/utils.pm?rev=766072&r1=766071&r2=766072&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/lib/VCL/utils.pm (original)
+++ incubator/vcl/trunk/managementnode/lib/VCL/utils.pm Fri Apr 17 16:18:58 2009
@@ -1669,49 +1669,39 @@
 
        my $identity;
        my $dynaIPaddress = 0;
+       my $ip_address;
        if ($image_os_type =~ /windows/i) {
                $identity = $IDENTITY_wxp;
 
                @sshcmd = run_ssh_command($node, $identity, "ipconfig", "root");
                for my $l (@{$sshcmd[1]}) {
                        # skip class a,b,c private addresses
-                       next if ($l !~ /IP.*Address[\s\.:]*([\d\.]*)/);
-                       my $ip_address = $1;
-                       next if ($ip_address =~ /^10\./);
-                       next if ($ip_address =~ /^127\./);
-                       next if ($ip_address =~ /^172\./);
-                       next if ($ip_address =~ /^192\./);
-                       
-                       if ($l !~ /IPAddress = $privateIP/) {
-                               #to cover sites using eth0 as public
-                               $dynaIPaddress = $1;
-                       }
-
-               }
+                        next if ($l !~ /IP(.*)?Address[\s\.:]*([\d\.]*)/);
+                        my $ip_address_found = $2;
+                        next if ($ip_address && $ip_address_found =~ 
/^(10|127|192\.168|172\.(1[6-9]|2[0-9]|3[0-1]))\./);
+                        next if ($ip_address_found =~ /$privateIP/);
+                        $ip_address = $ip_address_found;
+                }
+                $dynaIPaddress = $ip_address;
 
-       } ## end if ($osname =~ /win|vmwarewin/)
+       } ## end if ($osname =~ /windows/)
        elsif ($image_os_type =~ /linux/) {
                $identity = $IDENTITY_bladerhel;
                undef @sshcmd;
                @sshcmd = run_ssh_command($node, $identity, "/sbin/ifconfig 
\|grep inet", "root");
                for my $l (@{$sshcmd[1]}) {
                        # skip class a,b,c private addresses
-                       next if ($l =~ /inet addr:$privateIP/);
-                       next if ($l =~ /inet addr:10.([.0-9]*)/);
-                       next if ($l =~ /inet addr:127([.0-9]*)/);
-                       next if ($l =~ /inet addr:172([.0-9]*)/);
-                       next if ($l =~ /inet addr:192.168([.0-9]*)/);
-                       if ($l =~ /inet addr:([.0-9]*)/) {
-                               if ($l !~ /inet addr:$privateIP/) {
-                                       #to cover sites using eth0 as public
-                                       $dynaIPaddress = $1;
-                               }
-                       }
-               } ## end for my $l (@{$sshcmd[1]})
+                       next if ($l !~ /inet addr:([\d\.]*)/);
+                        my $ip_address_found = $1;
+                        next if ($ip_address && $ip_address_found =~ 
/^(10|127|192\.168|172\.(1[6-9]|2[0-9]|3[0-1]))\./);
+                        next if ($ip_address_found =~ /$privateIP/);
+                        $ip_address = $ip_address_found;
+               }
+               $dynaIPaddress = $ip_address;
 
-       } ## end elsif ($osname =~ /^(rh|fc)/)  [ if ($osname =~ 
/win|vmwarewin/)
+       } ## end elsif ($image_os_type =~ /linux/)  [ if ($image_os_type =~ 
/windows/)
        else {
-               notify($ERRORS{'WARNING'}, 0, "OSname $osname not supported ");
+               notify($ERRORS{'WARNING'}, 0, "OStype $image_os_type not 
supported ");
                return 0;
        }
        


Reply via email to