VBOX: Set the network configuration at VM creation time. set_network_access() is called whenever the network is suspended or resumed. It'll cause multiple DHCP requests to be spawned on a network resume.
All vbox_job.xml to specify ranges of port forwardings,
and whether the access to the host ports is remote or local.
This is to support MPI for Rytis.
Notes:
- the existing feature (pf_guest_port) is used only for web graphics.
The host port is always dynamically assigned;
there's no reason to have <pf_host_port>; I removed it from the doc.
There's no reason to write the host port to a file; I removed that.
- The new feature is only for fixed host ports.
- The checkpoint file can stay the way it is.
This commit adds two extra options:
- enable_cache_disk
- cache_disk_filename
This allows to attach a cache disk image to extend the storage
needs initially provided by the OS image.
In context-based systems such as uCernVM, this image can be
used to store the local cache of artifacs coming from CVMFS.
Note this image is attached without further checking on the content
and is entirely up to the main OS to make good use of it.
Signed-off-by: Carlos Aguado Sanchez <carlos.aguado@epfl.ch>
This commit allows to attach an ISO9660 image to a vbox VM
from a well-known file. The purpose is to enable the dynamic
configuration of the VM in first boot so that the volunteer VM
can be kept generic. This process is otherwise widely known as
contextualization of virtual machines.
The actual content of the ISO9660 image is application dependent
and outside the scope of this implementation.
Signed-off-by: Carlos Aguado Sanchez <carlos.aguado@epfl.ch>
Add logic in wrapper to maintain and checkpoint total runtime.
Also vboxwrapper: slight refactor.
Note: we often use "elapsed time" where we mean "runtime".
Should use the latter.
When it's finished, the VM app can write a file of a given name
(specified in vbox_job.xml) in the shared dir.
This file can optionally contain an exit code and stderr text.
If vboxwrapper finds this file, it cleans up the VM and calls boinc_finish().
This works around a problem where the VM doesn't exit properly
and the task hangs forever.
Vboxwrapper detects known buggy versions of Vbox and calls
boinc_temporary_exit().
The "Incompatible version" message appears in the task status
in the BOINC Manager, where some users may never see it.
It needs to appear as a notice, telling the user to upgrade VBox.
To do this, I added an optional argument to boinc_temporary_exit()
saying that the message should be delivered as a notice.
This is conveyed to the client by adding
a line containing "notice" to the temp exit file.
I changed the client and vboxwrapper to use this.