virtualbox-ws 0.0.3 → 0.0.5
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.
- checksums.yaml +4 -4
- data/Gemfile +1 -2
- data/Gemfile.lock +8 -2
- data/README.md +42 -24
- data/lib/core_ext/hash.rb +6 -6
- data/lib/core_ext/string.rb +8 -0
- data/lib/virtualbox/base.rb +118 -6
- data/lib/virtualbox/classes/appliance.rb +11 -44
- data/lib/virtualbox/classes/audio_adapter.rb +3 -25
- data/lib/virtualbox/classes/bandwidth_control.rb +5 -27
- data/lib/virtualbox/classes/bandwidth_group.rb +4 -21
- data/lib/virtualbox/classes/bios_settings.rb +12 -73
- data/lib/virtualbox/classes/console.rb +42 -193
- data/lib/virtualbox/classes/dhcp_server.rb +18 -44
- data/lib/virtualbox/classes/directory.rb +4 -18
- data/lib/virtualbox/classes/display.rb +10 -39
- data/lib/virtualbox/classes/emulated_usb.rb +10 -0
- data/lib/virtualbox/classes/event.rb +5 -23
- data/lib/virtualbox/classes/event_listener.rb +1 -6
- data/lib/virtualbox/classes/event_source.rb +7 -49
- data/lib/virtualbox/classes/events/bandwidth_group_changed_event.rb +1 -5
- data/lib/virtualbox/classes/events/clipboard_mode_changed_event.rb +1 -4
- data/lib/virtualbox/classes/events/cpu_changed_event.rb +2 -8
- data/lib/virtualbox/classes/events/cpu_execution_cap_changed_event.rb +1 -4
- data/lib/virtualbox/classes/events/drag_and_drop_mode_changed_event.rb +1 -4
- data/lib/virtualbox/classes/events/event_source_changed_event.rb +2 -9
- data/lib/virtualbox/classes/events/extra_data_can_change_event.rb +3 -12
- data/lib/virtualbox/classes/events/extra_data_changed_event.rb +3 -12
- data/lib/virtualbox/classes/events/guest_file_event.rb +7 -0
- data/lib/virtualbox/classes/events/guest_file_io_event.rb +8 -0
- data/lib/virtualbox/classes/events/guest_file_offset_changed_event.rb +4 -0
- data/lib/virtualbox/classes/events/guest_file_read_event.rb +6 -0
- data/lib/virtualbox/classes/events/guest_file_registered_event.rb +7 -0
- data/lib/virtualbox/classes/events/guest_file_state_changed_event.rb +8 -0
- data/lib/virtualbox/classes/events/guest_file_write_event.rb +4 -0
- data/lib/virtualbox/classes/events/guest_keyboard_event.rb +2 -5
- data/lib/virtualbox/classes/events/guest_monitor_changed_event.rb +6 -24
- data/lib/virtualbox/classes/events/guest_mouse_event.rb +6 -24
- data/lib/virtualbox/classes/events/guest_multi_touch_event.rb +12 -0
- data/lib/virtualbox/classes/events/guest_process_event.rb +8 -0
- data/lib/virtualbox/classes/events/guest_process_input_notify_event.rb +7 -0
- data/lib/virtualbox/classes/events/guest_process_io_event.rb +8 -0
- data/lib/virtualbox/classes/events/guest_process_output_event.rb +7 -0
- data/lib/virtualbox/classes/events/guest_process_registered_event.rb +7 -0
- data/lib/virtualbox/classes/events/guest_process_state_changed_event.rb +8 -0
- data/lib/virtualbox/classes/events/guest_property_changed_event.rb +3 -12
- data/lib/virtualbox/classes/events/guest_session_event.rb +7 -0
- data/lib/virtualbox/classes/events/guest_session_registered_event.rb +7 -0
- data/lib/virtualbox/classes/events/guest_session_state_changed_event.rb +9 -0
- data/lib/virtualbox/classes/events/guest_user_state_changed_event.rb +10 -0
- data/lib/virtualbox/classes/events/host_name_resolution_configuration_change_event.rb +4 -0
- data/lib/virtualbox/classes/events/host_pci_device_plug_event.rb +4 -16
- data/lib/virtualbox/classes/events/keyboard_leds_changed_event.rb +3 -12
- data/lib/virtualbox/classes/events/machine_data_changed_event.rb +1 -4
- data/lib/virtualbox/classes/events/machine_event.rb +1 -4
- data/lib/virtualbox/classes/events/machine_registered_event.rb +1 -4
- data/lib/virtualbox/classes/events/machine_state_changed_event.rb +1 -4
- data/lib/virtualbox/classes/events/medium_changed_event.rb +1 -5
- data/lib/virtualbox/classes/events/medium_registered_event.rb +3 -12
- data/lib/virtualbox/classes/events/mouse_capability_changed_event.rb +4 -12
- data/lib/virtualbox/classes/events/mouse_pointer_shape_changed_event.rb +7 -28
- data/lib/virtualbox/classes/events/nat_network_alter_event.rb +7 -0
- data/lib/virtualbox/classes/events/nat_network_changed_event.rb +9 -0
- data/lib/virtualbox/classes/events/nat_network_creation_deletion_event.rb +9 -0
- data/lib/virtualbox/classes/events/nat_network_port_forward_event.rb +16 -0
- data/lib/virtualbox/classes/events/nat_network_setting_event.rb +13 -0
- data/lib/virtualbox/classes/events/nat_network_start_stop_event.rb +9 -0
- data/lib/virtualbox/classes/events/nat_redirect_event.rb +8 -32
- data/lib/virtualbox/classes/events/network_adapter_changed_event.rb +1 -5
- data/lib/virtualbox/classes/events/parallel_port_changed_event.rb +1 -5
- data/lib/virtualbox/classes/events/reusable_event.rb +2 -9
- data/lib/virtualbox/classes/events/runtime_error_event.rb +3 -12
- data/lib/virtualbox/classes/events/serial_port_changed_event.rb +1 -5
- data/lib/virtualbox/classes/events/session_state_changed_event.rb +1 -4
- data/lib/virtualbox/classes/events/shared_folder_changed_event.rb +1 -4
- data/lib/virtualbox/classes/events/show_window_event.rb +1 -4
- data/lib/virtualbox/classes/events/snapshot_event.rb +1 -4
- data/lib/virtualbox/classes/events/state_changed_event.rb +1 -4
- data/lib/virtualbox/classes/events/storage_device_changed_event.rb +3 -8
- data/lib/virtualbox/classes/events/usb_device_state_changed_event.rb +3 -9
- data/lib/virtualbox/classes/events/v_box_svc_availability_chaged_event.rb +1 -4
- data/lib/virtualbox/classes/events/veto_event.rb +3 -13
- data/lib/virtualbox/classes/events/video_capture_changed_event.rb +4 -0
- data/lib/virtualbox/classes/file.rb +18 -65
- data/lib/virtualbox/classes/framebuffer.rb +21 -0
- data/lib/virtualbox/classes/framebuffer_overlay.rb +12 -0
- data/lib/virtualbox/classes/fs_obj_info.rb +20 -77
- data/lib/virtualbox/classes/guest.rb +25 -126
- data/lib/virtualbox/classes/guest_session.rb +48 -224
- data/lib/virtualbox/classes/host.rb +37 -164
- data/lib/virtualbox/classes/host_network_interface.rb +19 -69
- data/lib/virtualbox/classes/host_usb_device.rb +1 -4
- data/lib/virtualbox/classes/host_usb_device_filter.rb +1 -8
- data/lib/virtualbox/classes/host_video_input_device.rb +9 -0
- data/lib/virtualbox/classes/keyboard.rb +4 -20
- data/lib/virtualbox/classes/machine.rb +156 -908
- data/lib/virtualbox/classes/machine_debugger.rb +49 -0
- data/lib/virtualbox/classes/managed_object_ref.rb +2 -9
- data/lib/virtualbox/classes/medium.rb +42 -215
- data/lib/virtualbox/classes/medium_format.rb +5 -21
- data/lib/virtualbox/classes/mouse.rb +9 -28
- data/lib/virtualbox/classes/nat_engine.rb +14 -99
- data/lib/virtualbox/classes/nat_network.rb +25 -0
- data/lib/virtualbox/classes/network_adapter.rb +22 -163
- data/lib/virtualbox/classes/parallel_port.rb +5 -36
- data/lib/virtualbox/classes/pci_address.rb +12 -0
- data/lib/virtualbox/classes/performance_collector.rb +6 -42
- data/lib/virtualbox/classes/performance_metric.rb +8 -32
- data/lib/virtualbox/classes/process.rb +16 -60
- data/lib/virtualbox/classes/progress.rb +23 -101
- data/lib/virtualbox/classes/serial_port.rb +7 -52
- data/lib/virtualbox/classes/session.rb +5 -23
- data/lib/virtualbox/classes/shared_folder.rb +6 -24
- data/lib/virtualbox/classes/snapshot.rb +9 -35
- data/lib/virtualbox/classes/storage_controller.rb +10 -52
- data/lib/virtualbox/classes/system_properties.rb +38 -201
- data/lib/virtualbox/classes/token.rb +8 -0
- data/lib/virtualbox/classes/usb_controller.rb +3 -50
- data/lib/virtualbox/classes/usb_device.rb +12 -48
- data/lib/virtualbox/classes/usb_device_filter.rb +11 -88
- data/lib/virtualbox/classes/usb_device_filters.rb +11 -0
- data/lib/virtualbox/classes/vfs_explorer.rb +8 -42
- data/lib/virtualbox/classes/virtual_box.rb +48 -234
- data/lib/virtualbox/classes/virtual_box_error_info.rb +6 -21
- data/lib/virtualbox/classes/virtual_system_description.rb +6 -30
- data/lib/virtualbox/classes/vrde_server.rb +11 -72
- data/lib/virtualbox/classes/vrde_server_info.rb +15 -60
- data/lib/virtualbox/classes/websession_manager.rb +11 -11
- data/lib/virtualbox/configuration.rb +35 -0
- data/lib/virtualbox/exceptions.rb +28 -0
- data/lib/virtualbox/version.rb +3 -0
- data/lib/virtualbox/webservice.rb +105 -0
- data/lib/virtualbox-ws.rb +5 -1
- data/virtualbox-ws.gemspec +4 -1
- metadata +42 -5
- data/lib/virtualbox/classes/additions_facility.rb +0 -26
- data/lib/virtualbox/connection.rb +0 -68
|
@@ -1,240 +1,54 @@
|
|
|
1
1
|
module VBox
|
|
2
2
|
class VirtualBox < Base
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
vb_attr :version
|
|
5
|
+
vb_attr :version_normalized
|
|
6
|
+
vb_attr :revision
|
|
7
|
+
vb_attr :package_type
|
|
8
|
+
vb_attr :api_version
|
|
9
|
+
vb_attr :home_folder
|
|
10
|
+
vb_attr :settings_file_path
|
|
11
|
+
vb_attr :host
|
|
12
|
+
vb_attr :system_properties
|
|
13
|
+
vb_attr :machines, :force_array => true
|
|
14
|
+
vb_attr :machine_groups, :force_array => true
|
|
15
|
+
vb_attr :hard_disks, :force_array => true
|
|
16
|
+
vb_attr :dvd_images, :force_array => true
|
|
17
|
+
vb_attr :floppy_images, :force_array => true
|
|
18
|
+
vb_attr :progress_operations, :force_array => true
|
|
19
|
+
vb_attr :guest_os_types
|
|
20
|
+
vb_attr :shared_folders, :force_array => true
|
|
21
|
+
vb_attr :performance_collector
|
|
22
|
+
vb_attr :dhcp_servers, :force_array => true
|
|
23
|
+
vb_attr :nat_networks, :force_array => true
|
|
24
|
+
vb_attr :event_source
|
|
25
|
+
vb_attr :internal_networks, :force_array => true
|
|
26
|
+
vb_attr :generic_network_drivers, :force_array => true
|
|
27
|
+
|
|
28
|
+
vb_method :check_firmware_present
|
|
29
|
+
vb_method :compose_machine_filename
|
|
30
|
+
vb_method :create_appliance
|
|
31
|
+
vb_method :create_dhcp_server
|
|
32
|
+
vb_method :create_hard_disk
|
|
33
|
+
vb_method :create_machine
|
|
34
|
+
vb_method :create_nat_network
|
|
35
|
+
vb_method :create_shared_folder
|
|
36
|
+
vb_method :find_dhcp_server_by_network_name
|
|
37
|
+
vb_method :find_machine
|
|
38
|
+
vb_method :find_nat_network_by_name
|
|
39
|
+
vb_method :get_extra_data
|
|
40
|
+
vb_method :get_extra_data_keys, :force_array => true
|
|
41
|
+
vb_method :get_guest_os_type
|
|
42
|
+
vb_method :get_machine_states, :force_array => true
|
|
43
|
+
vb_method :get_machines_by_groups, :force_array => true
|
|
44
|
+
vb_method :open_machine
|
|
45
|
+
vb_method :open_medium
|
|
46
|
+
vb_method :register_machine
|
|
47
|
+
vb_method :remove_dhcp_server
|
|
48
|
+
vb_method :remove_nat_network
|
|
49
|
+
vb_method :remove_shared_folder
|
|
50
|
+
vb_method :set_extra_data
|
|
51
|
+
vb_method :remove_settings_secret
|
|
5
52
|
|
|
6
|
-
def version
|
|
7
|
-
VBox::WebService.send_request(:i_virtual_box_get_version, _this)
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def version_normalized
|
|
11
|
-
VBox::WebService.send_request(:i_virtual_box_get_version_normalized, _this)
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def revision
|
|
15
|
-
VBox::WebService.send_request(:i_virtual_box_get_revision, _this)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def package_type
|
|
19
|
-
VBox::WebService.send_request(:i_virtual_box_get_package_type, _this)
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def api_version
|
|
23
|
-
VBox::WebService.send_request(:i_virtual_box_get_api_version, _this)
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def home_folder
|
|
27
|
-
VBox::WebService.send_request(:i_virtual_box_get_home_folder, _this)
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def settings_file_path
|
|
31
|
-
VBox::WebService.send_request(:i_virtual_box_get_settings_file_path, _this)
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def host
|
|
35
|
-
host = VBox::WebService.send_request(:i_virtual_box_get_host, _this)
|
|
36
|
-
VBox::Host.new(host)
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def system_properties
|
|
40
|
-
system_properties = VBox::WebService.send_request(:i_virtual_box_get_system_properties, _this)
|
|
41
|
-
VBox::SystemProperties.new(system_properties)
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def machines
|
|
45
|
-
machines = VBox::WebService.send_request(:i_virtual_box_get_machines, _this)
|
|
46
|
-
machines.to_a.map do |machine|
|
|
47
|
-
VBox::Machine.new(machine)
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def machine_groups
|
|
52
|
-
VBox::WebService.send_request(:i_virtual_box_get_machine_groups, _this)
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def hard_disks
|
|
56
|
-
hard_disks = VBox::WebService.send_request(:i_virtual_box_get_hard_disks, _this)
|
|
57
|
-
hard_disks.to_a.map do |hard_disk|
|
|
58
|
-
VBox::Medium.new(hard_disk)
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
def dvd_images
|
|
63
|
-
dvd_images = VBox::WebService.send_request(:i_virtual_box_get_dvd_images, _this)
|
|
64
|
-
dvd_images.to_a.map do |dvd_image|
|
|
65
|
-
VBox::Medium.new(dvd_image)
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
def floppy_images
|
|
70
|
-
floppy_images = VBox::WebService.send_request(:i_virtual_box_get_floppy_images, _this)
|
|
71
|
-
floppy_images.to_a.map do |floppy_image|
|
|
72
|
-
VBox::Medium.new(floppy_image)
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
def progress_operations
|
|
77
|
-
progress_operations = VBox::WebService.send_request(:i_virtual_box_get_progress_operations, _this)
|
|
78
|
-
progress_operations.to_a.map do |progress_operation|
|
|
79
|
-
VBox::Progress.new(progress_operation)
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
def guest_os_types
|
|
84
|
-
VBox::WebService.send_request(:i_virtual_box_get_guest_os_types, _this)
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
def shared_folders
|
|
88
|
-
shared_folders = VBox::WebService.send_request(:i_virtual_box_get_shared_folders, _this)
|
|
89
|
-
shared_folders.to_a.map do |shared_folder|
|
|
90
|
-
VBox::SharedFolder.new(shared_folder)
|
|
91
|
-
end
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
def performance_collector
|
|
95
|
-
performance_collector = VBox::WebService.send_request(:i_virtual_box_get_performance_collector, _this)
|
|
96
|
-
VBox::PerformanceCollector.new(performance_collector)
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
def dhcp_servers
|
|
100
|
-
dhcp_servers = VBox::WebService.send_request(:i_virtual_box_get_dhcp_server, _this)
|
|
101
|
-
dhcp_servers.to_a.map do |dhcp_server|
|
|
102
|
-
VBox::DHCPServer.new(dhcp_server)
|
|
103
|
-
end
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
def event_source
|
|
107
|
-
event_source = VBox::WebService.send_request(:i_virtual_box_get_event_source, _this)
|
|
108
|
-
VBox::EventSource.new(event_source)
|
|
109
|
-
end
|
|
110
|
-
|
|
111
|
-
def internal_networks
|
|
112
|
-
VBox::WebService.send_request(:i_virtual_box_get_internal_networks, _this)
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
def generic_network_drivers
|
|
116
|
-
VBox::WebService.send_request(:i_virtual_box_get_generic_network_drivers, _this)
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
# Methods
|
|
120
|
-
|
|
121
|
-
def check_firmware_present(args={})
|
|
122
|
-
ensure_hash args
|
|
123
|
-
VBox::WebService.send_request(:i_virtual_box_check_firmware_present, _this.merge(args))
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
def compose_machine_filename(args={})
|
|
127
|
-
ensure_hash args
|
|
128
|
-
VBox::WebService.send_request(:i_virtual_box_compose_machine_filename, _this.merge(args))
|
|
129
|
-
end
|
|
130
|
-
|
|
131
|
-
def create_appliance
|
|
132
|
-
appliance = VBox::WebService.send_request(:i_virtual_box_create_appliance, _this)
|
|
133
|
-
VBox::Appliance.new(appliance)
|
|
134
|
-
end
|
|
135
|
-
|
|
136
|
-
def create_dhcp_server(args={})
|
|
137
|
-
ensure_hash args
|
|
138
|
-
dhcp_server = VBox::WebService.send_request(:i_virtual_box_create_dhcp_server, _this.merge(args))
|
|
139
|
-
VBox::DHCPServer.new(dhcp_server)
|
|
140
|
-
end
|
|
141
|
-
|
|
142
|
-
def create_hard_disk(args={})
|
|
143
|
-
ensure_hash args
|
|
144
|
-
hard_disk = VBox::WebService.send_request(:i_virtual_box_create_hard_disk, _this.merge(args))
|
|
145
|
-
VBox::Medium.new(hard_disk)
|
|
146
|
-
end
|
|
147
|
-
|
|
148
|
-
def create_machine(args={})
|
|
149
|
-
ensure_hash args
|
|
150
|
-
machine = VBox::WebService.send_request(:i_virtual_box_create_machine, _this.merge(args))
|
|
151
|
-
VBox::Machine.new(machine)
|
|
152
|
-
end
|
|
153
|
-
|
|
154
|
-
def create_shared_folder(args={})
|
|
155
|
-
ensure_hash args
|
|
156
|
-
VBox::WebService.send_request(:i_virtual_box_create_shared_folder, _this.merge(args))
|
|
157
|
-
end
|
|
158
|
-
|
|
159
|
-
def find_dhcp_server_by_network_name(args={})
|
|
160
|
-
ensure_hash args
|
|
161
|
-
dhcp_server = VBox::WebService.send_request(:i_virtual_box_find_dhcp_server_by_network_name, _this.merge(args))
|
|
162
|
-
VBox::DHCPServer.new(dhcp_server)
|
|
163
|
-
end
|
|
164
|
-
|
|
165
|
-
def find_machine(args={})
|
|
166
|
-
ensure_hash args
|
|
167
|
-
machine = VBox::WebService.send_request(:i_virtual_box_find_machine, _this.merge(args))
|
|
168
|
-
VBox::Machine.new(machine)
|
|
169
|
-
end
|
|
170
|
-
|
|
171
|
-
def get_extra_data(args={})
|
|
172
|
-
ensure_hash args
|
|
173
|
-
VBox::WebService.send_request(:i_virtual_box_get_extra_data, _this.merge(args))
|
|
174
|
-
end
|
|
175
|
-
|
|
176
|
-
def get_extra_data_keys
|
|
177
|
-
VBox::WebService.send_request(:i_virtual_box_get_extra_data_keys, _this)
|
|
178
|
-
end
|
|
179
|
-
|
|
180
|
-
def get_guest_os_type(args={})
|
|
181
|
-
ensure_hash args
|
|
182
|
-
VBox::WebService.send_request(:i_virtual_box_get_guest_os_type, _this.merge(args))
|
|
183
|
-
end
|
|
184
|
-
|
|
185
|
-
def get_machine_states(args={})
|
|
186
|
-
ensure_hash args
|
|
187
|
-
if args.has_key?(:machines)
|
|
188
|
-
args[:machines].map! do |machine|
|
|
189
|
-
machine.ref
|
|
190
|
-
end
|
|
191
|
-
end
|
|
192
|
-
VBox::WebService.send_request(:i_virtual_box_get_machine_states, _this.merge(args))
|
|
193
|
-
end
|
|
194
|
-
|
|
195
|
-
def get_machines_by_groups(args={})
|
|
196
|
-
ensure_hash args
|
|
197
|
-
machines = VBox::WebService.send_request(:i_virtual_box_get_machines_by_groups, _this.merge(args))
|
|
198
|
-
machines.to_a.map do |machine|
|
|
199
|
-
VBox::Machine.new(machine)
|
|
200
|
-
end
|
|
201
|
-
end
|
|
202
|
-
|
|
203
|
-
def open_machine(args={})
|
|
204
|
-
ensure_hash args
|
|
205
|
-
machine = VBox::WebService.send_request(:i_virtual_box_open_machine, _this.merge(args))
|
|
206
|
-
VBox::Machine.new(machine)
|
|
207
|
-
end
|
|
208
|
-
|
|
209
|
-
def open_medium
|
|
210
|
-
medium = VBox::WebService.send_request(:i_virtual_box_open_medium, _this.merge(args))
|
|
211
|
-
VBox::Medium.new(medium)
|
|
212
|
-
end
|
|
213
|
-
|
|
214
|
-
def register_machine(args={})
|
|
215
|
-
ensure_hash args
|
|
216
|
-
args[:machine] = args[:machine].ref
|
|
217
|
-
VBox::WebService.send_request(:i_virtual_box_register_machine, _this.merge(args))
|
|
218
|
-
end
|
|
219
|
-
|
|
220
|
-
def remove_dhcp_server(args={})
|
|
221
|
-
ensure_hash args
|
|
222
|
-
VBox::WebService.send_request(:i_virtual_box_remove_dhcp_server, _this.merge(args))
|
|
223
|
-
end
|
|
224
|
-
|
|
225
|
-
def remove_shared_folder(args={})
|
|
226
|
-
ensure_hash args
|
|
227
|
-
VBox::WebService.send_request(:i_virtual_box_remove_shared_folder, _this.merge(args))
|
|
228
|
-
end
|
|
229
|
-
|
|
230
|
-
def set_extra_data(args={})
|
|
231
|
-
ensure_hash args
|
|
232
|
-
VBox::WebService.send_request(:i_virtual_box_set_extra_data, _this.merge(args))
|
|
233
|
-
end
|
|
234
|
-
|
|
235
|
-
def set_settings_secret(args={})
|
|
236
|
-
ensure_hash args
|
|
237
|
-
VBox::WebService.send_request(:i_virtual_box_set_settings_secret, _this.merge(args))
|
|
238
|
-
end
|
|
239
53
|
end
|
|
240
54
|
end
|
|
@@ -1,27 +1,12 @@
|
|
|
1
1
|
module VBox
|
|
2
2
|
class VirtualBoxErrorInfo < Base
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
vb_attr :result_code
|
|
5
|
+
vb_attr :result_detail
|
|
6
|
+
vb_attr :interface_id
|
|
7
|
+
vb_attr :component
|
|
8
|
+
vb_attr :text
|
|
9
|
+
vb_attr :next
|
|
5
10
|
|
|
6
|
-
def result_code
|
|
7
|
-
VBox::WebService.send_request(:i_virtual_box_error_info_get_result_code, _this)
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def interface_id
|
|
11
|
-
VBox::WebService.send_request(:i_virtual_box_error_info_get_interface_id, _this)
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def component
|
|
15
|
-
VBox::WebService.send_request(:i_virtual_box_error_info_get_component, _this)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def text
|
|
19
|
-
VBox::WebService.send_request(:i_virtual_box_error_info_get_text, _this)
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def next
|
|
23
|
-
virtual_box_error_info = VBox::WebService.send_request(:i_virtual_box_error_info_get_next, _this)
|
|
24
|
-
VBox::VirtualBoxErrorInfo.new(virtual_box_error_info)
|
|
25
|
-
end
|
|
26
11
|
end
|
|
27
12
|
end
|
|
@@ -1,36 +1,12 @@
|
|
|
1
1
|
module VBox
|
|
2
2
|
class VirtualSystemDescription < Base
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
vb_attr :count
|
|
5
|
+
vb_method :add_description
|
|
6
|
+
vb_method :get_description
|
|
7
|
+
vb_method :get_description_by_type
|
|
8
|
+
vb_method :get_values_by_type
|
|
9
|
+
vb_method :set_final_values
|
|
5
10
|
|
|
6
|
-
def count
|
|
7
|
-
VBox::WebService.send_request(:i_virtual_system_description_get_count, _this)
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
# Methods
|
|
11
|
-
|
|
12
|
-
def add_description(args={})
|
|
13
|
-
ensure_hash args
|
|
14
|
-
VBox::WebService.send_request(:i_virtual_system_description_add_description, _this)
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def get_description
|
|
18
|
-
VBox::WebService.send_request(:i_virtual_system_description_get_description, _this)
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def get_description_by_type(args={})
|
|
22
|
-
ensure_hash args
|
|
23
|
-
VBox::WebService.send_request(:i_virtual_system_description_get_description_by_type, _this)
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def get_values_by_type(args={})
|
|
27
|
-
ensure_hash args
|
|
28
|
-
VBox::WebService.send_request(:i_virtual_system_description_get_values_by_type, _this)
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def set_final_values(args={})
|
|
32
|
-
ensure_hash args
|
|
33
|
-
VBox::WebService.send_request(:i_virtual_system_description_set_final_values, _this)
|
|
34
|
-
end
|
|
35
11
|
end
|
|
36
12
|
end
|
|
@@ -1,78 +1,17 @@
|
|
|
1
1
|
module VBox
|
|
2
2
|
class VRDEServer < Base
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
vb_attr :enabled
|
|
5
|
+
vb_attr :auth_type
|
|
6
|
+
vb_attr :auth_timeout
|
|
7
|
+
vb_attr :allow_multi_connection
|
|
8
|
+
vb_attr :reuse_single_connection
|
|
9
|
+
vb_attr :vrde_ext_pack, :force_tag => 'VRDEExtPack'
|
|
10
|
+
vb_attr :auth_library
|
|
11
|
+
vb_attr :vrde_properties
|
|
12
|
+
|
|
13
|
+
vb_method :get_vrde_property
|
|
14
|
+
vb_method :set_vrde_property
|
|
5
15
|
|
|
6
|
-
def enabled
|
|
7
|
-
VBox::WebService.send_request(:ivrde_server_get_enabled, _this)
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def enabled=(enabled)
|
|
11
|
-
VBox::WebService.send_request(:ivrde_server_set_enabled, _this.merge(:enabled => enabled))
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def auth_type
|
|
15
|
-
VBox::WebService.send_request(:ivrde_server_get_auth_type, _this)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def auth_type=(auth_type)
|
|
19
|
-
VBox::WebService.send_request(:ivrde_server_set_auth_type, _this.merge(:auth_type => auth_type))
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def auth_timeout
|
|
23
|
-
VBox::WebService.send_request(:ivrde_server_get_auth_timeout, _this)
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def auth_timeout=(auth_timeout)
|
|
27
|
-
VBox::WebService.send_request(:ivrde_server_set_auth_timeout, _this.merge(:auth_timeout => auth_timeout))
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def allow_multi_connection
|
|
31
|
-
VBox::WebService.send_request(:ivrde_server_get_allow_multi_connection, _this)
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def allow_multi_connection=(allow_multi_connection)
|
|
35
|
-
VBox::WebService.send_request(:ivrde_server_set_allow_multi_connection, _this.merge(:allow_multi_connection => allow_multi_connection))
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def reuse_single_connection
|
|
39
|
-
VBox::WebService.send_request(:ivrde_server_get_reuse_single_connection, _this)
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
def reuse_single_connection=(reuse_single_connection)
|
|
43
|
-
VBox::WebService.send_request(:ivrde_server_set_reuse_single_connection, _this.merge(:reuse_single_connection => reuse_single_connection))
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def vrde_ext_pack
|
|
47
|
-
VBox::WebService.send_request(:ivrde_server_get_vrde_ext_pack, _this)
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def vrde_ext_pack=(vrde_ext_pack)
|
|
51
|
-
VBox::WebService.send_request(:ivrde_server_set_vrde_ext_pack, _this.merge(:vrde_ext_pack => vrde_ext_pack))
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
def auth_library
|
|
55
|
-
VBox::WebService.send_request(:ivrde_server_get_auth_library, _this)
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def auth_library=(auth_library)
|
|
59
|
-
VBox::WebService.send_request(:ivrde_server_set_auth_library, _this.merge(:auth_library => auth_library))
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
def vrde_properties
|
|
63
|
-
VBox::WebService.send_request(:ivrde_server_get_vrde_properties, _this)
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
# Methods
|
|
67
|
-
|
|
68
|
-
def get_vrde_property(args={})
|
|
69
|
-
ensure_hash args
|
|
70
|
-
VBox::WebService.send_request(:ivrde_server_get_vrde_property, _this.merge(args))
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
def set_vrde_property(args={})
|
|
74
|
-
ensure_hash args
|
|
75
|
-
VBox::WebService.send_request(:ivrde_server_set_vrde_property, _this.merge(args))
|
|
76
|
-
end
|
|
77
16
|
end
|
|
78
17
|
end
|
|
@@ -1,66 +1,21 @@
|
|
|
1
1
|
module VBox
|
|
2
2
|
class VRDEServerInfo < Base
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
vb_attr :active
|
|
5
|
+
vb_attr :port
|
|
6
|
+
vb_attr :number_of_clients
|
|
7
|
+
vb_attr :begin_time
|
|
8
|
+
vb_attr :end_time
|
|
9
|
+
vb_attr :bytes_sent
|
|
10
|
+
vb_attr :bytes_sent_total
|
|
11
|
+
vb_attr :bytes_received
|
|
12
|
+
vb_attr :bytes_received_total
|
|
13
|
+
vb_attr :user
|
|
14
|
+
vb_attr :domain
|
|
15
|
+
vb_attr :client_name
|
|
16
|
+
vb_attr :client_ip
|
|
17
|
+
vb_attr :client_version
|
|
18
|
+
vb_attr :encryption_style
|
|
5
19
|
|
|
6
|
-
def active
|
|
7
|
-
VBox::WebService.send_request(:ivrde_server_info_get_active, _this)
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def port
|
|
11
|
-
VBox::WebService.send_request(:ivrde_server_info_get_port, _this)
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def number_of_clients
|
|
15
|
-
VBox::WebService.send_request(:ivrde_server_info_get_number_of_clients, _this)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def begin_time
|
|
19
|
-
VBox::WebService.send_request(:ivrde_server_info_get_begin_time, _this)
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def end_time
|
|
23
|
-
VBox::WebService.send_request(:ivrde_server_info_get_end_time, _this)
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def bytes_sent
|
|
27
|
-
VBox::WebService.send_request(:ivrde_server_info_get_active, _this)
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def bytes_sent_total
|
|
31
|
-
VBox::WebService.send_request(:ivrde_server_info_get_bytes_sent_total, _this)
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def bytes_received
|
|
35
|
-
VBox::WebService.send_request(:ivrde_server_info_get_bytes_received, _this)
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def bytes_received_total
|
|
39
|
-
VBox::WebService.send_request(:ivrde_server_info_get_bytes_receied_total, _this)
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
def user
|
|
43
|
-
VBox::WebService.send_request(:ivrde_server_info_get_user, _this)
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def domain
|
|
47
|
-
VBox::WebService.send_request(:ivrde_server_info_get_domain, _this)
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def client_name
|
|
51
|
-
VBox::WebService.send_request(:ivrde_server_info_get_client_name, _this)
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
def client_ip
|
|
55
|
-
VBox::WebService.send_request(:ivrde_server_info_get_client_ip, _this)
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def client_version
|
|
59
|
-
VBox::WebService.send_request(:ivrde_server_info_get_client_version, _this)
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
def encryption_style
|
|
63
|
-
VBox::WebService.send_request(:ivrde_server_info_get_encryption_style, _this)
|
|
64
|
-
end
|
|
65
20
|
end
|
|
66
21
|
end
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
module VBox
|
|
2
2
|
class WebsessionManager < Base
|
|
3
3
|
|
|
4
|
-
def initialize
|
|
5
|
-
|
|
4
|
+
def initialize
|
|
5
|
+
WebService.connect
|
|
6
|
+
@ref = nil
|
|
7
|
+
require_rel '/../classes'
|
|
6
8
|
end
|
|
7
9
|
|
|
8
10
|
def _this
|
|
@@ -13,21 +15,19 @@ module VBox
|
|
|
13
15
|
|
|
14
16
|
# Methods
|
|
15
17
|
|
|
16
|
-
def logon
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
def logon
|
|
19
|
+
args = Hash[:username => WebService.configuration.vboxweb_user,
|
|
20
|
+
:password => WebService.configuration.vboxweb_pass]
|
|
21
|
+
key = WebService.send_request(:i_websession_manager_logon, args)
|
|
19
22
|
@ref = key
|
|
20
|
-
|
|
23
|
+
VirtualBox.new(key)
|
|
21
24
|
end
|
|
22
25
|
|
|
23
26
|
def logoff
|
|
24
|
-
|
|
27
|
+
WebService.send_request(:i_websession_manager_logoff, _this)
|
|
25
28
|
@ref = nil
|
|
26
29
|
end
|
|
27
30
|
|
|
28
|
-
|
|
29
|
-
session = VBox::WebService.send_request(:i_websession_manager_get_session_object, _this)
|
|
30
|
-
VBox::Session.new(session)
|
|
31
|
-
end
|
|
31
|
+
vb_method :get_session_object
|
|
32
32
|
end
|
|
33
33
|
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
require 'logger'
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
module VBox
|
|
5
|
+
module WebService
|
|
6
|
+
class Configuration
|
|
7
|
+
|
|
8
|
+
attr_accessor :vboxweb_host, :vboxweb_port, :vboxweb_user, :vboxweb_pass, :log_level, :logger
|
|
9
|
+
|
|
10
|
+
def initialize
|
|
11
|
+
@vboxweb_host = ENV['VBOXWEB_HOST'] || '127.0.0.1'
|
|
12
|
+
@vboxweb_port = ENV['VBOXWEB_PORT'] || '18083'
|
|
13
|
+
@vboxweb_user = ENV['VBOXWEB_USER']
|
|
14
|
+
@vboxweb_pass = ENV['VBOXWEB_PASS']
|
|
15
|
+
@log_level = ENV['VBOXWEB_LOGGING'] || 'ERROR'
|
|
16
|
+
@logger = Logger.new(STDOUT)
|
|
17
|
+
@logger.level = Logger.const_get(@log_level)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def log_level=(log_level)
|
|
21
|
+
@log_level = ['ERROR', 'INFO', 'DEBUG'].include?(log_level) ? log_level : 'ERROR'
|
|
22
|
+
@logger.level = Logger.const_get(@log_level)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
class << self
|
|
27
|
+
attr_accessor :configuration
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def self.configure
|
|
31
|
+
self.configuration ||= Configuration.new
|
|
32
|
+
yield configuration
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
module VBox
|
|
2
|
+
module WebService
|
|
3
|
+
class Error < StandardError; end
|
|
4
|
+
|
|
5
|
+
class ConnectionError < Error
|
|
6
|
+
def initialize(endpoint, message)
|
|
7
|
+
@endpoint = endpoint
|
|
8
|
+
@message = message
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def to_s
|
|
12
|
+
"Could not connect to VirtualBox SOAP Web Service at #{@endpoint}. #{@message}"
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
class NoWebServiceError < ConnectionError
|
|
17
|
+
def initialize(endpoint, message = 'No VirtualBox SOAP service found')
|
|
18
|
+
super
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
class UnknownError < Error; end
|
|
23
|
+
|
|
24
|
+
class ArgumentError < Error; end
|
|
25
|
+
|
|
26
|
+
class NotImplementedError < Error; end
|
|
27
|
+
end
|
|
28
|
+
end
|