Changeset 29982 for branches/czw_branch/20101203/ippScripts/scripts
- Timestamp:
- Dec 8, 2010, 7:21:36 PM (16 years ago)
- Location:
- branches/czw_branch/20101203/ippScripts/scripts
- Files:
-
- 3 edited
-
ipp_apply_burntool_single.pl (modified) (1 diff)
-
register_exp.pl (modified) (4 diffs)
-
register_imfile.pl (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/czw_branch/20101203/ippScripts/scripts/ipp_apply_burntool_single.pl
r29909 r29982 150 150 my $command = "$regtool -dbname $dbname -updateprocessedimfile -exp_id $exp_id -class_id $class_id -burntool_state $outState"; 151 151 if ($imfile_state ne 'full') { 152 $command .= " -s tate full ";152 $command .= " -set_state full "; 153 153 } 154 154 $status = vsystem ($command, $REALRUN); -
branches/czw_branch/20101203/ippScripts/scripts/register_exp.pl
r27891 r29982 30 30 my $regtool = can_run('regtool') or (warn "can't find regtool" and $missing_tools = 1); 31 31 my $ppStatsFromMetadata = can_run('ppStatsFromMetadata') or (warn "Can't find ppStatsFromMetadata" and $missing_tools = 1); 32 my $ppConfigDump = can_run('ppConfigDump') or (warn "Can't find ppConfigDump" and $missing_tools = 1); 32 33 if ($missing_tools) { 33 34 warn ("Can't find required tools"); … … 118 119 if (uc($exp_type) eq "NULL") { &my_die ("exp_type not found", $exp_id, $PS_EXIT_CONFIG_ERROR); } 119 120 121 my ($data_group,$dist_group,$chip_workdir,$reduction); 122 ($label,$data_group,$dist_group,$end_stage, 123 $tess_id,$chip_workdir,$reduction) = advance_decisions(&value_for_flag($cmdflags,"-dateobs"), 124 &value_for_flag($cmdflags,"-exp_type"), 125 &value_for_flag($cmdflags,"-obs_mode"), 126 &value_for_flag($cmdflags,"-object"), 127 &value_for_flag($cmdflags,"-comment"), 128 $dbname); 120 129 my $command = "$regtool -addprocessedexp"; 121 130 $command .= " -exp_id $exp_id"; … … 127 136 $command .= " -end_stage $end_stage" if defined $end_stage; 128 137 $command .= " -tess_id $tess_id" if defined $tess_id; 138 $command .= " -data_group $data_group" if defined $data_group; 139 $command .= " -dist_group $dist_group" if defined $dist_group; 140 $command .= " -chip_workdir $chip_workdir" if defined $chip_workdir; 141 $command .= " -reduction $reduction" if defined $reduction; 129 142 $command .= " -state full"; 130 143 $command .= " $cmdflags"; … … 156 169 157 170 ### Pau. 171 sub advance_decisions { 172 my $dateobs = shift; 173 my $exptype = shift; 174 my $obsmode = shift; 175 my $object = shift; 176 my $comment = shift; 177 my $dbname = shift; 178 179 # The strings come pre-quoted. 180 $dateobs =~ s/\'//g; 181 $exptype =~ s/\'//g; 182 $obsmode =~ s/\'//g; 183 $object =~ s/\'//g; 184 $comment =~ s/\'//g; 185 186 print "Inside decision engine\n"; 187 my ($label,$data_group,$dist_group,$end_stage,$tess_id,$chip_workdir,$reduction); 188 my $target; 189 190 if ($exptype ne 'OBJECT') { 191 print "Aborting because exptype doesn't claim to be OBJECT: $exptype\n"; 192 return(undef,undef,undef,"reg",undef,undef,undef); 193 } 194 if ($obsmode eq 'ENGINEERING') { 195 print "Aborting because we don't queue engineering data to chip\n"; 196 return(undef,undef,undef,"reg",undef,undef,undef); 197 } 198 # Grab the configuration data. 199 my %nightlyscience_config = (); 200 my $conf_cmd = "$ppConfigDump -dump-recipe NIGHTLY_SCIENCE -"; 201 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 202 run(command => $conf_cmd, verbose => $verbose); 203 unless ($success) { 204 $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR); 205 &my_die("Unable to perform ppConfigDump: $error_code", $date, $PS_EXIT_SYS_ERROR); 206 } 207 print "data loaded\n"; 208 my $mdcParser = PS::IPP::Metadata::Config->new; 209 my $metadata = $mdcParser->parse(join "", @$stdout_buf); 210 foreach my $entry (@{ $metadata }) { 211 if (${ $entry }{name} eq 'TARGETS') { 212 my @target_data = @{ ${ $entry }{value} }; 213 my $this_target = ''; 214 foreach my $tentry (@target_data) { 215 if (${ $tentry }{name} eq 'NAME') { 216 $this_target = ${ $tentry }{value}; 217 $nightlyscience_config{$this_target}{DISTRIBUTION} = $this_target; 218 } 219 elsif (${ $tentry }{name} eq 'DISTRIBUTION') { 220 $nightlyscience_config{$this_target}{DISTRIBUTION} = ${ $tentry }{value}; 221 } 222 elsif (${ $tentry }{name} eq 'TESS') { 223 $nightlyscience_config{$this_target}{TESS_ID} = ${ $tentry }{value}; 224 } 225 elsif (${ $tentry }{name} eq 'OBSMODE') { 226 $nightlyscience_config{$this_target}{OBSMODE} = ${ $tentry }{value}; 227 $nightlyscience_config{$this_target}{OBSMODE} =~ s/%/\.\*/g; 228 } 229 elsif (${ $tentry }{name} eq 'OBJECT') { 230 $nightlyscience_config{$this_target}{OBJECT} = ${ $tentry }{value}; 231 $nightlyscience_config{$this_target}{OBJECT} =~ s/%/\.\*/g; 232 } 233 elsif (${ $tentry }{name} eq 'COMMENT') { 234 $nightlyscience_config{$this_target}{COMMENT} = ${ $tentry }{value}; 235 $nightlyscience_config{$this_target}{COMMENT} =~ s/%/\.\*/g; 236 } 237 elsif (${ $tentry }{name} eq 'STACKABLE') { 238 $nightlyscience_config{$this_target}{STACKABLE} = ${ $tentry }{value}; 239 } 240 elsif (${ $tentry }{name} eq 'EXTRA_PROCESSING') { 241 $nightlyscience_config{$this_target}{EXTRA_PROCESSING} = ${ $tentry }{value}; 242 } 243 elsif (${ $tentry }{name} eq 'REDUCTION') { 244 $nightlyscience_config{$this_target}{REDUCTION} = ${ $tentry }{value}; 245 } 246 } 247 } 248 } 249 print "data parsed\n"; 250 my $found_target; 251 foreach $target (keys %nightlyscience_config) { 252 # print "TEST: $target ($obsmode $object $comment) ($nightlyscience_config{$target}{OBSMODE} $nightlyscience_config{$target}{OBJECT} $nightlyscience_config{$target}{COMMENT}\t"; 253 my $match = 0; 254 my $possible = 0; 255 if (exists($nightlyscience_config{$target}{OBSMODE})) { 256 $possible++; 257 if ($obsmode =~ /$nightlyscience_config{$target}{OBSMODE}/) { 258 $match++; 259 } 260 } 261 if (exists($nightlyscience_config{$target}{OBJECT})) { 262 $possible++; 263 if ($object =~ /$nightlyscience_config{$target}{OBJECT}/) { 264 $match++; 265 } 266 } 267 if (exists($nightlyscience_config{$target}{COMMENT})) { 268 $possible++; 269 if ($comment =~ /$nightlyscience_config{$target}{COMMENT}/) { 270 $match++; 271 } 272 } 273 print "$possible $match\n"; 274 if (($possible > 0)&&($match == $possible)) { 275 $found_target = $target; 276 last; 277 } 278 } 279 unless ($found_target) { 280 print "No acceptible target found.\n"; 281 return(undef,undef,undef,"reg",undef,undef,undef); 282 } 283 print "Found this target: $found_target\n"; 284 print "$dateobs\n"; 285 $target = $found_target; 286 287 my $date = $dateobs; 288 $date =~ s/T.*//; 289 my $workdir_date = $date; 290 $date =~ s/-//g; 291 $workdir_date =~ s%-%/%g; 292 print "$dateobs $date $workdir_date\n"; 293 $label = "${target}.nightlyscience"; 294 $data_group = "${target}.${date}"; 295 $dist_group = $nightlyscience_config{$target}{DISTRIBUTION}; 296 $end_stage = 'warp'; 297 $tess_id = $nightlyscience_config{$target}{TESS_ID}; 298 $chip_workdir = "neb://\@HOST\@.0/${dbname}/TESTING/${target}.nt/${workdir_date}/"; 299 if (exists($nightlyscience_config{$target}{REDUCTION})) { 300 $reduction = $nightlyscience_config{$target}{REDUCTION}; 301 } 302 else { 303 undef($reduction); 304 } 305 306 307 return ($label,$data_group,$dist_group,$end_stage,$tess_id,$chip_workdir,$reduction); 308 } 309 310 311 158 312 159 313 sub cache_run -
branches/czw_branch/20101203/ippScripts/scripts/register_imfile.pl
r29909 r29982 19 19 use File::Basename qw( basename); 20 20 use IPC::Run; 21 use IPC::Cmd 0.36 qw( can_run );21 use IPC::Cmd 0.36 qw( can_run run ); 22 22 use PS::IPP::Config 1.01 qw( :standard ); 23 use PS::IPP::Metadata::List qw( parse_md_list ); 23 24 use PS::IPP::Metadata::Config; 24 25 use Math::Trig; … … 179 180 $command .= " $cmdflags"; 180 181 182 print "$command\n"; 181 183 # determine solar-system parameters 182 184 my $longitude = &value_for_flag($cmdflags, 0.0, "-longitude"); … … 235 237 236 238 { 239 my $mdcParser = PS::IPP::Metadata::Config->new; 240 241 my $class_id = &value_for_flag($cmdflags, 0.0, "-class_id"); 242 my $check_date = &value_for_flag($cmdflags, 0.0, "-dateobs"); 243 $check_date =~ s/T.*$//; 244 my $exp_name = $tmp_exp_name; 245 246 237 247 my $bt_check_command = "$regtool -checkburntoolimfile "; 238 $bt_check_command = " -class_id $class_id "; 239 $bt_check_command = " -date $date "; 240 $bt_check_command = " -exp_name $exp_name "; 241 $bt_check_command = " -dbname $dbname" if defined $dbname; 242 243 ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 248 $bt_check_command .= " -class_id $class_id "; 249 $bt_check_command .= " -date $check_date "; 250 $bt_check_command .= " -valid_burntool $burntoolStateGood "; 251 $bt_check_command .= " -exp_name $exp_name "; 252 $bt_check_command .= " -dbname $dbname" if defined $dbname; 253 254 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 244 255 run ( command => $bt_check_command, verbose => $verbose); 245 256 unless ($success) { … … 270 281 271 282 my $regtool_update = "$regtool -updateprocessedimfile "; 272 $regtool_update .= "-dbname $dbname " if defined $dbname;283 $regtool_update .= "-dbname $dbname " if defined $dbname; 273 284 $regtool_update .= "-exp_id $exp_id -class_id $class_id "; 274 285 275 286 my $burntool_data = pop(@{ $exposures }); 276 287 if ($burntool_data->{burnable} == 0) { 277 $regtool_update .= " -burntool_state 0 - data_state pending_burntool ";288 $regtool_update .= " -burntool_state 0 -set_state pending_burntool "; 278 289 } 279 290 else { 280 291 my $apply_command = "$ippApplyBurntoolSingle --dbname $dbname "; 281 292 $apply_command .= " --class_id $class_id --exp_id $exp_id "; 282 $apply_command .= " --this_uri $burntool_data->{ this_uri} ";293 $apply_command .= " --this_uri $burntool_data->{uri} "; 283 294 $apply_command .= " --previous_uri $burntool_data->{previous_uri} " if defined $burntool_data->{previous_uri}; 284 295 $apply_command .= " --imfile_state $burntool_data->{imfile_state} "; 285 296 $apply_command .= " --verbose " if $verbose; 297 print "$apply_command\n"; 286 298 my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 287 299 IPC::Cmd::run(command => $apply_command, verbose => $verbose);
Note:
See TracChangeset
for help on using the changeset viewer.
