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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 495f1e85b6ec631b315313c62e9490f16cb34d2c
4
- data.tar.gz: d44a6b5accce3381292346837e05b40941af8d7d
3
+ metadata.gz: b65ace3ebbb598bf587a6776bd4e4e309639103c
4
+ data.tar.gz: 318b9c8467b43c6b6de9e5e4fb056b6721d9bf80
5
5
  SHA512:
6
- metadata.gz: ed2bb05225197f7a5c9d8967f4ad6e674d30903b3979e9e8b8a708a8b301caaa7759df7d5a11e2654a2b0223ddfec84cabbbe3b72601e071e7da2e791fb3c053
7
- data.tar.gz: deb10227d1943f08cab161fbd18da80888527cb183e1580be082dfa61174ae87eea0bc7b501f6d25b8797bcee777da6941f5f779e32eb6bdeec618ead9f3a24a
6
+ metadata.gz: aa1237ee6dfd4b17e37b3f681dacd5238397501538438fd30d02092fc6f4fc83e900e164f0cbad6fdd07631a92d3614093f20e88ffdd8888d4376219d9d1e057
7
+ data.tar.gz: 99d997c9b0e8cf392c3b91f88c88a721b02e1690052f5c8d2fb75634f445f7b0ff9d260efba5eb8e94bbfcb4252e48e0f1c87d0340b2f4e7f304f44bca5a9704
data/Gemfile CHANGED
@@ -1,4 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'require_all'
4
- gem 'savon'
3
+ gemspec
data/Gemfile.lock CHANGED
@@ -1,3 +1,10 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ virtualbox-ws (0.0.4)
5
+ require_all
6
+ savon
7
+
1
8
  GEM
2
9
  remote: https://rubygems.org/
3
10
  specs:
@@ -31,5 +38,4 @@ PLATFORMS
31
38
  ruby
32
39
 
33
40
  DEPENDENCIES
34
- require_all
35
- savon
41
+ virtualbox-ws!
data/README.md CHANGED
@@ -7,6 +7,8 @@ This library's interface basically resembles the COM interface provided by Virtu
7
7
  `add_storage_controller`
8
8
  3. Interfaces and methods that are marked as not supported in the webservice in VirtualBox SDK Reference are not
9
9
  supported here
10
+ 4. WebsessionManager class is used to both connect to VirtualBox SOAP web service and to authenticate on it
11
+
10
12
 
11
13
  Documentation
12
14
  -------------
