Commit Graph

31 Commits

Author SHA1 Message Date
Rom Walton bbc1351ced Quick Updates
svn path=/trunk/boinc/; revision=24979
2012-01-02 20:59:15 +00:00
Rom Walton 5691f06dd6 - VBOX: Fix crashing issue I introduced last night attempting to
extract the hypervisor system log.
    - VBOX: Report the hypervisor system log with any failed vboxmanage
        command that happens during the phase where we setup the VM.
        
    samples/vboxwrapper/
        vbox.cpp, .h

svn path=/trunk/boinc/; revision=24977
2012-01-02 16:58:11 +00:00
Rom Walton 9eb3d91e77 - WINSETUP: Give 'boinc_admins' and 'boinc_projects' the ability to access and
launch the VirtualBox server-side application.  This should complete the
        needed work to run VirtualBox within the Windows sandboxed environment.
    - WINSETUP: Remove the virtualized file system tag from the Windows Explorer
        copied security token when launching BOINC Manager and BOINC Tray after
        setup has completed.  I believe this will resolve the new cookie issue
        experienced by PTP/GR/CE.

    win_build/installerv2/redist/Windows/src/boinccas/
        aclmgmt.cpp
        boinccas.def
        boinccas.vcproj
        CAGrantBOINCAdminsVirtualBoxRights.cpp, .h
        CAGrantBOINCProjectsVirtualBoxRights.cpp, .h
        CALaunchBOINCTray.cpp, .h
        dcomperm.h
        launcher.cpp
        listacl.cpp
        sdmgmt.cpp
        srvcmgmt.cpp
        utils.cpp
        wrappers.cpp
    win_build/installerv2/redist/Windows/Win32/
        boinccas.dll
        boinccas95.dll
    win_build/installerv2/redist/Windows/x64/
        boinccas.dll
        boinccas95.dll

svn path=/trunk/boinc/; revision=24951
2011-12-30 22:38:10 +00:00
Rom Walton 61e6e8949e Quick Updates
svn path=/trunk/boinc/; revision=24909
2011-12-27 00:11:43 +00:00
Rom Walton 63607c070c - VBOX: If a host has been assigned a single-core job and the
processor doesn't support hardware acceleration for VMs,
        manually turn off the hardware acceleration support in the VMs
        configuration.
        
        NOTE: The latest server scheduler should not be assigning
        multi-core jobs to hosts that do not have hardware acceleration.

    samples/vboxwrapper/
        vbox.cpp

svn path=/trunk/boinc/; revision=24905
2011-12-26 14:09:03 +00:00
Rom Walton 64da0ca90a svn path=/trunk/boinc/; revision=24895 2011-12-25 20:31:26 +00:00
Rom Walton 0f17e81554 - VBOX: For projects that use vboxwrapper to control how long a VM should run,
treat premature events as failures.  Avoids false positive results.
    - VBOX: Log the VM Execution log if a premature shutdown event has happened.
    - VBOX: Rename config option max_elapsed_time to job_duration.  Choosing
        max_elapsed_time turned out to be a bad choice in that its purpose
        became intermixed with the credit issue(s).

    samples/vboxwrapper/
        vbox.cpp,.h
        vboxwrapper.cpp

svn path=/trunk/boinc/; revision=24894
2011-12-25 20:17:53 +00:00
Rom Walton b6a188c250 - VBOX: If an error occurs only log the error once if log_error is true.
samples/vboxwrapper/
        vbox.cpp, .h
    

svn path=/trunk/boinc/; revision=24889
2011-12-25 06:04:24 +00:00
Rom Walton c906260da8 Quick Updates
svn path=/trunk/boinc/; revision=24883
2011-12-24 02:05:40 +00:00
Rom Walton 96deec1f03 - VBOX: Rework the unique naming scheme for floppys and disk images so that the slot
id is appended after the name instead of after the extension. Avoid problems
        with the VirtualBox interface.
        
    samples/vboxwrapper/
        vbox.cpp, .h
        vboxwrapper.cpp, .h

svn path=/trunk/boinc/; revision=24880
2011-12-23 20:14:42 +00:00
Rom Walton 68568b400a - VBOX: Write the firewall rules once, after creation. If the job was suspended
and restarted it would null out the host port information.
    - VBOX: Try to make the CERN compatible datatype for FloppyIO more JSON friendly
        by following the advice of issue:
          https://github.com/stig/json-framework/issues/48
    - VBOX: Support both the old style and new style of determining assigned threads
        of execution (aka core counts).  6.12 and the early versions of 7.x support
        the old style.
        
    samples/vboxwrapper/
        vbox.cpp, .h
        vboxwrapper.cpp, .h

