Commit Graph

710 Commits

Author SHA1 Message Date
David Anderson 19db13580f upgrade script: remind user to do "make" 2017-10-24 10:23:43 -07:00
David Anderson a796c66bde Remote job submission: fix bugs when using per-job templates
The RPC handler wasn't looking in per-job templates for rsc_fpops_est.

This commit alters the API for job submission.  Please see
https://boinc.berkeley.edu/trac/wiki/RemoteJobs for the current API
details
2017-10-17 08:13:29 -05:00
David Anderson 921dcd1498 remote job submission: don't error out if standard templates missing
If you specify the input or output templates,
the standard ones (appname_in, appname_out) don't need to exist.

Also, in create_work():
- don't read the output template; just check that it exists.
- deprecate the result_template_filepath arg; redundant
2017-09-18 16:13:14 -07:00
David Anderson c0de76d4be Remote job submission: support app_version_num argument
Change the submit_batch RPC, and the various bindings of it (PHP, Python, C++)
to support an app_version_num arg,
specifying which app version number should be used to process the jobs in the batch.
2017-08-17 23:55:15 -07:00
David Anderson 1be1447ce0 back end: add feature for assigning WUs to a particular version num 2017-08-09 11:56:12 -07:00
David Anderson 20d07be2b8 back end: add keyword-based component to job scheduling score.
- add DB field for storing job keywords: workunit.keywords
    add this to various DB parse/write functions
- add --keywords option to create_work for specifying job keywords
- add <keyword_sched> option in config.xml for enabling keyword score
    (it's disabled by default).
    If set, increment score for "yes" keyword matches,
    and disallow jobs with "no" matches
- in scheduler, add array job_keywords_array for parsed versions
    of job keywords (vector<int>)

also:
- use symbols instead of numbers for slow_check() return values
- parse unused fields in req message to remove unparsed-XML warnings
2017-07-22 00:48:38 -07:00
David Anderson b38bf1d983 stage_file and remote file management: fix bug with .md5 file mod time
In some cases of file staging (both remote and via stage_file)
we'd do the following:
1) create the .md5 file (in check_download_file())
2) move or copy the file into the download dir

This can result in the file having a later mod time than the .md5 file,
which causes process_input_template() to reject the .md5 file.

Solution: touch the .md5 file after the move or copy
2017-05-25 20:26:36 -07:00
David Anderson 13a5b9bf3e change multiple-inclusion guard names to BOINC_FILENAME_H 2017-04-07 23:54:49 -07:00
David Anderson 2b6eff91f6 remove job submission: fixes to query_batch() 2017-03-02 13:38:40 -08:00
David Anderson 0681baad54 remote job submission: add <get_job_details> option to query_batch() 2017-02-25 15:05:14 -08:00
David Anderson 9b75ddebec remote job submission: fix bug when specify per-job input templates
I used map<char*, char*> to cache templates.
Using char* as a map key doesn't work as intended.
Change it to std::string.
2017-02-21 06:49:44 -08:00
David Anderson 39547c574f remote file management: improve error checking 2017-02-17 12:58:35 -08:00
David Anderson eda1699d7c remote job submission: fix from Lucas 2017-02-16 10:59:32 -08:00
David Anderson 52429613bf remote job submission: wrong template path in a certain case 2017-02-16 01:26:10 -08:00
David Anderson ef49109a88 remote job submission: fix error if no input files
also use hashlib instead of md5 in python code to avoid deprecation warning
2017-01-29 15:19:28 -08:00
David Anderson 0b6cb9e0d5 input file management: standardize creation of .md5 files
Files in the download dir can have accompanying ".md5" files
containing their MD5 and size.
This eliminates the need to calculate these when creating a job using the file.

The .md5 files were being created by stage_file (local staging)
but not by remote file management.
In fact, the latter wasn't checking for file immutability violations.

I changed remote file management to add this check,
and to create the .md5 file.
The latter is done in a new function shared with stage_file.
2017-01-29 11:54:18 -08:00
David Anderson 030069c36a remove job submission: don't require the presence of an input template file
If jobs specify their own input templates, shouldn't have to have one
2017-01-28 01:25:12 -08:00
David Anderson 23a43c7c5d remove file management: fixes; add python interface to query_files 2017-01-27 14:21:03 -08:00
David Anderson 37854b5262 remote job submission, python interface: fix typo 2017-01-27 13:55:26 -08:00
David Anderson e2d09f3de7 remote job submission: bug fix 2017-01-27 12:35:35 -08:00
David Anderson 01533dc9e4 remote file management: bug fixes
- The RPC handler was expecting the "BOINC names" to be the file MD5.
  This is no longer true; the BOINC name can be anything as long as it's unique.
- To reflect this, use <phys_name> instead of <md5> in request messages.
  This means that you'll need to update both RPC client and server software.
- BoincJobFile::insert() needed to return the insert ID
2017-01-25 16:17:42 -08:00
David Anderson 805ce04546 remove unneeded includes from sign_executable.cpp 2017-01-23 14:39:10 -08:00
David Anderson d8ee4b3e4f Extend makefile to build minimal-dependency crypt_prog as well 2017-01-23 14:23:54 -08:00
David Anderson 624b26b1c3 Add tools/makefile_sign_executable: build it with no extra dependencies 2017-01-23 14:19:44 -08:00
David Anderson 381e0caf14 Remote job submission: add support for per-job templates in submit requests
This supports the TACC use case,
in the jobs in a batch can use different Docker images
and different input and output file signatures,
none of which are known in advance.

