virtualbox 0.5.4 → 0.6.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 (162) hide show
  1. data/.gitignore +2 -1
  2. data/Gemfile +1 -1
  3. data/Rakefile +1 -1
  4. data/Readme.md +5 -21
  5. data/VERSION +1 -1
  6. data/docs/WhatsNew.md +9 -47
  7. data/lib/virtualbox.rb +7 -30
  8. data/lib/virtualbox/abstract_model.rb +25 -5
  9. data/lib/virtualbox/abstract_model/attributable.rb +5 -1
  10. data/lib/virtualbox/abstract_model/dirty.rb +2 -0
  11. data/lib/virtualbox/abstract_model/interface_attributes.rb +96 -0
  12. data/lib/virtualbox/abstract_model/relatable.rb +19 -8
  13. data/lib/virtualbox/appliance.rb +59 -0
  14. data/lib/virtualbox/audio_adapter.rb +44 -0
  15. data/lib/virtualbox/bios.rb +44 -0
  16. data/lib/virtualbox/com.rb +23 -0
  17. data/lib/virtualbox/com/abstract_enum.rb +42 -0
  18. data/lib/virtualbox/com/abstract_implementer.rb +43 -0
  19. data/lib/virtualbox/com/abstract_interface.rb +165 -0
  20. data/lib/virtualbox/com/ffi/interface.rb +141 -0
  21. data/lib/virtualbox/com/ffi/interfaces.rb +42 -0
  22. data/lib/virtualbox/com/ffi/util.rb +101 -0
  23. data/lib/virtualbox/com/ffi/vboxxpcomc.rb +31 -0
  24. data/lib/virtualbox/com/ffi_interface.rb +65 -0
  25. data/lib/virtualbox/com/implementer/base.rb +52 -0
  26. data/lib/virtualbox/com/implementer/ffi.rb +350 -0
  27. data/lib/virtualbox/com/implementer/mscom.rb +165 -0
  28. data/lib/virtualbox/com/implementer/nil.rb +10 -0
  29. data/lib/virtualbox/com/interface/appliance.rb +20 -0
  30. data/lib/virtualbox/com/interface/audio_adapter.rb +13 -0
  31. data/lib/virtualbox/com/interface/audio_controller_type.rb +9 -0
  32. data/lib/virtualbox/com/interface/audio_driver_type.rb +9 -0
  33. data/lib/virtualbox/com/interface/bios_boot_menu_mode.rb +9 -0
  34. data/lib/virtualbox/com/interface/bios_settings.rb +19 -0
  35. data/lib/virtualbox/com/interface/clipboard_mode.rb +9 -0
  36. data/lib/virtualbox/com/interface/console.rb +48 -0
  37. data/lib/virtualbox/com/interface/cpu_property_type.rb +9 -0
  38. data/lib/virtualbox/com/interface/device_type.rb +9 -0
  39. data/lib/virtualbox/com/interface/dhcp_server.rb +20 -0
  40. data/lib/virtualbox/com/interface/firmware_type.rb +9 -0
  41. data/lib/virtualbox/com/interface/guest_os_type.rb +21 -0
  42. data/lib/virtualbox/com/interface/host.rb +40 -0
  43. data/lib/virtualbox/com/interface/host_network_interface.rb +28 -0
  44. data/lib/virtualbox/com/interface/host_network_interface_medium_type.rb +9 -0
  45. data/lib/virtualbox/com/interface/host_network_interface_status.rb +9 -0
  46. data/lib/virtualbox/com/interface/host_network_interface_type.rb +9 -0
  47. data/lib/virtualbox/com/interface/host_usb_device.rb +11 -0
  48. data/lib/virtualbox/com/interface/host_usb_device_filter.rb +11 -0
  49. data/lib/virtualbox/com/interface/hw_virt_ex_property_type.rb +9 -0
  50. data/lib/virtualbox/com/interface/machine.rb +103 -0
  51. data/lib/virtualbox/com/interface/machine_state.rb +12 -0
  52. data/lib/virtualbox/com/interface/medium.rb +48 -0
  53. data/lib/virtualbox/com/interface/medium_attachment.rb +16 -0
  54. data/lib/virtualbox/com/interface/medium_format.rb +16 -0
  55. data/lib/virtualbox/com/interface/medium_state.rb +9 -0
  56. data/lib/virtualbox/com/interface/medium_type.rb +9 -0
  57. data/lib/virtualbox/com/interface/medium_variant.rb +9 -0
  58. data/lib/virtualbox/com/interface/network_adapter.rb +28 -0
  59. data/lib/virtualbox/com/interface/network_adapter_type.rb +9 -0
  60. data/lib/virtualbox/com/interface/network_attachment_type.rb +9 -0
  61. data/lib/virtualbox/com/interface/nsiexception.rb +21 -0
  62. data/lib/virtualbox/com/interface/nsisupports.rb +13 -0
  63. data/lib/virtualbox/com/interface/parallel_port.rb +15 -0
  64. data/lib/virtualbox/com/interface/port_mode.rb +9 -0
  65. data/lib/virtualbox/com/interface/progress.rb +58 -0
  66. data/lib/virtualbox/com/interface/serial_port.rb +17 -0
  67. data/lib/virtualbox/com/interface/session.rb +16 -0
  68. data/lib/virtualbox/com/interface/session_state.rb +9 -0
  69. data/lib/virtualbox/com/interface/session_type.rb +9 -0
  70. data/lib/virtualbox/com/interface/shared_folder.rb +15 -0
  71. data/lib/virtualbox/com/interface/snapshot.rb +18 -0
  72. data/lib/virtualbox/com/interface/storage_bus.rb +9 -0
  73. data/lib/virtualbox/com/interface/storage_controller.rb +21 -0
  74. data/lib/virtualbox/com/interface/storage_controller_type.rb +9 -0
  75. data/lib/virtualbox/com/interface/system_properties.rb +35 -0
  76. data/lib/virtualbox/com/interface/usb_controller.rb +18 -0
  77. data/lib/virtualbox/com/interface/usb_device.rb +22 -0
  78. data/lib/virtualbox/com/interface/usb_device_filter.rb +21 -0
  79. data/lib/virtualbox/com/interface/usb_device_filter_action.rb +9 -0
  80. data/lib/virtualbox/com/interface/usb_device_state.rb +9 -0
  81. data/lib/virtualbox/com/interface/virtual_box_error_info.rb +15 -0
  82. data/lib/virtualbox/com/interface/virtual_system_description.rb +17 -0
  83. data/lib/virtualbox/com/interface/virtual_system_description_type.rb +12 -0
  84. data/lib/virtualbox/com/interface/virtual_system_description_value_type.rb +9 -0
  85. data/lib/virtualbox/com/interface/virtualbox.rb +54 -0
  86. data/lib/virtualbox/com/interface/vrdp_auth_type.rb +9 -0
  87. data/lib/virtualbox/com/interface/vrdp_server.rb +17 -0
  88. data/lib/virtualbox/com/mscom_interface.rb +22 -0
  89. data/lib/virtualbox/com/util.rb +18 -0
  90. data/lib/virtualbox/dvd.rb +7 -94
  91. data/lib/virtualbox/exceptions.rb +24 -0
  92. data/lib/virtualbox/ext/glob_loader.rb +22 -0
  93. data/lib/virtualbox/ext/logger.rb +38 -0
  94. data/lib/virtualbox/ext/platform.rb +1 -1
  95. data/lib/virtualbox/extra_data.rb +25 -37
  96. data/lib/virtualbox/forwarded_port.rb +35 -13
  97. data/lib/virtualbox/global.rb +22 -80
  98. data/lib/virtualbox/hard_drive.rb +30 -97
  99. data/lib/virtualbox/lib.rb +82 -0
  100. data/lib/virtualbox/media.rb +7 -6
  101. data/lib/virtualbox/medium.rb +138 -0
  102. data/lib/virtualbox/medium_attachment.rb +61 -0
  103. data/lib/virtualbox/network_adapter.rb +134 -0
  104. data/lib/virtualbox/shared_folder.rb +53 -78
  105. data/lib/virtualbox/storage_controller.rb +76 -20
  106. data/lib/virtualbox/system_properties.rb +74 -0
  107. data/lib/virtualbox/usb_controller.rb +55 -0
  108. data/lib/virtualbox/version.rb +15 -0
  109. data/lib/virtualbox/virtual_system_description.rb +47 -0
  110. data/lib/virtualbox/vm.rb +160 -272
  111. data/test/test_helper.rb +0 -108
  112. data/test/virtualbox/abstract_model/attributable_test.rb +7 -1
  113. data/test/virtualbox/abstract_model/dirty_test.rb +1 -1
  114. data/test/virtualbox/abstract_model/interface_attributes_test.rb +169 -0
  115. data/test/virtualbox/abstract_model/relatable_test.rb +20 -0
  116. data/test/virtualbox/abstract_model_test.rb +40 -5
  117. data/test/virtualbox/appliance_test.rb +152 -0
  118. data/test/virtualbox/audio_adapter_test.rb +83 -0
  119. data/test/virtualbox/bios_test.rb +83 -0
  120. data/test/virtualbox/com/abstract_enum_test.rb +48 -0
  121. data/test/virtualbox/com/abstract_implementer_test.rb +39 -0
  122. data/test/virtualbox/com/abstract_interface_test.rb +139 -0
  123. data/test/virtualbox/com/ffi/interface_test.rb +249 -0
  124. data/test/virtualbox/com/ffi/util_test.rb +86 -0
  125. data/test/virtualbox/com/ffi_interface_test.rb +42 -0
  126. data/test/virtualbox/com/implementer/base_test.rb +37 -0
  127. data/test/virtualbox/com/implementer/ffi_test.rb +519 -0
  128. data/test/virtualbox/com/implementer/mscom_test.rb +208 -0
  129. data/test/virtualbox/com/mscom_interface_test.rb +17 -0
  130. data/test/virtualbox/com/util_test.rb +17 -0
  131. data/test/virtualbox/dvd_test.rb +4 -95
  132. data/test/virtualbox/ext/platform_test.rb +8 -0
  133. data/test/virtualbox/extra_data_test.rb +78 -102
  134. data/test/virtualbox/forwarded_port_test.rb +57 -7
  135. data/test/virtualbox/global_test.rb +25 -115
  136. data/test/virtualbox/hard_drive_test.rb +49 -212
  137. data/test/virtualbox/lib_test.rb +93 -0
  138. data/test/virtualbox/medium_attachment_test.rb +147 -0
  139. data/test/virtualbox/medium_test.rb +192 -0
  140. data/test/virtualbox/network_adapter_test.rb +160 -0
  141. data/test/virtualbox/shared_folder_test.rb +144 -160
  142. data/test/virtualbox/storage_controller_test.rb +166 -45
  143. data/test/virtualbox/system_properties_test.rb +87 -0
  144. data/test/virtualbox/usb_controller_test.rb +104 -0
  145. data/test/virtualbox/version_test.rb +34 -0
  146. data/test/virtualbox/virtual_system_description_test.rb +61 -0
  147. data/test/virtualbox/vm_test.rb +288 -322
  148. data/test/virtualbox_test.rb +1 -9
  149. data/virtualbox.gemspec +139 -23
  150. metadata +143 -27
  151. data/lib/virtualbox/attached_device.rb +0 -249
  152. data/lib/virtualbox/command.rb +0 -109
  153. data/lib/virtualbox/image.rb +0 -137
  154. data/lib/virtualbox/nic.rb +0 -111
  155. data/lib/virtualbox/system_property.rb +0 -55
  156. data/lib/virtualbox/usb.rb +0 -72
  157. data/test/virtualbox/attached_device_test.rb +0 -303
  158. data/test/virtualbox/command_test.rb +0 -152
  159. data/test/virtualbox/image_test.rb +0 -190
  160. data/test/virtualbox/nic_test.rb +0 -76
  161. data/test/virtualbox/system_property_test.rb +0 -71
  162. data/test/virtualbox/usb_test.rb +0 -35