@@ -14,49 +16,64 @@ Documentation
14
16
  The main source of documentation is the [VirtualBox SDK Reference](http://download.virtualbox.org/virtualbox/SDKRef.pdf)
15
17
 
16
18
 
19
+ Installation
20
+ -------
21
+
22
+ ```
23
+ gem install virtualbox-ws
24
+ ```
25
+
26
+
27
+ Configuration
28
+ -------------
29
+
30
+ You can override any of these configuration defaults:
31
+
32
+ ```
33
+ VBox::WebService.configure do |config|
34
+ config.vboxweb_host = ENV['VBOXWEB_HOST'] || '127.0.0.1'
35
+ config.vboxweb_port = ENV['VBOXWEB_PORT'] || '18083'
36
+ config.vboxweb_user = ENV['VBOXWEB_USER']
37
+ config.vboxweb_pass = ENV['VBOXWEB_PASS']
38
+ config.log_level = ENV['VBOXWEB_LOGGING'] || 'ERROR'
39
+ end
40
+ ```
41
+ Each of these configuration options can be set as environment variables.
42
+
43
+ `config.log_level` can be one of `ERROR`, `INFO`, `DEBUG`
44
+
45
+
17
46
  Usage
18
47
  -----
19
48
 
20
49
  Require the gem
50
+
21
51
  ```
22
52
  irb> require 'virtualbox-ws'
23
53
  => true
24
54
  ```
25
55
 
26
- First connect to vboxwebsrv service
27
- ```
28
- irb> VBox::WebService.connect
29
- => true
30
- ```
56
+ An instance of VBox::WebsessionManager connects to VirtualBox SOAP wen service
31
57
 
32
- By default it connects to `http://127.0.0.1:18083` but host and port parameters can be passed to the connect method
33
- explicitly
34
58
  ```
35
- irb> VBox::WebService.connect(:host => 'localhost', :port => '18083')
36
- => true
59
+ irb> web_session = VBox::WebsessionManager.new
60
+ => #<VBox::WebsessionManager:0x00000005deb4a8 @ref=nil>
37
61
  ```
38
62
 
39
- To enable debug logging for SOAP operations a debug flag can be set for connection
40
- ```
41
- irb > VBox::WebService.connect(:debug => true)
42
- D, [2013-10-08T18:52:22.839743 #18132] DEBUG -- : HTTPI GET request to localhost (net_http)
43
- => true
44
- ```
45
- To do anything useful on a VirtualBox installation you first have to create an instance of the VirtualBox class which
46
- according to VirtualBox SDK Reference is "the main interface exposed by the product that provides virtual machine
47
- management". VirtualBox instance is created upon logging on to the SOAP web service
63
+ The logon method will authenticate you on the web service and create an instance of the VirtualBox class
64
+ which according to VirtualBox SDK Reference is "the main interface exposed by the product that provides virtual machine
65
+ management".
66
+
48
67
  ```
49
- irb> web_session = VBox::WebsessionManager.new
50
- => #<VBox::WebsessionManager:0x00000005deb4a8 @ref=nil>
51
- irb> virtual_box = web_session.logon(:username => 'user', :password => 'password')
68
+ irb> virtual_box = web_session.logon
52
69
  => #<VBox::VirtualBox:0x000000062bc8d8 @ref="47efe040fcc25df7-000000000000001d">
53
-
54
70
  ```
55
71
 
56
72
  Having a VirtualBox instance we can query various VirtualBox installation info as well as create virtual machines...
73
+
57
74
  ```
58
75
  irb> virtual_box.version
59
- => "4.2.18"
76
+ => "4.3.0"
60
77
  irb> machine = virtual_box.create_machine(:name => 'machine_1')
61
78
  => #<VBox::Machine:0x00000005841f98 @ref="47efe040fcc25df7-000000000000001e">
62
79
  irb> virtual_box.register_machine(:machine => machine)
@@ -68,7 +85,8 @@ irb> virtual_box.register_machine(:machine => machine)
68
85
  ```
69
86
 
70
87
  ...and run virtual machines
88
+
71
89
  ```
72
- irb> machine.launch_vm_process(:session => web_session.get_session_object, :type => 'headless')
90
+ irb> machine.launch_vm_process(:session => web_session.get_session_object)
73
91
  => #<VBox::Progress:0x00000005934040 @ref="47efe040fcc25df7-000000000000001f">
74
92
  ```
data/lib/core_ext/hash.rb CHANGED
@@ -1,12 +1,12 @@
1
1
  class Hash
2
- def referize!(*keys)
3
- keys.each do |key|
4
- if self[key].is_a?(Array)
5
- self[key].map! do |item|
2
+ def referize!
3
+ self.each do |key, value|
4
+ if value.is_a?(Array)
5
+ value.map! do |item|
6
6
  item.respond_to?(:ref) ? item.ref : item
7
7
  end
8
- elsif self[key].respond_to?(:ref)
9
- self[key] = self[key].ref
8
+ elsif value.respond_to?(:ref)
9
+ self[key] = value.ref
10
10
  end
11
11
  end
12
12
  end
@@ -2,4 +2,12 @@ class String
2
2
  def to_a
3
3
  self.split
4
4
  end
5
+
6
+ def to_underscore
7
+ self.gsub(/::/, '/').
8
+ gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
9
+ gsub(/([a-z\d])([A-Z])/,'\1_\2').
10
+ tr('-', '_').
11
+ downcase
12
+ end
5
13
  end
@@ -13,16 +13,128 @@ module VBox
13
13
  _this
14
14
  end
15
15
 
16
- def vbox_class
17
- VBox::ManagedObjectRef.new(@ref).get_interface_name
16
+ def ensure_hash(args)
17
+ raise ArgumentError, 'Method arguments must be a hash' unless args.is_a?(Hash)
18
18
  end
19
19
 
20
- def delete!
21
- VBox::ManagedObjectRef.new(@ref).release
20
+ def self.starts_with_acronym
21
+ define_method(:starts_with_acronym) {}
22
22
  end
23
23
 
24
- def ensure_hash(args)
25
- raise ArgumentError, 'Method arguments must be a hash' unless args.is_a?(Hash)
24
+ def self.soap_method(method_name, modifier=nil)
25
+ is_acronym_part = defined?(starts_with_acronym) ? '_' : ''
26
+ modifier_part = modifier.nil? ? '' : modifier + '_'
27
+ "i#{is_acronym_part}#{class_name}_#{modifier_part}#{method_name}".to_sym
28
+ end
29
+
30
+ def soap_method(method_name, modifier=nil)
31
+ self.class.soap_method(method_name, modifier)
32
+ end
33
+
34
+ def self.class_name
35
+ self.name.split('::').last.to_underscore
36
+ end
37
+
38
+ def class_name
39
+ self.class.class_name
40
+ end
41
+
42
+ def integerize(value)
43
+ if value.is_a?(Array)
44
+ value.map do |item|
45
+ begin
46
+ Integer(item)
47
+ rescue ArgumentError
48
+ item
49
+ end
50
+ end
51
+ else
52
+ begin
53
+ Integer(value)
54
+ rescue ArgumentError
55
+ value
56
+ end
57
+ end
58
+ end
59
+
60
+ def classify(result, force_array=false)
61
+ if force_array
62
+ return [] if result.nil?
63
+ result = result.to_a
64
+
65
+ # Will assume here that in case of force_array all the items
66
+ # in the array are objects of the same class
67
+ val = result[0]
68
+ else
69
+ val = result
70
+ end
71
+
72
+ # If the result is not a string return it immediately
73
+ return integerize(result) unless val.is_a?(String)
74
+
75
+ # Check for a match
76
+ return integerize(result) if val.match(/^[0-9a-f]{16}-[0-9a-f]{16}$/).nil?
77
+
78
+ # Get VirtualBox interface name
79
+ class_str = ManagedObjectRef.new(val).get_interface_name
80
+
81
+ # ManagedObjectRef.get_interface_name returns nil
82
+ # for inexisting object reference
83
+ if class_str.nil?
84
+ result
85
+ else
86
+ if force_array
87
+ result.to_a.map { |item| VBox.const_get(class_str[1..-1]).new(item) }
88
+ else
89
+ VBox.const_get(class_str[1..-1]).new(result)
90
+ end
91
+ end
92
+ end
93
+
94
+ def self.vb_attr(name, options={})
95
+ force_array = options[:force_array]
96
+ force_tag = options[:force_tag]
97
+
98
+ # A special case for VirtualBox methods that have lowercase 'v' in IPv6
99
+ if name.to_s.start_with?('ipv6') || name.to_s.include?('advertise_default_ipv6_route_enabled')
100
+ name = name.to_s.gsub('ipv6', 'i_pv6').to_sym
101
+ end
102
+
103
+ define_method(name) do
104
+ result = WebService.send_request(soap_method(name, 'get'), _this)
105
+ process_result(result, force_array)
106
+ end
107
+
108
+ define_method("#{name}=") do |value|
109
+ soap_message = {force_tag ? force_tag : name => value}
110
+ result = WebService.send_request(soap_method(name, 'set'), _this.merge(soap_message))
111
+ process_result(result)
112
+ end if WebService.operations.include?(soap_method(name, 'set'))
113
+ end
114
+
115
+ def self.vb_method(name, options={})
116
+ force_array = options[:force_array]
117
+
118
+ define_method(name) do |meth_args = {}|
119
+ ensure_hash meth_args
120
+ meth_args.referize!
121
+ result = WebService.send_request(soap_method(name), _this.merge(meth_args))
122
+ process_result(result, force_array)
123
+ end
124
+ end
125
+
126
+ def process_result(result, force_array=false)
127
+ if force_array
128
+ classify(result, true)
129
+ else
130
+ if result.is_a?(Array)
131
+ result.map do |item|
132
+ item.is_a?(Hash) ? item.update(item) { |_, value| classify(value) } : classify(item)
133
+ end
134
+ else
135
+ classify(result)
136
+ end
137
+ end
26
138
  end
27
139
  end
28
140
  end
@@ -1,49 +1,16 @@
1
1
  module VBox
2
2
  class Appliance < Base
3
3
 
4
- # Attributes
5
-
6
- def path
7
- VBox::WebService.send_request(:i_appliance_get_path, _this)
8
- end
9
-
10
- def disks
11
- VBox::WebService.send_request(:i_appliance_get_disks, _this.merge)
12
- end
13
-
14
- def virtual_system_descriptions
15
- virtual_system_descriptions = VBox::WebService.send_request(:i_appliance_get_virtual_system_descriptions, _this)
16
- virtual_system_descriptions.map do |virtual_system_description|
17
- VBox::VirtualSystemDescription.new(virtual_system_description)
18
- end
19
- end
20
-
21
- def machines
22
- VBox::WebService.send_request(:i_appliance_get_machines, _this.merge)
23
- end
24
-
25
- # Methods
26
-
27
- def create_vfs_explorer(args={})
28
- ensure_hash args
29
- vfs_explorer = VBox::WebService.send_request(:i_appliance_create_vfs_explorer, _this.merge(args))
30
- VBox::VFSExplorer.new(vfs_explorer)
31
- end
32
-
33
- def interpret
34
- VBox::WebService.send_request(:i_appliance_interpret, _this)
35
- end
36
-
37
- def read(args={})
38
- ensure_hash args
39
- progress = VBox::WebService.send_request(:i_appliance_read, _this.merge(args))
40
- VBox::Progress.new(progress)
41
- end
42
-
43
- def write(args={})
44
- ensure_hash args
45
- progress = VBox::WebService.send_request(:i_appliance_write, _this.merge(args))
46
- VBox::Progress.new(progress)
47
- end
4
+ vb_attr :path
5
+ vb_attr :disks, :force_array => true
6
+ vb_attr :virtual_system_descriptions, :force_array => true
7
+ vb_attr :machines, :force_array => true
8
+
9
+ vb_method :create_vfs_explorer
10
+ vb_method :get_warnings, :force_array => true
11
+ vb_method :import_machines
12
+ vb_method :interpret
13
+ vb_method :read
14
+ vb_method :write
48
15
  end
49
16
  end
@@ -1,31 +1,9 @@
1
1
  module VBox
2
2
  class AudioAdapter < Base
3
3
 
4
- # Attributes
4
+ vb_attr :enabled
5
+ vb_attr :audio_controller
6
+ vb_attr :audio_driver
5
7
 
6
- def enabled
7
- VBox::WebService.send_request(:i_audio_adapter_get_enabled, _this)
8
- end
9
-
10
- def enabled=(enabled)
11
- VBox::WebService.send_request(:i_audio_adapter_set_enabled, _this.merge(:enabled => enabled))
12
- end
13
-
14
- def audo_controller
15
- VBox::WebService.send_request(:i_audio_adapter_get_audo_controller, _this)
16
- end
17
-
18
- def audo_controller=(audo_controller)
19
- VBox::WebService.send_request(:i_audio_adapter_set_audo_controller,
20
- _this.merge(:audo_controller => audo_controller))
21
- end
22
-
23
- def audo_driver
24
- VBox::WebService.send_request(:i_audio_adapter_get_audo_driver, _this)
25
- end
26
-
27
- def audo_driver=(audo_driver)
28
- VBox::WebService.send_request(:i_audio_adapter_set_audo_driver, _this.merge(:audo_driver => audo_driver))
29
- end
30
8
  end
31
9
  end
@@ -1,34 +1,12 @@
1
1
  module VBox
2
2
  class BandwidthControl < Base
3
3
 
4
- # Attributes
4
+ vb_attr :num_groups
5
5
 
6
- def num_groups
7
- VBox::WebService.send_request(:i_bandwidth_control_get_num_groups, _this)
8
- end
6
+ vb_method :create_bandwidth_group
7
+ vb_method :delete_bandwidth_group
8
+ vb_method :get_all_bandwidth_groups, :force_array => true
9
+ vb_method :get_bandwidth_group
9
10
 
10
- # Methods
11
-
12
- def create_bandwidth_group(args={})
13
- ensure_hash args
14
- VBox::WebService.send_request(:i_bandwidth_contol_create_bandwidth_group, _this.merge(args))
15
- end
16
-
17
- def delete_bandwidth_group(args={})
18
- ensure_hash args
19
- VBox::WebService.send_request(:i_bandwidth_control_delete_bandwidth_group, _this.merge(args))
20
- end
21
-
22
- def get_all_bandwidth_groups
23
- bandwidth_groups = VBox::WebService.send_request(:i_bandwidth_control_get_all_bandwidth_groups, _this)
24
- bandwidth_groups.map do |bandwidth_group|
25
- VBox::BandwidthGroup.new(bandwidth_group)
26
- end
27
- end
28
-
29
- def get_bandwidth_group
30
- bandwidth_group = VBox::WebService.send_request(:i_bandwidth_control_get_bandwidth_group, _this)
31
- VBox::BandwidthGroup.new(bandwidth_group)
32
- end
33
11
  end
34
12
  end
@@ -1,27 +1,10 @@
1
1
  module VBox
2
2
  class BandwidthGroup < Base
3
3
 
4
- # Attributes
4
+ vb_attr :name
5
+ vb_attr :type
6
+ vb_attr :reference
7
+ vb_attr :max_bytes_per_sec
5
8
 
6
- def name
7
- VBox::WebService.send_request(:i_bandwidth_group_get_name, _this)
8
- end
9
-
10
- def type
11
- VBox::WebService.send_request(:i_bandwidth_group_get_type, _this)
12
- end
13
-
14
- def reference
15
- VBox::WebService.send_request(:i_bandwidth_group_get_reference, _this)
16
- end
17
-
18
- def max_bytes_per_sec
19
- VBox::WebService.send_request(:i_bandwidth_group_get_max_bytes_per_sec, _this)
20
- end
21
-
22
- def max_bytes_per_sec=(max_bytes_per_sec)
23
- VBox::WebService.send_request(:i_bandwidth_group_get_max_bytes_per_sec,
24
- _this.merge(:max_bytes_per_sec => max_bytes_per_sec))
25
- end
26
9
  end
27
10
  end
@@ -1,79 +1,18 @@
1
1
  module VBox
2
2
  class BIOSSettings < Base
3
3
 
4
- # Attributes
4
+ starts_with_acronym
5
+
6
+ vb_attr :logo_fade_in
7
+ vb_attr :logo_fade_out
8
+ vb_attr :logo_display_time
9
+ vb_attr :logo_image_path
10
+ vb_attr :boot_menu_mode
11
+ vb_attr :acpi_enabled, :force_tag => 'ACPIEnabled'
12
+ vb_attr :ioapic_enabled, :force_tag => 'IOAPICEnabled'
13
+ vb_attr :time_offset
14
+ vb_attr :pxe_debug_enabled, :force_tag => 'PXEDebugEnabled'
15
+ vb_attr :non_volatile_storage_file
5
16
 
6
- def logo_fade_in
7
- VBox::WebService.send_request(:ibios_settings_get_logo_fade_in, _this)
8
- end
9
-
10
- def logo_fade_in=(logo_fade_in)
11
- VBox::WebService.send_request(:ibios_settings_set_logo_fade_in, _this.merge(:logo_fade_in => logo_fade_in))
12
- end
13
-
14
- def logo_fade_out
15
- VBox::WebService.send_request(:ibios_settings_get_logo_fade_out, _this)
16
- end
17
-
18
- def logo_fade_out=(logo_fade_out)
19
- VBox::WebService.send_request(:ibios_settings_set_logo_fade_out, _this.merge(:logo_fade_out => logo_fade_out))
20
- end
21
-
22
- def logo_display_time
23
- VBox::WebService.send_request(:ibios_settings_get_logo_display_time, _this)
24
- end
25
-
26
- def logo_display_time=(logo_display_time)
27
- VBox::WebService.send_request(:ibios_settings_set_logo_display_time,
28
- _this.merge(:logo_display_time => logo_display_time))
29
- end
30
-
31
- def logo_image_path
32
- VBox::WebService.send_request(:ibios_settings_get_logo_image_path, _this)
33
- end
34
-
35
- def logo_image_path=(logo_image_path)
36
- VBox::WebService.send_request(:ibios_settings_set_logo_image_path, _this.merge(:logo_image_path => logo_image_path))
37
- end
38
-
39
- def boot_menu_mode
40
- VBox::WebService.send_request(:ibios_settings_get_boot_menu_mode, _this)
41
- end
42
-
43
- def boot_menu_mode=(boot_menu_mode)
44
- VBox::WebService.send_request(:ibios_settings_set_boot_menu_mode, _this.merge(:boot_menu_mode => boot_menu_mode))
45
- end
46
-
47
- def acpi_enabled
48
- VBox::WebService.send_request(:ibios_settings_get_acpi_enabled, _this)
49
- end
50
-
51
- def acpi_enabled=(acpi_enabled)
52
- VBox::WebService.send_request(:ibios_settings_set_acpi_enabled, _this.merge('ACPIEnabled' => acpi_enabled))
53
- end
54
-
55
- def ioapic_enabled
56
- VBox::WebService.send_request(:ibios_settings_get_ioapic_enabled, _this)
57
- end
58
-
59
- def ioapic_enabled=(ioapic_enabled)
60
- VBox::WebService.send_request(:ibios_settings_set_ioapic_enabled, _this.merge('IOAPICEnabled' => ioapic_enabled))
61
- end
62
-
63
- def time_offset
64
- VBox::WebService.send_request(:ibios_settings_get_time_offset, _this)
65
- end
66
-
67
- def time_offset=(time_offset)
68
- VBox::WebService.send_request(:ibios_settings_set_time_offset, _this.merge(:time_offset => time_offset))
69
- end
70
-
71
- def pxe_debug_enabled
72
- VBox::WebService.send_request(:ibios_settings_get_pxe_debug_enabled, _this)
73
- end
74
-
75
- def pxe_debug_enabled=(pxe_debug_enabled)
76
- VBox::WebService.send_request(:ibios_settings_set_pxe_debug_enabled, _this.merge('PXEDebugEnabled' => pxe_debug_enabled))
77
- end
78
17
  end
79
18
  end