virtualbox 0.7.9 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. data/lib/virtualbox/appliance.rb +3 -3
  2. data/lib/virtualbox/com/ffi/interfaces.rb +12 -3
  3. data/lib/virtualbox/com/ffi/util.rb +3 -1
  4. data/lib/virtualbox/com/implementer/ffi.rb +23 -3
  5. data/lib/virtualbox/com/interface/4.0.x/access_mode.rb +11 -0
  6. data/lib/virtualbox/com/interface/4.0.x/appliance.rb +23 -0
  7. data/lib/virtualbox/com/interface/4.0.x/audio_adapter.rb +15 -0
  8. data/lib/virtualbox/com/interface/4.0.x/audio_controller_type.rb +11 -0
  9. data/lib/virtualbox/com/interface/4.0.x/audio_driver_type.rb +11 -0
  10. data/lib/virtualbox/com/interface/4.0.x/auth_type.rb +11 -0
  11. data/lib/virtualbox/com/interface/4.0.x/bios_boot_menu_mode.rb +11 -0
  12. data/lib/virtualbox/com/interface/4.0.x/bios_settings.rb +21 -0
  13. data/lib/virtualbox/com/interface/4.0.x/cleanup_mode.rb +12 -0
  14. data/lib/virtualbox/com/interface/4.0.x/clipboard_mode.rb +11 -0
  15. data/lib/virtualbox/com/interface/4.0.x/console.rb +50 -0
  16. data/lib/virtualbox/com/interface/4.0.x/cpu_property_type.rb +11 -0
  17. data/lib/virtualbox/com/interface/4.0.x/device_type.rb +11 -0
  18. data/lib/virtualbox/com/interface/4.0.x/dhcp_server.rb +22 -0
  19. data/lib/virtualbox/com/interface/4.0.x/event_source.rb +13 -0
  20. data/lib/virtualbox/com/interface/4.0.x/fault_tolerance_state.rb +11 -0
  21. data/lib/virtualbox/com/interface/4.0.x/firmware_type.rb +11 -0
  22. data/lib/virtualbox/com/interface/4.0.x/guest.rb +13 -0
  23. data/lib/virtualbox/com/interface/4.0.x/guest_os_type.rb +33 -0
  24. data/lib/virtualbox/com/interface/4.0.x/host.rb +43 -0
  25. data/lib/virtualbox/com/interface/4.0.x/host_network_interface.rb +30 -0
  26. data/lib/virtualbox/com/interface/4.0.x/host_network_interface_medium_type.rb +11 -0
  27. data/lib/virtualbox/com/interface/4.0.x/host_network_interface_status.rb +11 -0
  28. data/lib/virtualbox/com/interface/4.0.x/host_network_interface_type.rb +11 -0
  29. data/lib/virtualbox/com/interface/4.0.x/host_usb_device.rb +13 -0
  30. data/lib/virtualbox/com/interface/4.0.x/host_usb_device_filter.rb +13 -0
  31. data/lib/virtualbox/com/interface/4.0.x/hw_virt_ex_property_type.rb +12 -0
  32. data/lib/virtualbox/com/interface/4.0.x/keyboard_hid_type.rb +11 -0
  33. data/lib/virtualbox/com/interface/4.0.x/lock_type.rb +11 -0
  34. data/lib/virtualbox/com/interface/4.0.x/machine.rb +132 -0
  35. data/lib/virtualbox/com/interface/4.0.x/machine_state.rb +14 -0
  36. data/lib/virtualbox/com/interface/4.0.x/medium.rb +53 -0
  37. data/lib/virtualbox/com/interface/4.0.x/medium_attachment.rb +18 -0
  38. data/lib/virtualbox/com/interface/4.0.x/medium_format.rb +18 -0
  39. data/lib/virtualbox/com/interface/4.0.x/medium_state.rb +11 -0
  40. data/lib/virtualbox/com/interface/4.0.x/medium_type.rb +11 -0
  41. data/lib/virtualbox/com/interface/4.0.x/medium_variant.rb +11 -0
  42. data/lib/virtualbox/com/interface/4.0.x/nat_alias_mode.rb +11 -0
  43. data/lib/virtualbox/com/interface/4.0.x/nat_engine.rb +27 -0
  44. data/lib/virtualbox/com/interface/4.0.x/nat_protocol.rb +11 -0
  45. data/lib/virtualbox/com/interface/4.0.x/network_adapter.rb +35 -0
  46. data/lib/virtualbox/com/interface/4.0.x/network_adapter_type.rb +11 -0
  47. data/lib/virtualbox/com/interface/4.0.x/network_attachment_type.rb +11 -0
  48. data/lib/virtualbox/com/interface/4.0.x/nsiexception.rb +23 -0
  49. data/lib/virtualbox/com/interface/4.0.x/nsisupports.rb +15 -0
  50. data/lib/virtualbox/com/interface/4.0.x/parallel_port.rb +17 -0
  51. data/lib/virtualbox/com/interface/4.0.x/pointing_hid_type.rb +11 -0
  52. data/lib/virtualbox/com/interface/4.0.x/port_mode.rb +11 -0
  53. data/lib/virtualbox/com/interface/4.0.x/progress.rb +64 -0
  54. data/lib/virtualbox/com/interface/4.0.x/serial_port.rb +19 -0
  55. data/lib/virtualbox/com/interface/4.0.x/session.rb +18 -0
  56. data/lib/virtualbox/com/interface/4.0.x/session_state.rb +11 -0
  57. data/lib/virtualbox/com/interface/4.0.x/session_type.rb +11 -0
  58. data/lib/virtualbox/com/interface/4.0.x/shared_folder.rb +17 -0
  59. data/lib/virtualbox/com/interface/4.0.x/snapshot.rb +20 -0
  60. data/lib/virtualbox/com/interface/4.0.x/storage_bus.rb +11 -0
  61. data/lib/virtualbox/com/interface/4.0.x/storage_controller.rb +24 -0
  62. data/lib/virtualbox/com/interface/4.0.x/storage_controller_type.rb +11 -0
  63. data/lib/virtualbox/com/interface/4.0.x/system_properties.rb +42 -0
  64. data/lib/virtualbox/com/interface/4.0.x/usb_controller.rb +21 -0
  65. data/lib/virtualbox/com/interface/4.0.x/usb_device.rb +24 -0
  66. data/lib/virtualbox/com/interface/4.0.x/usb_device_filter.rb +23 -0
  67. data/lib/virtualbox/com/interface/4.0.x/usb_device_filter_action.rb +11 -0
  68. data/lib/virtualbox/com/interface/4.0.x/usb_device_state.rb +11 -0
  69. data/lib/virtualbox/com/interface/4.0.x/virtual_box_error_info.rb +17 -0
  70. data/lib/virtualbox/com/interface/4.0.x/virtual_system_description.rb +19 -0
  71. data/lib/virtualbox/com/interface/4.0.x/virtual_system_description_type.rb +14 -0
  72. data/lib/virtualbox/com/interface/4.0.x/virtual_system_description_value_type.rb +11 -0
  73. data/lib/virtualbox/com/interface/4.0.x/virtualbox.rb +50 -0
  74. data/lib/virtualbox/com/interface/4.0.x/vrde_server.rb +23 -0
  75. data/lib/virtualbox/host_network_interface.rb +1 -1
  76. data/lib/virtualbox/hw_virtualization.rb +1 -0
  77. data/lib/virtualbox/network_adapter.rb +1 -1
  78. data/lib/virtualbox/system_properties.rb +2 -3
  79. data/lib/virtualbox/version.rb +1 -1
  80. data/lib/virtualbox/vm.rb +20 -44
  81. data/lib/virtualbox/{vrdp_server.rb → vrde_server.rb} +9 -11
  82. data/test/virtualbox/host_network_interface_test.rb +1 -0
  83. data/test/virtualbox/vm_test.rb +35 -26
  84. data/test/virtualbox/{vrdp_server_test.rb → vrde_server_test.rb} +8 -8
  85. metadata +77 -7
