virtualbox-ws 0.0.3 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
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