[padb-devel] [padb] r232 committed - Add standard regexpes for space, comma and equals and use these for ca...

codesite-noreply at google.com codesite-noreply at google.com
Thu Sep 10 20:06:51 BST 2009


Revision: 232
Author: apittman
Date: Thu Sep 10 12:05:57 2009
Log: Add standard regexpes for space, comma and equals and use these for  
calls to
split.

http://code.google.com/p/padb/source/detail?r=232

Modified:
  /branches/cleanup/src/padb

=======================================
--- /branches/cleanup/src/padb	Thu Sep 10 10:44:39 2009
+++ /branches/cleanup/src/padb	Thu Sep 10 12:05:57 2009
@@ -416,6 +416,12 @@
  my $norc       = 0;
  my $configfile = '/etc/padb.conf';

+# Standard regexpes for splitting on comma, equals and spaces.  Note the
+# space regexp matches multiple whitespace characters.
+my $COMMA  = qr{,}x;
+my $EQUALS = qr{=}x;
+my $SPACE  = qr{\s+}x;
+
  # Look for edb in the default install location only.
  sub find_edb {
      return '/usr/lib/qsnet/elan4/bin/'
@@ -721,8 +727,8 @@
      GetOptions(%optionhash) or exit 1;

      if ( defined $debugflag ) {
-        foreach my $f ( split ',', $debugflag ) {
-            my ( $name, $v ) = split( "=", $f );
+        foreach my $f ( split $COMMA, $debugflag ) {
+            my ( $name, $v ) = split $EQUALS, $f;
              if ( exists $debugModes{$name} ) {
                  $debugModes{$name} = defined $v ? $v : 'basic';
              } else {
@@ -1016,7 +1022,7 @@

  sub parse_header {
      my ($block) = @_;
-    my @a = split( ",", $block );
+    my @a = split $COMMA, $block;

      my @header;

@@ -1127,7 +1133,7 @@

  sub parse_content {
      my ( $block, $header ) = @_;
-    my @a = split( ",", $block );
+    my @a = split $COMMA, $block;
      my $index = 0;

      my @raw_data;
@@ -2193,9 +2199,11 @@

      my $ncpus = 0;

-    my @c = map { $_ =~ /(\d+)-(\d+)/ ? $2 - $1 + 1 : 1 } ( split " ",  
$cpus );
-
-    my @n = map { $_ =~ /(\d+)-(\d+)/ ? $2 - $1 + 1 : 1 } ( split " ",  
$nodes );
+    my @c =
+      map { $_ =~ /(\d+)-(\d+)/ ? $2 - $1 + 1 : 1 } ( split $SPACE, $cpus  
);
+
+    my @n =
+      map { $_ =~ /(\d+)-(\d+)/ ? $2 - $1 + 1 : 1 } ( split $SPACE, $nodes  
);

      for ( my $idx = 0 ; $idx <= $#n ; $idx++ ) {
          $ncpus += $n[$idx] * $c[$idx];
@@ -2217,12 +2225,12 @@
      my $suffix;

      # deal with multiple entries
-    foreach ( split( " ", $nodespec ) ) {
+    foreach ( split $SPACE, $nodespec ) {
          if (m/([^\[]+)\[([0-9-,]+)\]([^\[]*)/) {
              $prefix = $1;
              $suffix = $3;

-            foreach ( split( ",", $2 ) ) {
+            foreach ( split $COMMA, $2 ) {
                  if ( !m/([0-9]+)-?([0-9]+)?/ ) {
                      print "malformed nodespec '$_'\n";
                      exit 1;
@@ -2294,7 +2302,7 @@
      my $tasks;
      my $have_tasks = 0;
      foreach my $step (@steps) {
-        my ( $step, $cpus ) = split( " ", $step );
+        my ( $step, $cpus ) = split $SPACE, $step;
          $tasks      = $cpus if ( $step eq $s );
          $have_tasks = 1     if ( $cpus eq 'TASKS' );
      }
@@ -2309,8 +2317,8 @@
      return if ( $? != 0 );

      foreach my $step (@jobs) {
-        my ( $left, $right ) = split( " ", $step );
-        return $right if ( $left eq $job );
+        my ( $sj, $ncount ) = split $SPACE, $step;
+        return $ncount if ( $sj eq $job );
      }
      return;
  }
@@ -2326,8 +2334,8 @@
      return if ( $? != 0 );

      foreach my $step (@steps) {
-        my ( $left, $right ) = split( " ", $step );
-        return $right if ( $left eq $s );
+        my ( $sj, $nlist ) = split $SPACE, $step;
+        return $nlist if ( $sj eq $s );

      }
      return;
@@ -2629,7 +2637,7 @@
      my @out = slurp_cmd("bjobs -r -u $user");
      foreach my $l (@out) {
          my ( $job, $user, $stat, $queue, $from, $exec, $name, $time ) =
-          split( " ", $l );
+          split $SPACE, $l;
          next if ( $job eq 'JOBID' );
          next unless ( defined $time );
          push @jobs, $job;
@@ -2652,7 +2660,7 @@
        "select name,ncpus from resources where batchid=\'$machine\@$job\'";
      my $result = `rmsquery "$query"`;

-    my ( $res, $ncpus ) = split( " ", $result );
+    my ( $res, $ncpus ) = split $SPACE, $result;

      my @out = slurp_cmd(
  "rmsquery \"select name from jobs where jobs.resource=\'$res\' and status  
= \'running\' order by name\""
@@ -2862,9 +2870,9 @@
      my %below;

      map { $above{$_}++ }
-      split( ",", $conf{mode_options}{stack}{stack_strip_above} );
+      split $COMMA, $conf{mode_options}{stack}{stack_strip_above};
      map { $below{$_}++ }
-      split( ",", $conf{mode_options}{stack}{stack_strip_below} );
+      split $COMMA, $conf{mode_options}{stack}{stack_strip_below};

      foreach my $tag ( keys %$lines ) {

@@ -3012,12 +3020,12 @@

      my $separator = $carg->{column_seperator};

-    my @columns = split( ",", $carg->{proc_format} );
+    my @columns = split $COMMA, $carg->{proc_format};
      foreach my $column (@columns) {

          $show_fields = 1 if ( $column eq 'fields' );

-        my ( $name, $desc ) = split( "=", $column );
+        my ( $name, $desc ) = split $EQUALS, $column;
          if ( defined $desc ) {
              push @proc_format_array, lc($name);
              $proc_format_header{ lc($name) }  = $desc;
@@ -3789,7 +3797,7 @@
      my ( $comm_data, $cdata, $line ) = @_;

      # Children connect back with "Hello $outerkey $hostname $port  
$innernkey";
-    my @words = split( " ", $line );
+    my @words = split $SPACE, $line;
      if ( $#words != 4 or $words[0] ne 'Hello' or $words[1] ne $secret ) {
          print "Bad signon $line\n";
          return 0;
@@ -3809,7 +3817,7 @@

  sub inner_stdout_cb {
      my ( $comm_data, $cdata, $line ) = @_;
-    my @words = split( " ", $line );
+    my @words = split $SPACE, $line;
      if ( $#words == 3 and $words[0] eq 'connect' ) {

          handle_signon( $comm_data, $words[1], $words[2], $words[3] );
@@ -3936,7 +3944,7 @@
          confess("Failed to recognise $range as range\n");
      }

-    my @user_parts = split( ",", $newrange );
+    my @user_parts = split $COMMA, $newrange;

      my @parts;

@@ -4459,7 +4467,7 @@
      # -Oedbopt="--pagesize 8192 --pagesize-header 4096"
      foreach my $config_option (@config_options) {

-        my ( $key, $val ) = split( "=", $config_option );
+        my ( $key, $val ) = split $EQUALS, $config_option;

          my $name = $key;

@@ -4607,7 +4615,7 @@
      if ( defined $mode and ( $mode eq 'kill' ) ) {
          my $signal = uc $conf{mode_options}{kill}{signal};
          my %sig_names;
-        map { $sig_names{$_} = 1 } split( " ", $Config{sig_name} );
+        map { $sig_names{$_} = 1 } split $SPACE, $Config{sig_name};

          if ( not defined $sig_names{$signal} ) {
              cmdline_error("$prog: Error: signal \"$signal\" is invalid\n");
@@ -4886,52 +4894,52 @@
  sub extract_value_square {
      my $str = shift;

-    my $left   = "";
-    my $right  = $str;
+    my $value  = "";
+    my $rem    = $str;
      my $indent = 0;

-    while ( $right =~ /^([^\[\]]*)([\[\]])(.*)$/ ) {
+    while ( $rem =~ /^([^\[\]]*)([\[\]])(.*)$/ ) {
          if ( $2 eq "[" ) {
              $indent++;
-            $left  = "$left$1\[";
-            $right = $3;
+            $value = "$value$1\[";
+            $rem   = $3;
          } else {
              $indent--;
-            $left  = "$left$1\]";
-            $right = $3;
+            $value = "$value$1\]";
+            $rem   = $3;
              if ( $indent == 0 ) {
-                return ( strip_square($left), $right );
+                return ( strip_square($value), $rem );
              }
          }

      }
-    print "ident $indent\n";
+    croak("Failed to parse $str");
      return;
  }

  sub extract_value_soft {
      my $str = shift;

-    my $left   = "";
-    my $right  = $str;
+    my $value  = "";
+    my $rem    = $str;
      my $indent = 0;

-    while ( $right =~ /^([^\{\}]*)([\{\}])(.*)$/ ) {
+    while ( $rem =~ /^([^\{\}]*)([\{\}])(.*)$/ ) {
          if ( $2 eq "{" ) {
              $indent++;
-            $left  = "$left$1\{";
-            $right = $3;
+            $value = "$value$1\{";
+            $rem   = $3;
          } else {
              $indent--;
-            $left  = "$left$1\}";
-            $right = $3;
+            $value = "$value$1\}";
+            $rem   = $3;
              if ( $indent == 0 ) {
-                return ( strip_soft($left), $right );
+                return ( strip_soft($value), $rem );
              }
          }

      }
-    print "ident $indent\n";
+    croak("Failed to parse $str");
      return;
  }

@@ -5112,7 +5120,7 @@
      my %p = gdb_n_send( $gdb, "-data-evaluate-expression $func" );
      return unless ( $p{status} eq 'done' );
      my $value = gdb_strip_value( $p{reason} );
-    my @a     = split( " ", $value );
+    my @a     = split $SPACE, $value;
      my $hex   = $a[-2];
      return $hex;
  }
@@ -5162,7 +5170,9 @@
  sub handle_query {
      my ( $gdb, $vp, $query, $stats ) = @_;

-    my @params = split( " ", $query );
+    # Shouldn't this be?
+    # my (undef,$cmd, at params) = split $SPACE, $query ;
+    my @params = split $SPACE, $query;
      my $b      = shift @params;
      my $cmd    = shift @params;
      my $res;
@@ -5971,7 +5981,7 @@

      foreach my $l ( slurp_file($file) ) {
          chomp $l;
-        my @stats = split( / /, $l );
+        my @stats = split $SPACE, $l;
          for ( my $i = 0 ; $i <= $#stats ; $i++ ) {
              proc_output( $vp, "stat.$stat_names[$i]", $stats[$i] );
          }
@@ -6000,7 +6010,7 @@
              my %totals;
              foreach my $rgn ( slurp_file("$dir/maps") ) {
                  my ( $area, $perm, $offset, $time, $inode, $file ) =
-                  split( " ", $rgn );
+                  split $SPACE, $rgn;
                  if ( $file =~ '/dev/elan4/sdram(\d+)' ) {
                      my $rail = $1;
                      my ( $start, $end ) = split( "-", $area );
@@ -6067,7 +6077,7 @@
  sub string_to_jiffies {
      my ($ps) = @_;

-    my @usecc = split( " ", $ps );
+    my @usecc = split $SPACE, $ps;

      my $jiffies = 0;

@@ -6084,15 +6094,15 @@

      my $jiffies;

-    my @pre = split( " ", $pre );
+    my @pre = split $SPACE, $pre;

      return ( ( string_to_jiffies($pre) + string_to_jiffies($post) ) / 2 );
  }

  sub pcpu_user {
      my ( $cpucount, $elapsed, $start, $end ) = @_;
-    my @pre  = split( " ", $start );
-    my @post = split( " ", $end );
+    my @pre  = split $SPACE, $start;
+    my @post = split $SPACE, $end;
      my $jused = $post[13] - $pre[13];
      my $used  = ( $jused / $elapsed ) * $cpucount * 100;
      return sprintf "%d", $used;
@@ -6100,8 +6110,8 @@

  sub pcpu_sys {
      my ( $cpucount, $elapsed, $start, $end ) = @_;
-    my @pre  = split( " ", $start );
-    my @post = split( " ", $end );
+    my @pre  = split $SPACE, $start;
+    my @post = split $SPACE, $end;
      my $jused = $post[14] - $pre[14];
      my $used  = ( $jused / $elapsed ) * $cpucount * 100;
      return sprintf "%d", $used;
@@ -6109,8 +6119,8 @@

  sub pcpu_total {
      my ( $cpucount, $elapsed, $start, $end ) = @_;
-    my @pre  = split( " ", $start );
-    my @post = split( " ", $end );
+    my @pre  = split $SPACE, $start;
+    my @post = split $SPACE, $end;
      my $jused = $post[13] - $pre[13] + $post[14] - $pre[14];
      my $used  = ( $jused / $elapsed ) * $cpucount * 100;
      return sprintf "%d", $used;
@@ -6136,9 +6146,9 @@
      %proc_keys = ();

      if ( defined $carg->{proc_format} ) {
-        my @columns = split( ",", $carg->{proc_format} );
+        my @columns = split $COMMA, $carg->{proc_format};
          foreach my $column (@columns) {
-            my ( $name, $desc ) = split( "=", $column );
+            my ( $name, $desc ) = split $EQUALS, $column;
              $proc_keys{ lc($name) } = 1;
          }
      }
@@ -6215,7 +6225,7 @@

          my $elapsed = $jiffies_end - $jiffies_start;

-        my ( $l1, $l5, $l15 ) = split( " ", $load_avg );
+        my ( $l1, $l5, $l15 ) = split $SPACE, $load_avg;

          foreach my $proc ( @{$list} ) {
              my $vp = $proc->{vp};
@@ -6322,11 +6332,11 @@
      my %below;

      if ( $carg->{strip_above_wait} ) {
-        map { $above{$_} = 1 } split qr{,}, $carg->{stack_strip_above};
+        map { $above{$_} = 1 } split $COMMA, $carg->{stack_strip_above};
      }

      if ( $carg->{strip_below_main} ) {
-        map { $below{$_} = 1 } split qr{,}, $carg->{stack_strip_below};
+        map { $below{$_} = 1 } split $COMMA, $carg->{stack_strip_below};
      }

      foreach my $proc ( @{$list} ) {
@@ -6562,7 +6572,7 @@

          foreach my $mode (@d) {
              chomp $mode;
-            my ( $name, $char, @fns ) = split( ",", $mode );
+            my ( $name, $char, @fns ) = split $COMMA, $mode;
              $fns{names}{$name} = $char;
              foreach my $fn (@fns) {
                  $fns{fns}{$fn} = $name;
@@ -6574,7 +6584,7 @@
      my %fns;
      foreach my $mode ( split( "\n", $mpi_watch_data ) ) {
          chomp $mode;
-        my ( $name, $char, @fns ) = split( ",", $mode );
+        my ( $name, $char, @fns ) = split $COMMA, $mode;
          $fns{names}{$name} = $char;
          foreach my $fn (@fns) {
              $fns{fns}{$fn} = $name;
@@ -6784,7 +6794,7 @@
        `scontrol listpids $jobid.$confInner{slurm_job_step} 2>/dev/null`;
      return if ( $? != 0 );
      foreach my $proc (@procs) {
-        my ( $pid, $job, $step, $local, $global ) = split( " ", $proc );
+        my ( $pid, $job, $step, undef, $global ) = split $SPACE, $proc;
          next if ( $global eq '-' );
          next unless ( $job eq $jobid );
          next unless ( $step == $confInner{slurm_job_step} );
@@ -7039,7 +7049,7 @@
      my @pids = get_process_list( getpwuid $< );

      my %scripts;
-    map { $scripts{$_}++ } split( ",", $confInner{scripts} );
+    map { $scripts{$_}++ } split $COMMA, $confInner{scripts};

      my $ipids = $confInner{rmpids};





More information about the padb-devel mailing list