Commit Graph

36981 Commits

Author SHA1 Message Date
Vitalii Koshura d44bb95958
Merge pull request #5920 from BOINC/dpa_buda3
BUDA job submission: add access control
2024-11-26 18:42:02 +01:00
David Anderson 413e168448 BUDA job submission: add access control
and unify access control web and remote job submission
2024-11-26 00:02:39 -08:00
Vitalii Koshura 40f8fd8642
Merge pull request #5919 from BOINC/dpa_buda2
fix link to doc
2024-11-26 01:47:44 +01:00
David Anderson 8a374a705c fix link to doc 2024-11-25 16:16:20 -08:00
Vitalii Koshura 3fe522660a
Merge pull request #5918 from BOINC/dpa_buda2
Web and server: Add web-based job submission for BUDA
2024-11-26 01:08:43 +01:00
David Anderson f70ae7f529 check GET args of buda_submit.php 2024-11-25 14:53:38 -08:00
David Anderson b6654b894f web (BUDA)
- validate URL args that are used as filenames; prevent ../ stuff.
    Do this by checking for '/'; is that sufficient?

- add 'delete app' function

- remove binary test file
2024-11-25 14:49:36 -08:00
David Anderson 3858f356ad job submission web: user friendlier
Principle: when showing jobs or files, use names that the user provided,
rather than DB IDs or names that BOINC generated.
2024-11-24 11:12:36 -08:00
David Anderson f8879a3a0e web job submission, script assimilator: add new output file model
old model:
    no assimilator
    output files live in upload hierarchy w/ physical names
    WUs are marked as assimulated when batch is retired;
    file_deleter deletes output files after that.

new model:
    assimilator (e.g. sample_assimilate.py and sample_assimilator.cpp)
    moves output files of canonical results to project/results/<batch_id>,
    with names that include the batch name and the logical name.
    WU is marked as assimilated; file_deleter deletes
    output files of non-canonical results.

advantages of new model:
    can see all output files of a batch on cmdline with ls
    can zip output files of a batch without copying them
    unified naming scheme for output files that encodes
        the batch, the job (e.g. the BUDA job dir name)
        and the logical name of the file.
------------
script assimilator: pass logical names to the script

Support both models.  Choice of model is per app.
The project.inc file says which app uses which model.
2024-11-23 23:35:40 -08:00
Vitalii Koshura 86fd7ba3e7
Merge pull request #5916 from BOINC/vko_update_actions
[ci] update actions
2024-11-24 01:46:15 +01:00
Vitalii Koshura d5ad4cb8bf
[ci] update actions
Signed-off-by: Vitalii Koshura <lestat.de.lionkur@gmail.com>
2024-11-24 01:08:26 +01:00
Vitalii Koshura 1c100c5fbe
Merge pull request #5915 from BOINC/vko_bump_vboxwrapper_version_to_26209 2024-11-23 15:27:57 +01:00
Vitalii Koshura 20fc4adbc7
[vboxwrapper] bump development version to 26209
Signed-off-by: Vitalii Koshura <lestat.de.lionkur@gmail.com>
2024-11-23 14:51:51 +01:00
Vitalii Koshura 30f162c218
Merge pull request #5914 from BOINC/vko_bump_vbxowrapper_version_to_26208
[vboxwrapper] bump version to 26208
2024-11-23 14:46:26 +01:00
Vitalii Koshura 9f1f5efb4f
[vboxwrapper] bump version to 26208
Signed-off-by: Vitalii Koshura <lestat.de.lionkur@gmail.com>
2024-11-23 14:23:14 +01:00
David Anderson dc47826575 improve BUDA web interface
For BUDA batches, description is '<app> (<variant>)'

Move job submission admin functions to their own page

Lay the groundwork for unifying output file handling
for remote job submission.
2024-11-22 17:12:22 -08:00
David Anderson 881a4c16b6 BUDA job submission now passes the basic end-to-end test - woo hoo!
When you run a shell script on Unix, and it has Windows line endings (CRLF),
it fails with a misleading 'file not found' error message.
This can cause problems with BUDA apps, which can involve shell scripts,
and all files go through the user sandbox.