@@ -48,15 +48,15 @@ module VirtualBox
48
48
  # every percent that the operation progresses. This can be done to check the progress
49
49
  # of the export in real-time.
50
50
  def export(&block)
51
- interface.write("ovf-1.0", path).wait(&block)
51
+ interface.write("ovf-1.0", true, path).wait(&block)
52
52
  end
53
53
 
54
54
  # Adds a VM to the appliance
55
55
  def add_machine(vm, options = {})
56
- sys_desc = vm.interface.export(interface)
56
+ sys_desc = vm.interface.export(interface, path)
57
57
  options.each do |key, value|
58
58
  sys_desc.add_description(key, value, value)
59
59
  end
60
60
  end
61
61
  end
62
- end
62
+ end
@@ -38,15 +38,24 @@ module VirtualBox
38
38
  create_interface(:USBDeviceFilter, :NSISupports)
39
39
  create_interface(:VirtualBoxErrorInfo, :NSIException)
40
40
  create_interface(:VirtualSystemDescription, :NSISupports)
41
- create_interface(:VRDPServer, :NSISupports)
42
41
 
43
42
  create_interface(:HostUSBDevice, :USBDevice)
44
43
  create_interface(:HostUSBDeviceFilter, :USBDeviceFilter)
45
44
 
46
- # 3.2.x interfaces
47
- if version == "3.2.x"
45
+ # 3.1.x, 3.2.x
46
+ if ["3.1.x", "3.2.x"].include?(version)
47
+ create_interface(:VRDPServer, :NSISupports)
48
+ end
49
+
50
+ # 3.2.x, 4.0.x
51
+ if ["3.2.x", "4.0.x"].include?(version)
48
52
  create_interface(:NATEngine, :NSISupports)
