Commit Graph

726 Commits

Author SHA1 Message Date
Vitalii Koshura 1ce3793c76
Remove unused BOINC_RCSID constants
This fixes #2953

Signed-off-by: Vitalii Koshura <lestat.de.lionkur@gmail.com>
2019-01-12 23:43:48 +02:00
David Anderson 1af87de831
Merge pull request #2058 from progger/stage_file_fix
Fixed touch md5 file path
2018-10-10 12:49:33 -07:00
lfield 5245c03d9a
Removed unused variable 2018-10-10 11:32:53 +02:00
lfield e5da6a0189
Update make_project
Added a comment
2018-08-09 09:26:33 +02:00
lfield 14d0c80aae
Update make_project 2018-08-08 11:49:25 +02:00
David Anderson 8384669568
Merge pull request #2517 from BOINC/dpa_credit2
Server: add support for pre-assigned credit
2018-05-28 17:32:01 -07:00
David Anderson 924ff5dba9 Add support for pre-assigned credit
You can now pre-assign a job's credit, as described here:
https://boinc.berkeley.edu/trac/wiki/CreditOptions

Note: this feature was originally available via an
--additional_xml "<credit>xx</credit>" arg to create_work.
This is an ugly kludge; I removed it.
In fact, the --additional_xml arg should be removed at some point.

Also: change stage_file to it cd's to html/bin when including stuff;
this is needed since util_basic.inc now includes something else
2018-05-15 13:01:31 -07:00
Kevin Reed 239af2d508 Merge branch 'master' into knr_right_to_erase
Conflicts:
	html/ops/db_update.php
2018-05-15 13:09:11 -05:00
Kevin Reed c03764ecb0
Merge pull request #2416 from BOINC/dpa_job_params
remote job submission: add optional "job params" for batchs
2018-05-09 12:57:40 -05:00
Kevin Reed 4002f6d372 web: add logic to insert into user_deleted and host_deleted when account
is removed from the system.  add task to remove entries from those
tables after 60 days.
2018-05-02 15:36:57 -05:00
Kevin Reed 4a6246a8bb web: create token table and php object to interact with token table.
Add script that will delete expired tokens once a day
2018-04-06 13:30:01 -05:00
David Anderson 42979fc8f9 remote job submission: add optional "job params" for batchs
This lets you specify the rsc_* parameters and delay bound in the submit call.
2018-03-18 23:25:26 -07:00
Kevin Reed d17d5936f9
Merge pull request #2122 from JuhaSointusalo/update_versions-fix-multi-api_version
update_versions: handle multiple API_VERSION strings
2018-02-09 09:47:14 -06:00
David Anderson 3e4d86eed9 create_work(): use the SCHED_CONFIG passed as arg, not the global var 2017-12-22 19:59:38 -08:00
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
Juha Sointusalo 856edf6c81 update_versions: handle multiple API_VERSION strings
An executable may have more than one string that contains
"API_VERSION" such as:

API_VERSION_7.7.0
API_VERSION
LPAPI_VERSION

If there is more than one string update_versions extracts the
version number from the first one and then puts the version number
and the rest of the strings into <api_version>:

    <api_version>7.7.0
API_VERSION
LPAPI_VERSION</api_version>

Change update_versions to extract only those strings that look like
BOINC's API_VERSION and only the first one if there for some reason
is more than one such string.

Fixes #2121.

This commit adapts 7a35b69c64 to the
new PHP version of update_versions.
2017-09-14 22:31:05 +03:00
Michael Kulabuhov 11e3db5dc0 Fixed touch md5 file path 2017-08-22 10:52:03 +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