svn path=/trunk/boinc/; revision=24876
2011-12-23 17:24:28 +00:00
Rom Walton 7419d3a7e1 Quick Updates
svn path=/trunk/boinc/; revision=24875
2011-12-23 06:42:03 +00:00
Rom Walton 10781f7776 - VBOX: Remove code that was meant to force the CC to reschedule jobs. There was
a bug that was fixed last night which prevented the wrapper from properly
        reporting its checkpoint time to the CC.  The lack of checkpoint information
        for the job would have prevented the CC from rescheduling the job and removing
        it from memory.  Now it can so the extra shutdown each scheduling period
        should not be needed.
        
    samples/vboxwrapper/
        vboxwrapper.cpp

svn path=/trunk/boinc/; revision=24874
2011-12-22 23:30:03 +00:00
Rom Walton 9d14b4b425 - VBOX: Try a new approach to dealing with the Windows sandbox issue. Under Windows
VboxSVC.exe is normally launched by svchost.exe which only contains environment
        variables defined by the system.  In the BOINC sandbox environment we want to
        add VBOX_USER_HOME to redirect reading/writing configuration files to a
        different directory.  What happens if we launch it ahead of making any calls to
        VBoxManage which would cause the OS to launch it?  If we launch it, it should
        inherit our environment block and work just like it works on Linux and the Mac.
        
        This is such a simple solution, why didn't I think of it sooner?
        
    samples/vboxwrapper/
        vbox.cpp

svn path=/trunk/boinc/; revision=24873
2011-12-22 19:39:38 +00:00
Rom Walton a0f0c30fd4 Quick Updates
svn path=/trunk/boinc/; revision=24869
2011-12-22 04:57:02 +00:00
Rom Walton 62d8ba1ed3 Quick Updates
svn path=/trunk/boinc/; revision=24868
2011-12-22 04:22:01 +00:00
Rom Walton 7cffd8be9a - VBOX: Add missing code for progress complete and check-pointing.
samples/vboxwrapper/
        vboxwrapper.cpp

svn path=/trunk/boinc/; revision=24867
2011-12-22 04:16:47 +00:00
Rom Walton 1642299a73 - VBOX: It turns out that once you set the firewall rules, you cannot reset the
rules for a VM until the VM is in a powered off state.  I guess the VM will
        just have to fail starting up if it cannot allocate the assigned port.
        
    samples/vboxwrapper/
        vbox.cpp

svn path=/trunk/boinc/; revision=24863
2011-12-22 01:01:37 +00:00
Rom Walton 86d5915342 - VBOX: If vm.run() fails, it turns out the VM is parked in some kind of saved
state, deregistering the VM would fail all commands because the VM was not
        mutable.  The first thing we should do when deregistering is discard
        any saved state.
        
    samples/vboxwrapper/
        vbox.cpp
        

svn path=/trunk/boinc/; revision=24862
2011-12-22 00:15:06 +00:00
Rom Walton 6948658af5 - VBOX: If vm.run() fails, call vm.cleanup() to unregister the VM before exiting
vboxwrapper.  Not doing so leaves the drive reference around and the VM in a
        saved state.  The next attempt to delete it from another instance of
        vboxwrapper fails with a complaint about the old unnamed vm(all files have
        been cleaned up by BOINC) being in an non-mutable state.

    samples/vboxwrapper/
        vbox.cpp
        vboxwrapper.cpp

svn path=/trunk/boinc/; revision=24859
2011-12-21 22:57:44 +00:00
Rom Walton febac394aa - VBOX: Don't log all vbm_popen errors, we expect certain commands to fail when we
are looking at the existing state of the host.
    - VBOX: Reset the output buffer for every command execution.
    - VBOX: Remove the teleporting and snapshotting states from the list of running
        states.
    - VBOX: Remove the '--type floppy' typo when mounting the floppy disk image.
    
    samples/vboxwrapper/
        vbox.cpp, .h

svn path=/trunk/boinc/; revision=24858
2011-12-21 21:58:01 +00:00
Rom Walton 34867cc6f8 - VBOX: Implement a basic mechanism for port forwarding through to the VM.
Some more work will be required if there is ever a need for more than
        one port.  But this should work for now.  This should successfully
        handle running multiple instances of the same job, port information is
        stored in a file called "vbox_firewall.txt" which is updated for each
        execution of the wrapper.
    
    samples/vboxwrapper/
        vbox.cpp, .h
        vboxwrapper.cpp
    win_build/
        vboxwrapper.vcproj