49
53
  end
54
+
55
+ # 4.0.x interfaces
56
+ if version == "4.0.x"
57
+ create_interface(:VRDEServer, :NSISupports)
58
+ end
50
59
  end
51
60
  end
52
61
  end
@@ -87,6 +87,7 @@ module VirtualBox
87
87
  "3d" => "3D",
88
88
  "bios" => "BIOS",
89
89
  "vrdp" => "VRDP",
90
+ "vrde" => "VRDE",
90
91
  "hw" => "HW",
91
92
  "png" => "PNG",
92
93
  "io" => "IO",
@@ -103,7 +104,8 @@ module VirtualBox
103
104
  "hdd" => "HDD",
104
105
  "rtc" => "RTC",
105
106
  "utc" => "UTC",
106
- "io" => "IO"
107
+ "io" => "IO",
108
+ "vm" => "VM"
107
109
  }
108
110
 
109
111
  parts = string.to_s.split(/_/).collect do |part|
@@ -144,11 +144,31 @@ module VirtualBox
144
144
  results << pointer_for_type(item[1])
145
145
  end
146
146
  elsif item.is_a?(Array) && item.length == 1
147
- # Convert the array to a size, then array parameter
147
+ # Array argument
148
148
  data = args.shift
149
+
150
+ # First add the length of the array
149
151
  results << data.length
150
- results << data.inject([]) do |converted_data, single|
151
- single_type_to_arg([single], item[0], converted_data)
152
+
153
+ # Create the array
154
+ c_type, type = infer_type(item.first)
155
+
156
+ # If its a regular type (int, bool, etc.) then just make it an
157
+ # array of that
158
+ if type != :interface
159
+ results << data.inject([]) do |converted_data, single|
160
+ single_type_to_arg([single], item[0], converted_data)
161
+ end
162
+ else
163
+ # Then convert the rest into a raw MemoryPointer
164
+ array = ::FFI::MemoryPointer.new(:pointer, data.length)
165
+ data.each_with_index do |datum, i|
166
+ converted = []
167
+ single_type_to_arg([datum], item.first, converted)
168
+ array[i].put_pointer(0, converted.first)
169
+ end
170
+
171
+ results << array
152
172
  end
153
173
  elsif item == WSTRING
154
174
  # We have to convert the arg to a unicode string