@@ -0,0 +1,9 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ class PortMode < AbstractEnum
5
+ map [:disconnected, :host_pipe, :host_device, :raw_file]
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,58 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ class Progress < AbstractInterface
5
+ IID = "856aa038-853f-42e2-acf7-6e7b02dbe294"
6
+
7
+ property :id, WSTRING, :readonly => true
8
+ property :description, WSTRING, :readonly => true
9
+ property :initiator, :NSISupports, :readonly => true
10
+ property :cancelable, T_BOOL, :readonly => true
11
+ property :percent, T_UINT32, :readonly => true
12
+ property :time_remaining, T_INT32, :readonly => true
13
+ property :completed, T_BOOL, :readonly => true
14
+ property :canceled, T_BOOL, :readonly => true
15
+ property :result_code, T_INT32, :readonly => true
16
+ property :error_info, :VirtualBoxErrorInfo, :readonly => true
17
+ property :operation_count, T_UINT32, :readonly => true
18
+ property :operation, T_UINT32, :readonly => true
19
+ property :operation_description, WSTRING, :readonly => true
20
+ property :operation_percent, T_UINT32, :readonly => true
21
+ property :timeout, T_UINT32
22
+
23
+ function :set_current_operation_progress, nil, [T_UINT32]
24
+ function :set_next_operation, nil, [WSTRING, T_UINT32]
25
+ function :wait_for_completion, nil, [T_INT32]
26
+ function :wait_for_operation_completion, nil, [T_UINT32, T_INT32]
27
+ function :cancel, nil, []
28
+
29
+ # This method blocks the execution while the operations represented
30
+ # by this {Progress} object execute, but yields a block every `x`
31
+ # percent (interval given in parameters).
32
+ def wait(interval_percent=1)
33
+ # If no block is given we just wait until completion, not worrying
34
+ # about tracking percentages.
35
+ if !block_given?
36
+ wait_for_completion(-1)
37
+ return
38
+ end
39
+
40
+ # Initial value forces the 0% yield
41
+ last_reported = -100
42
+
43
+ while true
44
+ break if completed || canceled
45
+
46
+ delta = percent - last_reported
47
+ last_reported += delta
48
+ yield last_reported if delta >= interval_percent
49
+
50
+ # This either sleeps for half a second or returns on
51
+ # completion
52
+ wait_for_completion(500)
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,17 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ class SerialPort < AbstractInterface
5
+ IID = "937f6970-5103-4745-b78e-d28dcf1479a8"
6
+
7
+ property :slot, T_UINT32, :readonly => true
8
+ property :enabled, T_BOOL
9
+ property :io_base, T_UINT32
10
+ property :irq, T_UINT32
11
+ property :host_mode, :PortMode
12
+ property :server, T_BOOL
13
+ property :path, WSTRING
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,16 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ class Session < AbstractInterface
5
+ IID_STR = "12F4DCDB-12B2-4EC1-B7CD-DDD9F6C5BF4D"
6
+
7
+ property :state, :SessionState, :readonly => true
8
+ property :type, :SessionType, :readonly => true
9
+ property :machine, :Machine, :readonly => true
10
+ property :console, :Console, :readonly => true
11
+
12
+ function :close, nil, []
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,9 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ class SessionState < AbstractEnum
5
+ map [:null, :closed, :open, :spawning, :closing]
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ class SessionType < AbstractEnum
5
+ map [:null, :direct, :remote, :existing]
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,15 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ class SharedFolder < AbstractInterface
5
+ IID = "64637bb2-9e17-471c-b8f3-f8968dd9884e"
6
+
7
+ property :name, WSTRING, :readonly => true
8
+ property :host_path, WSTRING, :readonly => true
9
+ property :accessible, T_BOOL, :readonly => true
10
+ property :writable, T_BOOL, :readonly => true
11
+ property :last_access_error, WSTRING, :readonly => true
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,18 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ class Snapshot < AbstractInterface
5
+ IID = "1a2d0551-58a4-4107-857e-ef414fc42ffc"
6
+
7
+ property :id, WSTRING, :readonly => true
8
+ property :name, WSTRING
9
+ property :description, WSTRING
10
+ property :time_stamp, T_INT64, :readonly => true
11
+ property :online, T_BOOL, :readonly => true
12
+ property :machine, :Machine, :readonly => true
13
+ property :parent, :Snapshot, :readonly => true
14
+ property :children, [:Snapshot], :readonly => true
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,9 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ class StorageBus < AbstractEnum
5
+ map [:null, :ide, :sata, :scsi, :floppy]
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,21 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ class StorageController < AbstractInterface
5
+ IID = "6bf8335b-d14a-44a5-9b45-ddc49ce7d5b2"
6
+
7
+ property :name, WSTRING, :readonly => true
8
+ property :max_devices_per_port_count, T_UINT32, :readonly => true
9
+ property :min_port_count, T_UINT32, :readonly => true
10
+ property :max_port_count, T_UINT32, :readonly => true
11
+ property :instance, T_UINT32
12
+ property :port_count, T_UINT32
13
+ property :bus, :StorageBus, :readonly => true
14
+ property :controller_type, :StorageControllerType
15
+
16
+ function :get_ide_emulation_port, T_INT32, [T_INT32]
17
+ function :set_ide_emulation_port, nil, [T_INT32, T_INT32]
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,9 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ class StorageControllerType < AbstractEnum
5
+ map [:null, :lsi_logic, :bus_logic, :intel_ahci, :piix3, :piix4, :ich6, :i82078]
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,35 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ class SystemProperties < AbstractInterface
5
+ IID = "8030645c-8fef-4320-bb7b-c829f00069dc"
6
+
7
+ property :min_guest_ram, T_UINT32, :readonly => true
8
+ property :max_guest_ram, T_UINT32, :readonly => true
9
+ property :min_guest_vram, T_UINT32, :readonly => true
10
+ property :max_guest_vram, T_UINT32, :readonly => true
11
+ property :min_guest_cpu_count, T_UINT32, :readonly => true
12
+ property :max_guest_cpu_count, T_UINT32, :readonly => true
13
+ property :max_vdi_size, T_UINT64, :readonly => true
14
+ property :network_adapter_count, T_UINT32, :readonly => true
15
+ property :serial_port_count, T_UINT32, :readonly => true
16
+ property :parallel_port_count, T_UINT32, :readonly => true
17
+ property :max_boot_position, T_UINT32, :readonly => true
18
+ property :default_machine_folder, WSTRING
19
+ property :default_hard_disk_folder, WSTRING
20
+ property :medium_formats, [:MediumFormat], :readonly => true
21
+ property :default_hard_disk_format, WSTRING
22
+ property :remote_display_auth_library, WSTRING
23
+ property :web_service_auth_library, WSTRING
24
+ property :log_history_count, T_UINT32
25
+ property :default_audio_driver, :AudioDriverType, :readonly => true
26
+
27
+ function :get_max_devices_per_port_for_storage_bus, T_UINT32, [:StorageBus]
28
+ function :get_min_port_count_for_storage_bus, T_UINT32, [:StorageBus]
29
+ function :get_max_port_count_for_storage_bus, T_UINT32, [:StorageBus]
30
+ function :get_max_instances_of_storage_bus, T_UINT32, [:StorageBus]
31
+ function :get_device_types_for_storage_bus, [:DeviceType], [:StorageBus]
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,18 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ class USBController < AbstractInterface
5
+ IID = "238540fa-4b73-435a-a38e-4e1d9eab5c17"
6
+
7
+ property :enabled, T_BOOL
8
+ property :enabled_ehci, T_BOOL
9
+ property :usb_standard, T_UINT16, :readonly => true
10
+ property :device_filters, [:USBDeviceFilter], :readonly => true
11
+
12
+ function :create_device_filter, :USBDeviceFilter, [WSTRING]
13
+ function :insert_device_filter, nil, [T_UINT32, :USBDeviceFilter]
14
+ function :remove_device_filter, :USBDeviceFilter, [T_UINT32]
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,22 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ class USBDevice < AbstractInterface
5
+ IID = "f8967b0b-4483-400f-92b5-8b675d98a85b"
6
+
7
+ property :id, WSTRING, :readonly => true
8
+ property :vendor_id, T_UINT16, :readonly => true
9
+ property :product_id, T_UINT16, :readonly => true
10
+ property :revision, T_UINT16, :readonly => true
11
+ property :manfacturer, WSTRING, :readonly => true
12
+ property :product, WSTRING, :readonly => true
13
+ property :serial_number, WSTRING, :readonly => true
14
+ property :address, WSTRING, :readonly => true
15
+ property :port, T_UINT16, :readonly => true
16
+ property :version, T_UINT16, :readonly => true
17
+ property :port_version, T_UINT16, :readonly => true
18
+ property :remote, T_BOOL, :readonly => true
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,21 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ class USBDeviceFilter < AbstractInterface
5
+ IID = "d6831fb4-1a94-4c2c-96ef-8d0d6192066d"
6
+
7
+ property :name, WSTRING
8
+ property :active, T_BOOL
9
+ property :vendor_id, WSTRING
10
+ property :product_id, WSTRING
11
+ property :revision, WSTRING
12
+ property :manufacturer, WSTRING
13
+ property :product, WSTRING
14
+ property :serial_number, WSTRING
15
+ property :port, WSTRING
16
+ property :remote, WSTRING
17
+ property :masked_interfaces, T_UINT32
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,9 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ class USBDeviceFilterAction < AbstractEnum
5
+ map [:null, :ignore, :hold]
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ class USBDeviceState < AbstractEnum
5
+ map [:not_supported, :unavailable, :busy, :available, :help, :captured]
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,15 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ class VirtualBoxErrorInfo < AbstractInterface
5
+ IID = "4b86d186-407e-4f9e-8be8-e50061be8725"
6
+
7
+ property :result_code, T_UINT32, :readonly => true
8
+ property :interface_i_d, WSTRING, :readonly => true
9
+ property :component, WSTRING, :readonly => true
10
+ property :text, WSTRING, :readonly => true
11
+ property :next, :VirtualBoxErrorInfo, :readonly => true
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,17 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ class VirtualSystemDescription < AbstractInterface
5
+ IID = "d7525e6c-531a-4c51-8e04-41235083a3d8"
6
+
7
+ property :count, T_UINT32, :readonly => true
8
+
9
+ function :get_description, nil, [[:out, [:VirtualSystemDescriptionType]], [:out, [WSTRING]], [:out, [WSTRING]], [:out, [WSTRING]], [:out, [WSTRING]]]
10
+ function :get_description_by_type, nil, [:VirtualSystemDescriptionType, [:out, [:VirtualSystemDescriptionType]], [:out, [WSTRING]], [:out, [WSTRING]], [:out, [WSTRING]], [:out, [WSTRING]]]
11
+ function :get_values_by_type, [WSTRING], [:VirtualSystemDescriptionType, :VirtualSystemDescriptionValueType]
12
+ function :set_final_values, nil, [[T_BOOL], [WSTRING], [WSTRING]]
13
+ function :add_description, nil, [:VirtualSystemDescriptionType, WSTRING, WSTRING]
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,12 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ class VirtualSystemDescriptionType < AbstractEnum
5
+ map [:null, :ignore, :os, :name, :product, :vendor, :version, :product_url, :vendor_url,
6
+ :description, :license, :misc, :cpu, :memory, :hard_disk_controller_ide,
7
+ :hard_disk_controller_sata, :hard_disk_controller_scsi, :hard_disk_image,
8
+ :floppy, :cdrom, :network_adapter, :usb_controller, :sound_card]
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,9 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ class VirtualSystemDescriptionValueType < AbstractEnum
5
+ map [:null, :reference, :original, :auto, :extra_config]
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,54 @@
1
+ module VirtualBox
2
+ module COM
3
+ module Interface
4
+ class VirtualBox < AbstractInterface
5
+ IID_STR = "2158464a-f706-414b-a8c4-fb589dfc6b62"
6
+
7
+ property :version, WSTRING, :readonly => true
8
+ property :revision, T_ULONG, :readonly => true
9
+ property :package_type, WSTRING, :readonly => true
10
+ property :home_folder, WSTRING, :readonly => true
11
+ property :settings_file_path, WSTRING, :readonly => true
12
+ property :host, :Host, :readonly => true
13
+ property :system_properties, :SystemProperties, :readonly => true
14
+ property :machines, [:Machine], :readonly => true
15
+ property :hard_disks, [:Medium], :readonly => true
16
+ property :dvd_images, [:Medium], :readonly => true
17
+ property :floppy_images, [:Medium], :readonly => true
18
+ property :progress_operations, [:Progress], :readonly => true
19
+ property :guest_os_types, [:GuestOSType], :readonly => true
20
+ property :shared_folders, [:SharedFolder], :readonly => true
21
+ property :performance_collector, :PerformanceCollector, :readonly => true
22
+ property :dhcp_servers, [:DHCPServer], :readonly => true
23
+
24
+ function :create_machine, :Machine, [WSTRING, WSTRING, WSTRING, WSTRING]
25
+ function :create_legacy_machine, :Machine, [WSTRING, WSTRING, WSTRING, WSTRING]
26
+ function :open_machine, :Machine, [WSTRING]
27
+ function :register_machine, :Machine, [:Machine]
28
+ function :get_machine, :Machine, [WSTRING]
29
+ function :find_machine, :Machine, [WSTRING]
30
+ function :unregister_machine, :Machine, [WSTRING]
31
+ function :create_appliance, :Appliance, []
32
+ function :create_hard_disk, :Medium, [WSTRING, WSTRING]
33
+ function :open_hard_disk, :Medium, [WSTRING, T_UINT32, T_BOOL, WSTRING, T_BOOL, WSTRING]
34
+ function :get_hard_disk, :Medium, [WSTRING]
35
+ function :find_hard_disk, :Medium, [WSTRING]
36
+ function :open_dvd_image, :Medium, [WSTRING, WSTRING]
37
+ function :get_dvd_image, :Medium, [WSTRING]
38
+ function :find_dvd_image, :Medium, [WSTRING]
39
+ function :open_floppy_image, :Medium, [WSTRING, WSTRING]
40
+ function :get_floppy_image, :Medium, [WSTRING]
41
+ function :find_floppy_image, :Medium, [WSTRING]
42
+ function :get_guest_os_type, :GuestOSType, [WSTRING]
43
+ function :create_shared_folder, nil, [WSTRING, WSTRING, T_BOOL]
44
+ function :remove_shared_folder, nil, [WSTRING]
45
+ function :get_extra_data_keys, [WSTRING], []
46
+ function :get_extra_data, WSTRING, [WSTRING]
47
+ function :set_extra_data, nil, [WSTRING, WSTRING]
48
+ function :open_session, nil, [:Session, WSTRING]
49
+ function :open_remote_session, :Progress, [:Session, WSTRING, WSTRING, WSTRING]
50
+ function :open_existing_session, nil, [:Session, WSTRING]
51
+ end
52
+ end
53
+ end
54
+ end