Commit Graph

37009 Commits

Author SHA1 Message Date
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
David Anderson 6cd9e0f7a9 tweak 2024-11-06 00:44:30 -08:00
davidpanderson bb6ea61305 tweaks 2024-11-06 00:43:47 -08:00
David Anderson 0240292c99 docker_wrapper: always mount slot dir at WORKDIR
This means that the tree rooted at WORKDIR is on the host filesystem,
and therefore survives system restarts;
otherwise it wouldn't.

This also simplifies file access from containers.
There's no need to copy input files from the slot dir to the container;
they're already in the container.
Similar with output files.
Remove these capabilities from the wrapper.

If a Docker app wants to access files in the project dir
(e.g. if they're huge files, shared with other jobs)
it can do so by mounting the project dir (using job.toml)
and then parsing the link files.

Merge the two test cases (copy and mount) into one
in both standalone and app_test.
2024-11-05 19:51:17 -08:00
Vitalii Koshura b1f9bbf79a
Merge pull request #5884 from BOINC/dpa_wsl_wrapper2
WSL wrapper: add --version and --main_prog cmdline args
2024-11-06 00:47:51 +01:00
David Anderson 6f7ac620ef WSL wrapper: add --version and --main_prog cmdline args 2024-11-05 14:32:54 -08:00
Vitalii Koshura d889e9f718
Merge pull request #5877 from BOINC/dpa_docker_cleanup
client: remove unused Docker images and containers on startup
2024-11-03 04:06:12 +01:00
David Anderson 3645a164e6 FCGI build fix
Maybe we should divide util.cpp into
- things used from the scheduler and file upload handlers
    (where we need boinc::stdio stuff)
- everything else
2024-11-02 19:45:28 -07:00
David Anderson 989f78d1ca build fixes 2024-11-02 14:18:33 -07:00
davidpanderson af7087e10e linux build fix 2024-11-02 13:03:49 -07:00
davidpanderson 733b1f7952 debug docker_wrapper on Linux
Make 'verbose' an attribute of DOCKER_CONN.
2024-11-02 12:32:16 -07:00
davidpanderson c7c8fea320 Win build fixes 2024-11-01 00:26:25 -07:00
David Anderson b982fae41a client: remove unused Docker images and containers on startup
The images and containers created by docker_wrapper have a particular form:
boinc__<proj>__<wuname> and boinc__<proj>__<resultname>.

docker_wrapper normally cleans up after itself.
But if it crashes these objects could hang around forever,
taking up disk space.

So we clean them up on client startup, as follows:
make lists of the names for active Docker tasks.
Then go through the list of Docker images and containers.
Remove any that
- were created by Docker wrapper (i.e. have boinc__ names)
- aren't in the active-task lists

On Unix, do this on the host itself if it has Docker installed.
On Win, do it for every WSL distro that has Docker installed.
2024-10-31 19:49:04 -07:00
Vitalii Koshura 3d5a122d33
Merge pull request #5872 from BOINC/vko_add_fedora_41
[linux] Add Fedora 41 package
2024-10-31 19:53:10 +01:00
Vitalii Koshura ad35472e55
[linux] Add Fedora 41 package
Signed-off-by: Vitalii Koshura <lestat.de.lionkur@gmail.com>
2024-10-31 19:22:53 +01:00
Vitalii Koshura 7a873b147e
Merge pull request #5867 from BOINC/dpa_vbox_cpu
client: measure CPU time of VBox apps correctly
2024-10-31 00:13:17 +01:00
Vitalii Koshura 26bc981920
Merge pull request #5870 from BOINC/dpa_docker_rsc
client/API/docker_wrapper: get CPU and mem usage of Docker apps
2024-10-30 23:44:59 +01:00
davidpanderson b9eb3c6721 Win build fix 2024-10-30 12:22:27 -07:00
Vitalii Koshura fc7ecbfe6f
Merge pull request #5868 from BOINC/dpa_profile
web: parse gd version number correctly
2024-10-30 11:03:46 +01:00
Vitalii Koshura 3e29eae262
Merge pull request #5866 from computezrmle/heartbeat_checks_deal_with_time_leaps
Heartbeat checks deal with time leaps
2024-10-30 11:03:05 +01:00
David Anderson 984d0ab69a remove debugging #define 2024-10-30 01:14:08 -07:00
davidpanderson e63c1d6a1f docker wrapper: fix CPU time reporting 2024-10-29 23:21:26 -07:00
David Anderson 445ef91d32 tweak 2024-10-29 17:57:35 -07:00