For example: if you put the script (with Unix endings) into Github
and check it out on a Win machine, all of a sudden it has Win endings!
If you upload it to your sandbox, it won't work.

So I added a sandbox feature where you can add a file
by pasting text into a web form.
Surprisingly, even this changed the LF to a CRLF!
I changed the form handler to convert CRLF to LF, and now it works.

How many man-years have been wasted on this line-ending BS?
I'm guessing the blame goes to Microsoft.
2024-11-21 12:31:47 -08:00
David Anderson 1b017e173f add buda test files
buda: output files are <copy_file/>
2024-11-21 01:42:22 -08:00
David Anderson 415696ba6a dockerwrapper: work dir defaults to /app 2024-11-21 00:59:13 -08:00
David Anderson 160cc3de8e docker wrapper: it's OK if no config file 2024-11-20 18:48:12 -08:00
David Anderson df4a8b50a7 BUDA job submission: fill in some missing logic.
It works now, to the extent of staging files properly
and creating plausible-looking workunits.
Next step: see if they work.
2024-11-19 23:52:56 -08:00
David Anderson fd044d62f0 added (undebugged) code for BUDA job submission.
changes:
- creating a variant creates a JSON file, variant.json,
    describing the dockerfile, app files, and in/out files.
    Template files are now generated during job submission.
- no aliasing of files.  If your main prog is foo,
    your Dockerfile must end with CMD ./foo
- batch zip file must have shared input files
    in a directory shared_input_files/.
    All other directories are jobs.
2024-11-19 17:55:31 -08:00
David Anderson 3e5c24b6ed
Merge pull request #5902 from AenBleidd/vko_installer_for_pr
[Windows] Create new installer.
2024-11-18 21:34:03 -08:00
Vitalii Koshura dde82daff5
[Windows] Create new installer.
Signed-off-by: Vitalii Koshura <lestat.de.lionkur@gmail.com>
Co-authored-by: Vittorio Parrella <vittorioparrella+1@gmail.com>
Signed-off-by: Vitalii Koshura <lestat.de.lionkur@gmail.com>
2024-11-19 02:21:22 +01:00
David Anderson bc4cb3bb68 - Add web interface for creating BUDA apps and variants
variants are stored in <project>/buda_apps/<app>/<variant>.
    This includes app files (copied from sandbox) and templates
    (generated by handler)
- Add web interface for submitting BUDA jobs (not finished)
- Change implementation of user file sandbox
    old: sandbox dir had 'link files' containing md5 and size;
        actual file is in download hierarchy with sb_md5 name
    new: sandbox dir has actual files.
        parallel .md5/ dir has 'info files' (md5 size)
        Files are not stored in download hierarchy.
    New philosophy: names in the download hierarchy include
        not only an MD5 (for uniqueness)
        but also text describing the use of the file
        (input file for a batch, part of a BUDA app, etc.).
        This may allow duplicate files,
        but it makes it possible to always clean up unused files.

- use readdir() instead of opendir()/scandir()
2024-11-18 13:43:44 -08:00
Vitalii Koshura a63fad3af0
Merge pull request #5900 from BOINC/vko_update_actions
[ci] update actions
2024-11-17 03:03:48 +01:00
Vitalii Koshura d234fc98c2
[ci] update actions
Signed-off-by: Vitalii Koshura <lestat.de.lionkur@gmail.com>
2024-11-17 01:49:42 +01:00
Vitalii Koshura 24db23cd06
Merge pull request #5899 from BOINC/all_projects_list_xml_update
Update all_projects_list.xml
2024-11-17 01:44:18 +01:00
AenBleidd de8893d022 Update all_projects_list.xml 2024-11-17 00:25:27 +00:00
Vitalii Koshura dd16cab2c8
Merge pull request #5897 from BOINC/dpa_buda
Add support for BOINC Universal Docker Application (BUDA).
2024-11-13 23:31:31 +01:00
David Anderson 2d35fd5e00 change things so that input files for BUDA jobs don't have to be in the BUDA dir 2024-11-12 23:34:40 -08:00
David Anderson b45907bb74 trailing space 2024-11-12 18:29:46 -08:00
David Anderson bd0dd5d5b0 trailing blank 2024-11-12 18:10:16 -08:00
David Anderson 87349825f9 1) Add support for BOINC Universal Docker Application (BUDA).
This lets you run arbitrary Docker applications using a single
    BOINC app (and one app version per platform).
    The Dockerfile and science executables are in the workunit.

    The script tools/submit_buda lets you test this.
    Basic tests were successful.