Python API binding:
    - A JOB_DESC object can optionally contain wu_template and result_template
        elements, which are the templates (the actual XML) to use for that job.
        Add these to the XML request message if present.
    - Added the same capability to the PHP binding, but not C++.
    - Added and debugged test cases for both languages.

    Also, submit_batch() can take either a batch name (in which case
    the batch is created) or a batch ID
    (in which the batch was created prior to remotely staging files).

RPC handler:
    - in submit_batch(), check for jobs with templates specified
        and store them in files.
        For input templates (which are deleted after creating jobs)
        we put them in /tmp,
        and use a map so that if two templates are the same we use 1 file.
        For output templates (which have to last until all jobs are done)
        we put them in templates/tmp, with content-based filenames
        to economize.
    - When creating jobs, or generating SQL strings for multiple jobs,
        use these names as --wu_template_filename
        and --result_template_filename args to create_work
        (either cmdline args or stdin args)
    - Delete WU templates when done

create_work.cpp:
    handle per-job --wu_template and --result_template args in stdin job lines
    (the names of per-job WU and result templates).
    Maintain a map mapping WU template name to contents,
    to avoid repeatedly reading them.

    For jobs that don't specify templates, use the ones specified
    at the batch level, or the defaults.
2017-01-21 00:24:11 -08:00
David Anderson 9139d9f5c1 sign_executable: remove dependence on MySQL libs 2017-01-19 23:58:49 -08:00
David Anderson 4ffe582194 server: add support for constant input files
See http://boinc.berkeley.edu/trac/wiki/JobTemplates

Also remove the <number> and <file_number> nonsense from input templates.
<file_ref> i corresponds to <file_info> i
2017-01-13 00:23:01 -08:00
David Anderson beccbac87e fix Vbox version # for 7.6.33 2016-12-16 12:11:20 -08:00
David Anderson d00c641703 remote job submission test code: tweak 2016-10-19 13:20:34 -07:00
David Anderson 799126a039 Mostly finish Python interface to remote job submission and file handling 2016-10-18 00:38:02 -07:00
David Anderson 2ce773d320 Add Python interface for remove job submission 2016-10-16 16:30:16 -07:00
David Anderson d19c366692 update CERN URL 2016-10-16 16:28:55 -07:00
David Anderson a259991c7a Fix bugs in content-based file management system
- stray return in compute_boinc_name()
- BoincJobFile::delete() was wrong
- error-check DB record deletions
2016-07-24 22:55:33 -07:00
Christian Beer 617f2d578b Tools: update modules list to check for 2016-05-25 12:28:11 +02:00
Christian Beer e3f5d6cecf Tools: fix typos in error message 2016-05-25 12:25:42 +02:00
Christian Beer d6f2846a73 Tools: add check for required cmdline tools 2016-05-25 12:23:53 +02:00
Christian Beer 50dbb2e01f Tools: remove trailing white-space 2016-05-25 12:21:43 +02:00
Christian Beer b91f5167f2 Merge pull request #1547 from drshawnkwang/feature_checkperm
Feature checkperm - checks permissions of apache user and presence of php modules
2016-05-25 11:41:52 +02:00
Shawn Kwang 4a9c352e2e Added mysqli php module to the list of modules to check 2016-05-23 09:04:16 -05:00
Christian Beer 4787140f79 Merge pull request #1513 from BOINC/found_copy_file
create_work: use file_name as open_name when copy_file is set
2016-05-23 15:57:16 +02:00
Shawn Kwang 9e7bfa88ca Changed mkdir2 function to check if directory already exists, and updated it to raise an exception if there is a problem otherwise.
Added some text for the enduser to change apache 2.4 conf and add the project name and copyright holder.
2016-05-20 12:57:51 -05:00
Shawn Kwang 2f98a14301 fixed bug in indentation 2016-05-20 11:13:16 -05:00
Shawn Kwang 4575b87b4a Updated check_project script to include php module checks 2016-05-20 10:57:44 -05:00
Shawn Kwang c24ae42a9a version1 of check_project script, checks to see if certain directories are writable by apache Web server user 2016-05-16 11:28:33 -05:00
Shawn Kwang b9a1338b5a bug 1528: change script to use short hostname for config.host. URLs should still be FQDN 2016-04-20 10:42:53 -05:00
Christian Beer c57cee5ca6 create_work: use file_name as open_name when copy_file is set
If no open_name is specified in a file_ref element of the input template but copy_file is set for this file use the physical filename as logical filename.
2016-03-23 14:59:49 +01:00
marius d6d5c2610a dont add example_app to project.xml unless requested 2016-03-13 23:43:24 +01:00
funkydude 71831ee639 Expand usage of HTTPS and fix a few URLs 2016-03-08 20:04:28 +00:00
David Anderson 90cb8b9580 update_versions: fix bug that choked on <foo>1</foo> XML boolean 2015-12-23 17:16:31 -08:00
David Anderson 2eabe3eab8 server: fix typo in result file name generation (from Keith) 2015-11-20 13:19:18 -08:00