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.
Files changed (137) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -2
  3. data/Gemfile.lock +8 -2
  4. data/README.md +42 -24
  5. data/lib/core_ext/hash.rb +6 -6
  6. data/lib/core_ext/string.rb +8 -0
  7. data/lib/virtualbox/base.rb +118 -6
  8. data/lib/virtualbox/classes/appliance.rb +11 -44
  9. data/lib/virtualbox/classes/audio_adapter.rb +3 -25
  10. data/lib/virtualbox/classes/bandwidth_control.rb +5 -27
  11. data/lib/virtualbox/classes/bandwidth_group.rb +4 -21
  12. data/lib/virtualbox/classes/bios_settings.rb +12 -73
  13. data/lib/virtualbox/classes/console.rb +42 -193
  14. data/lib/virtualbox/classes/dhcp_server.rb +18 -44
  15. data/lib/virtualbox/classes/directory.rb +4 -18
  16. data/lib/virtualbox/classes/display.rb +10 -39
  17. data/lib/virtualbox/classes/emulated_usb.rb +10 -0
  18. data/lib/virtualbox/classes/event.rb +5 -23
  19. data/lib/virtualbox/classes/event_listener.rb +1 -6
  20. data/lib/virtualbox/classes/event_source.rb +7 -49
  21. data/lib/virtualbox/classes/events/bandwidth_group_changed_event.rb +1 -5
  22. data/lib/virtualbox/classes/events/clipboard_mode_changed_event.rb +1 -4
  23. data/lib/virtualbox/classes/events/cpu_changed_event.rb +2 -8
  24. data/lib/virtualbox/classes/events/cpu_execution_cap_changed_event.rb +1 -4
  25. data/lib/virtualbox/classes/events/drag_and_drop_mode_changed_event.rb +1 -4
  26. data/lib/virtualbox/classes/events/event_source_changed_event.rb +2 -9
  27. data/lib/virtualbox/classes/events/extra_data_can_change_event.rb +3 -12
  28. data/lib/virtualbox/classes/events/extra_data_changed_event.rb +3 -12
  29. data/lib/virtualbox/classes/events/guest_file_event.rb +7 -0
  30. data/lib/virtualbox/classes/events/guest_file_io_event.rb +8 -0
  31. data/lib/virtualbox/classes/events/guest_file_offset_changed_event.rb +4 -0
  32. data/lib/virtualbox/classes/events/guest_file_read_event.rb +6 -0
  33. data/lib/virtualbox/classes/events/guest_file_registered_event.rb +7 -0
  34. data/lib/virtualbox/classes/events/guest_file_state_changed_event.rb +8 -0
  35. data/lib/virtualbox/classes/events/guest_file_write_event.rb +4 -0
  36. data/lib/virtualbox/classes/events/guest_keyboard_event.rb +2 -5
  37. data/lib/virtualbox/classes/events/guest_monitor_changed_event.rb +6 -24
  38. data/lib/virtualbox/classes/events/guest_mouse_event.rb +6 -24
  39. data/lib/virtualbox/classes/events/guest_multi_touch_event.rb +12 -0
  40. data/lib/virtualbox/classes/events/guest_process_event.rb +8 -0
  41. data/lib/virtualbox/classes/events/guest_process_input_notify_event.rb +7 -0
  42. data/lib/virtualbox/classes/events/guest_process_io_event.rb +8 -0
  43. data/lib/virtualbox/classes/events/guest_process_output_event.rb +7 -0
  44. data/lib/virtualbox/classes/events/guest_process_registered_event.rb +7 -0
  45. data/lib/virtualbox/classes/events/guest_process_state_changed_event.rb +8 -0
  46. data/lib/virtualbox/classes/events/guest_property_changed_event.rb +3 -12
  47. data/lib/virtualbox/classes/events/guest_session_event.rb +7 -0
  48. data/lib/virtualbox/classes/events/guest_session_registered_event.rb +7 -0
  49. data/lib/virtualbox/classes/events/guest_session_state_changed_event.rb +9 -0
  50. data/lib/virtualbox/classes/events/guest_user_state_changed_event.rb +10 -0
  51. data/lib/virtualbox/classes/events/host_name_resolution_configuration_change_event.rb +4 -0
  52. data/lib/virtualbox/classes/events/host_pci_device_plug_event.rb +4 -16
  53. data/lib/virtualbox/classes/events/keyboard_leds_changed_event.rb +3 -12
  54. data/lib/virtualbox/classes/events/machine_data_changed_event.rb +1 -4
  55. data/lib/virtualbox/classes/events/machine_event.rb +1 -4
  56. data/lib/virtualbox/classes/events/machine_registered_event.rb +1 -4
  57. data/lib/virtualbox/classes/events/machine_state_changed_event.rb +1 -4
  58. data/lib/virtualbox/classes/events/medium_changed_event.rb +1 -5
  59. data/lib/virtualbox/classes/events/medium_registered_event.rb +3 -12
  60. data/lib/virtualbox/classes/events/mouse_capability_changed_event.rb +4 -12
  61. data/lib/virtualbox/classes/events/mouse_pointer_shape_changed_event.rb +7 -28
  62. data/lib/virtualbox/classes/events/nat_network_alter_event.rb +7 -0
  63. data/lib/virtualbox/classes/events/nat_network_changed_event.rb +9 -0
  64. data/lib/virtualbox/classes/events/nat_network_creation_deletion_event.rb +9 -0
  65. data/lib/virtualbox/classes/events/nat_network_port_forward_event.rb +16 -0
  66. data/lib/virtualbox/classes/events/nat_network_setting_event.rb +13 -0
  67. data/lib/virtualbox/classes/events/nat_network_start_stop_event.rb +9 -0
  68. data/lib/virtualbox/classes/events/nat_redirect_event.rb +8 -32
  69. data/lib/virtualbox/classes/events/network_adapter_changed_event.rb +1 -5
  70. data/lib/virtualbox/classes/events/parallel_port_changed_event.rb +1 -5
  71. data/lib/virtualbox/classes/events/reusable_event.rb +2 -9
  72. data/lib/virtualbox/classes/events/runtime_error_event.rb +3 -12
  73. data/lib/virtualbox/classes/events/serial_port_changed_event.rb +1 -5
  74. data/lib/virtualbox/classes/events/session_state_changed_event.rb +1 -4
  75. data/lib/virtualbox/classes/events/shared_folder_changed_event.rb +1 -4
  76. data/lib/virtualbox/classes/events/show_window_event.rb +1 -4
  77. data/lib/virtualbox/classes/events/snapshot_event.rb +1 -4
  78. data/lib/virtualbox/classes/events/state_changed_event.rb +1 -4
  79. data/lib/virtualbox/classes/events/storage_device_changed_event.rb +3 -8
  80. data/lib/virtualbox/classes/events/usb_device_state_changed_event.rb +3 -9
  81. data/lib/virtualbox/classes/events/v_box_svc_availability_chaged_event.rb +1 -4
  82. data/lib/virtualbox/classes/events/veto_event.rb +3 -13
  83. data/lib/virtualbox/classes/events/video_capture_changed_event.rb +4 -0
  84. data/lib/virtualbox/classes/file.rb +18 -65
  85. data/lib/virtualbox/classes/framebuffer.rb +21 -0
  86. data/lib/virtualbox/classes/framebuffer_overlay.rb +12 -0
  87. data/lib/virtualbox/classes/fs_obj_info.rb +20 -77
  88. data/lib/virtualbox/classes/guest.rb +25 -126
  89. data/lib/virtualbox/classes/guest_session.rb +48 -224
  90. data/lib/virtualbox/classes/host.rb +37 -164
  91. data/lib/virtualbox/classes/host_network_interface.rb +19 -69
  92. data/lib/virtualbox/classes/host_usb_device.rb +1 -4
  93. data/lib/virtualbox/classes/host_usb_device_filter.rb +1 -8
  94. data/lib/virtualbox/classes/host_video_input_device.rb +9 -0
  95. data/lib/virtualbox/classes/keyboard.rb +4 -20
  96. data/lib/virtualbox/classes/machine.rb +156 -908
  97. data/lib/virtualbox/classes/machine_debugger.rb +49 -0
  98. data/lib/virtualbox/classes/managed_object_ref.rb +2 -9
  99. data/lib/virtualbox/classes/medium.rb +42 -215
  100. data/lib/virtualbox/classes/medium_format.rb +5 -21
  101. data/lib/virtualbox/classes/mouse.rb +9 -28
  102. data/lib/virtualbox/classes/nat_engine.rb +14 -99
  103. data/lib/virtualbox/classes/nat_network.rb +25 -0
  104. data/lib/virtualbox/classes/network_adapter.rb +22 -163
  105. data/lib/virtualbox/classes/parallel_port.rb +5 -36
  106. data/lib/virtualbox/classes/pci_address.rb +12 -0
  107. data/lib/virtualbox/classes/performance_collector.rb +6 -42
  108. data/lib/virtualbox/classes/performance_metric.rb +8 -32
  109. data/lib/virtualbox/classes/process.rb +16 -60
  110. data/lib/virtualbox/classes/progress.rb +23 -101
  111. data/lib/virtualbox/classes/serial_port.rb +7 -52
  112. data/lib/virtualbox/classes/session.rb +5 -23
  113. data/lib/virtualbox/classes/shared_folder.rb +6 -24
  114. data/lib/virtualbox/classes/snapshot.rb +9 -35
  115. data/lib/virtualbox/classes/storage_controller.rb +10 -52
  116. data/lib/virtualbox/classes/system_properties.rb +38 -201
  117. data/lib/virtualbox/classes/token.rb +8 -0
  118. data/lib/virtualbox/classes/usb_controller.rb +3 -50
  119. data/lib/virtualbox/classes/usb_device.rb +12 -48
  120. data/lib/virtualbox/classes/usb_device_filter.rb +11 -88
  121. data/lib/virtualbox/classes/usb_device_filters.rb +11 -0
  122. data/lib/virtualbox/classes/vfs_explorer.rb +8 -42
  123. data/lib/virtualbox/classes/virtual_box.rb +48 -234
  124. data/lib/virtualbox/classes/virtual_box_error_info.rb +6 -21
  125. data/lib/virtualbox/classes/virtual_system_description.rb +6 -30
  126. data/lib/virtualbox/classes/vrde_server.rb +11 -72
  127. data/lib/virtualbox/classes/vrde_server_info.rb +15 -60
  128. data/lib/virtualbox/classes/websession_manager.rb +11 -11
  129. data/lib/virtualbox/configuration.rb +35 -0
  130. data/lib/virtualbox/exceptions.rb +28 -0
  131. data/lib/virtualbox/version.rb +3 -0
  132. data/lib/virtualbox/webservice.rb +105 -0
  133. data/lib/virtualbox-ws.rb +5 -1
  134. data/virtualbox-ws.gemspec +4 -1
  135. metadata +42 -5
  136. data/lib/virtualbox/classes/additions_facility.rb +0 -26
  137. data/lib/virtualbox/connection.rb +0 -68
@@ -1,240 +1,54 @@
1
1
  module VBox
2
2
  class VirtualBox < Base
3
3
 
4
- # Attributes
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
- # Attributes
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
- # Attributes
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
- # Attributes
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
- # Attributes
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(obj_ref=nil)
5
- super
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(args={})
17
- ensure_hash args
18
- key = VBox::WebService.send_request(:i_websession_manager_logon, args)
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
- VBox::VirtualBox.new(key)
23
+ VirtualBox.new(key)
21
24
  end
22
25
 
23
26
  def logoff
24
- VBox::WebService.send_request(:i_websession_manager_logoff, _this)
27
+ WebService.send_request(:i_websession_manager_logoff, _this)
25
28
  @ref = nil
26
29
  end
27
30
 
28
- def get_session_object
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
@@ -0,0 +1,3 @@
1
+ module VBox
2
+ VERSION = '0.0.5'
3
+ end