2) Unify the scripts for testing job submission
    The 'test' assimilators (sample_assimilate.py and sample_assimilator.cpp)
        do the same thing: they copy result files to
        <proj_dir>/results/<batch_id>/<wu_name> (if 1 output file)
        <proj_dir>/results/<batch_id>/<wu_name>_i (if >1 output file)
        where <batch_id> is 0 if WU is not in a batch
        ... and they write error code to <wu_name>_error if the WU errored out
    Scripts to submit jobs:
        submit_job
        submit_batch
        submit_buda
    Script to query jobs:
        query_job
    This works for either jobs or batches,
    as long as the app uses one of the above assimilators

3) Add plan class 'docker' to plan_class_spec.xml.sample
2024-11-12 17:49:52 -08:00
Vitalii Koshura abfea4cf8b
Merge pull request #5892 from BOINC/vko_update_actions
[ci] update actions
2024-11-10 04:07:40 +01:00
Vitalii Koshura dba877e059
[ci] update actions
Signed-off-by: Vitalii Koshura <lestat.de.lionkur@gmail.com>
2024-11-10 02:27:11 +01:00
Vitalii Koshura 42f91bbbd2
Merge pull request #5891 from BOINC/all_projects_list_xml_update
Update all_projects_list.xml
2024-11-10 02:22:17 +01:00
AenBleidd 8a14e4e5d2 Update all_projects_list.xml 2024-11-10 00:23:49 +00:00
Vitalii Koshura e80e024fb0
Merge pull request #5890 from BOINC/dpa_host_stats2
add script to show Linux libc and vbox version counts: ops/host_stats.php
2024-11-08 11:16:39 +01:00
David Anderson b81573b660 add script to show Linux libc and vbox version counts: ops/host_stats.php 2024-11-07 17:17:51 -08:00
Vitalii Koshura 9493c1c4e2
Merge pull request #5889 from BOINC/vko_fix_osx_build
[ci] update XCode to 15.4.0
2024-11-07 17:56:21 +01:00
Vitalii Koshura ff9776319d
[ci] update XCode to 15.4.0
Signed-off-by: Vitalii Koshura <lestat.de.lionkur@gmail.com>
2024-11-07 16:46:19 +01:00
Vitalii Koshura ba8c8bd76b
Merge pull request #5887 from BOINC/dpa_prefs11
Manager, advanced prefs: don't disable idle time box
2024-11-07 15:16:44 +01:00
Vitalii Koshura fa6d6c8b47
Merge pull request #5886 from BOINC/dpa_docker3
Docker wrapper: always mount slot dir at WORKDIR
2024-11-07 15:15:52 +01:00
Vitalii Koshura ef5d42cac1
Merge pull request #5888 from BOINC/vko_fix_osx_build
[ci] update XCode to 15.4.0
2024-11-07 15:15:19 +01:00
Vitalii Koshura 520de9c7f9
[ci] update XCode to 15.4.0
Signed-off-by: Vitalii Koshura <lestat.de.lionkur@gmail.com>
2024-11-07 14:33:13 +01:00
davidpanderson 93b5bbf4ff Manager, advanced prefs: don't disable idle time box
We disabled it if CPU and GPU disable checkboxes are both clear.
But if there not-in-use prefs it's relevant.
2024-11-06 18:17:58 -08:00
davidpanderson d06999a27c fix app test for docker wrapper; works now on Win 2024-11-06 17:33:44 -08:00
David Anderson 13a7060bbc docker_wrapper: use relative path when mounting the project dir
Docker chokes on the Windows-style "c:\blah..." path
2024-11-06 17:20:02 -08:00
davidpanderson 2cd0c733c0 debug 2024-11-06 17:08:15 -08:00