Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Compatibility updates.

git-svn-id: http://vboxweb.googlecode.com/svn/trunk@103 729376a8-6c6b-11de-afdd-bb9f892af8c1
  • Loading branch information...
commit 9d5801cfe0f34b270606049a64a43d15a0172ce9 1 parent 7c5acac
Ian Moore authored
Showing with 12,937 additions and 19,402 deletions.
  1. +0 −8 README.txt
  2. +8 −7 VBoxWebSrv.py
  3. +16 −0 VBoxWebSrv.vbs
  4. +0 −10,308 lib/VirtualBox_client.py
  5. +0 −8,097 lib/VirtualBox_server.py
  6. +11,189 −0 lib/VirtualBox_services.py
  7. +1,084 −649 lib/{VirtualBox_types.py → VirtualBox_services_types.py}
  8. +548 −205 lib/VirtualBox_wrappers.py
  9. +50 −71 lib/vboxactions.py
  10. 0  www/images/vbox/Makefile.kup
  11. BIN  www/images/vbox/adjust_win_size_16px.png
  12. BIN  www/images/vbox/adjust_win_size_disabled_16px.png
  13. BIN  www/images/vbox/auto_resize_off_16px.png
  14. BIN  www/images/vbox/auto_resize_off_disabled_16px.png
  15. BIN  www/images/vbox/auto_resize_on_16px.png
  16. BIN  www/images/vbox/auto_resize_on_disabled_16px.png
  17. BIN  www/images/vbox/auto_resize_on_on_16px.png
  18. BIN  www/images/vbox/auto_resize_on_on_disabled_16px.png
  19. BIN  www/images/vbox/chipset_16px.png
  20. BIN  www/images/vbox/close_16px.png
  21. BIN  www/images/vbox/delete_snapshot_16px.png
  22. BIN  www/images/vbox/delete_snapshot_dis_16px.png
  23. BIN  www/images/vbox/discard_cur_state_16px.png
  24. BIN  www/images/vbox/discard_cur_state_dis_16px.png
  25. BIN  www/images/vbox/discard_cur_state_snapshot_16px.png
  26. BIN  www/images/vbox/discard_cur_state_snapshot_dis_16px.png
  27. BIN  www/images/vbox/diskimage_16px.png
  28. BIN  www/images/vbox/fullscreen_16px.png
  29. BIN  www/images/vbox/fullscreen_disabled_16px.png
  30. BIN  www/images/vbox/fullscreen_on_16px.png
  31. BIN  www/images/vbox/fullscreen_on_disabled_16px.png
  32. BIN  www/images/vbox/hostkey_16px.png
  33. BIN  www/images/vbox/hostkey_captured_16px.png
  34. BIN  www/images/vbox/hostkey_captured_pressed_16px.png
  35. BIN  www/images/vbox/hostkey_disabled_16px.png
  36. BIN  www/images/vbox/hostkey_pressed_16px.png
  37. BIN  www/images/vbox/list_movedown_16px.png
  38. BIN  www/images/vbox/list_movedown_disabled_16px.png
  39. BIN  www/images/vbox/list_moveup_16px.png
  40. BIN  www/images/vbox/list_moveup_disabled_16px.png
  41. BIN  www/images/vbox/machine_16px.png
  42. BIN  www/images/vbox/machine_disabled_16px.png
  43. BIN  www/images/vbox/nw_16px.png
  44. BIN  www/images/vbox/nw_disabled_16px.png
  45. BIN  www/images/vbox/nw_read_16px.png
  46. BIN  www/images/vbox/nw_write_16px.png
  47. BIN  www/images/vbox/pin_16px.png
  48. BIN  www/images/vbox/restore_16px.png
  49. BIN  www/images/vbox/seamless_16px.png
  50. BIN  www/images/vbox/seamless_disabled_16px.png
  51. BIN  www/images/vbox/seamless_on_16px.png
  52. BIN  www/images/vbox/seamless_on_disabled_16px.png
  53. BIN  www/images/vbox/show_logs_16px.png
  54. BIN  www/images/vbox/show_logs_disabled_16px.png
  55. BIN  www/images/vbox/vrdp_16px.png
  56. BIN  www/images/vbox/vrdp_disabled_16px.png
  57. BIN  www/images/vbox/vrdp_on_16px.png
  58. BIN  www/images/vbox/vrdp_on_disabled_16px.png
  59. +1 −2  www/login.html
  60. +14 −14 www/panes/settingsDisplay.html
  61. +4 −22 www/panes/settingsGlobalGeneral.html
  62. +6 −6 www/panes/tabVMConsole.html
  63. +9 −9 www/panes/tabVMDetails.html
  64. +4 −0 www/panes/tabVMSnapshots.html
  65. +2 −2 www/panes/vmm.html
  66. +2 −2 www/panes/wizardNewHD.html
