IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 38168


Ignore:
Timestamp:
Apr 23, 2015, 3:12:58 PM (11 years ago)
Author:
watersc1
Message:

Updated remote code with ff support and ippconfig recipes.

Location:
trunk
Files:
1 added
19 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippScripts/scripts/sc_check_diff.pl

    r38093 r38168  
    88
    99
    10 my $remote_root = '/scratch3/watersc1/';
     10#my $remote_root = '/scratch3/watersc1/';
    1111
    12 my ($diff_id,$skycell_id,$dbname,$out_path_base);
     12my ($diff_id,$skycell_id,$dbname,$out_path_base, $remote_root);
    1313GetOptions(
    1414    'diff_id=s'         => \$diff_id,
     
    1616    'dbname=s'          => \$dbname,
    1717    'out_path_base=s'   => \$out_path_base,
     18    'remote_root=s'     => \$remote_root,
    1819    ) or pod2usage( 2 );
    1920
    20 pod2usage( -msg => "Required options: --out_path_base", -exitval => 3) unless
     21pod2usage( -msg => "Required options: --out_path_base --remote_root", -exitval => 3) unless
    2122    defined($out_path_base) &&
    2223    defined($diff_id) &&
    2324    defined($skycell_id) &&
     25    defined($remote_root) &&
    2426    defined($dbname);
    2527
  • trunk/ippScripts/scripts/sc_mk_stack_mdc.pl

    r37833 r38168  
    88
    99
    10 my $remote_root = '/scratch3/watersc1/';
     10#my $remote_root = '/scratch3/watersc1/';
    1111
    12 my ($compmap_file);
     12my ($compmap_file,$remote_root);
    1313GetOptions(
    1414    'compmap=s'   => \$compmap_file,
     15    'remote_root=s' => \$remote_root,
    1516    ) or pod2usage( 2 );
    1617
    1718pod2usage( -msg => "Required options: --compmap", -exitval => 3) unless
     19    defined($remote_root) and
    1820    defined($compmap_file);
    1921
  • trunk/ippScripts/scripts/sc_mk_staticsky_mdc.pl

    r37833 r38168  
    88
    99
    10 my $remote_root = '/scratch3/watersc1/';
     10#my $remote_root = '/scratch3/watersc1/';
    1111
    12 my ($compmap_file);
     12my ($compmap_file, $remote_root);
    1313GetOptions(
    1414    'compmap=s'   => \$compmap_file,
     15    'remote_root=s' => \$remote_root,
    1516    ) or pod2usage( 2 );
    1617
    1718pod2usage( -msg => "Required options: --compmap", -exitval => 3) unless
     19    defined($remote_root) and
    1820    defined($compmap_file);
    1921
  • trunk/ippScripts/scripts/sc_prepare_camera.pl

    r38105 r38168  
    1919use Pod::Usage qw( pod2usage );
    2020
    21 # Hard coded values
    22 # my $remote_root   = '/lustre/scratch1/turquoise/watersc1/ps1/'; # Far side destination base location
    23 my $remote_root     = '/scratch3/watersc1/';  # Far side destination base location
    24 my $remote_hostname = "LANL/Mustang";         # Name of the remote node.
    25 my $threads_req     = 0;                      # How many threads are we going to use?
    26 
    27 my $fail_state = "prep_fail";
    28 
    2921# Look for programs we need
    3022my $missing_tools;
     
    3224my $camtool    = can_run('camtool') or (warn "Can't find camtool" and $missing_tools = 1);
    3325my $ppStatsFromMetadata = can_run('ppStatsFromMetadata') or (warn "Can't find ppStatsFromMetadata" and $missing_tools = 1);
     26my $ppConfigDump = can_run('ppConfigDump') or (warn "Can't find ppConfigDump" and $missing_tools = 1);
    3427
    3528if ($missing_tools) {
     
    3831}
    3932
    40 my ($remote_id,$cam_id,$camera,$dbname,$verbose,$path_base,$no_update);
     33my ($remote_id,$cam_id,$camera,$dbname,$verbose,$path_base,$no_update,$cmd_recipe);
    4134GetOptions(
    4235    'remote_id=s'    => \$remote_id,
     
    4437    'camera|c=s'     => \$camera,
    4538    'dbname|d=s'     => \$dbname,
     39    'recipe=s'       => \$cmd_recipe,
    4640    'path_base=s'    => \$path_base,
    4741    'no_update'      => \$no_update,
     
    5044
    5145pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV;
    52 pod2usage( -msg => "Required options: --remote_id --cam_id --camera --dbname --path_base", -exitval => 3) unless
     46pod2usage( -msg => "Required options: --remote_id --cam_id --camera --dbname --path_base --recipe", -exitval => 3) unless
    5347    defined($remote_id) and
    5448    defined($cam_id) and
    5549    defined($camera) and
    5650    defined($path_base) and
     51    defined($cmd_recipe) and
    5752    defined($dbname);
     53
     54
     55# Hard coded values
     56# Now accessible from a recipe
     57my %remote_recipe = ();
     58{
     59    my $verbose = 0;
     60    my $conf_cmd = "$ppConfigDump -dump-recipe REMOTE -";
     61    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     62        run(command => $conf_cmd, verbose => $verbose);
     63    unless ($success) {
     64        $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     65        &my_die("Unable to perform ppConfigDump: $error_code", -1, $PS_EXIT_SYS_ERROR);
     66    }
     67    my $mdcParser = PS::IPP::Metadata::Config->new;
     68    my $metadata = $mdcParser->parse(join "", @$stdout_buf);
     69
     70    my $active_recipe = '';
     71    my %recipes = ();
     72   
     73#    print Dumper($metadata);
     74    foreach my $entry (@{ $metadata }) {
     75        if (${ $entry }{name} eq 'ACTIVE') {
     76            $active_recipe = ${ $entry }{value}; # Not actually used
     77        }
     78        else {
     79            if (${ $entry }{class} eq 'metadata') { # A real recipe
     80                my $name = ${ $entry }{name};
     81                foreach my $tentry (@{ ${ $entry }{value} }) {
     82                    if (${ $tentry }{class} eq 'scalar') { # A recipe value
     83                        $recipes{$name}{${ $tentry }{name}} = ${ $tentry }{value};
     84                    }
     85                    elsif (${ $tentry }{class} eq 'metadata') { # A recipe array
     86                        foreach my $arr_entry (@{ ${ $tentry }{value} }) {
     87                        push @{ $recipes{$name}{${ $tentry }{name}} }, ${ $arr_entry }{value};
     88                        }
     89                    }
     90                }
     91            }
     92        }
     93    }
     94   
     95    unless (exists($recipes{$cmd_recipe})) { &my_die("Cannot find recipe $cmd_recipe", -1, $PS_EXIT_CONFIG_ERROR) };
     96#    print Dumper(%recipes);
     97    %remote_recipe = %{ $recipes{$cmd_recipe} }; # Select the appropriate recipe.
     98#    print Dumper(\%remote_recipe);
     99}
     100
     101
     102# my $remote_root   = '/lustre/scratch1/turquoise/watersc1/ps1/'; # Far side destination base location
     103my $remote_root     = $remote_recipe{REMOTE_ROOT};
     104my $remote_hostname = $remote_recipe{REMOTE_HOSTNAME};         # Name of the remote node.
     105my $threads_req     = 0;                      # How many threads are we going to use?
     106
     107my $fail_state = "prep_fail";
     108
    58109
    59110my $ipprc = PS::IPP::Config->new( $camera ) or &my_die( "Unable to set up", $remote_id, $cam_id, $PS_EXIT_CONFIG_ERROR, $fail_state);
  • trunk/ippScripts/scripts/sc_prepare_chip.pl

    r37833 r38168  
    1818use Pod::Usage qw( pod2usage );
    1919
    20 # Hard coded values
    21 # my $remote_root   = '/lustre/scratch1/turquoise/watersc1/ps1/'; # Far side destination base location
    22 my $remote_root     = '/scratch3/watersc1/';  # Far side destination base location
    23 my $remote_hostname = "LANL/Mustang";         # Name of the remote node.
    24 my $remote_raw      = "${remote_root}/tmp/";  # Directory to find raw data in.
    25 my $threads_req     = 4;
    26 
    27 my $fail_state = "prep_fail";
    28 my $hard_fail_state = "fail";
    2920
    3021# Look for programs we need
     
    3425my $remotetool = can_run('remotetool') or (warn "Can't find remotetool" and $missing_tools = 1);
    3526my $ipp_burntool_fix = can_run('ipp_apply_burntool_fix.pl') or (warn "Can't find ipp_apply_burntool_fix.pl" and $missing_tools = 1);
     27my $ppConfigDump = can_run('ppConfigDump') or (warn "Can't find ppConfigDump" and $missing_tools = 1);
    3628
    3729if ($missing_tools) {
     
    4133
    4234# Options
    43 my ($remote_id,$chip_id,$camera,$dbname,$path_base,$no_update,$verbose,$dbverbose);
     35my ($remote_id,$chip_id,$camera,$dbname,$path_base,$no_update,$verbose,$dbverbose,$cmd_recipe);
    4436GetOptions(
    4537    'remote_id=s'    => \$remote_id,
     
    4739    'camera|c=s'     => \$camera,
    4840    'dbname|d=s'     => \$dbname,
     41    'recipe=s'       => \$cmd_recipe,
    4942    'path_base=s'    => \$path_base,
    5043    'no_update'      => \$no_update,
     
    5447
    5548pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV;
    56 pod2usage( -msg => "Required options: --remote_id --chip_id --camera --dbname --path_base", -exitval => 3) unless
     49pod2usage( -msg => "Required options: --remote_id --chip_id --camera --dbname --path_base --recipe", -exitval => 3) unless
    5750    defined($remote_id) and
    5851    defined($chip_id) and
    5952    defined($camera) and
    6053    defined($path_base) and
     54    defined($cmd_recipe) and
    6155    defined($dbname);
     56
     57
     58# Hard coded values
     59# Now accessible from a recipe
     60my %remote_recipe = ();
     61{
     62    my $verbose = 0;
     63    my $conf_cmd = "$ppConfigDump -dump-recipe REMOTE -";
     64    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     65        run(command => $conf_cmd, verbose => $verbose);
     66    unless ($success) {
     67        $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     68        &my_die("Unable to perform ppConfigDump: $error_code", -1, $PS_EXIT_SYS_ERROR);
     69    }
     70    my $mdcParser = PS::IPP::Metadata::Config->new;
     71    my $metadata = $mdcParser->parse(join "", @$stdout_buf);
     72
     73    my $active_recipe = '';
     74    my %recipes = ();
     75   
     76#    print Dumper($metadata);
     77    foreach my $entry (@{ $metadata }) {
     78        if (${ $entry }{name} eq 'ACTIVE') {
     79            $active_recipe = ${ $entry }{value}; # Not actually used
     80        }
     81        else {
     82            if (${ $entry }{class} eq 'metadata') { # A real recipe
     83                my $name = ${ $entry }{name};
     84                foreach my $tentry (@{ ${ $entry }{value} }) {
     85                    if (${ $tentry }{class} eq 'scalar') { # A recipe value
     86                        $recipes{$name}{${ $tentry }{name}} = ${ $tentry }{value};
     87                    }
     88                    elsif (${ $tentry }{class} eq 'metadata') { # A recipe array
     89                        foreach my $arr_entry (@{ ${ $tentry }{value} }) {
     90                            push @{ $recipes{$name}{${ $tentry }{name}} }, ${ $arr_entry }{value};
     91                        }
     92                    }
     93                }
     94            }
     95        }
     96    }
     97   
     98    unless (exists($recipes{$cmd_recipe})) { &my_die("Cannot find recipe $cmd_recipe", -1, $PS_EXIT_CONFIG_ERROR) };
     99#    print Dumper(%recipes);
     100    %remote_recipe = %{ $recipes{$cmd_recipe} }; # Select the appropriate recipe.
     101#    print Dumper(\%remote_recipe);
     102}
     103
     104
     105# my $remote_root   = '/lustre/scratch1/turquoise/watersc1/ps1/'; # Far side destination base location
     106my $remote_root     = $remote_recipe{REMOTE_ROOT};
     107my $remote_hostname = $remote_recipe{REMOTE_HOSTNAME};         # Name of the remote node.
     108my $remote_raw      = "${remote_root}/tmp/";  # Directory to find raw data in.
     109my $threads_req     = 4;
     110
     111my $fail_state = "prep_fail";
     112my $hard_fail_state = "fail";
    62113
    63114my $ipprc = PS::IPP::Config->new( $camera ) or &my_die( "Unable to set up", $remote_id, $chip_id, $PS_EXIT_CONFIG_ERROR, $fail_state);
  • trunk/ippScripts/scripts/sc_prepare_diff.pl

    r38097 r38168  
    1818use Pod::Usage qw( pod2usage );
    1919
    20 # Hard coded values
    21 # my $remote_root = '/lustre/scratch1/turquoise/watersc1/ps1/'; # Far side destination base location
    22 my $remote_root     = '/scratch3/watersc1/';
    23 my $remote_hostname = "LANL/Mustang";         # Name of the remote node.
    24 my $threads_req     = 4;                      # How many threads are we going to use?
    25 
    26 my $fail_state = "prep_fail";
    27 
    2820# Look for programs we need
    2921my $missing_tools;
    3022my $remotetool = can_run('remotetool') or (warn "Can't find remotetool" and $missing_tools = 1);
    3123my $difftool    = can_run('difftool') or (warn "Can't find difftool" and $missing_tools = 1);
     24my $ppConfigDump = can_run('ppConfigDump') or (warn "Can't find ppConfigDump" and $missing_tools = 1);
    3225
    3326if ($missing_tools) {
     
    3629}
    3730
    38 my ($remote_id,$diff_id,$camera,$dbname,$verbose,$path_base,$no_update);
     31my ($remote_id,$diff_id,$camera,$dbname,$verbose,$path_base,$no_update,$cmd_recipe);
    3932GetOptions(
    4033    'remote_id=s'    => \$remote_id,
     
    4235    'camera|c=s'     => \$camera,
    4336    'dbname|d=s'     => \$dbname,
     37    'recipe=s'       => \$cmd_recipe,
    4438    'path_base=s'    => \$path_base,
    4539    'no_update'      => \$no_update,
     
    4842
    4943pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV;
    50 pod2usage( -msg => "Required options: --remote_id -diff_id --camera --dbname --path_base", -exitval => 3) unless
     44pod2usage( -msg => "Required options: --remote_id -diff_id --camera --dbname --path_base --recipe", -exitval => 3) unless
    5145    defined($remote_id) and
    5246    defined($diff_id) and
    5347    defined($camera) and
    5448    defined($path_base) and
     49    defined($cmd_recipe) and
    5550    defined($dbname);
     51
     52
     53# Hard coded values
     54# Now accessible from a recipe
     55my %remote_recipe = ();
     56{
     57    my $verbose = 0;
     58    my $conf_cmd = "$ppConfigDump -dump-recipe REMOTE -";
     59    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     60        run(command => $conf_cmd, verbose => $verbose);
     61    unless ($success) {
     62        $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     63        &my_die("Unable to perform ppConfigDump: $error_code", -1, $PS_EXIT_SYS_ERROR);
     64    }
     65    my $mdcParser = PS::IPP::Metadata::Config->new;
     66    my $metadata = $mdcParser->parse(join "", @$stdout_buf);
     67
     68    my $active_recipe = '';
     69    my %recipes = ();
     70   
     71#    print Dumper($metadata);
     72    foreach my $entry (@{ $metadata }) {
     73        if (${ $entry }{name} eq 'ACTIVE') {
     74            $active_recipe = ${ $entry }{value}; # Not actually used
     75        }
     76        else {
     77            if (${ $entry }{class} eq 'metadata') { # A real recipe
     78                my $name = ${ $entry }{name};
     79                foreach my $tentry (@{ ${ $entry }{value} }) {
     80                    if (${ $tentry }{class} eq 'scalar') { # A recipe value
     81                        $recipes{$name}{${ $tentry }{name}} = ${ $tentry }{value};
     82                    }
     83                    elsif (${ $tentry }{class} eq 'metadata') { # A recipe array
     84                        foreach my $arr_entry (@{ ${ $tentry }{value} }) {
     85                            push @{ $recipes{$name}{${ $tentry }{name}} }, ${ $arr_entry }{value};
     86                        }
     87                    }
     88                }
     89            }
     90        }
     91    }
     92       
     93    unless (exists($recipes{$cmd_recipe})) { &my_die("Cannot find recipe $cmd_recipe", -1, $PS_EXIT_CONFIG_ERROR) };
     94#    print Dumper(%recipes);
     95    %remote_recipe = %{ $recipes{$cmd_recipe} }; # Select the appropriate recipe.
     96#    print Dumper(\%remote_recipe);
     97}
     98
     99# my $remote_root = '/lustre/scratch1/turquoise/watersc1/ps1/'; # Far side destination base location
     100my $remote_root     = $remote_recipe{REMOTE_ROOT};
     101my $remote_hostname = $remote_recipe{REMOTE_HOSTNAME};         # Name of the remote node.
     102my $threads_req     = 4;                      # How many threads are we going to use?
     103
     104my $fail_state = "prep_fail";
     105
    56106
    57107my $ipprc = PS::IPP::Config->new( $camera ) or my_die( "Unable to set up", $remote_id, $diff_id, $PS_EXIT_CONFIG_ERROR, $fail_state);
     
    198248        my $remote_templsourc = &uri_local_to_remote($ipp_templsourc);
    199249       
    200         my $pre_command     = " sc_check_diff.pl --diff_id ${diff_id} --skycell_id ${skycell_id} --dbname ${dbname} --out_path_base ${remote_outroot} $remote_inimage $remote_inmask $remote_inwt $remote_insourc $remote_templimage $remote_templmask $remote_templwt $remote_templsourc ";
     250        my $pre_command     = " sc_check_diff.pl --diff_id ${diff_id} --remote_root ${remote_root} --skycell_id ${skycell_id} --dbname ${dbname} --out_path_base ${remote_outroot} $remote_inimage $remote_inmask $remote_inwt $remote_insourc $remote_templimage $remote_templmask $remote_templwt $remote_templsourc ";
    201251
    202252        # make any directory we may need
  • trunk/ippScripts/scripts/sc_prepare_ff.pl

    r38145 r38168  
    1818use Pod::Usage qw( pod2usage );
    1919
    20 # Hard coded values
    21 # my $remote_root = '/lustre/scratch1/turquoise/watersc1/ps1/'; # Far side destination base location
    22 my $remote_root     = '/scratch3/watersc1/';
    23 my $remote_hostname = "LANL/Mustang";         # Name of the remote node.
    24 my $threads_req     = 4;                      # How many threads are we going to use?
    25 
    26 my $fail_state = "prep_fail";
    27 
    2820# Look for programs we need
    2921my $missing_tools;
    3022my $remotetool = can_run('remotetool') or (warn "Can't find remotetool" and $missing_tools = 1);
    3123my $fftool    = can_run('fftool') or (warn "Can't find fftool" and $missing_tools = 1);
     24my $ppConfigDump = can_run('ppConfigDump') or (warn "Can't find ppConfigDump" and $missing_tools = 1);
    3225
    3326if ($missing_tools) {
     
    3629}
    3730
    38 my ($remote_id,$ff_id,$camera,$dbname,$verbose,$path_base,$no_update);
     31my ($remote_id,$ff_id,$camera,$dbname,$verbose,$path_base,$no_update,$cmd_recipe);
    3932GetOptions(
    4033    'remote_id=s'    => \$remote_id,
     
    4235    'camera|c=s'     => \$camera,
    4336    'dbname|d=s'     => \$dbname,
     37    'recipe=s'       => \$cmd_recipe,
    4438    'path_base=s'    => \$path_base,
    4539    'no_update'      => \$no_update,
     
    4842
    4943pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV;
    50 pod2usage( -msg => "Required options: --remote_id -ff_id --camera --dbname --path_base", -exitval => 3) unless
     44pod2usage( -msg => "Required options: --remote_id -ff_id --camera --dbname --path_base --recipe", -exitval => 3) unless
    5145    defined($remote_id) and
    5246    defined($ff_id) and
    5347    defined($camera) and
    5448    defined($path_base) and
     49    defined($cmd_recipe) and
    5550    defined($dbname);
     51
     52
     53# Hard coded values
     54# Now accessible from a recipe
     55my %remote_recipe = ();
     56{
     57    my $verbose = 0;
     58    my $conf_cmd = "$ppConfigDump -dump-recipe REMOTE -";
     59    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     60        run(command => $conf_cmd, verbose => $verbose);
     61    unless ($success) {
     62        $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     63        &my_die("Unable to perform ppConfigDump: $error_code", -1, $PS_EXIT_SYS_ERROR);
     64    }
     65    my $mdcParser = PS::IPP::Metadata::Config->new;
     66    my $metadata = $mdcParser->parse(join "", @$stdout_buf);
     67
     68    my $active_recipe = '';
     69    my %recipes = ();
     70   
     71#    print Dumper($metadata);
     72    foreach my $entry (@{ $metadata }) {
     73        if (${ $entry }{name} eq 'ACTIVE') {
     74            $active_recipe = ${ $entry }{value}; # Not actually used
     75        }
     76        else {
     77            if (${ $entry }{class} eq 'metadata') { # A real recipe
     78                my $name = ${ $entry }{name};
     79                foreach my $tentry (@{ ${ $entry }{value} }) {
     80                    if (${ $tentry }{class} eq 'scalar') { # A recipe value
     81                        $recipes{$name}{${ $tentry }{name}} = ${ $tentry }{value};
     82                    }
     83                    elsif (${ $tentry }{class} eq 'metadata') { # A recipe array
     84                        foreach my $arr_entry (@{ ${ $tentry }{value} }) {
     85                            push @{ $recipes{$name}{${ $tentry }{name}} }, ${ $arr_entry }{value};
     86                        }
     87                    }
     88                }
     89            }
     90        }
     91    }
     92   
     93    unless (exists($recipes{$cmd_recipe})) { &my_die("Cannot find recipe $cmd_recipe", -1, $PS_EXIT_CONFIG_ERROR) };
     94#    print Dumper(%recipes);
     95    %remote_recipe = %{ $recipes{$cmd_recipe} }; # Select the appropriate recipe.
     96#    print Dumper(\%remote_recipe);
     97}
     98
     99# my $remote_root = '/lustre/scratch1/turquoise/watersc1/ps1/'; # Far side destination base location
     100my $remote_root     = $remote_recipe{REMOTE_ROOT};
     101my $remote_hostname = $remote_recipe{REMOTE_HOSTNAME};         # Name of the remote node.
     102my $remote_raw      = "${remote_root}/tmp/";  # Directory to find raw data in.
     103
     104my $threads_req     = 4;                      # How many threads are we going to use?
     105
     106my $fail_state = "prep_fail";
     107
    56108
    57109my $ipprc = PS::IPP::Config->new( $camera ) or my_die( "Unable to set up", $remote_id, $ff_id, $PS_EXIT_CONFIG_ERROR, $fail_state);
     
    126178        my $ipp_insourc = $ipprc->filename("PSPHOT.OUTPUT.CFF",$source_pb);
    127179
    128         my ($ipp_disk_inimage, $remote_inimage) = &uri_to_outputs($ipp_inimage);
    129         my ($ipp_disk_inmask, $remote_inmask)  = &uri_to_outputs($ipp_inmask);
    130         my ($ipp_disk_inwt, $remote_inwt)    = &uri_to_outputs($ipp_inwt);
    131         my ($ipp_disk_insourc, $remote_insourc) = &uri_to_outputs($ipp_insourc);
     180#       my ($ipp_disk_inimage, $remote_inimage) = &uri_to_outputs($ipp_inimage);
     181#       my ($ipp_disk_inmask, $remote_inmask)  = &uri_to_outputs($ipp_inmask);
     182#       my ($ipp_disk_inwt, $remote_inwt)    = &uri_to_outputs($ipp_inwt);
     183#       my ($ipp_disk_insourc, $remote_insourc) = &uri_to_outputs($ipp_insourc);
     184
     185        my (undef,$remote_inimage) = uri_to_outputs_raw($ipp_inimage);
     186        my (undef,$remote_inmask)  = uri_to_outputs_raw($ipp_inmask);
     187        my (undef,$remote_inwt)    = uri_to_outputs_raw($ipp_inwt);
     188        my (undef,$remote_insourc) = uri_to_outputs_raw($ipp_insourc);
    132189
    133190        # make any directory we may need
     
    142199                    $remote_id,$ff_id,  $PS_EXIT_CONFIG_ERROR, $fail_state);
    143200        }
     201
    144202
    145203
     
    176234            print CONFIG " && mkdir -p ${remote_root}/tmp/${remote_outroot_dir} && ln -sf $remote_disk ${remote_root}/tmp/${ipp_disk} && touch $remote_disk ";
    177235        }
     236        # If we're this far, we succeeded, so delete the input files.
     237        print CONFIG " && rm -f $remote_insourc $remote_inimage $remote_inmask $remote_inwt ";
    178238        print CONFIG "\n";
    179239#       die();
     
    234294    my $neb_uri = shift;
    235295    my ($ipp_disk, $remote_disk) = &uri_convert( $neb_uri );
     296
     297    print TRANSFER "$ipp_disk\n";
     298    print CHECK    "$remote_disk\n";
     299    return($ipp_disk,$remote_disk);
     300}
     301
     302sub uri_to_outputs_raw {
     303    my $neb_uri = shift;
     304    my ($ipp_disk, $remote_disk) = uri_convert( $neb_uri );
     305    $remote_disk = $remote_raw . $ipp_disk;
    236306
    237307    print TRANSFER "$ipp_disk\n";
  • trunk/ippScripts/scripts/sc_prepare_run.pl

    r38145 r38168  
    2121use Pod::Usage qw( pod2usage );
    2222
     23#use Data::Dumper;
     24# Look for programs we need
     25my $missing_tools;
     26my $remotetool = can_run('remotetool') or (warn "Can't find remotetool" and $missing_tools = 1);
     27my $ppConfigDump = can_run('ppConfigDump') or (warn "Can't find ppConfigDump" and $missing_tools = 1);
     28
     29if ($missing_tools) {
     30    warn("Can't find required tools.");
     31    exit($PS_EXIT_CONFIG_ERROR);
     32}
     33
     34# Options
     35my ($remote_id,$cmd_recipe,$stage,$camera,$path_base,$dbname,$verbose,$no_update);
     36GetOptions(
     37    'remote_id=s'    => \$remote_id,
     38    'recipe=s'       => \$cmd_recipe,
     39    'stage=s'        => \$stage,
     40    'camera|c=s'     => \$camera,
     41    'path_base=s'    => \$path_base,
     42    'dbname|d=s'     => \$dbname,
     43    'verbose'        => \$verbose,
     44    'no_update'      => \$no_update,
     45    ) or pod2usage( 2 );
     46
     47pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV;
     48pod2usage( -msg => "Required options: --remote_id --stage --camera --dbname --path_base --recipe", -exitval => 3) unless
     49    defined($remote_id) and
     50    defined($stage) and
     51    defined($camera) and
     52    defined($path_base) and
     53    defined($cmd_recipe) and
     54    defined($dbname) and
     55    defined($dbname);
     56
    2357# Hard coded values
    24 # my $remote_root   = '/lustre/scratch1/turquoise/watersc1/ps1/'; # Far side destination base location
    25 my $remote_root = '/scratch3/watersc1/';
     58# Now accessible from a recipe
     59my %remote_recipe = ();
     60{
     61    my $verbose = 0;
     62    my $conf_cmd = "$ppConfigDump -dump-recipe REMOTE -";
     63    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     64        run(command => $conf_cmd, verbose => $verbose);
     65    unless ($success) {
     66        $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     67        &my_die("Unable to perform ppConfigDump: $error_code", -1, $PS_EXIT_SYS_ERROR);
     68    }
     69    my $mdcParser = PS::IPP::Metadata::Config->new;
     70    my $metadata = $mdcParser->parse(join "", @$stdout_buf);
     71
     72    my $active_recipe = '';
     73    my %recipes = ();
     74   
     75#    print Dumper($metadata);
     76    foreach my $entry (@{ $metadata }) {
     77        if (${ $entry }{name} eq 'ACTIVE') {
     78            $active_recipe = ${ $entry }{value}; # Not actually used
     79        }
     80        else {
     81            if (${ $entry }{class} eq 'metadata') { # A real recipe
     82                my $name = ${ $entry }{name};
     83                foreach my $tentry (@{ ${ $entry }{value} }) {
     84                    if (${ $tentry }{class} eq 'scalar') { # A recipe value
     85                        $recipes{$name}{${ $tentry }{name}} = ${ $tentry }{value};
     86                    }
     87                    elsif (${ $tentry }{class} eq 'metadata') { # A recipe array
     88                        foreach my $arr_entry (@{ ${ $tentry }{value} }) {
     89                            push @{ $recipes{$name}{${ $tentry }{name}} }, ${ $arr_entry }{value};
     90                        }
     91                    }
     92                }
     93            }
     94        }
     95    }
     96   
     97    unless (exists($recipes{$cmd_recipe})) { &my_die("Cannot find recipe $cmd_recipe", -1, $PS_EXIT_CONFIG_ERROR) };
     98#    print Dumper(%recipes);
     99    %remote_recipe = %{ $recipes{$cmd_recipe} }; # Select the appropriate recipe.
     100#    print Dumper(\%remote_recipe);
     101}
     102
     103my $remote_root = $remote_recipe{REMOTE_ROOT};
    26104my $remote_raw  = "${remote_root}/tmp/";  # Directory to find raw data in.
    27105
     
    51129$job_subscription{"ff"} = 1;
    52130
    53 my $proc_per_node = 24;                     # processors per node
    54 my $min_nodes     = 1;                      # smallest allocation to ask for
    55 my $max_nodes     = 1000;                   # largest allocation to ask for
    56 my $min_time      = 1;                      # shortest allocation to ask for
    57 my $max_time      = 8;                      # longest allocation to ask for
     131my $proc_per_node = $remote_recipe{PROC_PER_NODE};  # processors per node
     132my $min_nodes     = $remote_recipe{MIN_NODES};      # smallest allocation to ask for
     133my $max_nodes     = $remote_recipe{MAX_NODES};      # largest allocation to ask for
     134my $min_time      = $remote_recipe{MIN_TIME};       # shortest allocation to ask for
     135my $max_time      = $remote_recipe{MAX_TIME};       # longest allocation to ask for
    58136
    59137# We need to ensure we only ever try to transfer a file once.
    60138my %file_filter = ();
    61139
    62 # Look for programs we need
    63 my $missing_tools;
    64 my $remotetool = can_run('remotetool') or (warn "Can't find remotetool" and $missing_tools = 1);
    65 
    66 if ($missing_tools) {
    67     warn("Can't find required tools.");
    68     exit($PS_EXIT_CONFIG_ERROR);
    69 }
    70 
    71 # Options
    72 my ($remote_id,$stage,$camera,$path_base,$dbname,$verbose,$no_update);
    73 GetOptions(
    74     'remote_id=s'    => \$remote_id,
    75     'stage=s'        => \$stage,
    76     'camera|c=s'     => \$camera,
    77     'path_base=s'    => \$path_base,
    78     'dbname|d=s'     => \$dbname,
    79     'verbose'        => \$verbose,
    80     'no_update'      => \$no_update,
    81     ) or pod2usage( 2 );
    82 
    83 pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV;
    84 pod2usage( -msg => "Required options: --remote_id --stage --camera --dbname --path_base", -exitval => 3) unless
    85     defined($remote_id) and
    86     defined($stage) and
    87     defined($camera) and
    88     defined($path_base) and
    89     defined($dbname);
    90 
     140
     141# Finish setup
    91142my $ipprc = PS::IPP::Config->new( $camera ) or &my_die( "Unable to set up", $remote_id, $PS_EXIT_CONFIG_ERROR, $fail_state);
    92143
  • trunk/ippScripts/scripts/sc_prepare_stack.pl

    r38137 r38168  
    1818use Pod::Usage qw( pod2usage );
    1919
    20 # Hard coded values
    21 # my $remote_root   = '/lustre/scratch1/turquoise/watersc1/ps1/'; # Far side destination base location
    22 my $remote_root     = '/scratch3/watersc1/';  # Far side destination base location
    23 my $remote_hostname = "LANL/Mustang";         # Name of the remote node.
    24 my $threads_req     = 4;                      # How many threads are we going to use?
    25 my $have_warps      = 0;                      # Do we have a copy of the warp if we don't find one there?
    26 
    27 my $fail_state = "prep_fail";
    28 
    2920# Look for programs we need
    3021my $missing_tools;
    3122my $remotetool = can_run('remotetool') or (warn "Can't find remotetool" and $missing_tools = 1);
    3223my $stacktool    = can_run('stacktool') or (warn "Can't find stacktool" and $missing_tools = 1);
     24my $ppConfigDump = can_run('ppConfigDump') or (warn "Can't find ppConfigDump" and $missing_tools = 1);
    3325
    3426if ($missing_tools) {
     
    3729}
    3830
    39 my ($remote_id,$stack_id,$camera,$dbname,$verbose,$path_base,$no_update);
     31my ($remote_id,$stack_id,$camera,$dbname,$verbose,$path_base,$no_update,$cmd_recipe);
    4032GetOptions(
    4133    'remote_id=s'    => \$remote_id,
     
    4335    'camera|c=s'     => \$camera,
    4436    'dbname|d=s'     => \$dbname,
     37    'recipe=s'       => \$cmd_recipe,
    4538    'path_base=s'    => \$path_base,
    4639    'no_update'      => \$no_update,
     
    4942
    5043pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV;
    51 pod2usage( -msg => "Required options: --remote_id --stack_id --camera --dbname --path_base", -exitval => 3) unless
     44pod2usage( -msg => "Required options: --remote_id --stack_id --camera --dbname --path_base --recipe", -exitval => 3) unless
    5245    defined($remote_id) and
    5346    defined($stack_id) and
    5447    defined($camera) and
    55     defined($path_base) and
     48    defined($path_base) and   
     49    defined($cmd_recipe) and
    5650    defined($dbname);
     51
     52# Hard coded values
     53# Now accessible from a recipe
     54my %remote_recipe = ();
     55{
     56    my $verbose = 0;
     57    my $conf_cmd = "$ppConfigDump -dump-recipe REMOTE -";
     58    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     59        run(command => $conf_cmd, verbose => $verbose);
     60    unless ($success) {
     61        $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     62        &my_die("Unable to perform ppConfigDump: $error_code", -1, $PS_EXIT_SYS_ERROR);
     63    }
     64    my $mdcParser = PS::IPP::Metadata::Config->new;
     65    my $metadata = $mdcParser->parse(join "", @$stdout_buf);
     66
     67    my $active_recipe = '';
     68    my %recipes = ();
     69   
     70#    print Dumper($metadata);
     71    foreach my $entry (@{ $metadata }) {
     72        if (${ $entry }{name} eq 'ACTIVE') {
     73            $active_recipe = ${ $entry }{value}; # Not actually used
     74        }
     75        else {
     76            if (${ $entry }{class} eq 'metadata') { # A real recipe
     77                my $name = ${ $entry }{name};
     78                foreach my $tentry (@{ ${ $entry }{value} }) {
     79                    if (${ $tentry }{class} eq 'scalar') { # A recipe value
     80                        $recipes{$name}{${ $tentry }{name}} = ${ $tentry }{value};
     81                    }
     82                    elsif (${ $tentry }{class} eq 'metadata') { # A recipe array
     83                        foreach my $arr_entry (@{ ${ $tentry }{value} }) {
     84                            push @{ $recipes{$name}{${ $tentry }{name}} }, ${ $arr_entry }{value};
     85                        }
     86                    }
     87                }
     88            }
     89        }
     90    }
     91   
     92    unless (exists($recipes{$cmd_recipe})) { &my_die("Cannot find recipe $cmd_recipe", -1, $PS_EXIT_CONFIG_ERROR) };
     93#    print Dumper(%recipes);
     94    %remote_recipe = %{ $recipes{$cmd_recipe} }; # Select the appropriate recipe.
     95#    print Dumper(\%remote_recipe);
     96}
     97
     98# my $remote_root   = '/lustre/scratch1/turquoise/watersc1/ps1/'; # Far side destination base location
     99my $remote_root     = $remote_recipe{REMOTE_ROOT};  # Far side destination base location
     100my $remote_hostname = $remote_recipe{REMOTE_HOSTNAME};         # Name of the remote node.
     101my $threads_req     = 4;                      # How many threads are we going to use?
     102my $have_warps      = $remote_recipe{TRANSFER_WARP_IMAGES};                      # Do we have a copy of the warp if we don't find one there?
     103
     104my $fail_state = "prep_fail";
     105
    57106
    58107my $ipprc = PS::IPP::Config->new( $camera ) or &my_die( "Unable to set up", $remote_id, $stack_id, $PS_EXIT_CONFIG_ERROR, $fail_state);
     
    158207        #  ${remote_root}/tmp/${ipp_disk}
    159208
    160         if ($have_warps != 0) { # Check to see if we have a copy, because if we do, then we can send it over if it's missing.
     209        if ($have_warps) { # Check to see if we have a copy, because if we do, then we can send it over if it's missing.
    161210            (undef,$remote_file) = &uri_to_outputs($warp_path_base . ".fits");
    162211            ($ipp_disk,undef)    = &uri_convert($warp_path_base . ".fits");
     
    201250    close(COMPMAP);
    202251
    203     my $mk_mdc_command = "mkdir -p $remote_outdir && sc_mk_stack_mdc.pl --compmap ${remote_root}/tmp/${component_map} $warp_path_base_string > ${remote_outroot}.in.mdc";
     252    my $mk_mdc_command = "mkdir -p $remote_outdir && sc_mk_stack_mdc.pl --remote_root ${remote_root} --compmap ${remote_root}/tmp/${component_map} $warp_path_base_string > ${remote_outroot}.in.mdc";
    204253    my $recipe_ppstack = $ipprc->reduction($reduction, 'STACK_PPSTACK'); # Recipe to use
    205254    my $ppstack_command  = " ppStack -input ${remote_outroot}.in.mdc ";
  • trunk/ippScripts/scripts/sc_prepare_staticsky.pl

    r38137 r38168  
    1818use Pod::Usage qw( pod2usage );
    1919
    20 # Hard coded values
    21 # my $remote_root   = '/lustre/scratch1/turquoise/watersc1/ps1/'; # Far side destination base location
    22 my $remote_root     = '/scratch3/watersc1/';  # Far side destination base location
    23 my $remote_hostname = "LANL/Mustang";         # Name of the remote node.
    24 my $threads_req     = 4;                      # How many threads are we going to use?
    25 
    26 my $fail_state = "prep_fail";
    27 
    2820# Look for programs we need
    2921my $missing_tools;
     
    3123my $stacktool    = can_run('stacktool') or (warn "Can't find stacktool" and $missing_tools = 1);
    3224my $staticskytool= can_run('staticskytool') or (warn "Can't find staticskytool" and $missing_tools = 1);
     25my $ppConfigDump = can_run('ppConfigDump') or (warn "Can't find ppConfigDump" and $missing_tools = 1);
    3326
    3427if ($missing_tools) {
     
    3730}
    3831
    39 my ($remote_id,$sky_id,$camera,$dbname,$verbose,$path_base,$no_update);
     32my ($remote_id,$sky_id,$camera,$dbname,$verbose,$path_base,$no_update,$cmd_recipe);
    4033GetOptions(
    4134    'remote_id=s'    => \$remote_id,
     
    4336    'camera|c=s'     => \$camera,
    4437    'dbname|d=s'     => \$dbname,
     38    'recipe=s'       => \$cmd_recipe,
    4539    'path_base=s'    => \$path_base,
    4640    'no_update'      => \$no_update,
     
    4943
    5044pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV;
    51 pod2usage( -msg => "Required options: --remote_id --sky_id --camera --dbname --path_base", -exitval => 3) unless
     45pod2usage( -msg => "Required options: --remote_id --sky_id --camera --dbname --path_base --recipe", -exitval => 3) unless
    5246    defined($remote_id) and
    5347    defined($sky_id) and
    5448    defined($camera) and
    5549    defined($path_base) and
     50    defined($cmd_recipe) and
    5651    defined($dbname);
     52
     53# Hard coded values
     54# Now accessible from a recipe
     55my %remote_recipe = ();
     56{
     57    my $verbose = 0;
     58    my $conf_cmd = "$ppConfigDump -dump-recipe REMOTE -";
     59    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     60        run(command => $conf_cmd, verbose => $verbose);
     61    unless ($success) {
     62        $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     63        &my_die("Unable to perform ppConfigDump: $error_code", -1, $PS_EXIT_SYS_ERROR);
     64    }
     65    my $mdcParser = PS::IPP::Metadata::Config->new;
     66    my $metadata = $mdcParser->parse(join "", @$stdout_buf);
     67
     68    my $active_recipe = '';
     69    my %recipes = ();
     70   
     71#    print Dumper($metadata);
     72    foreach my $entry (@{ $metadata }) {
     73        if (${ $entry }{name} eq 'ACTIVE') {
     74            $active_recipe = ${ $entry }{value}; # Not actually used
     75        }
     76        else {
     77            if (${ $entry }{class} eq 'metadata') { # A real recipe
     78                my $name = ${ $entry }{name};
     79                foreach my $tentry (@{ ${ $entry }{value} }) {
     80                    if (${ $tentry }{class} eq 'scalar') { # A recipe value
     81                        $recipes{$name}{${ $tentry }{name}} = ${ $tentry }{value};
     82                    }
     83                    elsif (${ $tentry }{class} eq 'metadata') { # A recipe array
     84                        foreach my $arr_entry (@{ ${ $tentry }{value} }) {
     85                            push @{ $recipes{$name}{${ $tentry }{name}} }, ${ $arr_entry }{value};
     86                        }
     87                    }
     88                }
     89            }
     90        }
     91    }
     92       
     93    unless (exists($recipes{$cmd_recipe})) { &my_die("Cannot find recipe $cmd_recipe", -1, $PS_EXIT_CONFIG_ERROR) };
     94#    print Dumper(%recipes);
     95    %remote_recipe = %{ $recipes{$cmd_recipe} }; # Select the appropriate recipe.
     96#    print Dumper(\%remote_recipe);
     97}
     98
     99
     100my $remote_root     = $remote_recipe{REMOTE_ROOT};  # Far side destination base location
     101my $remote_hostname = $remote_recipe{REMOTE_HOSTNAME};         # Name of the remote node.
     102my $threads_req     = 4;                      # How many threads are we going to use?
     103
     104my $fail_state = "prep_fail";
     105
    57106
    58107my $ipprc = PS::IPP::Config->new( $camera ) or &my_die( "Unable to set up", $remote_id, $sky_id, $PS_EXIT_CONFIG_ERROR, $fail_state);
     
    186235    close(COMPMAP);
    187236
    188     my $mk_mdc_command = "mkdir -p $remote_outdir && sc_mk_staticsky_mdc.pl --compmap ${remote_root}/tmp/${component_map} $input_path_base_string > ${remote_outroot}.in.mdc";
     237    my $mk_mdc_command = "mkdir -p $remote_outdir && sc_mk_staticsky_mdc.pl --remote_root ${remote_root} --compmap ${remote_root}/tmp/${component_map} $input_path_base_string > ${remote_outroot}.in.mdc";
    189238    my $recipe_psphot = $ipprc->reduction($reduction, 'STACKPHOT_PSPHOT');
    190239    my $recipe_ppsub  = $ipprc->reduction($reduction, 'STACKPHOT_PPSUB');
  • trunk/ippScripts/scripts/sc_prepare_warp.pl

    r37833 r38168  
    1818use Pod::Usage qw( pod2usage );
    1919
    20 # Hard coded values
    21 # my $remote_root = '/lustre/scratch1/turquoise/watersc1/ps1/'; # Far side destination base location
    22 my $remote_root     = '/scratch3/watersc1/';
    23 my $remote_hostname = "LANL/Mustang";         # Name of the remote node.
    24 my $threads_req     = 4;                      # How many threads are we going to use?
    25 
    26 my $fail_state = "prep_fail";
    27 
    2820# Look for programs we need
    2921my $missing_tools;
    3022my $remotetool = can_run('remotetool') or (warn "Can't find remotetool" and $missing_tools = 1);
    3123my $warptool    = can_run('warptool') or (warn "Can't find warptool" and $missing_tools = 1);
     24my $ppConfigDump = can_run('ppConfigDump') or (warn "Can't find ppConfigDump" and $missing_tools = 1);
    3225
    3326if ($missing_tools) {
     
    3629}
    3730
    38 my ($remote_id,$warp_id,$camera,$dbname,$verbose,$path_base,$no_update);
     31my ($remote_id,$warp_id,$camera,$dbname,$verbose,$path_base,$no_update,$cmd_recipe);
    3932GetOptions(
    4033    'remote_id=s'    => \$remote_id,
     
    4235    'camera|c=s'     => \$camera,
    4336    'dbname|d=s'     => \$dbname,
     37    'recipe=s'       => \$cmd_recipe,
    4438    'path_base=s'    => \$path_base,
    4539    'no_update'      => \$no_update,
     
    4842
    4943pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV;
    50 pod2usage( -msg => "Required options: --remote_id -warp_id --camera --dbname --path_base", -exitval => 3) unless
     44pod2usage( -msg => "Required options: --remote_id -warp_id --camera --dbname --path_base --recipe", -exitval => 3) unless
    5145    defined($remote_id) and
    5246    defined($warp_id) and
    5347    defined($camera) and
    5448    defined($path_base) and
     49    defined($cmd_recipe) and
    5550    defined($dbname);
    5651
     52
     53# Hard coded values
     54# my $remote_root = '/lustre/scratch1/turquoise/watersc1/ps1/'; # Far side destination base location
     55# Now accessible from a recipe
     56my %remote_recipe = ();
     57{
     58    my $verbose = 0;
     59    my $conf_cmd = "$ppConfigDump -dump-recipe REMOTE -";
     60    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     61        run(command => $conf_cmd, verbose => $verbose);
     62    unless ($success) {
     63        $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     64        &my_die("Unable to perform ppConfigDump: $error_code", -1, $PS_EXIT_SYS_ERROR);
     65    }
     66    my $mdcParser = PS::IPP::Metadata::Config->new;
     67    my $metadata = $mdcParser->parse(join "", @$stdout_buf);
     68
     69    my $active_recipe = '';
     70    my %recipes = ();
     71   
     72#    print Dumper($metadata);
     73    foreach my $entry (@{ $metadata }) {
     74        if (${ $entry }{name} eq 'ACTIVE') {
     75            $active_recipe = ${ $entry }{value}; # Not actually used
     76        }
     77        else {
     78            if (${ $entry }{class} eq 'metadata') { # A real recipe
     79                my $name = ${ $entry }{name};
     80                foreach my $tentry (@{ ${ $entry }{value} }) {
     81                    if (${ $tentry }{class} eq 'scalar') { # A recipe value
     82                        $recipes{$name}{${ $tentry }{name}} = ${ $tentry }{value};
     83                    }
     84                    elsif (${ $tentry }{class} eq 'metadata') { # A recipe array
     85                        foreach my $arr_entry (@{ ${ $tentry }{value} }) {
     86                            push @{ $recipes{$name}{${ $tentry }{name}} }, ${ $arr_entry }{value};
     87                        }
     88                    }
     89                }
     90            }
     91        }
     92    }
     93    unless (exists($recipes{$cmd_recipe})) { &my_die("Cannot find recipe $cmd_recipe", -1, $PS_EXIT_CONFIG_ERROR) };
     94#    print Dumper(%recipes);
     95    %remote_recipe = %{ $recipes{$cmd_recipe} }; # Select the appropriate recipe.
     96#    print Dumper(\%remote_recipe);
     97
     98}
     99
     100my $remote_root = $remote_recipe{REMOTE_ROOT};
     101my $hostname    = $remote_recipe{REMOTE_HOSTNAME};
     102my $have_warps  = $remote_recipe{TRANSFER_WARP_IMAGES};
     103my $threads_req     = 4;                      # How many threads are we going to use?
     104
     105my $fail_state = "prep_fail";
     106
     107
    57108my $ipprc = PS::IPP::Config->new( $camera ) or my_die( "Unable to set up", $remote_id, $warp_id, $PS_EXIT_CONFIG_ERROR, $fail_state);
    58109
    59110my $mdcParser = PS::IPP::Metadata::Config->new; # Parser for metadata config files
    60111
    61 my @return_component_list = ("DBINFO.EXP", "PSWARP.CONFIG", "PSWARP.OUTPUT", "PSWARP.OUTPUT.MASK", "PSWARP.OUTPUT.VARIANCE", "PSWARP.OUTPUT.SOURCES","PSPHOT.PSF.SKY.SAVE","LOG.EXP");
     112my @return_component_list = ("DBINFO.EXP", "PSWARP.CONFIG", "PSWARP.OUTPUT.SOURCES","PSPHOT.PSF.SKY.SAVE","LOG.EXP");
     113if ($have_warps) {
     114    push @return_component_list, ("PSWARP.OUTPUT", "PSWARP.OUTPUT.MASK", "PSWARP.OUTPUT.VARIANCE");
     115}
    62116
    63117# STEP 0: Open output files
  • trunk/ippScripts/scripts/sc_remote_exec.pl

    r38062 r38168  
    1313use Getopt::Long qw( GetOptions :config auto_help auto_version gnu_getopt );
    1414use Pod::Usage qw( pod2usage );
    15 
    16 # Hard coded values
    17 my $DMZ_HOST = 'wtrw';
    18 my @SEC_HOSTS= ('mu-fe1','mu-fe2','mu-fe3'
    19                 # ,'mu-fe4'
    20     );
    21 my $SEC_HOST = $SEC_HOSTS[int(rand(@SEC_HOSTS))]; # 'mu-fe';
    22 my $IPP_PATH = '/turquoise/usr/projects/cosmo/mswarren/ipp/';
    23 my $remote_root  = '/scratch3/watersc1/';
    2415
    2516# tools
     
    2819my $scp        = can_run('scp')  or (warn "Can't find scp" and $missing_tools = 1);
    2920my $remotetool = can_run('remotetool') or (warn "Can't find remotetool" and $missing_tools = 1);
     21my $ppConfigDump = can_run('ppConfigDump') or (warn "Can't find ppConfigDump" and $missing_tools = 1);
    3022
    3123if ($missing_tools) {
     
    3527
    3628# Options
    37 my ($remote_id,$job_id,$path_base,$dbname,$verbose,$no_update,$camera);
     29my ($remote_id,$job_id,$path_base,$dbname,$verbose,$no_update,$camera,$cmd_recipe);
    3830$verbose = 0;
    3931GetOptions(
     
    4234    'camera=s'      => \$camera,
    4335    'dbname=s'      => \$dbname,
     36    'recipe=s'       => \$cmd_recipe,
    4437    'verbose'       => \$verbose,
    4538    'no_update'     => \$no_update,
     
    4740
    4841pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV;
    49 pod2usage( -msg => "Required options: --remote_id --path_base", -exitval => 3) unless
     42pod2usage( -msg => "Required options: --remote_id --path_base --recipe", -exitval => 3) unless
    5043    defined($path_base) and
     44    defined($camera) and
     45    defined($cmd_recipe) and
     46    defined($dbname) and
    5147    defined($remote_id);
     48
     49# Hard coded values
     50# Now accessible from a recipe
     51my %remote_recipe = ();
     52{
     53    my $verbose = 0;
     54    my $conf_cmd = "$ppConfigDump -dump-recipe REMOTE -";
     55    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     56        run(command => $conf_cmd, verbose => $verbose);
     57    unless ($success) {
     58        $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     59        &my_die("Unable to perform ppConfigDump: $error_code", -1, $PS_EXIT_SYS_ERROR);
     60    }
     61    my $mdcParser = PS::IPP::Metadata::Config->new;
     62    my $metadata = $mdcParser->parse(join "", @$stdout_buf);
     63
     64    my $active_recipe = '';
     65    my %recipes = ();
     66   
     67#    print Dumper($metadata);
     68    foreach my $entry (@{ $metadata }) {
     69        if (${ $entry }{name} eq 'ACTIVE') {
     70            $active_recipe = ${ $entry }{value}; # Not actually used
     71        }
     72        else {
     73            if (${ $entry }{class} eq 'metadata') { # A real recipe
     74                my $name = ${ $entry }{name};
     75                foreach my $tentry (@{ ${ $entry }{value} }) {
     76                    if (${ $tentry }{class} eq 'scalar') { # A recipe value
     77                        $recipes{$name}{${ $tentry }{name}} = ${ $tentry }{value};
     78                    }
     79                    elsif (${ $tentry }{class} eq 'metadata') { # A recipe array
     80                        foreach my $arr_entry (@{ ${ $tentry }{value} }) {
     81                            push @{ $recipes{$name}{${ $tentry }{name}} }, ${ $arr_entry }{value};
     82                        }
     83                    }
     84                }
     85            }
     86        }
     87    }
     88   
     89    unless (exists($recipes{$cmd_recipe})) { &my_die("Cannot find recipe $cmd_recipe", -1, $PS_EXIT_CONFIG_ERROR) };
     90#    print Dumper(%recipes);
     91    %remote_recipe = %{ $recipes{$cmd_recipe} }; # Select the appropriate recipe.
     92#    print Dumper(\%remote_recipe);
     93}
     94
     95# Hard coded values
     96my $DMZ_HOST = $remote_recipe{DMZ_HOST};
     97my @SEC_HOSTS= @{ $remote_recipe{SEC_HOST} };
     98my $SEC_HOST;
     99if ($#SEC_HOSTS != -1) {
     100    $SEC_HOST = $SEC_HOSTS[int(rand(@SEC_HOSTS))];
     101}
     102else {
     103    $SEC_HOST = '';
     104}
     105my $IPP_PATH = $remote_recipe{IPP_PATH};
     106my $remote_root  = $remote_recipe{REMOTE_ROOT};
    52107
    53108my $ipprc = PS::IPP::Config->new( $camera ) or my_die( "Unable to set up", $remote_id);
     
    141196    my $file = shift;
    142197    my $destination = shift;
    143     my $cmd = "$scp $file ${DMZ_HOST}:${SEC_HOST}:${destination}";
     198    my $cmd;
     199    if ($SEC_HOST ne '') {
     200        $cmd = "$scp $file ${DMZ_HOST}:${SEC_HOST}:${destination}";
     201    }
     202    else {
     203        $cmd = "$ssh -n $DMZ_HOST $cmd";
     204    }
    144205
    145206    my $directory = dirname($destination);
     
    157218    my $destination = shift;
    158219    my $file = shift;
    159 
    160     my $cmd = "$scp ${DMZ_HOST}:${SEC_HOST}:${destination} $file ";
     220    my $cmd;
     221    if ($SEC_HOST ne '') {
     222        $cmd = "$scp ${DMZ_HOST}:${SEC_HOST}:${destination} $file ";
     223    }
     224    else {
     225        $cmd = "$ssh -n $DMZ_HOST $cmd";
     226    }
    161227
    162228    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     
    170236sub ssh_exec_command {
    171237    my $cmd = shift;
    172     $cmd = "$ssh -n $DMZ_HOST ssh  ${SEC_HOST} $cmd";
     238    if ($SEC_HOST ne '') {
     239        $cmd = "$ssh -n $DMZ_HOST ssh  ${SEC_HOST} $cmd";
     240    }
     241    else {
     242        $cmd = "$ssh -n $DMZ_HOST $cmd";
     243    }
     244
    173245    print "EXEC: $cmd\n";
    174246    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
  • trunk/ippScripts/scripts/sc_remote_poll.pl

    r38145 r38168  
    2626use Getopt::Long qw( GetOptions :config auto_help auto_version gnu_getopt );
    2727use Pod::Usage qw( pod2usage );
    28 
    29 # Hard coded values
    30 my $DMZ_HOST = 'wtrw';
    31 my @SEC_HOSTS= ('mu-fe1','mu-fe2','mu-fe3'
    32                 # ,'mu-fe4'
    33     );
    34 my $SEC_HOST = $SEC_HOSTS[int(rand(@SEC_HOSTS))]; # 'mu-fe';
    35 my $IPP_PATH = '/turquoise/usr/projects/cosmo/mswarren/ipp/';
    36 my $remote_root  = '/scratch3/watersc1/';
    3728
    3829# tools
     
    4435my $camtool    = can_run('camtool')    or (warn "Can't find camtool"    and $missing_tools = 1);
    4536my $warptool   = can_run('warptool')   or (warn "Can't find warptool"   and $missing_tools = 1);
     37my $ppConfigDump = can_run('ppConfigDump') or (warn "Can't find ppConfigDump" and $missing_tools = 1);
    4638
    4739if ($missing_tools) {
     
    5143
    5244# Options
    53 my ($remote_id,$path_base,$skip_poll,$skip_transfer,$job_id,$dbname,$retry,$verbose,$no_update,$camera);
     45my ($remote_id,$path_base,$skip_poll,$skip_transfer,$job_id,$dbname,$retry,$verbose,$no_update,$camera,$cmd_recipe);
    5446$verbose = 0;
    5547GetOptions(
     
    6153    'camera=s'      => \$camera,
    6254    'dbname=s'      => \$dbname,
     55    'recipe=s'       => \$cmd_recipe,
    6356    'retry'         => \$retry,
    6457    'verbose'       => \$verbose,
     
    6760
    6861pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV;
    69 pod2usage( -msg => "Required options: --remote_id --job_id --path_base", -exitval => 3) unless
     62pod2usage( -msg => "Required options: --remote_id --job_id --path_base --recipe", -exitval => 3) unless
    7063    defined($path_base) and
    7164    defined($remote_id) and
     65    defined($cmd_recipe) and
    7266    defined($job_id);
     67
     68
     69
     70# Now accessible from a recipe
     71my %remote_recipe = ();
     72{
     73    my $verbose = 0;
     74    my $conf_cmd = "$ppConfigDump -dump-recipe REMOTE -";
     75    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     76        run(command => $conf_cmd, verbose => $verbose);
     77    unless ($success) {
     78        $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
     79        &my_die("Unable to perform ppConfigDump: $error_code", -1, $PS_EXIT_SYS_ERROR);
     80    }
     81    my $mdcParser = PS::IPP::Metadata::Config->new;
     82    my $metadata = $mdcParser->parse(join "", @$stdout_buf);
     83
     84    my $active_recipe = '';
     85    my %recipes = ();
     86   
     87#    print Dumper($metadata);
     88    foreach my $entry (@{ $metadata }) {
     89        if (${ $entry }{name} eq 'ACTIVE') {
     90        $active_recipe = ${ $entry }{value}; # Not actually used
     91        }
     92        else {
     93            if (${ $entry }{class} eq 'metadata') { # A real recipe
     94                my $name = ${ $entry }{name};
     95                foreach my $tentry (@{ ${ $entry }{value} }) {
     96                    if (${ $tentry }{class} eq 'scalar') { # A recipe value
     97                        $recipes{$name}{${ $tentry }{name}} = ${ $tentry }{value};
     98                    }
     99                    elsif (${ $tentry }{class} eq 'metadata') { # A recipe array
     100                        foreach my $arr_entry (@{ ${ $tentry }{value} }) {
     101                            push @{ $recipes{$name}{${ $tentry }{name}} }, ${ $arr_entry }{value};
     102                        }
     103                    }
     104                }
     105            }
     106        }
     107    }
     108   
     109    unless (exists($recipes{$cmd_recipe})) { &my_die("Cannot find recipe $cmd_recipe", -1, $PS_EXIT_CONFIG_ERROR) };
     110#    print Dumper(%recipes);
     111    %remote_recipe = %{ $recipes{$cmd_recipe} }; # Select the appropriate recipe.
     112#    print Dumper(\%remote_recipe);
     113}
     114
     115
     116# Hard coded values
     117my $DMZ_HOST = $remote_recipe{DMZ_HOST};
     118my @SEC_HOSTS= @{ $remote_recipe{SEC_HOST} };
     119my $SEC_HOST;
     120if ($#SEC_HOSTS != -1) {
     121    $SEC_HOST = $SEC_HOSTS[int(rand(@SEC_HOSTS))];
     122}
     123else {
     124    $SEC_HOST = '';
     125}
     126my $IPP_PATH = $remote_recipe{IPP_PATH};
     127my $remote_root  = $remote_recipe{REMOTE_ROOT};
     128
    73129
    74130my $ipprc = PS::IPP::Config->new( $camera ) or &my_die( "Unable to set up", $remote_id);
     
    351407    my $file = shift;
    352408    my $destination = shift;
    353     my $cmd = "$scp $file ${DMZ_HOST}:${SEC_HOST}:${destination}";
     409    my $cmd;
     410    if ($SEC_HOST ne '') {
     411        $cmd = "$scp $file ${DMZ_HOST}:${SEC_HOST}:${destination}";
     412    }
     413    else {
     414        $cmd = "$scp $file ${DMZ_HOST}:${destination}";
     415    }
    354416
    355417    my $directory = dirname($destination);
     
    367429    my $destination = shift;
    368430    my $file = shift;
    369 
    370     my $cmd = "$scp ${DMZ_HOST}:${SEC_HOST}:${destination} $file ";
     431    my $cmd;
     432    if ($SEC_HOST ne '') {
     433        $cmd = "$scp ${DMZ_HOST}:${SEC_HOST}:${destination} $file ";
     434    }
     435    else {
     436        $cmd = "$scp $file ${DMZ_HOST}:${destination}";
     437    }
    371438
    372439    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     
    380447sub ssh_exec_command {
    381448    my $cmd = shift;
    382     $cmd = "$ssh -n $DMZ_HOST ssh  ${SEC_HOST} $cmd";
     449
     450    if ($SEC_HOST ne '') {
     451        $cmd = "$ssh -n $DMZ_HOST ssh  ${SEC_HOST} $cmd";
     452    }
     453    else {
     454        $cmd = "$ssh -n $DMZ_HOST $cmd";
     455    }
     456
    383457    print "EXEC: $cmd\n";
    384458    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     
    511585    }
    512586    elsif ($stage eq 'staticsky') {
    513 #       ($class_id, $stage_id) = $file =~ /(/;
     587        ($class_id, $stage_id) = $file =~ /(skycell.\d\d\d\d.\d\d\d).sky.(\d*).dbinfo/;
    514588    }
    515589    elsif ($stage eq 'diff') {
    516 #       ($class_id,$stage_id) = $file =~ /(/;
     590        ($class_id,$stage_id) = $file =~ /(skycell.\d\d\d\d.\d\d\d).WS.dif.(\d*).dbinfo/;
    517591    }
    518592    elsif ($stage eq 'ff') {
    519 #       ($class_id,$stage_id) = $file =~ /(/;
     593        ($class_id,$stage_id) = $file =~ /wrp\.(\d*).ff.(\d*).dbinfo/;
    520594    }
    521595    return ($stage_id, $class_id);
     
    548622        $class_id = 0;
    549623    }
     624    elsif ($stage eq 'staticsky') {
     625        ($class_id, $stage_id, $component) = $file =~ /(skycell.\d\d\d\d.\d\d\d).sky.(\d*).([\w\.]+)$/;
     626    }
     627    elsif ($stage eq 'diff') {
     628        ($class_id,$stage_id, $component) = $file =~ /(skycell.\d\d\d\d.\d\d\d).WS.dif.(\d*).([\w\.]+)$/;
     629    }
     630    elsif ($stage eq 'ff') {
     631        ($class_id,$stage_id, $component) = $file =~ /wrp\.(\d*).ff.(\d*).([\w\.]+)$/;
     632    }
     633
    550634    return($stage_id,$class_id,$component);
    551635}
  • trunk/ippTasks/remote.pro

    r38126 r38168  
    2020$remoteExec_DB = 0
    2121$remotePoll_DB = 0
     22$REMOTE_RECIPE = 0
     23
    2224
    2325list STAGES
     
    9496    active true
    9597  end
     98end
     99
     100macro set.remote.recipe
     101  if ($0 != 2)
     102     echo "USAGE: set.remote.recipe (recipe_name)"
     103     break
     104  end
     105  $REMOTE_RECIPE = $1
    96106end
    97107
     
    273283    if ($N == 0) break
    274284    if ($NETWORK == 0) break
     285    if ($REMOTE_RECIPE == 0) break
    275286
    276287    book getpage remotePrepCompRuns 0 -var pageName -key pantaskState INIT
     
    287298
    288299    if ("$STAGE" == "chip")
    289       $command = sc_prepare_chip.pl --camera GPC1 --chip_id $STAGE_ID --remote_id $REMOTE_ID --path_base $outroot --dbname $DBNAME
     300      $command = sc_prepare_chip.pl --chip_id $STAGE_ID
    290301    end
    291302    if ("$STAGE" == "camera")
    292       $command = sc_prepare_camera.pl --camera GPC1 --cam_id $STAGE_ID --remote_id $REMOTE_ID --path_base $outroot --dbname $DBNAME
     303      $command = sc_prepare_camera.pl --cam_id $STAGE_ID
    293304    end
    294305    if ("$STAGE" == "warp")
    295       $command = sc_prepare_warp.pl --camera GPC1 --warp_id $STAGE_ID --remote_id $REMOTE_ID --path_base $outroot --dbname $DBNAME
     306      $command = sc_prepare_warp.pl --warp_id $STAGE_ID
    296307    end
    297308    if ("$STAGE" == "stack")
    298       $command = sc_prepare_stack.pl --camera GPC1 --stack_id $STAGE_ID --remote_id $REMOTE_ID --path_base $outroot --dbname $DBNAME
     309      $command = sc_prepare_stack.pl --stack_id $STAGE_ID
    299310    end
    300311    if ("$STAGE" == "staticsky")
    301       $command = sc_prepare_staticsky.pl --camera GPC1 --sky_id $STAGE_ID --remote_id $REMOTE_ID --path_base $outroot --dbname $DBNAME
     312      $command = sc_prepare_staticsky.pl --sky_id $STAGE_ID
    302313    end
    303314    if ("$STAGE" == "diff")
    304       $command = sc_prepare_diff.pl --camera GPC1 --diff_id $STAGE_ID --remote_id $REMOTE_ID --path_base $outroot --dbname $DBNAME
    305     end
     315      $command = sc_prepare_diff.pl --diff_id $STAGE_ID
     316    end
     317    if ("$STAGE" == "ff")
     318      $command = sc_prepare_ff.pl --ff_id $STAGE_ID
     319    end
     320
     321# Common elements
     322    $command = $command --recipe $REMOTE_RECIPE --camera GPC1 --remote_id $REMOTE_ID --path_base $outroot --dbname $DBNAME
    306323
    307324    options $pageName
     
    391408    if ($N == 0) break
    392409    if ($NETWORK == 0) break
     410    if ($REMOTE_RECIPE == 0) break
    393411
    394412    book getpage remotePrepRuns 0 -var pageName -key pantaskState INIT
     
    404422    sprintf outroot "%s/remote_%s.%s" $PATH_BASE $STAGE $REMOTE_ID
    405423
    406     $command = sc_prepare_run.pl --camera GPC1 --remote_id $REMOTE_ID --stage $STAGE --path_base $outroot --dbname $DBNAME
     424    $command = sc_prepare_run.pl --camera GPC1 --remote_id $REMOTE_ID --stage $STAGE --path_base $outroot --dbname $DBNAME --recipe $REMOTE_RECIPE
    407425
    408426    options $pageName
     
    491509    if ($N == 0) break
    492510    if ($NETWORK == 0) break
     511    if ($REMOTE_RECIPE == 0) break
    493512
    494513    book getpage remoteExecRuns 0 -var pageName -key pantaskState INIT
     
    505524    sprintf outroot "%s/remote_%s.%s" $PATH_BASE $STAGE $REMOTE_ID
    506525
    507     $command = sc_remote_exec.pl --remote_id $REMOTE_ID --path_base $outroot --verbose --dbname $DBNAME --camera GPC1
     526    $command = sc_remote_exec.pl --remote_id $REMOTE_ID --path_base $outroot --verbose --dbname $DBNAME --camera GPC1 --recipe $REMOTE_RECIPE
    508527
    509528    options $pageName
     
    593612    if ($N == 0) break
    594613    if ($NETWORK == 0) break
     614    if ($REMOTE_RECIPE == 0) break
    595615
    596616    book getpage remotePollRuns 0 -var pageName -key pantaskState INIT
     
    609629    # This can't have an invalid job_id
    610630    if ($JOB_ID == -1) break
    611     $command = sc_remote_poll.pl --remote_id $REMOTE_ID --path_base $outroot --verbose --dbname $DBNAME --camera GPC1 --job_id $JOB_ID
     631    $command = sc_remote_poll.pl --remote_id $REMOTE_ID --path_base $outroot --verbose --dbname $DBNAME --camera GPC1 --job_id $JOB_ID --recipe $REMOTE_RECIPE
    612632
    613633    options $pageName
  • trunk/ippTools/share/Makefile.am

    r38157 r38168  
    528528        remotetool_definebyquery_staticsky.sql \
    529529        remotetool_definebyquery_diff.sql \
     530        remotetool_definebyquery_ff.sql \
    530531        remotetool_dropcomponent.sql \
    531532        remotetool_listcomponent.sql \
  • trunk/ippTools/src/remotetool.c

    r38080 r38168  
    166166  else if (!strcmp(stage,"diff")) {
    167167    query = pxDataGet("remotetool_definebyquery_diff.sql");
     168    if (!query) {
     169      psError(PXTOOLS_ERR_SYS,false, "failed to retreive SQL statement");
     170      return(false);
     171    }
     172
     173    if (label) {
     174      psStringAppend(&whereOption, "\n AND (label = '%s')", label);
     175    }
     176  }
     177  else if (!strcmp(stage,"ff")) {
     178    query = pxDataGet("remotetool_definebyquery_ff.sql");
    168179    if (!query) {
    169180      psError(PXTOOLS_ERR_SYS,false, "failed to retreive SQL statement");
  • trunk/ippconfig/recipes/Makefile.am

    r34212 r38168  
    3333        nightly_science.config \
    3434        ppBackground.mdc \
    35         pstamp.config
     35        pstamp.config \
     36        remote_hosts.config
    3637
    3738install_DATA = $(install_files)
  • trunk/ippconfig/recipes/remote_hosts.config

    r38144 r38168  
    55
    66     SEC_HOST MULTI
    7        SEC_HOST STR     mu-fe1
    8        SEC_HOST STR     mu-fe2
    9        SEC_HOST STR     mu-fe3
    10        SEC_HOST STR     mu-fe4
     7     SEC_HOST METADATA
     8       SEC_HOST1        STR     mu-fe1
     9       SEC_HOST2        STR     mu-fe2
     10       SEC_HOST3        STR     mu-fe3
     11       SEC_HOST4        STR     mu-fe4
    1112     END
    1213
    1314     IPP_PATH        STR     /turquoise/usr/projects/cosmo/mswarren/ipp/
    1415     REMOTE_ROOT     STR     /scratch3/watersc1/
    15      REMOTE_HOSTNAME STR     LANL/Mustang
     16     REMOTE_HOSTNAME STR     LANL/Mustang       
     17
     18# This is used to decide if we bring back warp images, and if stack should ask for local copies.
     19     TRANSFER_WARP_IMAGES BOOL FALSE
     20
     21     PROC_PER_NODE   S32     24
     22     MIN_NODES       S32     1
     23     MAX_NODES       S32     1000
     24     MIN_TIME        S32     1
     25     MAX_TIME        S32     8
    1626END
    1727
     
    2030
    2131     SEC_HOST MULTI
     32     SEC_HOST METADATA
    2233     END
    2334
     
    2536     REMOTE_ROOT     STR     /lus/scratch/watersc/
    2637     REMOTE_HOSTNAME STR     UH/Cray
     38
     39     TRANSFER_WARP_IMAGES BOOL FALSE
     40
     41     PROC_PER_NODE   S32     20
     42     MIN_NODES       S32     1
     43     MAX_NODES       S32     10
     44     MIN_TIME        S32     1
     45     MAX_TIME        S32     8
    2746END     
  • trunk/ippconfig/system.config

    r37415 r38168  
    6666        PSVIDEOPHOT     STR             recipes/psvideophot.config # video cell photometry
    6767        PSTAMP          STR             recipes/pstamp.config       # postage stamp server
     68        REMOTE          STR             recipes/remote_hosts.config # Remote supercomputer processing
    6869END
Note: See TracChangeset for help on using the changeset viewer.