svn path=/trunk/boinc/; revision=24843
2011-12-21 05:55:08 +00:00
Rom Walton 2b463218ed - VBOX: Implement CERN's FloppyIO IPC technology for the VirtualBox wrapper.
samples/vboxwrapper/
        floppyio.cpp, .h
        vbox.cpp, .h
        vboxwrapper.cpp
    win_build/
        vboxwrapper.vcproj

svn path=/trunk/boinc/; revision=24836
2011-12-20 22:12:07 +00:00
Rom Walton 1bc7c85d65 - Changes for Charity Engine Desktop.
client/win/res/
        ce.ico
    clientctrl/
        boincsvcctrl.rc
    clientgui/
        BOINCGUIApp.rc
    clientgui/res/
        ce.ico
    clientlib/win/
        boinc_dll.rc
    clientscr/
        boinc_ss.rc
    clientscr/
        boinc_ss_opengl.rc
    clientscr/res/
        ce.bmp
        ce.ico
    clienttray/
        boinc_tray.rc
    win_build/
        ce_boinc_cli.vcproj
        ce_boinc_dll.vcproj
        ce_boinc_ss.vcproj
        ce_boinccmd.vcproj
        ce_boincmgr.vcproj
        ce_boincsvcctrl.vcproj
        ce_boinctray.vcproj
        ce_ss_app.vcproj
        CharityEngine.sln
    win_build/installerv2/
        CharityEngine.ism
    win_build/installerv2/redist/0409/
        ce-eula.rtf
    win_build/installerv2/redist/CharityEngine/
        acct_mgr_url.xml
        ce.ico
        CE_IsDialogBanner.bmp
        CE_IsDialogBitmap.bmp
        CE_Splash.bmp

svn path=/trunk/boinc/; revision=23977
2011-08-10 16:51:58 +00:00
Rom Walton d91ddfae0f - vbox wrapper: initialize xml parser with the correct starting tag.
samples/vboxwrapper/
        vboxwrapper.cpp

svn path=/trunk/boinc/; revision=23934
2011-08-04 16:34:03 +00:00
Rom Walton 3f5aa043dd Quick Updates
svn path=/trunk/boinc/; revision=23933
2011-08-04 15:46:18 +00:00
Rom Walton a285dfd44b - VBOX: Begin merging the two different vbox wrappers (COM vs. Daniel's from
CERN).  Where possible stick with the POSIX API set and remove Windows
        specific code. (Example vbm_popen).
        
      NOTE: Not usable at the moment.
      
    samples/vboxwrapper/cernvm
        cernvmwrapper.cpp
    samples/vboxwrapper/
        vbox.cpp, .h
        vboxwrapper.cpp
    samples/vboxwrapper/
        vm.cpp, .h
    win_build/
        vboxwrapper.vcproj

svn path=/trunk/boinc/; revision=23458
2011-04-26 17:41:10 +00:00
Charlie Fenton 34ff45d8bc svn path=/trunk/boinc/; revision=23307 2011-04-01 03:56:29 +00:00
Rom Walton 0ea0fd6037 - VBOX: Implement stubs for starting/stopping/suspending/resuming VMs
TODO: create/delete.
        
    samples/vboxwrapper/
        vbox.cpp, .h
        vbox_win.cpp
        vboxwrapper.cpp
        vm.cpp, .h
    win_build/
        vboxwrapper.vcproj

svn path=/trunk/boinc/; revision=22833
2010-12-08 16:02:10 +00:00
Rom Walton 36c95249bf - vboxwrapper: Remove unneeded cruft. Vbox can report how long a
VM has been running since the last state change, we'll use that
        instead.
    - vboxwrapper: provide basic stub functions for starting/stopping/
        suspending/resuming a VM.  Leave wrapper functionality in
        vboxwrapper, and VM specific functionality in vbox_*.  Ideally
        only the stub functions would have to change for other VM
        implementations.
        
    samples/vboxwrapper/
        vbox.cpp, .h
        vbox_win.cpp
        vboxwrapper.cpp
    win_build/
        vboxwrapper.vcproj

svn path=/trunk/boinc/; revision=22753
2010-11-29 16:48:31 +00:00
Rom Walton 650ede61c5 - vbox: Create a new VirtualBox wrapper using the VirtualBox COM
API set.  Use the existing wrapper as the baseline.  Current
        wrapper just dumps the existing VMs defined on the machine.
        More to follow.
        
    samples/vboxwrapper/mscom/
        VirtualBox.h
        VirtualBox.tlb
        VirtualBox_i.c
    samples/vboxwrapper/
        vbox.h
        vbox_win.cpp
        vboxwrapper.cpp
    win_build/
        boinc.sln
        vboxwrapper.vcproj

svn path=/trunk/boinc/; revision=22745
2010-11-24 20:15:11 +00:00