Commit Graph

864 Commits

Author SHA1 Message Date
Rom Walton 3a399ea0f5 VBOX: If polling for the current VM state fails for any reason, like vboxsvc crashing, do a temp exit for 24 hours.
Before COM, polling for the current state wasn't as critical.  If the poll operation failed, we would try again in one second anyway.

After COM, it is used as a test to see if the communication channel between the wrapper and VirtualBox is still operational.  If not, temp exit and hope things work the next attempt.
2015-03-27 16:34:09 -04:00
Rom Walton 70def08644 VBOX: Add additional check for a valid pointer to prevent crash condition. 2015-03-26 17:32:52 -04:00
Rom Walton 46648d0d38 VBOX: Add better error checks when handling COM error conditions. 2015-03-26 17:22:17 -04:00
Rom Walton 07752ba4dd VBOX: Remove unneeded error string 2015-03-26 08:55:32 -04:00
Rom Walton a8a9f23ae9 VBOX: Add option to use 'savestate' instead of 'poweroff' during graceful VM shutdown. 2015-03-25 16:54:22 -04:00
Rom Walton 04285a19df VBOX: Add a configuration option to turn-off automatic check-pointing.
Projects may want to handle check-pointing within their own application and skip the disk intensive requirements of a VM snapshot.
2015-03-25 16:09:07 -04:00
Rom Walton 16ae8d57c9 VBOX: Enable/Disable network after the network type has been specified. 2015-03-22 15:19:08 -04:00
Rom Walton 32fe92acd0 VBOX: When attempting to deregister the VM, if we are unable to acquire the session lock, exit the routine with an error. Avoid a crash. 2015-03-20 10:08:06 -04:00
Rom Walton 1901b2bc7e VBOX: Same with the temporary exit trigger file 2015-03-20 09:58:37 -04:00
Rom Walton f0293098d3 VBOX: Take care of a false positive. The completion file string size must be greater than zero. 2015-03-20 09:56:08 -04:00
Rom Walton 8b997f0cfe VBOX: If we experience a timeout when attempting to start the VM, dump the log files. 2015-03-20 09:49:42 -04:00
Christian Beer 833c877f3a BUILD: add example apps into the build process
- By default apps won't be built. In order to build the example apps use --enable-apps as option to ./configure. Not all apps are supported as some need further external libraries.
- Also fix a copy/paste error in the vboxmonitor Makefile
2015-02-12 16:58:14 +01:00
Rom Walton 1e5dc8b61b HTMLGFX: Completed the move of all platform independent code to source files that will be shared between platforms.
All that should be required for new platforms is to implement a 'run' function that creates a window that hosts an HTML control and queries determine_state_url() and determine_exit_state() once a second.
2015-01-17 17:05:09 -05:00
Rom Walton 96c0317f90 Merge branch 'master' of ssh://isaac.ssl.berkeley.edu/boinc-v2 2015-01-16 00:49:41 -05:00
Rom Walton 8bdf177e4e HTMLGFX: Checkpoint (Continuation of previous commit.)
* Custom IE Javascript interface is gone, it was replaced with a cross-browser Web RPC.
In the HTML doc you can add:
<script type='text/javascript' src='/api/static/boinc.js'></script>

In the JavaScript code you can:
var boinc = new BOINC();

From there you can get the username like:
var userName = boinc.getUserName();

* Default resources are embedded within the executable in much the same way XPM images are embedded in the manager.
  /api/static/index.html
  /api/static/boinc.png
  /api/static/boinc.js
2015-01-16 00:49:17 -05:00
Charlie Fenton 8cac4bd2b5 VBOX: Update Xcode project for building vboxwrapper on Mac OS X 2015-01-15 15:51:00 -08:00
Rom Walton e31d3c86b4 VBOX: Add missing header 2015-01-15 18:16:59 -05:00
Rom Walton 9dc2161436 VBOX: Configure a bunch of virtual functions to be purely abstract to avoid a bunch of compiler warnings in gcc 2015-01-15 18:14:35 -05:00
Rom Walton 9784669271 VBOX: Fix makefiles for building vboxwrapper on Linux and Mac OS X 2015-01-15 17:19:45 -05:00
Rom Walton 725982c7eb VBOX: Add missing header on *nix based builds 2015-01-15 16:31:01 -05:00
Julien Nabet d75222ebf3 cppcheck: Prefer prefix ++/-- operators for non-primitive types 2015-01-14 21:18:29 +01:00
Rom Walton 82dbec6671 HTMLGFX: Checkpoint (Move most of the platform specific stuff to the HTTP server side of the house, it becomes cross-browser/cross-platform) 2015-01-12 15:47:34 -05:00
Rom Walton 38af455fa7 HTMLGFX: Remove the secret handling stuff, it would prevent loading static images and other resources from the slot directory. 2015-01-06 11:03:41 -05:00
Rom Walton 8168008631 WRAPPER: Make creating/writing the graphics status file part of the job file configuration. No need to write it if there is not going to be a running graphics application. 2015-01-05 22:53:50 -05:00
Rom Walton 106ef1e837 VBOX: Make creating/writing the graphics status file part of the job file configuration. No need to write it if there is not going to be a running graphics application. 2015-01-05 22:45:37 -05:00
Rom Walton f082889e85 WINBUILD: Fix build breaks introduced with graphics status function changes. 2015-01-05 20:37:51 -05:00
Rom Walton 46f8b9232e HTMLGFX: When debugging, ignore the last update time in the graphics status file.
If the worker application hasn't been running for awhile we do not want to automatically close the graphics application.
2015-01-02 00:52:22 -05:00
Rom Walton d28247589e VBOX: Always report the web graphics port to the client except when a 'graphics_app' is defined 2014-12-31 10:53:17 -05:00
Rom Walton 91bb400ce1 VBOX: Bug fix for persisting remote desktop/web api port information 2014-12-31 03:11:21 -05:00
Rom Walton ed431ced86 HTMLGFX: Implement a simple authentication scheme.
Using the formal HTTP authentication scheme was too cumbersome and I couldn't pre-fill out that information as part of the request.  IE11 emulation ignores any credentials as part of the URI.  The web browser control insists on displaying a credentials dialog when challenged.