@@ -0,0 +1,11 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class AccessMode < AbstractEnum
6
+ map [:null, :access_mode_read_only, :access_mode_read_write]
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,23 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class Appliance < AbstractInterface
6
+ IID = "e3ba9ab9-ac2c-4266-8bd2-91c4bf721ceb"
7
+
8
+ property :path, WSTRING, :readonly => true
9
+ property :disks, [WSTRING], :readonly => true
10
+ property :virtual_system_descriptions, [:VirtualSystemDescription], :readonly => true
11
+ property :machines, [WSTRING], :readonly => true
12
+
13
+ function :read, :Progress, [WSTRING]
14
+ function :interpret, nil, []
15
+ function :import_machines, :Progress, []
16
+ function :create_vfs_explorer, :VFSExplorer, [WSTRING]
17
+ function :write, :Progress, [WSTRING, T_BOOL, WSTRING]
18
+ function :get_warnings, [WSTRING], []
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,15 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class AudioAdapter < AbstractInterface
6
+ IID = "921873db-5f3f-4b69-91f9-7be9e535a2cb"
7
+
8
+ property :enabled, T_BOOL
9
+ property :audio_controller, :AudioControllerType
10
+ property :audio_driver, :AudioDriverType
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,11 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class AudioControllerType < AbstractEnum
6
+ map [:ac97, :sb16]
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class AudioDriverType < AbstractEnum
6
+ map [:null, :winmm, :oss, :alsa, :direct_sound, :core_audio, :mmpm, :pulse, :sol_audio]
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class AuthType < AbstractEnum
6
+ map [:null, :external, :guest]
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class BIOSBootMenuMode < AbstractEnum
6
+ map [:disabled, :menu_only, :message_and_menu]
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,21 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class BIOSSettings < AbstractInterface
6
+ IID = "38b54279-dc35-4f5e-a431-835b867c6b5e"
7
+
8
+ property :logo_fade_in, T_BOOL
9
+ property :logo_fade_out, T_BOOL
10
+ property :logo_display_time, T_UINT32
11
+ property :logo_image_path, WSTRING
12
+ property :boot_menu_mode, :BIOSBootMenuMode
13
+ property :acpi_enabled, T_BOOL
14
+ property :io_apic_enabled, T_BOOL
15
+ property :time_offset, T_INT64
16
+ property :pxe_debug_enabled, T_BOOL
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,12 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class CleanupMode < AbstractEnum
6
+ map [:null, :unregister_only, :detach_all_return_none,
7
+ :detach_all_return_hard_disks_only, :full]
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class ClipboardMode < AbstractEnum
6
+ map [:disabled, :host_to_guest, :guest_to_host, :bidirectional]
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,50 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class Console < AbstractInterface
6
+ IID = "6375231a-c17c-464b-92cb-ae9e128d71c3"
7
+
8
+ property :machine, :Machine, :readonly => true
9
+ property :state, :MachineState, :readonly => true
10
+ property :guest, :Guest, :readonly => true
11
+ property :keyboard, :Keyboard, :readonly => true
12
+ property :mouse, :Mouse, :readonly => true
13
+ property :display, :Display, :readonly => true
14
+ property :debugger, :MachineDebugger, :readonly => true
15
+ property :usb_devices, [:USBDevice], :readonly => true
16
+ property :remote_usb_devices, [:HostUSBDevice], :readonly => true
17
+ property :shared_folders, [:SharedFolder], :readonly => true
18
+ property :vrde_server_info, :VRDEServerInfo, :readonly => true
19
+ property :event_source, :EventSource, :readonly => true
20
+ property :attached_pci_devices, [:PciDeviceAttachment], :readonly => true
21
+
22
+ function :power_up, :Progress, []
23
+ function :power_up_paused, :Progress, []
24
+ function :power_down, :Progress, []
25
+ function :reset, nil, []
26
+ function :pause, nil, []
27
+ function :resume, nil, []
28
+ function :power_button, nil, []
29
+ function :sleep_button, nil, []
30
+ function :get_power_button_handled, T_BOOL, []
31
+ function :get_guest_entered_acpi_mode, T_BOOL, []
32
+ function :save_state, :Progress, []
33
+ function :adopt_saved_state, nil, [WSTRING]
34
+ function :discard_saved_state, nil, [T_BOOL]
35
+ function :get_device_activity, :DeviceActivity, [:DeviceType]
36
+ function :attach_usb_device, nil, [WSTRING]
37
+ function :detach_usb_device, :USBDevice, [WSTRING]
38
+ function :find_usb_device_by_address, :USBDevice, [WSTRING]
39
+ function :find_usb_device_by_id, :USBDevice, [WSTRING]
40
+ function :create_shared_folder, nil, [WSTRING, WSTRING, T_BOOL, T_BOOL]
41
+ function :remove_shared_folder, nil, [WSTRING]
42
+ function :take_snapshot, :Progress, [WSTRING, WSTRING]
43
+ function :delete_snapshot, :Progress, [WSTRING]
44
+ function :restore_snapshot, :Progress, [:Snapshot]
45
+ function :teleport, :Progress, [WSTRING, T_UINT32, WSTRING, T_UINT32]
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,11 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class CpuPropertyType < AbstractEnum
6
+ map [:null, :pae, :synthetic]
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class DeviceType < AbstractEnum
6
+ map [:null, :floppy, :dvd, :hard_disk, :network, :usb, :shared_folder]
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,22 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class DHCPServer < AbstractInterface
6
+ IID = "6cfe387c-74fb-4ca7-bff6-973bec8af7a3"
7
+
8
+ property :enabled, T_BOOL
9
+ property :ip_address, WSTRING, :readonly => true
10
+ property :network_mask, WSTRING, :readonly => true
11
+ property :network_name, WSTRING, :readonly => true
12
+ property :lower_ip, WSTRING, :readonly => true
13
+ property :upper_ip, WSTRING, :readonly => true
14
+
15
+ function :set_configuration, nil, [WSTRING, WSTRING, WSTRING, WSTRING]
16
+ function :start, nil, [WSTRING, WSTRING, WSTRING]
17
+ function :stop, nil, []
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,13 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class EventSource < AbstractInterface
6
+ IID_STR = "TODO"
7
+
8
+ # TODO
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class FaultToleranceState < AbstractEnum
6
+ map [:null, :inactive, :master, :standby]
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class FirmwareType < AbstractEnum
6
+ map [:bios, :efi, :efi32, :efi64, :efidual]
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class Guest < AbstractInterface
6
+ IID = "TODO"
7
+
8
+ # TODO
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,33 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class GuestOSType < AbstractInterface
6
+ IID = "cfe9e64c-4430-435b-9e7c-e3d8e417bd58"
7
+
8
+ property :family_id, WSTRING, :readonly => true
9
+ property :family_description, WSTRING, :readonly => true
10
+ property :id, WSTRING, :readonly => true
11
+ property :description, WSTRING, :readonly => true
12
+ property :is_64_bit, T_BOOL, :readonly => true
13
+ property :recommended_io_apic, T_BOOL, :readonly => true
14
+ property :recommended_virt_ex, T_BOOL, :readonly => true
15
+ property :recommended_ram, T_UINT32, :readonly => true
16
+ property :recommended_vram, T_UINT32, :readonly => true
17
+ property :recommended_hdd, T_UINT32, :readonly => true
18
+ property :adapter_type, :NetworkAdapterType, :readonly => true
19
+ property :recommended_pae, T_BOOL, :readonly => true
20
+ property :recommended_dvd_storage_controller, T_UINT32, :readonly => true
21
+ property :recommended_dvd_storage_bus, T_UINT32, :readonly => true
22
+ property :recommended_hd_storage_controller, T_UINT32, :readonly => true
23
+ property :recommended_hd_storage_bus, T_UINT32, :readonly => true
24
+ property :recommended_firmware, T_UINT32, :readonly => true
25
+ property :recommended_usb_hid, T_BOOL, :readonly => true
26
+ property :recommended_hpet, T_BOOL, :readonly => true
27
+ property :recommended_usb_tablet, T_BOOL, :readonly => true
28
+ property :recommended_rtc_use_utc, T_BOOL, :readonly => true
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,43 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class Host < AbstractInterface
6
+ IID_STR = "e380cbfc-ae65-4fa6-899e-45ded6b3132a"
7
+
8
+ property :dvd_drives, [:Medium], :readonly => true
9
+ property :floppy_drives, [:Medium], :readonly => true
10
+ property :usb_devices, [:HostUSBDevice], :readonly => true
11
+ property :usb_device_filters, [:HostUSBDeviceFilter], :readonly => true
12
+ property :network_interfaces, [:HostNetworkInterface], :readonly => true
13
+ property :processor_count, T_ULONG, :readonly => true
14
+ property :processor_online_count, T_ULONG, :readonly => true
15
+ property :processor_core_count, T_ULONG, :readonly => true
16
+ property :memory_size, T_ULONG, :readonly => true
17
+ property :memory_available, T_ULONG, :readonly => true
18
+ property :operating_system, WSTRING, :readonly => true
19
+ property :os_version, WSTRING, :readonly => true
20
+ property :utc_time, T_INT64, :readonly => true
21
+ property :acceleration_3d_available, T_BOOL, :readonly => true
22
+
23
+ function :get_processor_speed, T_ULONG, [T_UINT32]
24
+ function :get_processor_feature, T_BOOL, [T_UINT32] # TODO ENUM
25
+ function :get_processor_description, WSTRING, [T_UINT32]
26
+ function :get_processor_cpu_id_leaf, nil, [T_UINT32, T_UINT32, T_UINT32, [:out, T_UINT32], [:out, T_UINT32], [:out, T_UINT32], [:out, T_UINT32]]
27
+ function :create_host_only_network_interface, :Progress, [[:out, :HostNetworkInterface]]
28
+ function :remove_host_only_network_interface, :Progress, [WSTRING]
29
+ function :create_usb_device_filter, :HostUSBDeviceFilter, [WSTRING]
30
+ function :insert_usb_device_filter, nil, [T_UINT32, :HostUSBDeviceFilter]
31
+ function :remove_usb_device_filter, nil, [T_UINT32]
32
+ function :find_host_dvd_drive, :Medium, [WSTRING]
33
+ function :find_host_floppy_drive, :Medium, [WSTRING]
34
+ function :find_host_network_interface_by_name, :HostNetworkInterface, [WSTRING]
35
+ function :find_host_network_interface_by_id, :HostNetworkInterface, [WSTRING]
36
+ function :find_host_network_interfaces_of_type, [:HostNetworkInterface], [:HostNetworkInterfaceType]
37
+ function :find_usb_device_by_id, :HostUSBDevice, [WSTRING]
38
+ function :find_usb_device_by_address, :HostUSBDevice, [WSTRING]
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,30 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class HostNetworkInterface < AbstractInterface
6
+ IID = "ce6fae58-7642-4102-b5db-c9005c2320a8"
7
+
8
+ property :name, WSTRING, :readonly => true
9
+ property :id, WSTRING, :readonly => true
10
+ property :network_name, WSTRING, :readonly => true
11
+ property :dhcp_enabled, T_BOOL, :readonly => true
12
+ property :ip_address, WSTRING, :readonly => true
13
+ property :network_mask, WSTRING, :readonly => true
14
+ property :ip_v6_supported, T_BOOL, :readonly => true
15
+ property :ip_v6_address, WSTRING, :readonly => true
16
+ property :ip_v6_network_mask_prefix_length, T_UINT32, :readonly => true
17
+ property :hardware_address, WSTRING, :readonly => true
18
+ property :medium_type, :HostNetworkInterfaceMediumType, :readonly => true
19
+ property :status, :HostNetworkInterfaceStatus, :readonly => true
20
+ property :interface_type, :HostNetworkInterfaceType, :readonly => true
21
+
22
+ function :enable_static_ip_config, nil, [WSTRING, WSTRING]
23
+ function :enable_static_ip_config_v6, nil, [WSTRING, T_UINT32]
24
+ function :enable_dynamic_ip_config, nil, []
25
+ function :dhcp_rediscover, nil, []
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,11 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class HostNetworkInterfaceMediumType < AbstractEnum
6
+ map [:unknown, :ethernet, :ppp, :slip]
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class HostNetworkInterfaceStatus < AbstractEnum
6
+ map [:unknown, :up, :down]
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class HostNetworkInterfaceType < AbstractEnum
6
+ map [:null, :bridged, :host_only]
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class HostUSBDevice < AbstractInterface
6
+ IID = "173b4b44-d268-4334-a00d-b6521c9a740a"
7
+
8
+ property :state, :USBDeviceState, :readonly => true
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class HostUSBDeviceFilter < AbstractInterface
6
+ IID = "4cc70246-d74a-400f-8222-3900489c0374"
7
+
8
+ property :action, :USBDeviceFilterAction
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class HWVirtExPropertyType < AbstractEnum
6
+ map [:null, :enabled, :exclusive, :vpid, :nested_paging, :large_pages,
7
+ :force]
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class KeyboardHidType < AbstractEnum
6
+ map [:null, :none, :ps2_keyboard, :usb_keyboard, :combo_keyboard]
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ module Version_4_0_X
5
+ class LockType < AbstractEnum
6
+ map [:null, :shared, :write]
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end