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.
- data/lib/virtualbox/appliance.rb +3 -3
- data/lib/virtualbox/com/ffi/interfaces.rb +12 -3
- data/lib/virtualbox/com/ffi/util.rb +3 -1
- data/lib/virtualbox/com/implementer/ffi.rb +23 -3
- data/lib/virtualbox/com/interface/4.0.x/access_mode.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/appliance.rb +23 -0
- data/lib/virtualbox/com/interface/4.0.x/audio_adapter.rb +15 -0
- data/lib/virtualbox/com/interface/4.0.x/audio_controller_type.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/audio_driver_type.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/auth_type.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/bios_boot_menu_mode.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/bios_settings.rb +21 -0
- data/lib/virtualbox/com/interface/4.0.x/cleanup_mode.rb +12 -0
- data/lib/virtualbox/com/interface/4.0.x/clipboard_mode.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/console.rb +50 -0
- data/lib/virtualbox/com/interface/4.0.x/cpu_property_type.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/device_type.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/dhcp_server.rb +22 -0
- data/lib/virtualbox/com/interface/4.0.x/event_source.rb +13 -0
- data/lib/virtualbox/com/interface/4.0.x/fault_tolerance_state.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/firmware_type.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/guest.rb +13 -0
- data/lib/virtualbox/com/interface/4.0.x/guest_os_type.rb +33 -0
- data/lib/virtualbox/com/interface/4.0.x/host.rb +43 -0
- data/lib/virtualbox/com/interface/4.0.x/host_network_interface.rb +30 -0
- data/lib/virtualbox/com/interface/4.0.x/host_network_interface_medium_type.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/host_network_interface_status.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/host_network_interface_type.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/host_usb_device.rb +13 -0
- data/lib/virtualbox/com/interface/4.0.x/host_usb_device_filter.rb +13 -0
- data/lib/virtualbox/com/interface/4.0.x/hw_virt_ex_property_type.rb +12 -0
- data/lib/virtualbox/com/interface/4.0.x/keyboard_hid_type.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/lock_type.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/machine.rb +132 -0
- data/lib/virtualbox/com/interface/4.0.x/machine_state.rb +14 -0
- data/lib/virtualbox/com/interface/4.0.x/medium.rb +53 -0
- data/lib/virtualbox/com/interface/4.0.x/medium_attachment.rb +18 -0
- data/lib/virtualbox/com/interface/4.0.x/medium_format.rb +18 -0
- data/lib/virtualbox/com/interface/4.0.x/medium_state.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/medium_type.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/medium_variant.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/nat_alias_mode.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/nat_engine.rb +27 -0
- data/lib/virtualbox/com/interface/4.0.x/nat_protocol.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/network_adapter.rb +35 -0
- data/lib/virtualbox/com/interface/4.0.x/network_adapter_type.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/network_attachment_type.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/nsiexception.rb +23 -0
- data/lib/virtualbox/com/interface/4.0.x/nsisupports.rb +15 -0
- data/lib/virtualbox/com/interface/4.0.x/parallel_port.rb +17 -0
- data/lib/virtualbox/com/interface/4.0.x/pointing_hid_type.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/port_mode.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/progress.rb +64 -0
- data/lib/virtualbox/com/interface/4.0.x/serial_port.rb +19 -0
- data/lib/virtualbox/com/interface/4.0.x/session.rb +18 -0
- data/lib/virtualbox/com/interface/4.0.x/session_state.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/session_type.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/shared_folder.rb +17 -0
- data/lib/virtualbox/com/interface/4.0.x/snapshot.rb +20 -0
- data/lib/virtualbox/com/interface/4.0.x/storage_bus.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/storage_controller.rb +24 -0
- data/lib/virtualbox/com/interface/4.0.x/storage_controller_type.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/system_properties.rb +42 -0
- data/lib/virtualbox/com/interface/4.0.x/usb_controller.rb +21 -0
- data/lib/virtualbox/com/interface/4.0.x/usb_device.rb +24 -0
- data/lib/virtualbox/com/interface/4.0.x/usb_device_filter.rb +23 -0
- data/lib/virtualbox/com/interface/4.0.x/usb_device_filter_action.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/usb_device_state.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/virtual_box_error_info.rb +17 -0
- data/lib/virtualbox/com/interface/4.0.x/virtual_system_description.rb +19 -0
- data/lib/virtualbox/com/interface/4.0.x/virtual_system_description_type.rb +14 -0
- data/lib/virtualbox/com/interface/4.0.x/virtual_system_description_value_type.rb +11 -0
- data/lib/virtualbox/com/interface/4.0.x/virtualbox.rb +50 -0
- data/lib/virtualbox/com/interface/4.0.x/vrde_server.rb +23 -0
- data/lib/virtualbox/host_network_interface.rb +1 -1
- data/lib/virtualbox/hw_virtualization.rb +1 -0
- data/lib/virtualbox/network_adapter.rb +1 -1
- data/lib/virtualbox/system_properties.rb +2 -3
- data/lib/virtualbox/version.rb +1 -1
- data/lib/virtualbox/vm.rb +20 -44
- data/lib/virtualbox/{vrdp_server.rb → vrde_server.rb} +9 -11
- data/test/virtualbox/host_network_interface_test.rb +1 -0
- data/test/virtualbox/vm_test.rb +35 -26
- data/test/virtualbox/{vrdp_server_test.rb → vrde_server_test.rb} +8 -8
- metadata +77 -7
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module VirtualBox
|
|
2
|
+
module COM
|
|
3
|
+
module Interface
|
|
4
|
+
module Version_4_0_X
|
|
5
|
+
class StorageController < AbstractInterface
|
|
6
|
+
IID = "6bf8335b-d14a-44a5-9b45-ddc49ce7d5b2"
|
|
7
|
+
|
|
8
|
+
property :name, WSTRING, :readonly => true
|
|
9
|
+
property :max_devices_per_port_count, T_UINT32, :readonly => true
|
|
10
|
+
property :min_port_count, T_UINT32, :readonly => true
|
|
11
|
+
property :max_port_count, T_UINT32, :readonly => true
|
|
12
|
+
property :instance, T_UINT32
|
|
13
|
+
property :port_count, T_UINT32
|
|
14
|
+
property :bus, :StorageBus, :readonly => true
|
|
15
|
+
property :controller_type, :StorageControllerType
|
|
16
|
+
property :use_host_io_cache, T_BOOL
|
|
17
|
+
|
|
18
|
+
function :get_ide_emulation_port, T_INT32, [T_INT32]
|
|
19
|
+
function :set_ide_emulation_port, nil, [T_INT32, T_INT32]
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
module VirtualBox
|
|
2
|
+
module COM
|
|
3
|
+
module Interface
|
|
4
|
+
module Version_4_0_X
|
|
5
|
+
class SystemProperties < AbstractInterface
|
|
6
|
+
IID = "8030645c-8fef-4320-bb7b-c829f00069dc"
|
|
7
|
+
|
|
8
|
+
property :min_guest_ram, T_UINT32, :readonly => true
|
|
9
|
+
property :max_guest_ram, T_UINT32, :readonly => true
|
|
10
|
+
property :min_guest_vram, T_UINT32, :readonly => true
|
|
11
|
+
property :max_guest_vram, T_UINT32, :readonly => true
|
|
12
|
+
property :min_guest_cpu_count, T_UINT32, :readonly => true
|
|
13
|
+
property :max_guest_cpu_count, T_UINT32, :readonly => true
|
|
14
|
+
property :max_guest_monitors, T_UINT32, :readonly => true
|
|
15
|
+
property :info_vd_size, T_INT64, :readonly => true
|
|
16
|
+
property :network_adapter_count, T_UINT32, :readonly => true
|
|
17
|
+
property :serial_port_count, T_UINT32, :readonly => true
|
|
18
|
+
property :parallel_port_count, T_UINT32, :readonly => true
|
|
19
|
+
property :max_boot_position, T_UINT32, :readonly => true
|
|
20
|
+
property :default_machine_folder, WSTRING
|
|
21
|
+
property :medium_formats, [:MediumFormat], :readonly => true
|
|
22
|
+
property :default_hard_disk_format, WSTRING
|
|
23
|
+
property :free_disk_space_warning, T_UINT64
|
|
24
|
+
property :free_disk_space_percent_warning, T_UINT32
|
|
25
|
+
property :free_disk_space_error, T_UINT64
|
|
26
|
+
property :free_disk_space_percent_error, T_UINT64
|
|
27
|
+
property :vrde_auth_library, WSTRING
|
|
28
|
+
property :web_service_auth_library, WSTRING
|
|
29
|
+
property :log_history_count, T_UINT32
|
|
30
|
+
property :default_audio_driver, :AudioDriverType, :readonly => true
|
|
31
|
+
|
|
32
|
+
function :get_max_devices_per_port_for_storage_bus, T_UINT32, [:StorageBus]
|
|
33
|
+
function :get_min_port_count_for_storage_bus, T_UINT32, [:StorageBus]
|
|
34
|
+
function :get_max_port_count_for_storage_bus, T_UINT32, [:StorageBus]
|
|
35
|
+
function :get_max_instances_of_storage_bus, T_UINT32, [:StorageBus]
|
|
36
|
+
function :get_device_types_for_storage_bus, [:DeviceType], [:StorageBus]
|
|
37
|
+
function :get_default_io_cache_setting_for_storage_controller, T_BOOL, [:StorageControllerType]
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module VirtualBox
|
|
2
|
+
module COM
|
|
3
|
+
module Interface
|
|
4
|
+
module Version_4_0_X
|
|
5
|
+
class USBController < AbstractInterface
|
|
6
|
+
IID = "238540fa-4b73-435a-a38e-4e1d9eab5c17"
|
|
7
|
+
|
|
8
|
+
property :enabled, T_BOOL
|
|
9
|
+
property :enabled_ehci, T_BOOL
|
|
10
|
+
property :proxy_available, T_BOOL, :readonly => true
|
|
11
|
+
property :usb_standard, T_UINT16, :readonly => true
|
|
12
|
+
property :device_filters, [:USBDeviceFilter], :readonly => true
|
|
13
|
+
|
|
14
|
+
function :create_device_filter, :USBDeviceFilter, [WSTRING]
|
|
15
|
+
function :insert_device_filter, nil, [T_UINT32, :USBDeviceFilter]
|
|
16
|
+
function :remove_device_filter, :USBDeviceFilter, [T_UINT32]
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module VirtualBox
|
|
2
|
+
module COM
|
|
3
|
+
module Interface
|
|
4
|
+
module Version_4_0_X
|
|
5
|
+
class USBDevice < AbstractInterface
|
|
6
|
+
IID = "f8967b0b-4483-400f-92b5-8b675d98a85b"
|
|
7
|
+
|
|
8
|
+
property :id, WSTRING, :readonly => true
|
|
9
|
+
property :vendor_id, T_UINT16, :readonly => true
|
|
10
|
+
property :product_id, T_UINT16, :readonly => true
|
|
11
|
+
property :revision, T_UINT16, :readonly => true
|
|
12
|
+
property :manfacturer, WSTRING, :readonly => true
|
|
13
|
+
property :product, WSTRING, :readonly => true
|
|
14
|
+
property :serial_number, WSTRING, :readonly => true
|
|
15
|
+
property :address, WSTRING, :readonly => true
|
|
16
|
+
property :port, T_UINT16, :readonly => true
|
|
17
|
+
property :version, T_UINT16, :readonly => true
|
|
18
|
+
property :port_version, T_UINT16, :readonly => true
|
|
19
|
+
property :remote, T_BOOL, :readonly => true
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module VirtualBox
|
|
2
|
+
module COM
|
|
3
|
+
module Interface
|
|
4
|
+
module Version_4_0_X
|
|
5
|
+
class USBDeviceFilter < AbstractInterface
|
|
6
|
+
IID = "d6831fb4-1a94-4c2c-96ef-8d0d6192066d"
|
|
7
|
+
|
|
8
|
+
property :name, WSTRING
|
|
9
|
+
property :active, T_BOOL
|
|
10
|
+
property :vendor_id, WSTRING
|
|
11
|
+
property :product_id, WSTRING
|
|
12
|
+
property :revision, WSTRING
|
|
13
|
+
property :manufacturer, WSTRING
|
|
14
|
+
property :product, WSTRING
|
|
15
|
+
property :serial_number, WSTRING
|
|
16
|
+
property :port, WSTRING
|
|
17
|
+
property :remote, WSTRING
|
|
18
|
+
property :masked_interfaces, T_UINT32
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module VirtualBox
|
|
2
|
+
module COM
|
|
3
|
+
module Interface
|
|
4
|
+
module Version_4_0_X
|
|
5
|
+
class VirtualBoxErrorInfo < AbstractInterface
|
|
6
|
+
IID = "4b86d186-407e-4f9e-8be8-e50061be8725"
|
|
7
|
+
|
|
8
|
+
property :result_code, T_UINT32, :readonly => true
|
|
9
|
+
property :interface_i_d, WSTRING, :readonly => true
|
|
10
|
+
property :component, WSTRING, :readonly => true
|
|
11
|
+
property :text, WSTRING, :readonly => true
|
|
12
|
+
property :next, :VirtualBoxErrorInfo, :readonly => true
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module VirtualBox
|
|
2
|
+
module COM
|
|
3
|
+
module Interface
|
|
4
|
+
module Version_4_0_X
|
|
5
|
+
class VirtualSystemDescription < AbstractInterface
|
|
6
|
+
IID = "d7525e6c-531a-4c51-8e04-41235083a3d8"
|
|
7
|
+
|
|
8
|
+
property :count, T_UINT32, :readonly => true
|
|
9
|
+
|
|
10
|
+
function :get_description, nil, [[:out, [:VirtualSystemDescriptionType]], [:out, [WSTRING]], [:out, [WSTRING]], [:out, [WSTRING]], [:out, [WSTRING]]]
|
|
11
|
+
function :get_description_by_type, nil, [:VirtualSystemDescriptionType, [:out, [:VirtualSystemDescriptionType]], [:out, [WSTRING]], [:out, [WSTRING]], [:out, [WSTRING]], [:out, [WSTRING]]]
|
|
12
|
+
function :get_values_by_type, [WSTRING], [:VirtualSystemDescriptionType, :VirtualSystemDescriptionValueType]
|
|
13
|
+
function :set_final_values, nil, [[T_BOOL], [WSTRING], [WSTRING]]
|
|
14
|
+
function :add_description, nil, [:VirtualSystemDescriptionType, WSTRING, WSTRING]
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
module VirtualBox
|
|
2
|
+
module COM
|
|
3
|
+
module Interface
|
|
4
|
+
module Version_4_0_X
|
|
5
|
+
class VirtualSystemDescriptionType < AbstractEnum
|
|
6
|
+
map [:null, :ignore, :os, :name, :product, :vendor, :version, :product_url, :vendor_url,
|
|
7
|
+
:description, :license, :misc, :cpu, :memory, :hard_disk_controller_ide,
|
|
8
|
+
:hard_disk_controller_sata, :hard_disk_controller_scsi, :hard_disk_controller_sas, :hard_disk_image,
|
|
9
|
+
:floppy, :cdrom, :network_adapter, :usb_controller, :sound_card]
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
module VirtualBox
|
|
2
|
+
module COM
|
|
3
|
+
module Interface
|
|
4
|
+
module Version_4_0_X
|
|
5
|
+
class VirtualBox < AbstractInterface
|
|
6
|
+
IID_STR = "D2DE270C-1D4B-4C9E-843F-BBB9B47269FF"
|
|
7
|
+
|
|
8
|
+
property :version, WSTRING, :readonly => true
|
|
9
|
+
property :revision, T_ULONG, :readonly => true
|
|
10
|
+
property :package_type, WSTRING, :readonly => true
|
|
11
|
+
property :home_folder, WSTRING, :readonly => true
|
|
12
|
+
property :settings_file_path, WSTRING, :readonly => true
|
|
13
|
+
property :host, :Host, :readonly => true
|
|
14
|
+
property :system_properties, :SystemProperties, :readonly => true
|
|
15
|
+
property :machines, [:Machine], :readonly => true
|
|
16
|
+
property :hard_disks, [:Medium], :readonly => true
|
|
17
|
+
property :dvd_images, [:Medium], :readonly => true
|
|
18
|
+
property :floppy_images, [:Medium], :readonly => true
|
|
19
|
+
property :progress_operations, [:Progress], :readonly => true
|
|
20
|
+
property :guest_os_types, [:GuestOSType], :readonly => true
|
|
21
|
+
property :shared_folders, [:SharedFolder], :readonly => true
|
|
22
|
+
property :performance_collector, :PerformanceCollector, :readonly => true
|
|
23
|
+
property :dhcp_servers, [:DHCPServer], :readonly => true
|
|
24
|
+
property :event_source, :EventSource, :readonly => true
|
|
25
|
+
property :extension_pack_manager, :ExtPackManager, :readonly => true
|
|
26
|
+
|
|
27
|
+
function :compose_machine_filename, WSTRING, [WSTRING, WSTRING]
|
|
28
|
+
function :create_machine, :Machine, [WSTRING, WSTRING, WSTRING, WSTRING, T_BOOL]
|
|
29
|
+
function :open_machine, :Machine, [WSTRING]
|
|
30
|
+
function :register_machine, nil, [:Machine]
|
|
31
|
+
function :find_machine, :Machine, [WSTRING]
|
|
32
|
+
function :create_appliance, :Appliance, []
|
|
33
|
+
function :create_hard_disk, :Medium, [WSTRING, WSTRING]
|
|
34
|
+
function :open_medium, :Medium, [WSTRING, :DeviceType, :AccessMode]
|
|
35
|
+
function :find_medium, :Medium, [WSTRING, :DeviceType]
|
|
36
|
+
function :get_guest_os_type, :GuestOSType, [WSTRING]
|
|
37
|
+
function :create_shared_folder, nil, [WSTRING, WSTRING, T_BOOL, T_BOOL]
|
|
38
|
+
function :remove_shared_folder, nil, [WSTRING]
|
|
39
|
+
function :get_extra_data_keys, [WSTRING], []
|
|
40
|
+
function :get_extra_data, WSTRING, [WSTRING]
|
|
41
|
+
function :set_extra_data, nil, [WSTRING, WSTRING]
|
|
42
|
+
function :create_dhcp_server, :DHCPServer, [WSTRING]
|
|
43
|
+
function :find_dhcp_server_by_network_name, :DHCPServer, [WSTRING]
|
|
44
|
+
function :remove_dhcp_server, nil, [:DHCPServer]
|
|
45
|
+
function :check_firmware_present, T_BOOL, [:FirmwareType, WSTRING, [:out, WSTRING], [:out, WSTRING]]
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module VirtualBox
|
|
2
|
+
module COM
|
|
3
|
+
module Interface
|
|
4
|
+
module Version_4_0_X
|
|
5
|
+
class VRDEServer < AbstractInterface
|
|
6
|
+
IID = "72e671bc-1712-4052-ad6b-e45e76d9d3e4"
|
|
7
|
+
|
|
8
|
+
property :enabled, T_BOOL
|
|
9
|
+
property :auth_type, :AuthType
|
|
10
|
+
property :auth_timeout, T_UINT32
|
|
11
|
+
property :allow_multi_connection, T_BOOL
|
|
12
|
+
property :reuse_single_connection, T_BOOL
|
|
13
|
+
property :vrde_ext_pack, WSTRING
|
|
14
|
+
property :auth_library, WSTRING
|
|
15
|
+
property :vrde_properties, [WSTRING], :readonly => true
|
|
16
|
+
|
|
17
|
+
function :set_vrde_property, nil, [WSTRING, WSTRING]
|
|
18
|
+
function :get_vrde_property, WSTRING, [WSTRING]
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -59,7 +59,7 @@ module VirtualBox
|
|
|
59
59
|
attribute :internal_network
|
|
60
60
|
attribute :host_interface
|
|
61
61
|
attribute :interface, :readonly => true, :property => false
|
|
62
|
-
relationship :nat_driver, :NATEngine, :
|
|
62
|
+
relationship :nat_driver, :NATEngine, :lazy => true
|
|
63
63
|
|
|
64
64
|
class << self
|
|
65
65
|
# Populates the nic relationship for anything which is related to it.
|
|
@@ -12,16 +12,15 @@ module VirtualBox
|
|
|
12
12
|
attribute :max_guest_vram, :readonly => true
|
|
13
13
|
attribute :min_guest_cpu_count, :readonly => true
|
|
14
14
|
attribute :max_guest_cpu_count, :readonly => true
|
|
15
|
-
attribute :
|
|
15
|
+
attribute :info_vd_size, :readonly => true
|
|
16
16
|
attribute :network_adapter_count, :readonly => true
|
|
17
17
|
attribute :serial_port_count, :readonly => true
|
|
18
18
|
attribute :parallel_port_count, :readonly => true
|
|
19
19
|
attribute :max_boot_position, :readonly => true
|
|
20
20
|
attribute :default_machine_folder
|
|
21
|
-
attribute :default_hard_disk_folder
|
|
22
21
|
attribute :medium_formats, :readonly => true
|
|
23
22
|
attribute :default_hard_disk_format
|
|
24
|
-
attribute :
|
|
23
|
+
attribute :vrde_auth_library
|
|
25
24
|
attribute :web_service_auth_library
|
|
26
25
|
attribute :log_history_count
|
|
27
26
|
attribute :default_audio_driver, :readonly => true
|
data/lib/virtualbox/version.rb
CHANGED
data/lib/virtualbox/vm.rb
CHANGED
|
@@ -146,8 +146,6 @@ module VirtualBox
|
|
|
146
146
|
attribute :accessible, :readonly => true, :boolean => true
|
|
147
147
|
attribute :hardware_version
|
|
148
148
|
attribute :hardware_uuid
|
|
149
|
-
# TODO: Removed in 3.2.x, how should we handle this?
|
|
150
|
-
# attribute :statistics_update_interval
|
|
151
149
|
attribute :firmware_type
|
|
152
150
|
attribute :snapshot_folder
|
|
153
151
|
attribute :settings_file_path, :readonly => true
|
|
@@ -169,7 +167,7 @@ module VirtualBox
|
|
|
169
167
|
relationship :bios, :BIOS
|
|
170
168
|
relationship :hw_virt, :HWVirtualization
|
|
171
169
|
relationship :cpu, :CPU
|
|
172
|
-
relationship :
|
|
170
|
+
relationship :vrde_server, :VRDEServer
|
|
173
171
|
relationship :storage_controllers, :StorageController, :dependent => :destroy
|
|
174
172
|
relationship :medium_attachments, :MediumAttachment
|
|
175
173
|
relationship :shared_folders, :SharedFolder
|
|
@@ -378,7 +376,7 @@ module VirtualBox
|
|
|
378
376
|
# be modified with an open session on a machine. An open session is similar
|
|
379
377
|
# to a write-lock. Once the session is completed, it must be closed, which
|
|
380
378
|
# this method does as well.
|
|
381
|
-
def with_open_session
|
|
379
|
+
def with_open_session(mode=:write)
|
|
382
380
|
# Set the session up
|
|
383
381
|
session = Lib.lib.session
|
|
384
382
|
|
|
@@ -386,23 +384,23 @@ module VirtualBox
|
|
|
386
384
|
|
|
387
385
|
if session.state != :open
|
|
388
386
|
# Open up a session for this virtual machine
|
|
389
|
-
interface.
|
|
387
|
+
interface.lock_machine(session, mode)
|
|
390
388
|
|
|
391
389
|
# Mark the session to be closed
|
|
392
390
|
close_session = true
|
|
393
391
|
end
|
|
394
392
|
|
|
395
393
|
# Yield the block with the session
|
|
396
|
-
yield session
|
|
394
|
+
yield session if block_given?
|
|
397
395
|
|
|
398
396
|
# Close the session
|
|
399
397
|
if close_session
|
|
400
398
|
# Save these settings only if we're closing and only if the state
|
|
401
399
|
# is not saved, since that doesn't allow the machine to be saved.
|
|
402
|
-
session.machine.save_settings if session.machine.state != :saved
|
|
400
|
+
session.machine.save_settings if mode == :write && session.machine.state != :saved
|
|
403
401
|
|
|
404
402
|
# Close the session
|
|
405
|
-
session.
|
|
403
|
+
session.unlock_machine
|
|
406
404
|
end
|
|
407
405
|
rescue Exception
|
|
408
406
|
# Close the session so we don't get locked out. We use a rescue block
|
|
@@ -410,7 +408,7 @@ module VirtualBox
|
|
|
410
408
|
# exception is raised. Otherwise, we may or may not close the session,
|
|
411
409
|
# depending how deeply nested this call to `with_open_session` is.
|
|
412
410
|
# (see close_session boolean above)
|
|
413
|
-
session.
|
|
411
|
+
session.unlock_machine if session.state == :open
|
|
414
412
|
|
|
415
413
|
# Reraise the exception, we're not actually catching it to handle it
|
|
416
414
|
raise
|
|
@@ -473,11 +471,8 @@ module VirtualBox
|
|
|
473
471
|
# Open a new remote session, this will automatically start the machine
|
|
474
472
|
# as well
|
|
475
473
|
session = Lib.lib.session
|
|
476
|
-
interface.
|
|
474
|
+
interface.launch_vm_process(session, mode.to_s, "").wait
|
|
477
475
|
true
|
|
478
|
-
ensure
|
|
479
|
-
# Be sure to close that session!
|
|
480
|
-
session.close if session && session.state == :open
|
|
481
476
|
end
|
|
482
477
|
|
|
483
478
|
# Shuts down the VM by directly calling "acpipowerbutton". Depending on the
|
|
@@ -543,16 +538,10 @@ module VirtualBox
|
|
|
543
538
|
# @param [String] command The command to run on controlvm
|
|
544
539
|
# @return [Boolean] True if command was successful, false otherwise.
|
|
545
540
|
def control(command, *args)
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
# Send the proper command, waiting if we have to
|
|
551
|
-
result = session.console.send(command, *args)
|
|
552
|
-
result.wait_for_completion(-1) if result.is_a?(COM::Util.versioned_interface(:Progress))
|
|
553
|
-
ensure
|
|
554
|
-
# Close the session
|
|
555
|
-
session.close if session && session.state == :open
|
|
541
|
+
with_open_session(:shared) do |session|
|
|
542
|
+
result = session.console.send(command, *args)
|
|
543
|
+
result.wait if result.is_a?(COM::Util.versioned_interface(:Progress))
|
|
544
|
+
end
|
|
556
545
|
end
|
|
557
546
|
|
|
558
547
|
# Destroys the virtual machine. This method also removes all attached
|
|
@@ -567,30 +556,17 @@ module VirtualBox
|
|
|
567
556
|
# not only unregister attached media, but will also physically
|
|
568
557
|
# remove their respective data.
|
|
569
558
|
def destroy(*args)
|
|
570
|
-
#
|
|
571
|
-
|
|
572
|
-
if root_snapshot
|
|
573
|
-
destroy_snapshot = lambda do |snapshot|
|
|
574
|
-
return if snapshot.nil?
|
|
575
|
-
|
|
576
|
-
snapshot.children.each { |c| destroy_snapshot.call(c) }
|
|
577
|
-
snapshot.destroy
|
|
578
|
-
end
|
|
559
|
+
# Do a full cleanup on the machine, then delete all the media attached
|
|
560
|
+
media = interface.unregister(:full)
|
|
579
561
|
|
|
580
|
-
|
|
562
|
+
if !media.empty?
|
|
563
|
+
interface.delete(media)
|
|
581
564
|
|
|
582
|
-
#
|
|
583
|
-
#
|
|
584
|
-
|
|
565
|
+
# TODO: This sleep is silly. The progress object returned by the media
|
|
566
|
+
# delete always fails to "wait" for some reason, so I do this. I hope
|
|
567
|
+
# to solve this issue soon.
|
|
568
|
+
sleep 1
|
|
585
569
|
end
|
|
586
|
-
|
|
587
|
-
# Call super first so destroy is propogated through to relationships
|
|
588
|
-
# first
|
|
589
|
-
super
|
|
590
|
-
|
|
591
|
-
# Finally, destroy this machine and remove the settings file
|
|
592
|
-
interface.parent.unregister_machine(uuid)
|
|
593
|
-
interface.delete_settings
|
|
594
570
|
end
|
|
595
571
|
|
|
596
572
|
# Returns true if the virtual machine state is starting
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
module VirtualBox
|
|
2
2
|
# Represents the VRDP Server settings of a {VM}.
|
|
3
|
-
class
|
|
3
|
+
class VRDEServer < AbstractModel
|
|
4
4
|
attribute :parent, :readonly => true, :property => false
|
|
5
5
|
attribute :enabled, :boolean => true
|
|
6
|
-
attribute :ports
|
|
7
|
-
attribute :net_address
|
|
8
6
|
attribute :auth_type
|
|
9
7
|
attribute :auth_timeout
|
|
10
8
|
attribute :allow_multi_connection, :boolean => true
|
|
11
9
|
attribute :reuse_single_connection, :boolean => true
|
|
10
|
+
attribute :vrde_ext_pack
|
|
11
|
+
attribute :auth_library
|
|
12
12
|
|
|
13
13
|
class << self
|
|
14
14
|
# Populates a relationship with another model.
|
|
15
15
|
#
|
|
16
16
|
# **This method typically won't be used except internally.**
|
|
17
17
|
#
|
|
18
|
-
# @return [
|
|
18
|
+
# @return [VRDEServer]
|
|
19
19
|
def populate_relationship(caller, imachine)
|
|
20
|
-
data = new(caller, imachine.
|
|
20
|
+
data = new(caller, imachine.vrde_server)
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
# Saves the relationship.
|
|
@@ -28,11 +28,11 @@ module VirtualBox
|
|
|
28
28
|
end
|
|
29
29
|
end
|
|
30
30
|
|
|
31
|
-
def initialize(parent,
|
|
31
|
+
def initialize(parent, vrde_settings)
|
|
32
32
|
write_attribute(:parent, parent)
|
|
33
33
|
|
|
34
34
|
# Load the attributes and mark the whole thing as existing
|
|
35
|
-
load_interface_attributes(
|
|
35
|
+
load_interface_attributes(vrde_settings)
|
|
36
36
|
clear_dirty!
|
|
37
37
|
existing_record!
|
|
38
38
|
end
|
|
@@ -41,9 +41,7 @@ module VirtualBox
|
|
|
41
41
|
super
|
|
42
42
|
|
|
43
43
|
validates_inclusion_of :enabled, :allow_multi_connection, :reuse_single_connection, :in => [true, false]
|
|
44
|
-
|
|
45
|
-
validates_format_of :net_address, :with => /^[\w\d\-\.]+$/, :message => "must only contain latters, numbers, dashes or periods."
|
|
46
|
-
validates_inclusion_of :auth_type, :in => COM::Util.versioned_interface(:VRDPAuthType).map
|
|
44
|
+
validates_inclusion_of :auth_type, :in => COM::Util.versioned_interface(:AuthType).map
|
|
47
45
|
validates_numericality_of :auth_timeout
|
|
48
46
|
end
|
|
49
47
|
|
|
@@ -52,7 +50,7 @@ module VirtualBox
|
|
|
52
50
|
machine = session.machine
|
|
53
51
|
|
|
54
52
|
# Save them
|
|
55
|
-
save_changed_interface_attributes(machine.
|
|
53
|
+
save_changed_interface_attributes(machine.vrde_server)
|
|
56
54
|
end
|
|
57
55
|
end
|
|
58
56
|
end
|