Commit Graph

37009 Commits

Author SHA1 Message Date
davidpanderson 086d52c41e docker wrapper: look for exact container name, not substring 2024-10-29 17:34:38 -07:00
computezrmle d08ad6a980
Update vboxwrapper.cpp 2024-10-29 17:00:06 +01:00
computezrmle eb56ba3637
Heartbeat checks deal with time leaps 2024-10-29 16:28:56 +01:00
David Anderson 8020fde86a client/API/docker_wrapper: get CPU and mem usage of Docker apps
Mem usage (WSS):
The easiest way to get the WSS of a Docker contaier is to ask Docker
using the "docker stats" command.
So I have docker_wrapper do this periodically (10 sec... it's a bit slow).

But how to get this back to the client?
Currently there's no provision for an app to reports its own WSS.
So I added one, by adding an optional field to the app status messages
sent from app to client in shared mem.
If this is present, the client uses it instead of procinfo.

CPU time: "docker stats" reports CPU fraction
(averaged over what period?)
We multiply that by the stats poll.
Not exactly the same as CPU time, but close enough.
2024-10-28 19:34:30 -07:00
Vitalii Koshura 96370db915
Merge pull request #5865 from BOINC/dpa_wsl_libc
Extend support for WSL and Docker apps
2024-10-29 00:47:21 +01:00
davidpanderson 63ef5f1660 Win compile fixes 2024-10-28 13:24:52 -07:00
David Anderson c11966b433 Tweaks to WSL and Docker support
- New philosophy: always query the presence of software (WSL distros, Docker)
    even if client config doesn't allow its use.
    Send the config info to scheduler, and enforce it there.
- New philosophy: allow running jobs in any WSL distro
    except those disallowed in the config

- Add plan class support for WSL and Docker app versions

- client: query the libc version of WSL distros.
    The plan class entry for a WSL app version
    can specify a min libc version.

- wsl_wrapper: add --min_libc_version cmdline arg
    (should match plan class spec)

Notes:
encoding version numbers into integers (e.g. 2.27 -> 227) was a bad idea.
We should just store them as strings,
and define a VERSION_NUM class for parsing and comparing them.
Too late now, I guess
2024-10-28 13:02:30 -07:00
Vitalii Koshura 592e9c4918
Merge pull request #5864 from computezrmle/computezrmle_revised_heartbeat_check
Revised heartbeat check
2024-10-28 21:01:19 +01:00
computezrmle b7f2616e71
Revised heartbeat check 2024-10-28 18:02:11 +01:00
Vitalii Koshura d344bf9b79
Merge pull request #5863 from BOINC/dpa_pclose 2024-10-28 08:22:02 +01:00
David Anderson e04484db52 typo 2024-10-27 21:27:31 -07:00
davidpanderson dcb82a9b2e fixes 2024-10-27 18:27:04 -07:00
Bill Bauer 391e0ff679 Gray out projects that are already attached. 2024-10-27 20:20:50 -05:00
Bill Bauer 2adc6cfc45 Refactor code into new function TrimURL
The code in this commit is repeated, additionally it will be used in the same PR.
2024-10-27 20:06:24 -05:00
David Anderson 3d3f010656 client: query the version of libc in WSL distros,
and report it in scheduler requests.

Note: the Linux client should report its libc version to the scheduler
in a separate field, rather than encoding it in the OS version string
2024-10-27 17:40:38 -07:00
Vitalii Koshura c81ac946c4
Merge pull request #5860 from BOINC/dpa_docker2
client: disable debugging code
2024-10-27 22:35:14 +01:00
David Anderson 7a26f72086 client: disable debugging code
lib: fix file descriptor leak
2024-10-27 13:02:09 -07:00
Vitalii Koshura 26ce93e0b1
Merge pull request #5858 from BOINC/vko_update_actions 2024-10-27 12:38:16 +01:00
Vitalii Koshura b0dde2a712
[ci] update actions
Signed-off-by: Vitalii Koshura <lestat.de.lionkur@gmail.com>
2024-10-27 11:56:44 +01:00
Vitalii Koshura a5ee6409d3
Merge pull request #5857 from BOINC/all_projects_list_xml_update
Update all_projects_list.xml
2024-10-27 11:52:57 +01:00
AenBleidd ae2616da95 Update all_projects_list.xml 2024-10-27 00:24:33 +00:00
David Anderson 2f16a8bde8
Merge pull request #5856 from BOINC/vko_build_linux_docker_wrapper_on_ci
Build docker_wrapper for linux on ci and upload it to the artifacts
2024-10-25 15:49:30 -07:00
Vitalii Koshura cf830bc58b
Build docker_wrapper for linux on ci and upload it to the artifacts
Signed-off-by: Vitalii Koshura <lestat.de.lionkur@gmail.com>
2024-10-26 00:17:15 +02:00
Vitalii Koshura 9c9ccad5c9
Merge pull request #5855 from BOINC/dpa_docker_wrapper
Add docker_wrapper and associated client/server changes
2024-10-25 22:58:34 +02:00
David Anderson e4f04521c9 white space 2024-10-24 15:47:09 -07:00
David Anderson e87ecf8a60 fix CGI build (I hope) 2024-10-24 15:39:44 -07:00
davidpanderson 462f3456e3 docker_wrapper: get suspend/resume working on Win with podman 2024-10-24 12:48:11 -07:00
David Anderson b0498cd959 tweaks 2024-10-24 01:42:30 -07:00
David Anderson 4445ee2dfd docker_wrapper, Win: when using podman, run a shell in WSL as root;
needed for podman's pause and unpause to work

Add a lib function run_command_pipe() for this purpose.
2024-10-24 01:35:17 -07:00
davidpanderson 46b3044ef0 fix image/container names
use pause/unpause instead of start/stop
Note: this works with podman only if root;
need to figure out how to do that
2024-10-23 23:38:22 -07:00
davidpanderson 4e5f28ebc1 win build fix 2024-10-23 01:43:02 -07:00
David Anderson 8b3deb0bc0 client: if docker disabled in prefs, send <dont_use_docker/> in sched requests.
(still query the presence of docker, and report it in sched requests).

scheduler: parse the above

docker_wrapper: use either docker or podman, depending on what's there
(on the host (Unix) or in a WSL distro (Win))
2024-10-23 00:37:32 -07:00
davidpanderson 0510ec8b44 Docker detection: fix it on Linux 2024-10-22 13:58:06 -07:00
David Anderson c706428163
Merge pull request #5853 from CallMeFoxie/cmf/fixuser
subs should be empty by default, not null
2024-10-22 12:48:28 -07:00
davidpanderson 7e6a829979 client: Win build fixes 2024-10-22 12:23:01 -07:00
David Anderson 22da97e339 Client: check for both Docker and podman.
Either or both could be present on both Linux and Win/WSL.
    If both, use podman.
    Do this separately for engine and compose;
    a host could have the podman engine but Docker compose.

data structures:
old: (in both HOSTINFO and WSL_DISTRO):
    bool is_docker_available: it's present, AND allowed by config
    string docker_version
    ... and same for docker_compose
new:
    string docker_version: empty if not present
    DOCKER_TYPE docker_version_type (DOCKER or PODMAN)
        We send this in sched requests even if Docker disallowed by prefs
        (send that flag separately).
    This way projects can know what software a host has,
    even if they can't use it.
    (Should use this approach with VBox too)
2024-10-22 11:06:56 -07:00
Vitalii Koshura cdedb8ac5f
Merge pull request #5850 from Vulpine05/Vulpine05_Unused_func
Remove unused functions
2024-10-22 15:52:40 +02:00
Ashley CallMeFoxie 153577c77d subs should be empty by default, not null 2024-10-22 11:33:18 +02:00
Vitalii Koshura af2bf980d8
Merge pull request #5846 from BOINC/dpa_username
web: don't allow special chars in user names.
2024-10-21 23:31:39 +02:00
Vitalii Koshura 478ca1cfc6
Merge pull request #5852 from BOINC/dpa_php8_4
web: fix PHP8 deprecation warnings
2024-10-21 23:26:27 +02:00
David Anderson 7c4f7c9ed4 web: fix PHP8 deprecation warnings 2024-10-21 10:30:35 -07:00
Vitalii Koshura 3bd7dcfabd
Merge pull request #5851 from Vulpine05/Vulpine05_PlanClass_Prop
[Manager] Add application name to task properties window
2024-10-20 16:46:20 +02:00
Bill Bauer aaaad50b1a feat: Add plan class name to task properties window 2024-10-19 20:35:58 -05:00
davidpanderson 897107dc4c win build fixes 2024-10-19 00:22:55 -07:00
David Anderson 6a26ee07ab prepare for app_test 2024-10-18 23:05:17 -07:00
Bill Bauer aa35989ef6 Remove unused function definitons (updated) 2024-10-18 20:19:00 -05:00
Bill Bauer fbbd12d618 Revert "Remove unused function definitions"
This reverts commit 58a5fab8e3.
2024-10-18 20:06:40 -05:00
Bill Bauer 566e6414c2 Remove unused function definitions (revised) 2024-10-18 20:05:03 -05:00
davidpanderson 6474890ec3 Get mount test working on Win 2024-10-18 14:00:27 -07:00
David Anderson ee5e6ba217 add link file 2024-10-18 13:51:37 -07:00