client: set up slot dir only at start of job.
This is a little tricky because of async file copy.
Deal with this by creating a 'boinc_setup_complete' file
after all files are copied.
These fixes address a problem where:
- wrapper job starts, unzips its output files, deletes the .zip
- job stops (e.g. client exits)
- job restarts; client sees that .zip file isn't in slot dir,
copies it again.
- wrapper starts, unzips .zip file again.
The fixes address both (new client, old wrapper) and (old client, new wrapper).
With this commit a new platform name 'windows_arm64' added.
Also, according to the https://learn.microsoft.com/en-us/windows/arm/apps-on-arm-x86-emulation, Windows 10 on ARM supports x86 applications, and Windows 11 on ARM supports x64 applications.
That is why we will be checking what version of Windows we are running on, and adding 'windows_intelx86' on Windows 10 and later (I suppose, this is will set always) and 'windows_x86_64' on Windows 11 and later (nothing later at the moment, but we are looking into the future!).
This fixes#5934.
Signed-off-by: Vitalii Koshura <lestat.de.lionkur@gmail.com>
Specifies cmdline args for all jobs in batch;
you can also specify per-job args, which come after.
create_work: add logic to support the above;
also fix bug involving pointers to stack vars (big no-no)
- Replace icons
- Remove unused dialog
- Remove SetAllUsers.dll
- Remove Print LA action (I don't believe anybody still uses it). If required - it could be always implemented.
- Replace ISSetupAllUsers 3rd-party function
- Remove unused icons
- Convert custom build target to custom build step to fix build of MSI file when only *.json file was changed.
- Remove SFHelper.dll
Signed-off-by: Vitalii Koshura <lestat.de.lionkur@gmail.com>
correctly show # of in progress, error, done, unsent jobs
fraction done is frac of success jobs
- Add 'verbose' checkbox for BUDA job submit.
docker_wrapper prints stuff to stderr (can view on result page)
- fix bugs in non-BUDA submit pages
- 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
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.
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.
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.
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.