View
8 README.txt
@@ -1,4 +1,3 @@
-
VirtualBox Web Console is copyright (C) 2010 Ian Moore
(imoore76 at yahoo dot com)
@@ -16,10 +15,3 @@ INSTALLATION:
Please see the wiki located at http://code.google.com/p/vboxweb/ for
installation and configuration instructions.
-
-WARNING:
-
-This is intended to be run on a local network or intranet where access to the
-phpVirtualBox script is limited by network connectivity. The script performs no
-front-end user authentication of any kind. In other words, anyone who has access
-to this script on your web server may administer your VirtualBox installation.
View
15 VBoxWebSrv.py
@@ -68,6 +68,7 @@
jsonType = 'simplejson'
except:
print "Warning: using internal JSON encoder. Installing simplejson for python (usually a package named python-simplejson) will improve performance."
+ print "http://pypi.python.org/pypi/simplejson/"
jsonType = 'internal'
else:
import json
@@ -438,8 +439,9 @@ def screen(self, **kw):
try:
cherrypy.thread_data.vbox = vboxactions.vboxactions(self.ctx)
-
- machine = cherrypy.thread_data.vbox._getMachineRef(vm)
+ cherrypy.thread_data.vbox.connect()
+
+ machine = cherrypy.thread_data.vbox.vbox.findMachine(vm)
machineState = str(cherrypy.thread_data.vbox.vboxType('MachineState',machine.state))
if str(machineState) != 'Running' and str(machineState) != 'Saved':
@@ -755,7 +757,7 @@ def main(argv = sys.argv):
if argv[1] == "adduser":
if len(argv) <> 4:
print "Syntax: " + argv[0] + " adduser <username> <password>"
- print "\t\t(also used to change user's password)"
+ print "\n\t(also used to change user's password)"
return
h = hashlib.new('sha256')
h.update(argv[3])
@@ -763,8 +765,7 @@ def main(argv = sys.argv):
print "Updating password for " + argv[2]
else:
print "Adding user " + argv[2]
- g_vboxManager.vbox.setExtraData(
- "vboxwebc/users/" + argv[2], h.hexdigest())
+ g_vboxManager.vbox.setExtraData("vboxwebc/users/" + argv[2], h.hexdigest())
return
elif argv[1] == "deluser":
if len(argv) <> 3:
@@ -788,7 +789,7 @@ def main(argv = sys.argv):
"""
return
else:
- print "\nUnknown command '%s'. See '%s help' for available commands" % (argv[1], argv[0])
+ print "\nUnknown command '%s'. See 'VBoxWebSrv help' for available commands" % (argv[1])
return
cherrypy.engine.subscribe('start_thread', perThreadInit)
@@ -814,7 +815,7 @@ def main(argv = sys.argv):
break
if users != None:
- print "No VboxWebSrv users found. See '%s help' for help on adding users." % (argv[0])
+ print "No VboxWebSrv users found. See 'VBoxWebSrv help' for help on adding users."
quit()
print "VboxWebSrv binding to %s:%s..." %(cherrypy.config['server.socket_host'], cherrypy.config['server.socket_port'])
View
16 VBoxWebSrv.vbs
@@ -0,0 +1,16 @@
+Dim sh, scriptPath, p, WshShell, objArgs, strArgs
+
+set sh = WScript.CreateObject("WScript.Shell")
+scriptPath = Left ( WScript.ScriptFullName, InStrRev ( WScript.ScriptFullName, WScript.ScriptName) - 1 )
+p = sh.RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Python.exe\")
+
+rem WScript.Echo p & " " & scriptPath
+
+Set WshShell = WScript.CreateObject("WScript.Shell")
+
+Set objArgs = WScript.Arguments
+For I = 0 to objArgs.Count - 1
+ strArgs = strArgs & " " & objArgs(I)
+Next
+
+WshShell.Run "cmd /C " & p & " " & scriptPath & "VBoxWebSrv.py " & strArgs & " & pause", 1, True
View
10,308 lib/VirtualBox_client.py
0 additions, 10,308 deletions not shown
View
8,097 lib/VirtualBox_server.py
0 additions, 8,097 deletions not shown
View
11,189 lib/VirtualBox_services.py
11,189 additions, 0 deletions not shown
View
1,733 lib/VirtualBox_types.py → lib/VirtualBox_services_types.py
1,084 additions, 649 deletions not shown
View
753 lib/VirtualBox_wrappers.py
@@ -690,15 +690,26 @@ def __setattr__(self, name, val):
self.__dict__[name] = val
- def createMachine(self, _arg_name, _arg_osTypeId, _arg_baseFolder, _arg_id, _arg_override):
+ def composeMachineFilename(self, _arg_name, _arg_baseFolder):
+ req=IVirtualBox_composeMachineFilenameRequestMsg()
+ req._this=self.handle
+
+ req._name=_arg_name
+ req._baseFolder=_arg_baseFolder
+ val=self.mgr.getPort().IVirtualBox_composeMachineFilename(req)
+
+ return String(self.mgr,val._returnval)
+
+
+ def createMachine(self, _arg_settingsFile, _arg_name, _arg_osTypeId, _arg_id, _arg_forceOverwrite):
req=IVirtualBox_createMachineRequestMsg()
req._this=self.handle
+ req._settingsFile=_arg_settingsFile
req._name=_arg_name
req._osTypeId=_arg_osTypeId
- req._baseFolder=_arg_baseFolder
req._id=_arg_id
- req._override=_arg_override
+ req._forceOverwrite=_arg_forceOverwrite
val=self.mgr.getPort().IVirtualBox_createMachine(req)
return IMachine(self.mgr,val._returnval)
@@ -724,21 +735,11 @@ def registerMachine(self, _arg_machine):
return
- def getMachine(self, _arg_id):
- req=IVirtualBox_getMachineRequestMsg()
- req._this=self.handle
-
- req._id=_arg_id
- val=self.mgr.getPort().IVirtualBox_getMachine(req)
-
- return IMachine(self.mgr,val._returnval)
-
-
- def findMachine(self, _arg_name):
+ def findMachine(self, _arg_nameOrId):
req=IVirtualBox_findMachineRequestMsg()
req._this=self.handle
- req._name=_arg_name
+ req._nameOrId=_arg_nameOrId
val=self.mgr.getPort().IVirtualBox_findMachine(req)
return IMachine(self.mgr,val._returnval)
@@ -850,17 +851,6 @@ def setExtraData(self, _arg_key, _arg_value):
return
- def waitForPropertyChange(self, _arg_what, _arg_timeout):
- req=IVirtualBox_waitForPropertyChangeRequestMsg()
- req._this=self.handle
-
- req._what=_arg_what
- req._timeout=_arg_timeout
- val=self.mgr.getPort().IVirtualBox_waitForPropertyChange(req)
-
- return String(self.mgr,val._changed), String(self.mgr,val._values)
-
-
def createDHCPServer(self, _arg_name):
req=IVirtualBox_createDHCPServerRequestMsg()
req._this=self.handle
@@ -902,6 +892,35 @@ def checkFirmwarePresent(self, _arg_firmwareType, _arg_version):
return Boolean(self.mgr,val._returnval), String(self.mgr,val._url), String(self.mgr,val._file)
+ def VRDERegisterLibrary(self, _arg_name):
+ req=IVirtualBox_VRDERegisterLibraryRequestMsg()
+ req._this=self.handle
+
+ req._name=_arg_name
+ val=self.mgr.getPort().IVirtualBox_VRDERegisterLibrary(req)
+
+ return
+
+
+ def VRDEUnregisterLibrary(self, _arg_name):
+ req=IVirtualBox_VRDEUnregisterLibraryRequestMsg()
+ req._this=self.handle
+
+ req._name=_arg_name
+ val=self.mgr.getPort().IVirtualBox_VRDEUnregisterLibrary(req)
+
+ return
+
+
+ def VRDEListLibraries(self):
+ req=IVirtualBox_VRDEListLibrariesRequestMsg()
+ req._this=self.handle
+
+ val=self.mgr.getPort().IVirtualBox_VRDEListLibraries(req)
+
+ return String(self.mgr,val._returnval, True)
+
+
def getVersion(self):
req=IVirtualBox_getVersionRequestMsg()
req._this=self.handle
@@ -2030,46 +2049,27 @@ def delete(self, _arg_aMedia):
return IProgress(self.mgr,val._returnval)
- def export(self, _arg_aAppliance):
+ def export(self, _arg_aAppliance, _arg_location):
req=IMachine_exportRequestMsg()
req._this=self.handle
req._aAppliance=_arg_aAppliance
+ req._location=_arg_location
val=self.mgr.getPort().IMachine_export(req)
return IVirtualSystemDescription(self.mgr,val._returnval)
- def getSnapshot(self, _arg_id):
- req=IMachine_getSnapshotRequestMsg()
- req._this=self.handle
-
- req._id=_arg_id
- val=self.mgr.getPort().IMachine_getSnapshot(req)
-
- return ISnapshot(self.mgr,val._returnval)
-
-
- def findSnapshot(self, _arg_name):
+ def findSnapshot(self, _arg_nameOrId):
req=IMachine_findSnapshotRequestMsg()
req._this=self.handle
- req._name=_arg_name
+ req._nameOrId=_arg_nameOrId
val=self.mgr.getPort().IMachine_findSnapshot(req)
return ISnapshot(self.mgr,val._returnval)
- def setCurrentSnapshot(self, _arg_id):
- req=IMachine_setCurrentSnapshotRequestMsg()
- req._this=self.handle
-
- req._id=_arg_id
- val=self.mgr.getPort().IMachine_setCurrentSnapshot(req)
-
- return
-
-
def createSharedFolder(self, _arg_name, _arg_hostPath, _arg_writable, _arg_automount):
req=IMachine_createSharedFolderRequestMsg()
req._this=self.handle
@@ -2405,19 +2405,19 @@ def setCPUHotPlugEnabled(self, value):
req._CPUHotPlugEnabled = value.handle
self.mgr.getPort().IMachine_setCPUHotPlugEnabled(req)
- def getCPUPriority(self):
- req=IMachine_getCPUPriorityRequestMsg()
+ def getCPUExecutionCap(self):
+ req=IMachine_getCPUExecutionCapRequestMsg()
req._this=self.handle
- val=self.mgr.getPort().IMachine_getCPUPriority(req)
+ val=self.mgr.getPort().IMachine_getCPUExecutionCap(req)
return UnsignedInt(self.mgr,val._returnval)
- def setCPUPriority(self, value):
- req=IMachine_setCPUPriorityRequestMsg()
+ def setCPUExecutionCap(self, value):
+ req=IMachine_setCPUExecutionCapRequestMsg()
req._this=self.handle
if type(value) in [int, bool, basestring, str]:
- req._CPUPriority = value
+ req._CPUExecutionCap = value
else:
- req._CPUPriority = value.handle
- self.mgr.getPort().IMachine_setCPUPriority(req)
+ req._CPUExecutionCap = value.handle
+ self.mgr.getPort().IMachine_setCPUExecutionCap(req)
def getMemorySize(self):
req=IMachine_getMemorySizeRequestMsg()
@@ -2606,11 +2606,11 @@ def setSnapshotFolder(self, value):
req._snapshotFolder = value.handle
self.mgr.getPort().IMachine_setSnapshotFolder(req)
- def getVRDPServer(self):
- req=IMachine_getVRDPServerRequestMsg()
+ def getVRDEServer(self):
+ req=IMachine_getVRDEServerRequestMsg()
req._this=self.handle
- val=self.mgr.getPort().IMachine_getVRDPServer(req)
- return IVRDPServer(self.mgr,val._returnval)
+ val=self.mgr.getPort().IMachine_getVRDEServer(req)
+ return IVRDEServer(self.mgr,val._returnval)
def getMediumAttachments(self):
req=IMachine_getMediumAttachmentsRequestMsg()
req._this=self.handle
@@ -2912,7 +2912,7 @@ def setIoCacheSize(self, value):
],
'CPUHotPlugEnabled':[getCPUHotPlugEnabled,setCPUHotPlugEnabled,
],
- 'CPUPriority':[getCPUPriority,setCPUPriority,
+ 'CPUExecutionCap':[getCPUExecutionCap,setCPUExecutionCap,
],
'memorySize':[getMemorySize,setMemorySize,
],
@@ -2941,7 +2941,7 @@ def setIoCacheSize(self, value):
],
'snapshotFolder':[getSnapshotFolder,setSnapshotFolder,
],
- 'VRDPServer':[getVRDPServer,None],
+ 'VRDEServer':[getVRDEServer,None],
'mediumAttachments':[getMediumAttachments,None],
'USBController':[getUSBController,None],
'audioAdapter':[getAudioAdapter,None],
@@ -3329,11 +3329,11 @@ def getSharedFolders(self):
req._this=self.handle
val=self.mgr.getPort().IConsole_getSharedFolders(req)
return ISharedFolder(self.mgr,val._returnval, True)
- def getRemoteDisplayInfo(self):
- req=IConsole_getRemoteDisplayInfoRequestMsg()
+ def getVRDEServerInfo(self):
+ req=IConsole_getVRDEServerInfoRequestMsg()
req._this=self.handle
- val=self.mgr.getPort().IConsole_getRemoteDisplayInfo(req)
- return IRemoteDisplayInfo(self.mgr,val._returnval)
+ val=self.mgr.getPort().IConsole_getVRDEServerInfo(req)
+ return IVRDEServerInfo(self.mgr,val._returnval)
def getEventSource(self):
req=IConsole_getEventSourceRequestMsg()
req._this=self.handle
@@ -3350,7 +3350,7 @@ def getEventSource(self):
'USBDevices':[getUSBDevices,None],
'remoteUSBDevices':[getRemoteUSBDevices,None],
'sharedFolders':[getSharedFolders,None],
- 'remoteDisplayInfo':[getRemoteDisplayInfo,None],
+ 'VRDEServerInfo':[getVRDEServerInfo,None],
'eventSource':[getEventSource,None]}
class IHostNetworkInterface(IUnknown):
@@ -4037,20 +4037,6 @@ def setDefaultMachineFolder(self, value):
req._defaultMachineFolder = value.handle
self.mgr.getPort().ISystemProperties_setDefaultMachineFolder(req)
- def getDefaultHardDiskFolder(self):
- req=ISystemProperties_getDefaultHardDiskFolderRequestMsg()
- req._this=self.handle
- val=self.mgr.getPort().ISystemProperties_getDefaultHardDiskFolder(req)
- return String(self.mgr,val._returnval)
- def setDefaultHardDiskFolder(self, value):
- req=ISystemProperties_setDefaultHardDiskFolderRequestMsg()
- req._this=self.handle
- if type(value) in [int, bool, basestring, str]:
- req._defaultHardDiskFolder = value
- else:
- req._defaultHardDiskFolder = value.handle
- self.mgr.getPort().ISystemProperties_setDefaultHardDiskFolder(req)
-
def getMediumFormats(self):
req=ISystemProperties_getMediumFormatsRequestMsg()
req._this=self.handle
@@ -4126,19 +4112,19 @@ def setFreeDiskSpacePercentError(self, value):
req._freeDiskSpacePercentError = value.handle
self.mgr.getPort().ISystemProperties_setFreeDiskSpacePercentError(req)
- def getRemoteDisplayAuthLibrary(self):
- req=ISystemProperties_getRemoteDisplayAuthLibraryRequestMsg()
+ def getVRDEAuthLibrary(self):
+ req=ISystemProperties_getVRDEAuthLibraryRequestMsg()
req._this=self.handle
- val=self.mgr.getPort().ISystemProperties_getRemoteDisplayAuthLibrary(req)
+ val=self.mgr.getPort().ISystemProperties_getVRDEAuthLibrary(req)
return String(self.mgr,val._returnval)
- def setRemoteDisplayAuthLibrary(self, value):
- req=ISystemProperties_setRemoteDisplayAuthLibraryRequestMsg()
+ def setVRDEAuthLibrary(self, value):
+ req=ISystemProperties_setVRDEAuthLibraryRequestMsg()
req._this=self.handle
if type(value) in [int, bool, basestring, str]:
- req._remoteDisplayAuthLibrary = value
+ req._VRDEAuthLibrary = value
else:
- req._remoteDisplayAuthLibrary = value.handle
- self.mgr.getPort().ISystemProperties_setRemoteDisplayAuthLibrary(req)
+ req._VRDEAuthLibrary = value.handle
+ self.mgr.getPort().ISystemProperties_setVRDEAuthLibrary(req)
def getWebServiceAuthLibrary(self):
req=ISystemProperties_getWebServiceAuthLibraryRequestMsg()
@@ -4154,6 +4140,20 @@ def setWebServiceAuthLibrary(self, value):
req._webServiceAuthLibrary = value.handle
self.mgr.getPort().ISystemProperties_setWebServiceAuthLibrary(req)
+ def getDefaultVRDELibrary(self):
+ req=ISystemProperties_getDefaultVRDELibraryRequestMsg()
+ req._this=self.handle
+ val=self.mgr.getPort().ISystemProperties_getDefaultVRDELibrary(req)
+ return String(self.mgr,val._returnval)
+ def setDefaultVRDELibrary(self, value):
+ req=ISystemProperties_setDefaultVRDELibraryRequestMsg()
+ req._this=self.handle
+ if type(value) in [int, bool, basestring, str]:
+ req._defaultVRDELibrary = value
+ else:
+ req._defaultVRDELibrary = value.handle
+ self.mgr.getPort().ISystemProperties_setDefaultVRDELibrary(req)
+
def getLogHistoryCount(self):
req=ISystemProperties_getLogHistoryCountRequestMsg()
req._this=self.handle
@@ -4189,8 +4189,6 @@ def getDefaultAudioDriver(self):
'maxBootPosition':[getMaxBootPosition,None],
'defaultMachineFolder':[getDefaultMachineFolder,setDefaultMachineFolder,
],
- 'defaultHardDiskFolder':[getDefaultHardDiskFolder,setDefaultHardDiskFolder,
- ],
'mediumFormats':[getMediumFormats,None],
'defaultHardDiskFormat':[getDefaultHardDiskFormat,setDefaultHardDiskFormat,
],
@@ -4202,10 +4200,12 @@ def getDefaultAudioDriver(self):
],
'freeDiskSpacePercentError':[getFreeDiskSpacePercentError,setFreeDiskSpacePercentError,
],
- 'remoteDisplayAuthLibrary':[getRemoteDisplayAuthLibrary,setRemoteDisplayAuthLibrary,
+ 'VRDEAuthLibrary':[getVRDEAuthLibrary,setVRDEAuthLibrary,
],
'webServiceAuthLibrary':[getWebServiceAuthLibrary,setWebServiceAuthLibrary,
],
+ 'defaultVRDELibrary':[getDefaultVRDELibrary,setDefaultVRDELibrary,
+ ],
'LogHistoryCount':[getLogHistoryCount,setLogHistoryCount,
],
'defaultAudioDriver':[getDefaultAudioDriver,None]}
@@ -4341,6 +4341,32 @@ def getProcessStatus(self, _arg_pid):
return UnsignedInt(self.mgr,val._returnval), UnsignedInt(self.mgr,val._exitcode), UnsignedInt(self.mgr,val._flags)
+ def copyToGuest(self, _arg_source, _arg_dest, _arg_userName, _arg_password, _arg_flags):
+ req=IGuest_copyToGuestRequestMsg()
+ req._this=self.handle
+
+ req._source=_arg_source
+ req._dest=_arg_dest
+ req._userName=_arg_userName
+ req._password=_arg_password
+ req._flags=_arg_flags
+ val=self.mgr.getPort().IGuest_copyToGuest(req)
+
+ return IProgress(self.mgr,val._returnval)
+
+
+ def setProcessInput(self, _arg_pid, _arg_flags, _arg_data):
+ req=IGuest_setProcessInputRequestMsg()
+ req._this=self.handle
+
+ req._pid=_arg_pid
+ req._flags=_arg_flags
+ req._data=_arg_data
+ val=self.mgr.getPort().IGuest_setProcessInput(req)
+
+ return UnsignedInt(self.mgr,val._returnval)
+
+
def getOSTypeId(self):
req=IGuest_getOSTypeIdRequestMsg()
req._this=self.handle
@@ -5365,9 +5391,14 @@ def putCAD(self):
return
+ def getEventSource(self):
+ req=IKeyboard_getEventSourceRequestMsg()
+ req._this=self.handle
+ val=self.mgr.getPort().IKeyboard_getEventSource(req)
+ return IEventSource(self.mgr,val._returnval)
- _Attrs_={}
+ _Attrs_={ 'eventSource':[getEventSource,None]}
class IMouse(IUnknown):
def __init__(self, mgr, handle, isarray = False):
@@ -5472,11 +5503,17 @@ def getNeedsHostCursor(self):
req._this=self.handle
val=self.mgr.getPort().IMouse_getNeedsHostCursor(req)
return Boolean(self.mgr,val._returnval)
+ def getEventSource(self):
+ req=IMouse_getEventSourceRequestMsg()
+ req._this=self.handle
+ val=self.mgr.getPort().IMouse_getEventSource(req)
+ return IEventSource(self.mgr,val._returnval)
_Attrs_={ 'absoluteSupported':[getAbsoluteSupported,None],
'relativeSupported':[getRelativeSupported,None],
- 'needsHostCursor':[getNeedsHostCursor,None]}
+ 'needsHostCursor':[getNeedsHostCursor,None],
+ 'eventSource':[getEventSource,None]}
class IDisplay(IUnknown):
def __init__(self, mgr, handle, isarray = False):
@@ -7095,7 +7132,7 @@ def setAudioDriver(self, value):
'audioDriver':[getAudioDriver,setAudioDriver,
]}
-class IVRDPServer(IUnknown):
+class IVRDEServer(IUnknown):
def __init__(self, mgr, handle, isarray = False):
self.mgr = mgr
if handle is None:
@@ -7128,7 +7165,7 @@ def __len__(self):
def __getitem__(self, index):
if self.isarray:
- return IVRDPServer(self.mgr, self.handle[index])
+ return IVRDEServer(self.mgr, self.handle[index])
raise TypeError, "iteration over non-sequence"
def __str__(self):
@@ -7138,7 +7175,7 @@ def isValid(self):
return self.handle != None and self.handle != ''
def __getattr__(self,name):
- hndl = IVRDPServer._Attrs_.get(name, None)
+ hndl = IVRDEServer._Attrs_.get(name, None)
if hndl != None:
if hndl[0] != None:
return hndl[0](self)
@@ -7148,147 +7185,136 @@ def __getattr__(self,name):
return IUnknown.__getattr__(self, name)
def __setattr__(self, name, val):
- hndl = IVRDPServer._Attrs_.get(name, None)
+ hndl = IVRDEServer._Attrs_.get(name, None)
if (hndl != None and hndl[1] != None):
hndl[1](self,val)
else:
self.__dict__[name] = val
+ def setVRDEProperty(self, _arg_key, _arg_value):
+ req=IVRDEServer_setVRDEPropertyRequestMsg()
+ req._this=self.handle
+
+ req._key=_arg_key
+ req._value=_arg_value
+ val=self.mgr.getPort().IVRDEServer_setVRDEProperty(req)
+
+ return
+
+
+ def getVRDEProperty(self, _arg_key):
+ req=IVRDEServer_getVRDEPropertyRequestMsg()
+ req._this=self.handle
+
+ req._key=_arg_key
+ val=self.mgr.getPort().IVRDEServer_getVRDEProperty(req)
+
+ return String(self.mgr,val._returnval)
+
+
def getEnabled(self):
- req=IVRDPServer_getEnabledRequestMsg()
+ req=IVRDEServer_getEnabledRequestMsg()
req._this=self.handle
- val=self.mgr.getPort().IVRDPServer_getEnabled(req)
+ val=self.mgr.getPort().IVRDEServer_getEnabled(req)
return Boolean(self.mgr,val._returnval)
def setEnabled(self, value):
- req=IVRDPServer_setEnabledRequestMsg()
+ req=IVRDEServer_setEnabledRequestMsg()
req._this=self.handle
if type(value) in [int, bool, basestring, str]:
req._enabled = value
else:
req._enabled = value.handle
- self.mgr.getPort().IVRDPServer_setEnabled(req)
-
- def getPorts(self):
- req=IVRDPServer_getPortsRequestMsg()
- req._this=self.handle
- val=self.mgr.getPort().IVRDPServer_getPorts(req)
- return String(self.mgr,val._returnval)
- def setPorts(self, value):
- req=IVRDPServer_setPortsRequestMsg()
- req._this=self.handle
- if type(value) in [int, bool, basestring, str]:
- req._ports = value
- else:
- req._ports = value.handle
- self.mgr.getPort().IVRDPServer_setPorts(req)
-
- def getNetAddress(self):
- req=IVRDPServer_getNetAddressRequestMsg()
- req._this=self.handle
- val=self.mgr.getPort().IVRDPServer_getNetAddress(req)
- return String(self.mgr,val._returnval)
- def setNetAddress(self, value):
- req=IVRDPServer_setNetAddressRequestMsg()
- req._this=self.handle
- if type(value) in [int, bool, basestring, str]:
- req._netAddress = value
- else:
- req._netAddress = value.handle
- self.mgr.getPort().IVRDPServer_setNetAddress(req)
+ self.mgr.getPort().IVRDEServer_setEnabled(req)
def getAuthType(self):
- req=IVRDPServer_getAuthTypeRequestMsg()
+ req=IVRDEServer_getAuthTypeRequestMsg()
req._this=self.handle
- val=self.mgr.getPort().IVRDPServer_getAuthType(req)
- return VRDPAuthType(self.mgr,val._returnval)
+ val=self.mgr.getPort().IVRDEServer_getAuthType(req)
+ return AuthType(self.mgr,val._returnval)
def setAuthType(self, value):
- req=IVRDPServer_setAuthTypeRequestMsg()
+ req=IVRDEServer_setAuthTypeRequestMsg()
req._this=self.handle
if type(value) in [int, bool, basestring, str]:
req._authType = value
else:
req._authType = value.handle
- self.mgr.getPort().IVRDPServer_setAuthType(req)
+ self.mgr.getPort().IVRDEServer_setAuthType(req)
def getAuthTimeout(self):
- req=IVRDPServer_getAuthTimeoutRequestMsg()
+ req=IVRDEServer_getAuthTimeoutRequestMsg()
req._this=self.handle
- val=self.mgr.getPort().IVRDPServer_getAuthTimeout(req)
+ val=self.mgr.getPort().IVRDEServer_getAuthTimeout(req)
return UnsignedInt(self.mgr,val._returnval)
def setAuthTimeout(self, value):
- req=IVRDPServer_setAuthTimeoutRequestMsg()
+ req=IVRDEServer_setAuthTimeoutRequestMsg()
req._this=self.handle
if type(value) in [int, bool, basestring, str]:
req._authTimeout = value
else:
req._authTimeout = value.handle
- self.mgr.getPort().IVRDPServer_setAuthTimeout(req)
+ self.mgr.getPort().IVRDEServer_setAuthTimeout(req)
def getAllowMultiConnection(self):
- req=IVRDPServer_getAllowMultiConnectionRequestMsg()
+ req=IVRDEServer_getAllowMultiConnectionRequestMsg()
req._this=self.handle
- val=self.mgr.getPort().IVRDPServer_getAllowMultiConnection(req)
+ val=self.mgr.getPort().IVRDEServer_getAllowMultiConnection(req)
return Boolean(self.mgr,val._returnval)
def setAllowMultiConnection(self, value):
- req=IVRDPServer_setAllowMultiConnectionRequestMsg()
+ req=IVRDEServer_setAllowMultiConnectionRequestMsg()
req._this=self.handle
if type(value) in [int, bool, basestring, str]:
req._allowMultiConnection = value
else:
req._allowMultiConnection = value.handle
- self.mgr.getPort().IVRDPServer_setAllowMultiConnection(req)
+ self.mgr.getPort().IVRDEServer_setAllowMultiConnection(req)
def getReuseSingleConnection(self):
- req=IVRDPServer_getReuseSingleConnectionRequestMsg()
+ req=IVRDEServer_getReuseSingleConnectionRequestMsg()
req._this=self.handle
- val=self.mgr.getPort().IVRDPServer_getReuseSingleConnection(req)
+ val=self.mgr.getPort().IVRDEServer_getReuseSingleConnection(req)
return Boolean(self.mgr,val._returnval)
def setReuseSingleConnection(self, value):
- req=IVRDPServer_setReuseSingleConnectionRequestMsg()
+ req=IVRDEServer_setReuseSingleConnectionRequestMsg()
req._this=self.handle
if type(value) in [int, bool, basestring, str]:
req._reuseSingleConnection = value
else:
req._reuseSingleConnection = value.handle
- self.mgr.getPort().IVRDPServer_setReuseSingleConnection(req)
+ self.mgr.getPort().IVRDEServer_setReuseSingleConnection(req)
def getVideoChannel(self):
- req=IVRDPServer_getVideoChannelRequestMsg()
+ req=IVRDEServer_getVideoChannelRequestMsg()
req._this=self.handle
- val=self.mgr.getPort().IVRDPServer_getVideoChannel(req)
+ val=self.mgr.getPort().IVRDEServer_getVideoChannel(req)
return Boolean(self.mgr,val._returnval)
def setVideoChannel(self, value):
- req=IVRDPServer_setVideoChannelRequestMsg()
+ req=IVRDEServer_setVideoChannelRequestMsg()
req._this=self.handle
if type(value) in [int, bool, basestring, str]:
req._videoChannel = value
else:
req._videoChannel = value.handle
- self.mgr.getPort().IVRDPServer_setVideoChannel(req)
+ self.mgr.getPort().IVRDEServer_setVideoChannel(req)
def getVideoChannelQuality(self):
- req=IVRDPServer_getVideoChannelQualityRequestMsg()
+ req=IVRDEServer_getVideoChannelQualityRequestMsg()
req._this=self.handle
- val=self.mgr.getPort().IVRDPServer_getVideoChannelQuality(req)
+ val=self.mgr.getPort().IVRDEServer_getVideoChannelQuality(req)
return UnsignedInt(self.mgr,val._returnval)
def setVideoChannelQuality(self, value):
- req=IVRDPServer_setVideoChannelQualityRequestMsg()
+ req=IVRDEServer_setVideoChannelQualityRequestMsg()
req._this=self.handle
if type(value) in [int, bool, basestring, str]:
req._videoChannelQuality = value
else:
req._videoChannelQuality = value.handle
- self.mgr.getPort().IVRDPServer_setVideoChannelQuality(req)
+ self.mgr.getPort().IVRDEServer_setVideoChannelQuality(req)
_Attrs_={ 'enabled':[getEnabled,setEnabled,
],
- 'ports':[getPorts,setPorts,
- ],
- 'netAddress':[getNetAddress,setNetAddress,
- ],
'authType':[getAuthType,setAuthType,
],
'authTimeout':[getAuthTimeout,setAuthTimeout,
@@ -8320,6 +8346,16 @@ def createListener(self):
return IEventListener(self.mgr,val._returnval)
+ def createAggregator(self, _arg_subordinates):
+ req=IEventSource_createAggregatorRequestMsg()
+ req._this=self.handle
+
+ req._subordinates=_arg_subordinates
+ val=self.mgr.getPort().IEventSource_createAggregator(req)
+
+ return IEventSource(self.mgr,val._returnval)
+
+
def registerListener(self, _arg_listener, _arg_interesting, _arg_active):
req=IEventSource_registerListenerRequestMsg()
req._this=self.handle
@@ -10209,7 +10245,7 @@ def getAdd(self):
_Attrs_={ 'cpu':[getCpu,None],
'add':[getAdd,None]}
-class ICPUPriorityChangedEvent(IEvent):
+class ICPUExecutionCapChangedEvent(IEvent):
def __init__(self, mgr, handle, isarray = False):
self.mgr = mgr
if handle is None:
@@ -10242,7 +10278,7 @@ def __len__(self):
def __getitem__(self, index):
if self.isarray:
- return ICPUPriorityChangedEvent(self.mgr, self.handle[index])
+ return ICPUExecutionCapChangedEvent(self.mgr, self.handle[index])
raise TypeError, "iteration over non-sequence"
def __str__(self):
@@ -10252,7 +10288,7 @@ def isValid(self):
return self.handle != None and self.handle != ''
def __getattr__(self,name):
- hndl = ICPUPriorityChangedEvent._Attrs_.get(name, None)
+ hndl = ICPUExecutionCapChangedEvent._Attrs_.get(name, None)
if hndl != None:
if hndl[0] != None:
return hndl[0](self)
@@ -10262,23 +10298,191 @@ def __getattr__(self,name):
return IEvent.__getattr__(self, name)
def __setattr__(self, name, val):
- hndl = ICPUPriorityChangedEvent._Attrs_.get(name, None)
+ hndl = ICPUExecutionCapChangedEvent._Attrs_.get(name, None)
if (hndl != None and hndl[1] != None):
hndl[1](self,val)
else:
self.__dict__[name] = val
- def getPriority(self):
- req=ICPUPriorityChangedEvent_getPriorityRequestMsg()
+ def getExecutionCap(self):
+ req=ICPUExecutionCapChangedEvent_getExecutionCapRequestMsg()
req._this=self.handle
- val=self.mgr.getPort().ICPUPriorityChangedEvent_getPriority(req)
+ val=self.mgr.getPort().ICPUExecutionCapChangedEvent_getExecutionCap(req)
return UnsignedInt(self.mgr,val._returnval)
- _Attrs_={ 'priority':[getPriority,None]}
+ _Attrs_={ 'executionCap':[getExecutionCap,None]}
+
+class IGuestKeyboardEvent(IEvent):
+ def __init__(self, mgr, handle, isarray = False):
+ self.mgr = mgr
+ if handle is None:
+ raise Exception("bad handle: "+str(handle))
+ self.handle = handle
+ self.isarray = isarray
+
+ def releaseRemote(self):
+ try:
+ req=IManagedObjectRef_releaseRequestMsg()
+ req._this=handle
+ self.mgr.getPort().IManagedObjectRef_release(req)
+ except:
+ pass
+
+ def __next(self):
+ if self.isarray:
+ return self.handle.__next()
+ raise TypeError, "iteration over non-sequence"
+
+ def __size(self):
+ if self.isarray:
+ return self.handle.__size()
+ raise TypeError, "iteration over non-sequence"
+
+ def __len__(self):
+ if self.isarray:
+ return self.handle.__len__()
+ raise TypeError, "iteration over non-sequence"
+
+ def __getitem__(self, index):
+ if self.isarray:
+ return IGuestKeyboardEvent(self.mgr, self.handle[index])
+ raise TypeError, "iteration over non-sequence"
+
+ def __str__(self):
+ return self.handle
+
+ def isValid(self):
+ return self.handle != None and self.handle != ''
+
+ def __getattr__(self,name):
+ hndl = IGuestKeyboardEvent._Attrs_.get(name, None)
+ if hndl != None:
+ if hndl[0] != None:
+ return hndl[0](self)
+ else:
+ raise AttributeError
+ else:
+ return IEvent.__getattr__(self, name)
+
+ def __setattr__(self, name, val):
+ hndl = IGuestKeyboardEvent._Attrs_.get(name, None)
+ if (hndl != None and hndl[1] != None):
+ hndl[1](self,val)
+ else:
+ self.__dict__[name] = val
+
+
+ def getScancodes(self):
+ req=IGuestKeyboardEvent_getScancodesRequestMsg()
+ req._this=self.handle
+ val=self.mgr.getPort().IGuestKeyboardEvent_getScancodes(req)
+ return Int(self.mgr,val._returnval, True)
+
+
+ _Attrs_={ 'scancodes':[getScancodes,None]}
+
+class IGuestMouseEvent(IReusableEvent):
+ def __init__(self, mgr, handle, isarray = False):
+ self.mgr = mgr
+ if handle is None:
+ raise Exception("bad handle: "+str(handle))
+ self.handle = handle
+ self.isarray = isarray
+
+ def releaseRemote(self):
+ try:
+ req=IManagedObjectRef_releaseRequestMsg()
+ req._this=handle
+ self.mgr.getPort().IManagedObjectRef_release(req)
+ except:
+ pass
+
+ def __next(self):
+ if self.isarray:
+ return self.handle.__next()
+ raise TypeError, "iteration over non-sequence"
+
+ def __size(self):
+ if self.isarray:
+ return self.handle.__size()
+ raise TypeError, "iteration over non-sequence"
+
+ def __len__(self):
+ if self.isarray:
+ return self.handle.__len__()
+ raise TypeError, "iteration over non-sequence"
+
+ def __getitem__(self, index):
+ if self.isarray:
+ return IGuestMouseEvent(self.mgr, self.handle[index])
+ raise TypeError, "iteration over non-sequence"
+
+ def __str__(self):
+ return self.handle
+
+ def isValid(self):
+ return self.handle != None and self.handle != ''
+
+ def __getattr__(self,name):
+ hndl = IGuestMouseEvent._Attrs_.get(name, None)
+ if hndl != None:
+ if hndl[0] != None:
+ return hndl[0](self)
+ else:
+ raise AttributeError
+ else:
+ return IReusableEvent.__getattr__(self, name)
+
+ def __setattr__(self, name, val):
+ hndl = IGuestMouseEvent._Attrs_.get(name, None)
+ if (hndl != None and hndl[1] != None):
+ hndl[1](self,val)
+ else:
+ self.__dict__[name] = val
+
+
+ def getAbsolute(self):
+ req=IGuestMouseEvent_getAbsoluteRequestMsg()
+ req._this=self.handle
+ val=self.mgr.getPort().IGuestMouseEvent_getAbsolute(req)
+ return Boolean(self.mgr,val._returnval)
+ def getX(self):
+ req=IGuestMouseEvent_getXRequestMsg()
+ req._this=self.handle
+ val=self.mgr.getPort().IGuestMouseEvent_getX(req)
+ return Int(self.mgr,val._returnval)
+ def getY(self):
+ req=IGuestMouseEvent_getYRequestMsg()
+ req._this=self.handle
+ val=self.mgr.getPort().IGuestMouseEvent_getY(req)
+ return Int(self.mgr,val._returnval)
+ def getZ(self):
+ req=IGuestMouseEvent_getZRequestMsg()
+ req._this=self.handle
+ val=self.mgr.getPort().IGuestMouseEvent_getZ(req)
+ return Int(self.mgr,val._returnval)
+ def getW(self):
+ req=IGuestMouseEvent_getWRequestMsg()
+ req._this=self.handle
+ val=self.mgr.getPort().IGuestMouseEvent_getW(req)
+ return Int(self.mgr,val._returnval)
+ def getButtons(self):
+ req=IGuestMouseEvent_getButtonsRequestMsg()
+ req._this=self.handle
+ val=self.mgr.getPort().IGuestMouseEvent_getButtons(req)
+ return Int(self.mgr,val._returnval)
+
+
+ _Attrs_={ 'absolute':[getAbsolute,None],
+ 'x':[getX,None],
+ 'y':[getY,None],
+ 'z':[getZ,None],
+ 'w':[getW,None],
+ 'buttons':[getButtons,None]}
-class IVRDPServerChangedEvent(IEvent):
+class IVRDEServerChangedEvent(IEvent):
def __init__(self, mgr, handle, isarray = False):
self.mgr = mgr
if handle is None:
@@ -10311,7 +10515,7 @@ def __len__(self):
def __getitem__(self, index):
if self.isarray:
- return IVRDPServerChangedEvent(self.mgr, self.handle[index])
+ return IVRDEServerChangedEvent(self.mgr, self.handle[index])
raise TypeError, "iteration over non-sequence"
def __str__(self):
@@ -10321,7 +10525,7 @@ def isValid(self):
return self.handle != None and self.handle != ''
def __getattr__(self,name):
- hndl = IVRDPServerChangedEvent._Attrs_.get(name, None)
+ hndl = IVRDEServerChangedEvent._Attrs_.get(name, None)
if hndl != None:
if hndl[0] != None:
return hndl[0](self)
@@ -10331,7 +10535,7 @@ def __getattr__(self,name):
return IEvent.__getattr__(self, name)
def __setattr__(self, name, val):
- hndl = IVRDPServerChangedEvent._Attrs_.get(name, None)
+ hndl = IVRDEServerChangedEvent._Attrs_.get(name, None)
if (hndl != None and hndl[1] != None):
hndl[1](self,val)
else:
@@ -10342,7 +10546,7 @@ def __setattr__(self, name, val):
_Attrs_={}
-class IRemoteDisplayInfoChangedEvent(IEvent):
+class IVRDEServerInfoChangedEvent(IEvent):
def __init__(self, mgr, handle, isarray = False):
self.mgr = mgr
if handle is None:
@@ -10375,7 +10579,7 @@ def __len__(self):
def __getitem__(self, index):
if self.isarray:
- return IRemoteDisplayInfoChangedEvent(self.mgr, self.handle[index])
+ return IVRDEServerInfoChangedEvent(self.mgr, self.handle[index])
raise TypeError, "iteration over non-sequence"
def __str__(self):
@@ -10385,7 +10589,7 @@ def isValid(self):
return self.handle != None and self.handle != ''
def __getattr__(self,name):
- hndl = IRemoteDisplayInfoChangedEvent._Attrs_.get(name, None)
+ hndl = IVRDEServerInfoChangedEvent._Attrs_.get(name, None)
if hndl != None:
if hndl[0] != None:
return hndl[0](self)
@@ -10395,7 +10599,7 @@ def __getattr__(self,name):
return IEvent.__getattr__(self, name)
def __setattr__(self, name, val):
- hndl = IRemoteDisplayInfoChangedEvent._Attrs_.get(name, None)
+ hndl = IVRDEServerInfoChangedEvent._Attrs_.get(name, None)
if (hndl != None and hndl[1] != None):
hndl[1](self,val)
else:
@@ -11172,7 +11376,7 @@ def setWinId(self, value):
_Attrs_={ 'winId':[getWinId,setWinId,
]}
-class IRemoteDisplayInfo:
+class IVRDEServerInfo:
def __init__(self, mgr, handle, isarray = False):
self.mgr = mgr
self.isarray = isarray
@@ -11321,7 +11525,7 @@ def __len__(self):
def __getitem__(self, index):
if self.isarray:
- return IRemoteDisplayInfo(self.mgr, self.handle[index])
+ return IVRDEServerInfo(self.mgr, self.handle[index])
raise TypeError, "iteration over non-sequence"
@@ -11377,6 +11581,8 @@ def __init__(self, mgr, handle, isarray = False):
self.recommendedChipset = ChipsetType(self.mgr, handle._recommendedChipset)
+ self.recommendedAudioController = AudioControllerType(self.mgr, handle._recommendedAudioController)
+
pass
@@ -11512,6 +11718,12 @@ def getRecommendedChipset(self):
def setRecommendedChipset(self):
raise Error, 'setters not supported'
+ def getRecommendedAudioController(self):
+ return self.recommendedAudioController
+
+ def setRecommendedAudioController(self):
+ raise Error, 'setters not supported'
+
def __next(self):
if self.isarray:
@@ -11842,7 +12054,7 @@ def __str__(self):
def __int__(self):
return self.handle
- _NameMap={0:'Null',1:'PoweredOff',2:'Saved',3:'Teleported',4:'Aborted',5:'Running',6:'Paused',7:'Stuck',8:'Teleporting',9:'LiveSnapshotting',10:'Starting',11:'Stopping',12:'Saving',13:'Restoring',14:'TeleportingPausedVM',15:'TeleportingIn',16:'FaultTolerantSyncing',17:'DeletingSnapshotOnline',18:'DeletingSnapshotPaused',19:'RestoringSnapshot',20:'DeletingSnapshot',21:'SettingUp'}
+ _NameMap={0:'Null',1:'PoweredOff',2:'Saved',3:'Teleported',4:'Aborted',5:'Running',6:'Paused',7:'Stuck',8:'Teleporting',9:'LiveSnapshotting',10:'Starting',11:'Stopping',12:'Saving',13:'Restoring',14:'TeleportingPausedVM',15:'TeleportingIn',16:'FaultTolerantSyncing',17:'DeletingSnapshotOnline',18:'DeletingSnapshotPaused',19:'RestoringSnapshot',20:'DeletingSnapshot',21:'SettingUp',8:'FirstTransient',21:'LastTransient'}
_ValueMap={
'Null':0,
'PoweredOff':1,
@@ -12663,7 +12875,7 @@ def __int__(self):
WhiteOut=9
class VirtualSystemDescriptionType:
-
+
def __init__(self,mgr,handle,isarray=False):
self.mgr=mgr
self.isarray = isarray
@@ -13004,6 +13216,130 @@ def __int__(self):
Userland=2
Desktop=3
+class ExecuteProcessFlag:
+ def __init__(self,mgr,handle):
+ self.mgr=mgr
+ if isinstance(handle,basestring):
+ self.handle=ExecuteProcessFlag._ValueMap[handle]
+ else:
+ self.handle=handle
+
+ def __eq__(self,other):
+ if isinstance(other,ExecuteProcessFlag):
+ return self.handle == other.handle
+ if isinstance(other,int):
+ return self.handle == other
+ if isinstance(other,basestring):
+ return str(self) == other
+ return False
+
+ def __ne__(self,other):
+ if isinstance(other,ExecuteProcessFlag):
+ return self.handle != other.handle
+ if isinstance(other,int):
+ return self.handle != other
+ if isinstance(other,basestring):
+ return str(self) != other
+ return True
+
+ def __str__(self):
+ return ExecuteProcessFlag._NameMap[self.handle]
+
+ def __int__(self):
+ return self.handle
+
+ _NameMap={0:'None',2:'IgnoreOrphanedProcesses'}
+ _ValueMap={
+ 'None':0,
+ 'IgnoreOrphanedProcesses':2}
+
+ _None=0
+ IgnoreOrphanedProcesses=2
+
+class ProcessInputFlag:
+ def __init__(self,mgr,handle):
+ self.mgr=mgr
+ if isinstance(handle,basestring):
+ self.handle=ProcessInputFlag._ValueMap[handle]
+ else:
+ self.handle=handle
+
+ def __eq__(self,other):
+ if isinstance(other,ProcessInputFlag):
+ return self.handle == other.handle
+ if isinstance(other,int):
+ return self.handle == other
+ if isinstance(other,basestring):
+ return str(self) == other
+ return False
+
+ def __ne__(self,other):
+ if isinstance(other,ProcessInputFlag):
+ return self.handle != other.handle
+ if isinstance(other,int):
+ return self.handle != other
+ if isinstance(other,basestring):
+ return str(self) != other
+ return True
+
+ def __str__(self):
+ return ProcessInputFlag._NameMap[self.handle]
+
+ def __int__(self):
+ return self.handle
+
+ _NameMap={0:'None',1:'EndOfFile'}
+ _ValueMap={
+ 'None':0,
+ 'EndOfFile':1}
+
+ _None=0
+ EndOfFile=1
+
+class CopyFileFlag:
+ def __init__(self,mgr,handle):
+ self.mgr=mgr
+ if isinstance(handle,basestring):
+ self.handle=CopyFileFlag._ValueMap[handle]
+ else:
+ self.handle=handle
+
+ def __eq__(self,other):
+ if isinstance(other,CopyFileFlag):
+ return self.handle == other.handle
+ if isinstance(other,int):
+ return self.handle == other
+ if isinstance(other,basestring):
+ return str(self) == other
+ return False
+
+ def __ne__(self,other):
+ if isinstance(other,CopyFileFlag):
+ return self.handle != other.handle
+ if isinstance(other,int):
+ return self.handle != other
+ if isinstance(other,basestring):
+ return str(self) != other
+ return True
+
+ def __str__(self):
+ return CopyFileFlag._NameMap[self.handle]
+
+ def __int__(self):
+ return self.handle
+
+ _NameMap={0:'None',1:'Recursive',2:'Update',4:'FollowLinks'}
+ _ValueMap={
+ 'None':0,
+ 'Recursive':1,
+ 'Update':2,
+ 'FollowLinks':4}
+
+ _None=0
+ Recursive=1
+ Update=2
+ FollowLinks=4
+
class MediumState:
def __init__(self,mgr,handle):
self.mgr=mgr
@@ -13086,17 +13422,19 @@ def __str__(self):
def __int__(self):
return self.handle
- _NameMap={0:'Normal',1:'Immutable',2:'Writethrough',3:'Shareable'}
+ _NameMap={0:'Normal',1:'Immutable',2:'Writethrough',3:'Shareable',4:'Readonly'}
_ValueMap={
'Normal':0,
'Immutable':1,
'Writethrough':2,
- 'Shareable':3}
+ 'Shareable':3,
+ 'Readonly':4}
Normal=0
Immutable=1
Writethrough=2
Shareable=3
+ Readonly=4
class MediumVariant:
def __init__(self,mgr,handle):
@@ -13712,16 +14050,16 @@ def __int__(self):
SB16=1
HDA=2
-class VRDPAuthType:
+class AuthType:
def __init__(self,mgr,handle):
self.mgr=mgr
if isinstance(handle,basestring):
- self.handle=VRDPAuthType._ValueMap[handle]
+ self.handle=AuthType._ValueMap[handle]
else:
self.handle=handle
def __eq__(self,other):
- if isinstance(other,VRDPAuthType):
+ if isinstance(other,AuthType):
return self.handle == other.handle
if isinstance(other,int):
return self.handle == other
@@ -13730,7 +14068,7 @@ def __eq__(self,other):
return False
def __ne__(self,other):
- if isinstance(other,VRDPAuthType):
+ if isinstance(other,AuthType):
return self.handle != other.handle
if isinstance(other,int):
return self.handle != other
@@ -13739,7 +14077,7 @@ def __ne__(self,other):
return True
def __str__(self):
- return VRDPAuthType._NameMap[self.handle]
+ return AuthType._NameMap[self.handle]
def __int__(self):
return self.handle
@@ -14012,7 +14350,7 @@ def __str__(self):
def __int__(self):
return self.handle
- _NameMap={0:'Invalid',1:'Any',2:'Vetoable',3:'MachineEvent',4:'SnapshotEvent',5:'InputEvent',31:'LastWildcard',32:'OnMachineStateChanged',33:'OnMachineDataChanged',34:'OnExtraDataChanged',35:'OnExtraDataCanChange',36:'OnMediumRegistered',37:'OnMachineRegistered',38:'OnSessionStateChanged',39:'OnSnapshotTaken',40:'OnSnapshotDeleted',41:'OnSnapshotChanged',42:'OnGuestPropertyChanged',43:'OnMousePointerShapeChanged',44:'OnMouseCapabilityChanged',45:'OnKeyboardLedsChanged',46:'OnStateChanged',47:'OnAdditionsStateChanged',48:'OnNetworkAdapterChanged',49:'OnSerialPortChanged',50:'OnParallelPortChanged',51:'OnStorageControllerChanged',52:'OnMediumChanged',53:'OnVRDPServerChanged',54:'OnUSBControllerChanged',55:'OnUSBDeviceStateChanged',56:'OnSharedFolderChanged',57:'OnRuntimeError',58:'OnCanShowWindow',59:'OnShowWindow',60:'OnCPUChanged',61:'OnRemoteDisplayInfoChanged',62:'OnEventSourceChanged',63:'OnCPUPriorityChanged',64:'Last'}
+ _NameMap={0:'Invalid',1:'Any',2:'Vetoable',3:'MachineEvent',4:'SnapshotEvent',5:'InputEvent',31:'LastWildcard',32:'OnMachineStateChanged',33:'OnMachineDataChanged',34:'OnExtraDataChanged',35:'OnExtraDataCanChange',36:'OnMediumRegistered',37:'OnMachineRegistered',38:'OnSessionStateChanged',39:'OnSnapshotTaken',40:'OnSnapshotDeleted',41:'OnSnapshotChanged',42:'OnGuestPropertyChanged',43:'OnMousePointerShapeChanged',44:'OnMouseCapabilityChanged',45:'OnKeyboardLedsChanged',46:'OnStateChanged',47:'OnAdditionsStateChanged',48:'OnNetworkAdapterChanged',49:'OnSerialPortChanged',50:'OnParallelPortChanged',51:'OnStorageControllerChanged',52:'OnMediumChanged',53:'OnVRDEServerChanged',54:'OnUSBControllerChanged',55:'OnUSBDeviceStateChanged',56:'OnSharedFolderChanged',57:'OnRuntimeError',58:'OnCanShowWindow',59:'OnShowWindow',60:'OnCPUChanged',61:'OnVRDEServerInfoChanged',62:'OnEventSourceChanged',63:'OnCPUExecutionCapChanged',64:'OnGuestKeyboardEvent',65:'OnGuestMouseEvent',66:'Last'}
_ValueMap={
'Invalid':0,
'Any':1,
@@ -14042,7 +14380,7 @@ def __int__(self):
'OnParallelPortChanged':50,
'OnStorageControllerChanged':51,
'OnMediumChanged':52,
- 'OnVRDPServerChanged':53,
+ 'OnVRDEServerChanged':53,
'OnUSBControllerChanged':54,
'OnUSBDeviceStateChanged':55,
'OnSharedFolderChanged':56,
@@ -14050,10 +14388,12 @@ def __int__(self):
'OnCanShowWindow':58,
'OnShowWindow':59,
'OnCPUChanged':60,
- 'OnRemoteDisplayInfoChanged':61,
+ 'OnVRDEServerInfoChanged':61,
'OnEventSourceChanged':62,
- 'OnCPUPriorityChanged':63,
- 'Last':64}
+ 'OnCPUExecutionCapChanged':63,
+ 'OnGuestKeyboardEvent':64,
+ 'OnGuestMouseEvent':65,
+ 'Last':66}
Invalid=0
Any=1
@@ -14083,7 +14423,7 @@ def __int__(self):
OnParallelPortChanged=50
OnStorageControllerChanged=51
OnMediumChanged=52
- OnVRDPServerChanged=53
+ OnVRDEServerChanged=53
OnUSBControllerChanged=54
OnUSBDeviceStateChanged=55
OnSharedFolderChanged=56
@@ -14091,10 +14431,12 @@ def __int__(self):
OnCanShowWindow=58
OnShowWindow=59
OnCPUChanged=60
- OnRemoteDisplayInfoChanged=61
+ OnVRDEServerInfoChanged=61
OnEventSourceChanged=62
- OnCPUPriorityChanged=63
- Last=64
+ OnCPUExecutionCapChanged=63
+ OnGuestKeyboardEvent=64
+ OnGuestMouseEvent=65
+ Last=66
class IWebsessionManager2(IWebsessionManager):
@@ -14114,12 +14456,13 @@ def getPort(self):
def logoff(self, _arg_refIVirtualBox):
- req=IWebsessionManager_logoffRequestMsg()
- req._this=self.handle
-
- req._refIVirtualBox=_arg_refIVirtualBox
- val=self.mgr.getPort().IWebsessionManager_logoff(req)
-
- """ Important!!! """
- self.port.binding.h.close()
- return
+ req=IWebsessionManager_logoffRequestMsg()
+ req._this=self.handle
+
+ req._refIVirtualBox=_arg_refIVirtualBox
+ val=self.mgr.getPort().IWebsessionManager_logoff(req)
+
+ """ Important!!! """
+ self.port.binding.h.close()
+ return
+
View
121 lib/vboxactions.py
@@ -41,11 +41,11 @@ class vboxactions(threading.local):
Caching settings. Function : time in seconds. 0 == do not cache
"""
cacheSettings = {
- 'getHostDetails' : 86400, # "never" changes. 1 day
+ 'getHostDetails' : 86400,
'getGuestOSTypes' : 86400,
'getSystemProperties' : 86400,
- 'getHostNetworking' : 86400,
- 'getMediums' : 600, # 10 minutes
+ 'getHostNetworking' : 300,
+ 'getMediums' : 300, # 10 minutes
'getVMs' : 2,
'_getMachine' : 7200, # 2 hours
'_getNetworkAdapters' : 7200,
@@ -305,7 +305,7 @@ def enumerateGuestProperties(self,args,response):
self.connect()
- m = self._getMachineRef(args['vm'])
+ m = self.vbox.findMachine(args['vm'])
response['data'] = m.enumerateGuestProperties(args['pattern'])
@@ -336,7 +336,7 @@ def saveVM(self,args,response):
self.connect()
# create session and lock machine
- machine = self._getMachineRef(args['id'])
+ machine = self.vbox.findMachine(args['id'])
self.session = self.vboxMgr.platform.getSessionObject(self.vbox)
machine.lockMachine(self.session, self.vboxType('LockType','Write'))
@@ -398,16 +398,16 @@ def saveVM(self,args,response):
if int(args.get('BIOSSettings[IOAPICEnabled]')): m.BIOSSettings.IOAPICEnabled = 1
else: m.BIOSSettings.IOAPICEnabled = 0
- # VRDP settings
+ # VRDE settings
if(not version['ose']):
- if args.get('VRDPServer[enabled]'): m.VRDPServer.enabled = 1
- else: m.VRDPServer.enabled = 0
- m.VRDPServer.ports = args.get('VRDPServer[ports]')
- if args.get('VRDPServer[authType]'): m.VRDPServer.authType = args.get('VRDPServer[authType]')
- else: m.VRDPServer.authType = int(self.vboxType('VRDPAuthType','Null'))
- m.VRDPServer.authTimeout = int(args.get('VRDPServer[authTimeout]'))
- if args.get('VRDPServer[allowMultiConnection]'): m.VRDPServer.allowMultiConnection = 1
- else: m.VRDPServer.allowMultiConnection = 0
+ if args.get('VRDEServer[enabled]'): m.VRDEServer.enabled = 1
+ else: m.VRDEServer.enabled = 0
+ m.VRDEServer.setVRDEProperty('TCP/Ports',str(args.get('VRDEServer[ports]')))
+ if args.get('VRDEServer[authType]'): m.VRDEServer.authType = args.get('VRDEServer[authType]')
+ else: m.VRDEServer.authType = int(self.vboxType('AuthType','Null'))
+ m.VRDEServer.authTimeout = int(args.get('VRDEServer[authTimeout]'))
+ if args.get('VRDEServer[allowMultiConnection]'): m.VRDEServer.allowMultiConnection = 1
+ else: m.VRDEServer.allowMultiConnection = 0
# Audio controller settings
if int(args.get('audioAdapter[enabled]')) > 0: m.audioAdapter.enabled = 1
@@ -966,8 +966,7 @@ def saveSystemProperties(self,args,response):
self.connect()
self.vbox.systemProperties.defaultMachineFolder = str(args['SystemProperties[defaultMachineFolder]'])
- self.vbox.systemProperties.defaultHardDiskFolder = str(args['SystemProperties[defaultHardDiskFolder]'])
- self.vbox.systemProperties.remoteDisplayAuthLibrary = str(args['SystemProperties[remoteDisplayAuthLibrary]'])
+ self.vbox.systemProperties.VRDEAuthLibrary = str(args['SystemProperties[VRDEAuthLibrary]'])
self.cache.expire('getSystemProperties')
@@ -1144,7 +1143,7 @@ def applianceExport(self,args,response):
if not vm: continue
# Get VM
- m = self.vbox.getMachine(str(vm))
+ m = self.vbox.findMachine(str(vm))
desc = m.export(app)
descItems = desc.getDescription()
@@ -1439,7 +1438,7 @@ def __setVMState(self, vm, state, response):
self.connect()
# Machine state
- machine = self._getMachineRef(vm)
+ machine = self.vbox.findMachine(vm)
mstate = str(self.vboxType('MachineState',machine.state))
# If state has an expected result, check
@@ -1528,7 +1527,7 @@ def __launchVMProcess(self, machine, response):
# Try opening session for VM
self.session = self.vboxMgr.platform.getSessionObject(self.vbox)
- # VRDP is not supported in OSE
+ # VRDE is not (currently) supported in OSE
version = self.vboxVersion()
if(version['ose']): sessionType = 'headless'
else: sessionType = 'vrdp'
@@ -1682,7 +1681,7 @@ def getVMDetails(self,args,response,snapshot=None):
else:
- machine = self._getMachineRef(args.get('vm'))
+ machine = self.vbox.findMachine(args.get('vm'))
# For correct caching, always use id
args['vm'] = str(machine.id)
@@ -1747,7 +1746,7 @@ def getVMDetails(self,args,response,snapshot=None):
if(console == False or console['lastStateChange'] < mdlm):
self.session = self.vboxMgr.platform.getSessionObject(self.vbox)
machine.lockMachine(self.session, self.vboxType('LockType','Shared'))
- data['consolePort'] = int(self.session.console.remoteDisplayInfo.port)
+ data['consolePort'] = int(self.session.console.VRDEServerInfo.port)
self.session.unlockMachine()
self.session = None
console = {
@@ -1793,7 +1792,7 @@ def removeVM(self, args, response):
# Connect to vboxwebsrv
self.connect()
- machine = self._getMachineRef(args['vm'])
+ machine = self.vbox.findMachine(args['vm'])
cache = ['__consolePort'+args['vm'],'_getMachine'+args['vm'],'_getNetworkAdapters'+args['vm'],'_getStorageControllers'+args['vm'],
'_getSharedFolders'+args['vm'],'_getUSBController'+args['vm'],'getMediums']
@@ -1863,7 +1862,7 @@ def createVM(self,args, response):
self.session = self.vboxMgr.platform.getSessionObject(self.vbox)
# Lock VM
- machine = self._getMachineRef(vm)
+ machine = self.vbox.findMachine(vm)
machine.lockMachine(self.session,self.vboxType('LockType','Write'))
# OS defaults
@@ -1875,7 +1874,7 @@ def createVM(self,args, response):
self.session.machine.USBController.enabled = True
self.session.machine.USBController.enabledEhci = True
if(not version['ose']):
- self.session.machine.VRDPServer.authTimeout = 5000
+ self.session.machine.VRDEServer.authTimeout = 5000
# Other defaults
self.session.machine.BIOSSettings.IOAPICEnabled = defaults.recommendedIOAPIC
@@ -2125,15 +2124,15 @@ def _getMachine(self, m):
version = self.vboxVersion()
- if(version['ose']): VRDPServer = None
+ if(version['ose']): VRDEServer = None
else:
- VRDPServer = {
- 'enabled' : bool(m.VRDPServer.enabled),
- 'ports' : str(m.VRDPServer.ports),
- 'netAddress' : str(m.VRDPServer.netAddress),
- 'authType' : str(m.VRDPServer.authType),
- 'authTimeout' : int(m.VRDPServer.authTimeout),
- 'allowMultiConnection' : int(m.VRDPServer.allowMultiConnection)
+ VRDEServer = {
+ 'enabled' : bool(m.VRDEServer.enabled),
+ 'ports' : str(m.VRDEServer.getVRDEProperty('TCP/Ports')),
+ 'netAddress' : str(m.VRDEServer.getVRDEProperty("TCP/Address")),
+ 'authType' : str(m.VRDEServer.authType),
+ 'authTimeout' : int(m.VRDEServer.authTimeout),
+ 'allowMultiConnection' : int(m.VRDEServer.allowMultiConnection)
}
return {
@@ -2153,7 +2152,7 @@ def _getMachine(self, m):
'firmwareType' : str(self.vboxType('FirmwareType',m.firmwareType)),
'snapshotFolder' : str(m.snapshotFolder),
'monitorCount' : int(m.monitorCount),
- 'VRDPServer' : VRDPServer,
+ 'VRDEServer' : VRDEServer,
'audioAdapter' : {
'enabled' : bool(m.audioAdapter.enabled),
'audioController' : str(self.vboxType('AudioControllerType',m.audioAdapter.audioController)),
@@ -2240,9 +2239,9 @@ def saveSnapshot(self,args,response):
# Connect to vboxwebsrv
self.connect()
- vm = self._getMachineRef(args['vm'])
+ vm = self.vbox.findMachine(args['vm'])
- snapshot = vm.getSnapshot(args['snapshot'])
+ snapshot = vm.findSnapshot(args['snapshot'])
snapshot.name = str(args['name'])
snapshot.description = str(args['description'])
@@ -2258,8 +2257,8 @@ def getSnapshotDetails(self,args,response):
# Connect to vboxwebsrv
self.connect()
- vm = self._getMachineRef(args['vm'])
- snapshot = vm.getSnapshot(args['snapshot'])
+ vm = self.vbox.findMachine(args['vm'])
+ snapshot = vm.findSnapshot(args['snapshot'])
machine = {}
self.getVMDetails({},machine,snapshot.machine)
@@ -2286,10 +2285,10 @@ def snapshotRestore(self, args, response):
# Open session to machine
self.session = self.vboxMgr.platform.getSessionObject(self.vbox)
- machine = self._getMachineRef(args['vm'])
+ machine = self.vbox.findMachine(args['vm'])
machine.lockMachine(self.session,self.vboxType('LockType','Write'))
- snapshot = self.session.machine.getSnapshot(str(args['snapshot']))
+ snapshot = self.session.machine.findSnapshot(str(args['snapshot']))
progress = self.session.console.restoreSnapshot(snapshot)
@@ -2336,7 +2335,7 @@ def snapshotDelete(self,args, response):
# Open session to machine
self.session = self.vboxMgr.platform.getSessionObject(self.vbox)
- machine = self._getMachineRef(args['vm'])
+ machine = self.vbox.findMachine(args['vm'])
machine.lockMachine(self.session, self.vboxType('LockType','Write'))
progress = self.session.console.deleteSnapshot(args['snapshot'])
@@ -2378,7 +2377,7 @@ def snapshotTake(self, args, response):
# Connect to vboxwebsrv
self.connect()
- machine = self._getMachineRef(args['vm'])
+ machine = self.vbox.findMachine(args['vm'])
progress = self.session = None
@@ -2437,13 +2436,13 @@ def getSnapshots(self,args, response):
# Connect to vboxwebsrv
self.connect()
- machine = self._getMachineRef(args['vm'])
+ machine = self.vbox.findMachine(args['vm'])
""" No snapshots? Empty array """
if(int(machine.snapshotCount) < 1):
response['data'] = []
else:
- s = machine.getSnapshot(('' if self.vboxConnType == 'web' else None))
+ s = machine.findSnapshot(('' if self.vboxConnType == 'web' else None))
response['data'] = self._getSnapshot(s,True)
return True
@@ -2609,7 +2608,7 @@ def mediumRelease(self,args,response):
# Find medium attachment
try:
- mach = self.vbox.getMachine(uuid)
+ mach = self.vbox.findMachine(uuid)
except:
# TODO: error message indicating machine no longer exists?
continue
@@ -2697,7 +2696,7 @@ def mediumMount(self,args,response,save=False):
self.connect()
# Find medium attachment
- machine = self._getMachineRef(args['vm'])
+ machine = self.vbox.findMachine(args['vm'])
state = str(self.vboxType('SessionState',machine.sessionState))
save = (save or machine.getExtraData('GUI/SaveMountedAtRuntime'))
@@ -2745,7 +2744,7 @@ def _getMedium(self,m):
sids = m.getSnapshotIds(mid)
- mid = self.vbox.getMachine(mid)
+ mid = self.vbox.findMachine(mid)
c = len(sids)
@@ -2753,7 +2752,7 @@ def _getMedium(self,m):
snapshots = []
for i in range(c):
if str(mid.id) != str(sids[i]):
- snapshots.append(str(mid.getSnapshot(str(sids[i])).name))
+ snapshots.append(str(mid.findSnapshot(str(sids[i])).name))
if(len(snapshots)): hasSnapshots = 1
else: hasSnapshots = 0
@@ -2861,9 +2860,9 @@ def getSystemPropertiesCached(self,args,response):
'networkAdapterCount' : int(self.vbox.systemProperties.networkAdapterCount),
'maxBootPosition' : str(self.vbox.systemProperties.maxBootPosition),
'defaultMachineFolder' : str(self.vbox.systemProperties.defaultMachineFolder),
- 'defaultHardDiskFolder' : str(self.vbox.systemProperties.defaultHardDiskFolder),
+ 'homeFolder' : str(self.vbox.homeFolder),
'defaultHardDiskFormat' : str(self.vbox.systemProperties.defaultHardDiskFormat),
- 'remoteDisplayAuthLibrary' : str(self.vbox.systemProperties.remoteDisplayAuthLibrary),
+ 'VRDEAuthLibrary' : str(self.vbox.systemProperties.VRDEAuthLibrary),
'defaultAudioDriver' : str(self.vbox.systemProperties.defaultAudioDriver),
'maxGuestMonitors' : str(self.vbox.systemProperties.maxGuestMonitors)
}
@@ -2880,7 +2879,7 @@ def getVMLogFileNames(self,args,response):
# Connect to vboxwebsrv
self.connect()
- m = self._getMachineRef(args['vm'])
+ m = self.vbox.findMachine(args['vm'])
logs = []
i = 0
l = 'True'
@@ -2905,7 +2904,7 @@ def getVMLogFile(self,args,response):
# Connect to vboxwebsrv
self.connect()
- m = self._getMachineRef(args['vm'])
+ m = self.vbox.findMachine(args['vm'])
try:
o = 0
@@ -2924,26 +2923,6 @@ def getVMLogFile(self,args,response):
"""
*
- * Return ref to vbox machine object
- *
- """
- def _getMachineRef(self,id):
-
- # Connect to vboxwebsrv
- self.connect()
-
- # Simple UUID passed
- if not id or (id.find('-') > 0):
- return self.vbox.getMachine(id)
-
- # VM name passed. Update ID after getting vm
- res = self.vbox.findMachine(id)
- id = res.id
-
- return res
-
- """
- *
* Format a time
*
"""
View
0  www/images/vbox/Makefile.kup
No changes.
View
BIN  www/images/vbox/adjust_win_size_16px.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  www/images/vbox/adjust_win_size_disabled_16px.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  www/images/vbox/auto_resize_off_16px.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  www/images/vbox/auto_resize_off_disabled_16px.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  www/images/vbox/auto_resize_on_16px.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  www/images/vbox/auto_resize_on_disabled_16px.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  www/images/vbox/auto_resize_on_on_16px.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  www/images/vbox/auto_resize_on_on_disabled_16px.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  www/images/vbox/chipset_16px.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  www/images/vbox/close_16px.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  www/images/vbox/delete_snapshot_16px.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  www/images/vbox/delete_snapshot_dis_16px.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  www/images/vbox/discard_cur_state_16px.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  www/images/vbox/discard_cur_state_dis_16px.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  www/images/vbox/discard_cur_state_snapshot_16px.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  www/images/vbox/discard_cur_state_snapshot_dis_16px.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  www/images/vbox/diskimage_16px.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  www/images/vbox/fullscreen_16px.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  www/images/vbox/fullscreen_disabled_16px.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  www/images/vbox/fullscreen_on_16px.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  www/images/vbox/fullscreen_on_disabled_16px.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  www/images/vbox/hostkey_16px.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  www/images/vbox/hostkey_captured_16px.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  www/images/vbox/hostkey_captured_pressed_16px.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  www/images/vbox/hostkey_disabled_16px.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  www/images/vbox/hostkey_pressed_16px.png
Diff not rendered
View
BIN  www/images/vbox/list_movedown_16px.png
Diff not rendered
View
BIN  www/images/vbox/list_movedown_disabled_16px.png
Diff not rendered
View
BIN  www/images/vbox/list_moveup_16px.png
Diff not rendered
View
BIN  www/images/vbox/list_moveup_disabled_16px.png
Diff not rendered
View
BIN  www/images/vbox/machine_16px.png
Diff not rendered
View
BIN  www/images/vbox/machine_disabled_16px.png
Diff not rendered
View
BIN  www/images/vbox/nw_16px.png
Diff not rendered
View
BIN  www/images/vbox/nw_disabled_16px.png
Diff not rendered
View
BIN  www/images/vbox/nw_read_16px.png
Diff not rendered
View
BIN  www/images/vbox/nw_write_16px.png
Diff not rendered
View
BIN  www/images/vbox/pin_16px.png
Diff not rendered
View
BIN  www/images/vbox/restore_16px.png
Diff not rendered
View
BIN  www/images/vbox/seamless_16px.png
Diff not rendered
View
BIN  www/images/vbox/seamless_disabled_16px.png
Diff not rendered
View
BIN  www/images/vbox/seamless_on_16px.png
Diff not rendered
View
BIN  www/images/vbox/seamless_on_disabled_16px.png
Diff not rendered
View
BIN  www/images/vbox/show_logs_16px.png
Diff not rendered
View
BIN  www/images/vbox/show_logs_disabled_16px.png
Diff not rendered
View
BIN  www/images/vbox/vrdp_16px.png
Diff not rendered
View
BIN  www/images/vbox/vrdp_disabled_16px.png
Diff not rendered
View
BIN  www/images/vbox/vrdp_on_16px.png
Diff not rendered
View
BIN  www/images/vbox/vrdp_on_disabled_16px.png
Diff not rendered
View
3  www/login.html
@@ -57,10 +57,9 @@
});
$('#vboxLoginForm').bind('submit',function(){
- alert('here');
if(document.forms[0].elements['username'].value == '' || document.forms[0].elements['password'].value == '')
return false;
- $('#vboxLoginFormDiv').hide();
+ $('#vboxLoginFormDiv').dialog('close');
});
$('#vboxLoginFormDiv').dialog({'closeOnEscape':false,'width':'auto','height':145,'buttons':buttons,'resizable':false,'modal':true,'autoOpen':true,'stack':true,'dialogClass':'vboxDialogContent','title':'VirtualBox Web Console'});
View
28 www/panes/settingsDisplay.html
@@ -102,7 +102,7 @@
</tr>
<tr>
<th><span class='translate'>Extended Features</span>:</th>
- <td><input type='checkbox' class='vboxCheckbox' name='vboxSettingsDisplayRDPMulti' /> <span class='translate'>Allow Multiple Connections</span></td>
+ <td><input type='checkbox' class='vboxCheckbox' name='vboxSettingsDisplayRDPMulti' /> <span class='translate vboxEnablerListen'>Allow Multiple Connections</span></td>
</tr>