So for now, look for a 'secret' header which just contains a thread identifier.

Authentication is skipped if the app was started with the --debug command line argument.  You'll be able to attach and debug your HTML application via the port number written in the Window title.
2014-12-30 23:20:48 -05:00
Rom Walton 2f3a8cb3ec HTMLGFX: Fix a bunch of potential cross-site scripting issues.
* Implement a mini HTTP server to service file requests from the slot
directory.  Have the browser control download the file(s) via the
HTTP protocol instead of the FILE protocol.

TODO: Lock down the authentication mechanism so that it is reasonably
protected even though it is only bound to the loopback adapter.

* Configure the browser emulation level for the executable to
Internet Explorer 11.
2014-12-30 18:03:12 -05:00
Rom Walton df7b112357 HTMLGFX: Remove unneeded files. 2014-12-30 01:05:15 -05:00
Rom Walton 9e1e50a4e7 HTMLGFX: Normalize the URLs configured by way of the configuration file. MSHTML would attempt to use HTTP when only a filename was given. 2014-12-29 23:09:54 -05:00
Rom Walton 33dbfbe975 HTMLGFX: It helps to actually put in the correct format specifier. 2014-12-29 00:28:32 -05:00
Rom Walton f8b223714b HTMLGFX: Minor comment fix 2014-12-29 00:26:55 -05:00
Rom Walton 9bf3be87ca HTMLGFX: Log any configured state urls 2014-12-29 00:25:39 -05:00
Rom Walton 3e11ed3b93 HTMLGFX: Bug fixes for running against stock T4T. 2014-12-29 00:15:49 -05:00
Rom Walton e1ab59eaee HTMLGFX: Finish up the embedded HTML file which is used as a last resort. 2014-12-28 22:49:41 -05:00
Rom Walton f305295f5b HTMLGFX: Remap the JavaScript methods and properties to camel case to match the JavaScript standards. 2014-12-28 20:38:15 -05:00
Rom Walton 28bd2b81b2 HTMLGFX: Do not overwrite the State URLs if a project also exposes a Web API port as well. A project may choose to have a running HTML page that makes JSON calls to a web server running within a VM or science application. 2014-12-28 14:53:21 -05:00
Rom Walton 9dab824fc3 HTMLGFX: Make sure we do not overwrite the default URL with an empty state URL. 2014-12-28 00:34:06 -05:00
Rom Walton fafbb9f27e HTMLGFX: Determine the real path of the graphics description file with boinc_resolve_filename API. 2014-12-27 13:09:23 -05:00
Rom Walton 29eaf3944b HTMLGFX: Streamline things a bit. 2014-12-27 11:28:43 -05:00
Rom Walton c47052fa92 HTMLGFX: parse a boinc_graphics.xml file for a list of optional urls the htmlgfx can use for various states (running, suspended, network suspended, exiting).
HTMLGFX: look for and use various vboxwrapper state files for extracting the remote desktop port number and the webapi port number.
2014-12-27 01:25:10 -05:00
Rom Walton bdd71e0129 HTMLGFX: Remove progress bar for now. It appears to be a bit too fancy and is distorting the page layout. 2014-12-26 21:36:51 -05:00
Rom Walton 19f680b8cf HTMLGFX: Add a javascript based progress control to show fraction done 2014-12-26 21:07:30 -05:00
Rom Walton 94c6360035 HTMLGFX: Prevent a memory leak with the project_preferences init_data entry 2014-12-26 19:32:42 -05:00
Rom Walton 37974055a8 HTMLGFX: When in screensaver mode, exit with any mouse or keyboard activity 2014-12-26 19:22:32 -05:00
Rom Walton e22d7b7b50 HTMLGFX: Hookup the graphics_status API polling. 2014-12-26 18:56:31 -05:00
Rom Walton 8963495ec4 WRAPPER: Use new graphics_status API to inform htmlgfx what is going on. 2014-12-26 17:43:00 -05:00