mirror of https://github.com/BOINC/boinc.git
- Added command-line options -preserve_wu_file and -preserve_result_files
to the file deleter. This are useful to implement <no_delete/> for all input or output files respectively. - Documented <no_delete/> file tag. svn path=/trunk/boinc/; revision=4675
This commit is contained in:
parent
13a1964bc3
commit
bdfb8e143f
|
@ -19631,11 +19631,14 @@ David 16 Nov 2004
|
|||
validate_util.C
|
||||
|
||||
Bruce 16 Nov 2004
|
||||
- Fix bug in ops pages displaying counts of zero if 'additional clauses' includes string
|
||||
names such as name='first_workunit'
|
||||
- Result summary pages corrected for boundary condition errors in arrays and to cover
|
||||
additional result.outcome==6 case. Result summaries now sum correctly over outcomes!
|
||||
- Add validate state to result tables, color code for validate state information
|
||||
- Fix bug in ops pages displaying counts of zero if 'additional
|
||||
clauses' includes string names such as name='first_workunit'
|
||||
|
||||
- Result summary pages corrected for boundary condition errors in
|
||||
arrays and to cover additional result.outcome==6 case. Result
|
||||
summaries now sum correctly over outcomes!
|
||||
- Add validate state to result tables, color code for validate
|
||||
state information
|
||||
html/inc/
|
||||
db_ops.inc
|
||||
util_ops.inc
|
||||
|
@ -19706,10 +19709,12 @@ Bruce 17 Nov 2004
|
|||
all possible states (including ones with value 0) and
|
||||
eliminated the 'Unknown' values that previously appeared on the form.
|
||||
These were in error. This is a clean fix, by defining (for example)
|
||||
outcome='CHOOSE_ALL', eg a non-numerical value, for the 'select ALL' case.
|
||||
outcome='CHOOSE_ALL', eg a non-numerical value, for the 'select
|
||||
ALL' case.
|
||||
- Added a select menu for validate_state to the RESULT form.
|
||||
- In forms for outcome, validate_state, client_state and server_state, indicate
|
||||
numeric values (helpful if using additional clauses for more sophisticated queries)
|
||||
- In forms for outcome, validate_state, client_state and
|
||||
server_state, indicate numeric values (helpful if using
|
||||
additional clauses for more sophisticated queries)
|
||||
html/inc/
|
||||
db_ops.inc
|
||||
html/ops/
|
||||
|
@ -19985,8 +19990,10 @@ Bruce 20 Nov 2004 UTC
|
|||
in building it, since CVS replaces $Id:... with a complete version ID
|
||||
string. Declaration is volatile so that the compiler won't remove
|
||||
it even under agressive optimizations.
|
||||
- Fixed initialization bug where calling boinc_init_graphics() would not initialize
|
||||
options correctly, creating lockfile/finished havoc in graphics APP. Thanks Reinhard!
|
||||
|
||||
- Fixed initialization bug where calling boinc_init_graphics()
|
||||
would not initialize options correctly, creating
|
||||
lockfile/finished havoc in graphics APP. Thanks Reinhard!
|
||||
David, please bless this.
|
||||
|
||||
ALL files of form *.C affected.
|
||||
|
@ -20256,8 +20263,10 @@ Bruce and Reinhard 2004-11-26
|
|||
under Mac OSX. Also make dist now works (make distcheck still
|
||||
broken). Karl, since you were the last
|
||||
person to fix up this mess, how about taking a look??
|
||||
- Added placeholders in sched/ for user: assimilator_placeholder.C and validator_placeholder.C.
|
||||
These are built by the build system, but can be replaced by user code as desired.
|
||||
- Added placeholders in sched/ for user: assimilator_placeholder.C
|
||||
and validator_placeholder.C.
|
||||
These are built by the build system, but can be replaced by user
|
||||
code as desired.
|
||||
|
||||
Makefile.am
|
||||
configure.ac
|
||||
|
@ -20290,8 +20299,11 @@ Bruce and Reinhard 2004-11-26
|
|||
boinc_db.inc [removed: this file is autogenerated]
|
||||
|
||||
Bruce 2004-11-27
|
||||
- Added a -dont_update_db command-line option to assimilator.C which prevents it from updating
|
||||
the database, and so is useful for testing.
|
||||
|
||||
- Added a -dont_update_db command-line option to assimilator.C
|
||||
which prevents it from updating the database, and so is useful
|
||||
for testing.
|
||||
|
||||
sched/
|
||||
assimilator.C
|
||||
|
||||
|
@ -20302,6 +20314,18 @@ Karl 2004-11-27
|
|||
db_base.py
|
||||
|
||||
Bruce 2004-11-28
|
||||
- Sanity check args to parse_str(doc, tag, ...) and return false if !doc, !tag, or !strlen(tag)
|
||||
- Sanity check args to parse_str(doc, tag, ...) and return false
|
||||
if !doc, !tag, or !strlen(tag)
|
||||
lib/
|
||||
parse.C
|
||||
|
||||
Bruce 2004-11-29
|
||||
- Added command-line options -preserve_wu_file and -preserve_result_files
|
||||
to the file deleter. This are useful to implement <no_delete/>
|
||||
for all input or output files respectively.
|
||||
- Documented <no_delete/> file tag.
|
||||
sched/
|
||||
file_deleter.C
|
||||
doc/
|
||||
files.php
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@ A file is described by an XML element of the form
|
|||
[ <upload_when_present/> ]
|
||||
[ <sticky/> ]
|
||||
[ <signature_required/> ]
|
||||
[ <no_delete/> ]
|
||||
</file_info>
|
||||
</pre>
|
||||
The elements are as follows:
|
||||
|
@ -58,6 +59,16 @@ the file should be retained on the client after its initial use.");
|
|||
list_item("signature_required", "If present,
|
||||
indicates that the file should be verified with an RSA signature.
|
||||
This generally only applies to executable files.");
|
||||
list_item("no_delete", "If present for an input (workunit) file,
|
||||
indicates that the file should NOT be removed from the download/
|
||||
directory when the workunit is completed. You should use this
|
||||
if a particular input file or files are used by more than one
|
||||
workunit, or will be used by future, unqueued workunits.");
|
||||
list_item("no_delete", "If present for an output (result) file,
|
||||
indicates that the file should NOT be removed from the upload/
|
||||
directory when the corresponding workunit is completed. This is
|
||||
probably a bad idea since your upload/ directory will eventually
|
||||
overflow!");
|
||||
list_end();
|
||||
echo "
|
||||
These attributes allow the specification of various types of files: for
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
static volatile const char *BOINCrcsid="$Id$";
|
||||
// The contents of this file are subject to the BOINC Public License
|
||||
// Version 1.0 (the "License"); you may not use this file except in
|
||||
|
@ -45,7 +46,7 @@ int wu_delete_files(WORKUNIT& wu) {
|
|||
int count_deleted = 0, retval;
|
||||
|
||||
safe_strcpy(buf, wu.xml_doc);
|
||||
|
||||
|
||||
p = strtok(buf, "\n");
|
||||
strcpy(filename, "");
|
||||
while (p) {
|
||||
|
@ -60,7 +61,7 @@ int wu_delete_files(WORKUNIT& wu) {
|
|||
retval = dir_hier_path(
|
||||
filename, config.download_dir, config.uldl_dir_fanout,
|
||||
pathname
|
||||
);
|
||||
);
|
||||
if (retval) {
|
||||
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "[%s] dir_hier_path: %d\n", wu.name, retval);
|
||||
} else {
|
||||
|
@ -125,6 +126,10 @@ int result_delete_files(RESULT& result) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
// set by corresponding command line arguments.
|
||||
static bool preserve_wu_files=false;
|
||||
static bool preserve_result_files=false;
|
||||
|
||||
// return nonzero if did anything
|
||||
//
|
||||
bool do_pass() {
|
||||
|
@ -139,7 +144,9 @@ bool do_pass() {
|
|||
sprintf(buf, "where file_delete_state=%d limit 1000", FILE_DELETE_READY);
|
||||
while (!wu.enumerate(buf)) {
|
||||
did_something = true;
|
||||
wu_delete_files(wu);
|
||||
|
||||
if (!preserve_wu_files)
|
||||
wu_delete_files(wu);
|
||||
wu.file_delete_state = FILE_DELETE_DONE;
|
||||
sprintf(buf, "file_delete_state=%d", wu.file_delete_state);
|
||||
retval= wu.update_field(buf);
|
||||
|
@ -154,7 +161,8 @@ bool do_pass() {
|
|||
sprintf(buf, "where file_delete_state=%d limit 1000", FILE_DELETE_READY);
|
||||
while (!result.enumerate(buf)) {
|
||||
did_something = true;
|
||||
result_delete_files(result);
|
||||
if (!preserve_result_files)
|
||||
result_delete_files(result);
|
||||
result.file_delete_state = FILE_DELETE_DONE;
|
||||
sprintf(buf, "file_delete_state=%d", result.file_delete_state);
|
||||
retval= result.update_field(buf);
|
||||
|
@ -179,6 +187,20 @@ int main(int argc, char** argv) {
|
|||
asynch = true;
|
||||
} else if (!strcmp(argv[i], "-one_pass")) {
|
||||
one_pass = true;
|
||||
} else if (!strcmp(argv[i], "-preserve_wu_files")) {
|
||||
// This option is primarily for testing. If enabled, the
|
||||
// file_deleter will function 'normally' and will update
|
||||
// the database, but will not actually delete the workunit
|
||||
// input files. It's equivalent to setting <no_delete/>
|
||||
// [undocumented] for all workunit input files.
|
||||
preserve_wu_files = true;
|
||||
} else if (!strcmp(argv[i], "-preserve_result_files")) {
|
||||
// This option is primarily for testing. If enabled, the
|
||||
// file_deleter will function 'normally' and will update
|
||||
// the database but will not actually delete the result
|
||||
// output files. It's equivalent to setting <no_delete/>
|
||||
// [undocumented] for all result output files.
|
||||
preserve_result_files = true;
|
||||
} else if (!strcmp(argv[i], "-d")) {
|
||||
log_messages.set_debug_level(atoi(argv[++i]));
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue