diff --git a/checkin_notes b/checkin_notes index dda03dfd2d..dd5d2b37c3 100755 --- a/checkin_notes +++ b/checkin_notes @@ -10019,3 +10019,23 @@ David Feb 11 2004 client/ cs_scheduler.C + +David Feb 15 2004 + - make_project: + use short hostname + shorten instructions at end + - add a sample project.xml + - scheduler: write log debug msg when set result.outcome + - setup_project.py: + add copy of "create_work" + make symbolic link of html/user_profile to itself + + sched/ + handle_request.C + tools/ + create_work.C + project.xml (new) + make_project + py/Boinc/ + database.py + setup_project.py diff --git a/py/Boinc/database.py b/py/Boinc/database.py index 1d9c2b3996..f8fb296b4d 100644 --- a/py/Boinc/database.py +++ b/py/Boinc/database.py @@ -169,10 +169,6 @@ class Workunit(DatabaseObject): 'name', 'xml_doc', 'batch', - # 'rsc_fpops', - # 'rsc_iops', - # 'rsc_memory', - # 'rsc_disk', 'rsc_fpops_est', 'rsc_fpops_bound', 'rsc_memory_bound', @@ -221,18 +217,9 @@ class Result(DatabaseObject): 'random', 'client_version_num', 'appid', - 'teamid' + 'teamid' ]) -class Workseq(DatabaseObject): - _table = DatabaseTable( - table = 'workseq', - columns = [ 'create_time', - 'state', - 'hostid', - 'wuid_last_done', - 'wuid_last_sent', - 'workseqid_master' ]) def connect(config = None, nodb = False): """Connect if not already connected, using config values.""" diff --git a/py/Boinc/setup_project.py b/py/Boinc/setup_project.py index 6b66acb957..cd01028fc5 100644 --- a/py/Boinc/setup_project.py +++ b/py/Boinc/setup_project.py @@ -279,8 +279,7 @@ def install_boinc_files(dest_dir): map(lambda (s): install(srcdir('sched',s), dir('bin',s)), [ 'start', 'stop', 'status', 'grep_logs' ]) map(lambda (s): install(srcdir('tools',s), dir('bin',s)), - [ 'boinc_path_config.py', 'add', 'xadd', 'dbcheck_files_exist', 'update_versions', - 'upgrade' ]) + [ 'boinc_path_config.py', 'create_work', 'add', 'xadd', 'dbcheck_files_exist', 'update_versions', 'upgrade' ]) class Project: @@ -391,6 +390,7 @@ class Project: my_symlink('../forum', self.dir('html/user/forum')) my_symlink('../stats', self.dir('html/user/stats')) my_symlink('../user_profile', self.dir('html/user/user_profile')) + my_symlink('../user_profile', self.dir('html/user_profile/user_profile')) # Copy the sched server in the cgi directory with the cgi names given diff --git a/sched/handle_request.C b/sched/handle_request.C index 2aec3dd505..dda99275cd 100644 --- a/sched/handle_request.C +++ b/sched/handle_request.C @@ -609,15 +609,21 @@ int handle_results( parse_int(result.stderr_out, "", result.app_version_num); // look for exit status in stderr_out - // TODO: return separately + // TODO: return it separately // parse_int(result.stderr_out, "", result.exit_status); - // Success can only be declared if all the result files have been successfully uploaded - // and the client exit status returns 0 - if ( (result.client_state == RESULT_FILES_UPLOADED) && (0 == result.exit_status) ) { + if ((result.client_state == RESULT_FILES_UPLOADED) && (result.exit_status == 0)) { result.outcome = RESULT_OUTCOME_SUCCESS; + log_messages.printf(SchedMessages::DEBUG, + "[RESULT#%d %s]: setting outcome SUCCESS\n", + result.id, result.name + ); } else { + log_messages.printf(SchedMessages::DEBUG, + "[RESULT#%d %s]: client_state %d exit_status %d; setting outcome ERROR\n", + result.id, result.name, result.client_state, result.exit_status + ); result.outcome = RESULT_OUTCOME_CLIENT_ERROR; result.validate_state = VALIDATE_STATE_INVALID; } diff --git a/tools/create_work.C b/tools/create_work.C index c166f81fa4..07d9df3c7a 100644 --- a/tools/create_work.C +++ b/tools/create_work.C @@ -45,9 +45,7 @@ // // Create a workunit and results. // Input files must be in the download dir. -// template-doc is an XML WU description file, with the following macros: -// INFILEn gets replaced by the name of input file n -// MD5n gets replaced by the MD5 checksum of input file n +// template-doc is an XML WU description file // #include diff --git a/tools/make_project b/tools/make_project index 77029a94d0..2c9e729674 100755 --- a/tools/make_project +++ b/tools/make_project @@ -10,7 +10,7 @@ import sys, os, getopt, re, socket def gethostname(): try: - return socket.gethostbyaddr(socket.gethostname())[0] + return socket.gethostname() except: return 'localhost' @@ -279,20 +279,7 @@ To start, show status, stop BOINC daemons run: Master URL: %(html_user_url)s Administration URL: %(html_ops_url)s -Tasks to do: - -1. Add platform(s) - %(proot)s/bin/add platform --name=c64 --user_f="Commodore 64" - %(proot)s/bin/add platform --name=i686-pc-linux-gnu --user_f="Linux x86" - -2. Add application(s) - %(proot)s/bin/add app --name=SpaghettiAtHome - -3. Add core client and application binaries - - 3a. Place compiled clients in %(proot)s/apps/boinc/ and %(proot)s/apps/APP/ - 3b. Run %(proot)s/bin/update_versions - -4. Generate work : read documentation at http://boinc.berkeley.edu/ +Further steps are necessary to add applications and work. +See the online documentation at http://boinc.berkeley.edu/ '''%locals() diff --git a/tools/project.xml b/tools/project.xml new file mode 100644 index 0000000000..d547dccd7e --- /dev/null +++ b/tools/project.xml @@ -0,0 +1,22 @@ + + + i686-pc-linux-gnu + Linux/x86 + + + windows_intelx86 + Windows/x86 + + + powerpc-apple-darwin + Mac OS X + + + anonymous + anonymous + + + setiathome + SETI@home + +