virtualbox-ws 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c19d181323956fc9c6a21c66e82471f872f5f09c
4
+ data.tar.gz: 14ef98271b843289e6d4fcbdc893971ba941a8f9
5
+ SHA512:
6
+ metadata.gz: 2244297783f0448236657edd24e391d0c70fb68b1d8437a37dfbc14374d7f5c0c235cfd118440532cb4a323edfd2c6c6b8ed0841968c6ad2afb6bd640ee95145
7
+ data.tar.gz: db8aa2318dbefec7af12b7e18b1d1b98675d471976f5c3d502373f2ffb729fb0e49ec21390f5d2cdaf8d6d9fea712a0f390e192b9d1ac996071521577cd311c5
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ .idea
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'savon'
data/Gemfile.lock ADDED
@@ -0,0 +1,33 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ akami (1.2.0)
5
+ gyoku (>= 0.4.0)
6
+ nokogiri (>= 1.4.0)
7
+ builder (3.2.2)
8
+ gyoku (1.1.0)
9
+ builder (>= 2.1.2)
10
+ httpi (2.1.0)
11
+ rack
12
+ rubyntlm (~> 0.3.2)
13
+ nokogiri (1.5.10)
14
+ nori (2.3.0)
15
+ rack (1.5.2)
16
+ rubyntlm (0.3.4)
17
+ savon (2.3.0)
18
+ akami (~> 1.2.0)
19
+ builder (>= 2.1.2)
20
+ gyoku (~> 1.1.0)
21
+ httpi (~> 2.1.0)
22
+ nokogiri (>= 1.4.0, < 1.6)
23
+ nori (~> 2.3.0)
24
+ wasabi (~> 3.2.0)
25
+ wasabi (3.2.0)
26
+ httpi (~> 2.0)
27
+ nokogiri (>= 1.4.0, < 1.6)
28
+
29
+ PLATFORMS
30
+ ruby
31
+
32
+ DEPENDENCIES
33
+ savon
data/README.md ADDED
@@ -0,0 +1,39 @@
1
+ Usage
2
+ -----
3
+
4
+ First connect to vboxwebsrv service
5
+ ```
6
+ irb> VirtualBoxWS.connect
7
+ => true
8
+ ```
9
+ By default it connects to `http://127.0.0.1:18083` but host and port parameters can be passed to the connect method
10
+ explicitly
11
+
12
+ To operate on the VirtualBox Web Service you need to logon to it.
13
+ ```
14
+ irb> web_session = VirtualBoxWS::IWebsessionManager.new
15
+ => #<VirtualBoxWS::IWebsessionManager:0x0000000383b9b0 @_this={}>
16
+ irb> key = web_session.logon(:username => 'john', :password => 'doe')
17
+ => "deb9086e1f72ddbf-0000000000000002"
18
+ ```
19
+ Having a key we can now create an instance of IVirtualBox class, which is basically the entry point for the whole
20
+ VirtualBox operations scope.
21
+ ```
22
+ irb> i_virtualbox = VirtualBoxWS::IVirtualBox.new(key)
23
+ => #<VirtualBoxWS::IVirtualBox:0x0000000352a028 @_this={:_this=>"deb9086e1f72ddbf-0000000000000002"}>
24
+ ```
25
+ Now having an IVirtualBox we are ready to do something useful. The following will create a very basic virtual machine
26
+ ```
27
+ irb> machine = i_virtualbox.create_machine(:name => 'JohnDoe')
28
+ => "deb9086e1f72ddbf-0000000000000003"
29
+ irb> i_virtualbox.register_machine(:machine => machine)
30
+ => nil
31
+ ```
32
+ To start the machine we've just created we first need to create an instance of IMachine passing it our machine's
33
+ object reference. After that we are able to execute launch_vm_process on this instance
34
+ ```
35
+ irb> i_machine = VirtualBoxWS::IMachine.new(machine)
36
+ => #<VirtualBoxWS::IMachine:0x000000047fdee8 @_this={:_this=>"deb9086e1f72ddbf-0000000000000003"}>
37
+ irb> i_machine.launch_vm_process(:session => web_session.get_session_object, :type => 'gui')
38
+ => "deb9086e1f72ddbf-0000000000000004"
39
+ ```
@@ -0,0 +1,7 @@
1
+ module VirtualBoxWS
2
+ class IBIOSSettings < IBase
3
+
4
+ vb_attr_accessor :logo_fade_in, :logo_fade_out, :logo_display_time, :logo_image_path, :boot_menu_mode,
5
+ :acpi_enabled, :ioapic_enabled, :time_offset, :pxe_debug_enabled
6
+ end
7
+ end
@@ -0,0 +1,16 @@
1
+ module VirtualBoxWS
2
+ class IConsole < IBase
3
+
4
+ vb_attr_reader :machine, :state, :guest, :keyboard, :mouse, :display, :debugger, :usb_devices, :remote_usb_devices,
5
+ :shared_folders, :vrde_server_info, :event_source, :attached_pci_devices
6
+
7
+ vb_attr_accessor :use_host_clipboard
8
+
9
+ vb_method :adopt_saved_state, :attach_usb_device, :create_shared_folder, :delete_snapshot,
10
+ :delete_snapshot_and_all_children, :delete_snapshot_range, :detach_usb_device, :discard_saved_state,
11
+ :find_usb_device_by_address, :find_usb_device_by_id, :get_device_activity, :get_guest_entered_acpi_mode,
12
+ :get_power_button_handled, :pause, :power_button, :power_down, :power_up, :power_up_paused,
13
+ :remove_shared_folder, :reset, :restore_snapshot, :resume, :save_state, :sleep_button, :take_snapshot,
14
+ :teleport
15
+ end
16
+ end
@@ -0,0 +1,15 @@
1
+ module VirtualBoxWS
2
+ class IHost < IBase
3
+
4
+ vb_attr_reader :dvd_drives, :floppy_drives, :usb_devices, :usb_devices_filters, :network_interfaces,
5
+ :processor_count, :processor_online_count, :processor_core_count, :memory_size, :memory_available,
6
+ :operating_system, :os_version, :utc_time, :accleration_3d_available
7
+
8
+ vb_method :create_host_only_network_interface, :create_usb_device_filter, :find_host_dvd_drive,
9
+ :find_host_floppy_drive, :find_host_network_interface_by_id, :find_host_network_interface_by_name,
10
+ :find_host_network_interfaces_of_type, :find_usb_device_by_address, :find_usb_device_by_id,
11
+ :generate_mac_address, :get_processof_cpuid_leaf, :get_processor_description, :get_processor_feature,
12
+ :get_processor_speed, :insert_usb_device_filter, :remove_host_only_network_interface,
13
+ :remove_usb_device_filter
14
+ end
15
+ end
@@ -0,0 +1,9 @@
1
+ module VirtualBoxWS
2
+ class IHostNetworkInterface < IBase
3
+
4
+ vb_attr_reader :name, :id, :network_name, :dhcp_enabled, :ip_address, :network_mask, :ipv6_supported, :ipv6_address,
5
+ :ipv6_network_mask_prefix_length, :hardware_address, :medium_type, :status, :interface_type
6
+
7
+ vb_method :dycp_rediscover, :enable_dynamic_ip_config, :enable_static_ip_config, :enable_static_ip_config_v6
8
+ end
9
+ end
@@ -0,0 +1,40 @@
1
+ module VirtualBoxWS
2
+ class IMachine < IBase
3
+
4
+ vb_attr_reader :parent, :accessible, :access_error, :id, :bios_settings, :vrde_server, :medium_attachments,
5
+ :usb_controller, :audio_adapter, :storage_controllers, :settings_file_path, :settings_modified,
6
+ :session_state, :session_type, :sessio_pid, :state, :last_state_change, :state_file_path,
7
+ :log_folder, :current_snapshot, :snaphot_count, :current_state_modified, :shared_folders,
8
+ :pci_devices_assignments, :bandwidth_control
9
+
10
+ vb_attr_accessor :name, :description, :groups, :os_type_id, :hardware_version, :hardware_uuid, :cpu_count,
11
+ :cpu_hot_plug_enabled, :cpu_execution_cap, :memory_size, :memory_balloon_size,
12
+ :page_fusion_enabled, :vram_size, :accelerate_3d_enabled, :accelerate_2d_video_enabled,
13
+ :monitor_count, :video_capture_enabled, :video_capture_file, :video_capture_width,
14
+ :video_capture_height, :firmware_type, :pointing_hid_type, :keyboard_hid_type, :hpet_enabled,
15
+ :chipset_type, :snapshot_folder, :emulated_usb_webcamera_enabled,
16
+ :emulated_usb_card_reader_enabled, :clipboard_mode, :drag_and_drop_mode,
17
+ :guest_proprty_notificaton_patterns, :teleporter_enabled, :teleporter_port, :teleporter_address,
18
+ :teleporter_password, :fault_tolerance_state, :fault_tolerance_port, :fault_tolerance_address,
19
+ :fault_tolerance_password, :fault_tolerance_sync_interval, :rtc_use_utc, :io_cache_enabled,
20
+ :io_cache_size, :io_cache_size, :tracing_enabled, :tracing_config, :allow_tracing_to_access_vm,
21
+ :autostart_enabled, :autostart_delay, :autostop_type
22
+
23
+ vb_method :add_storage_controller, :attach_device, :attach_device_without_medium, :attach_host_pci_device,
24
+ :can_show_console_window, :clone_to, :create_shared_folder, :delete, :delete_guest_property,
25
+ :detach_device, :detach_host_pci_device, :discard_settings, :enumerate_guest_properties, :export,
26
+ :find_snapshot, :get_boot_order, :get_cpuid_leaf, :get_cpu_property, :get_cpu_status, :get_extra_data,
27
+ :get_extra_data_keys, :get_guest_property, :get_guest_property_timestamp, :get_guest_property_value,
28
+ :get_hw_virt_ex_property, :get_medium, :get_medium_attachment, :get_medium_attachments_of_controller,
29
+ :get_network_adapter, :get_parallel_port, :get_serial_port, :get_storage_controller_by_instance,
30
+ :get_storage_controller_by_name, :hot_plug_cpu, :hot_unplug_cpu, :launch_vm_process, :lock_machine,
31
+ :mount_medium, :non_rotational_device, :passthrough_device, :query_log_filename,
32
+ :query_saved_guest_screen_info, :query_saved_screnshot_png_size, :query_saved_thumbnail_size, :read_log,
33
+ :read_saved_screenshot_png_to_array, :read_saved_thumbnail_png_to_array, :read_saved_thumbnail_to_array,
34
+ :reamove_all_cpuid_leaves, :remove_cpuid_leaf, :remove_shared_folder, :remove_storage_controller,
35
+ :save_settings, :set_auto_discard_for_device, :set_bandwidth_group_for_device, :set_boot_order,
36
+ :set_cpuid_leaf, :set_cpu_property, :set_extra_data, :set_guest_property, :set_guest_property_value,
37
+ :set_hw_virt_ex_property, :set_no_bandwidth_group_for_device, :set_storage_controller_bootable,
38
+ :show_console_window, :temporary_eject_device, :unmount_medium, :unregister
39
+ end
40
+ end
@@ -0,0 +1,6 @@
1
+ module VirtualBoxWS
2
+ class IManagedObjectRef < IBase
3
+
4
+ vb_method :get_interface_name, :release
5
+ end
6
+ end
@@ -0,0 +1,13 @@
1
+ module VirtualBoxWS
2
+ class IMedium < IBase
3
+
4
+ vb_attr_reader :id, :state, :name, :device_type, :host_drive, :size, :format, :medium_format, :allowed_types,
5
+ :parent, :children, :base, :read_only, :logical_size, :last_access_error, :machine_ids
6
+
7
+ vb_attr_accessor :description, :location, :type, :auto_reset
8
+
9
+ vb_method :clone_to, :clone_to_base, :close, :cpmpact, :create_base_storage, :create_diff_storage, :delete_storage,
10
+ :get_properties, :get_property, :get_snapshot_ids, :lock_read, :lock_write, :merge_to, :refresh_state,
11
+ :reset, :resize, :set_ids, :set_properties, :set_property, :unlock_read, :unlock_write
12
+ end
13
+ end
@@ -0,0 +1,6 @@
1
+ module VirtualBoxWS
2
+ class IMediumFormat < IBase
3
+ vb_attr_reader :id, :name, :capabilities
4
+ vb_method :describe_file_extensions, :describe_properties
5
+ end
6
+ end
@@ -0,0 +1,12 @@
1
+ module VirtualBoxWS
2
+ class INetworkAdapter < IBase
3
+
4
+ vb_attr_reader :slot, :nat_engine
5
+
6
+ vb_attr_accessor :adapter_type, :enabled, :mac_address, :attachment_type, :bridged_interface, :host_only_interface,
7
+ :internal_network, :nat_network, :generic_driver, :cable_connected, :line_speed,
8
+ :promisc_mode_policy, :trace_enabled, :trace_file, :boot_proirity, :bandwidth_group
9
+
10
+ vb_method :get_properties, :get_property, :set_property
11
+ end
12
+ end
@@ -0,0 +1,6 @@
1
+ module VirtualBoxWS
2
+ class ISession < IBase
3
+ vb_attr_reader :state, :type, :machine, :console
4
+ vb_method :unlock_machine
5
+ end
6
+ end
@@ -0,0 +1,18 @@
1
+ module VirtualBoxWS
2
+ class ISystemProperties < IBase
3
+
4
+ vb_attr_reader :min_guest_ram, :max_guest_ram, :min_guest_vram, :max_guest_vram, :min_guest_cpu_count,
5
+ :max_guest_cpu_count, :max_guest_monitors, :info_vd_size, :serial_port_count, :parallel_port_count,
6
+ :max_boot_position, :meduim_formats, :default_audio_driver
7
+
8
+ vb_attr_accessor :default_machine_folder, :default_hard_disk_format, :free_disk_space_warning,
9
+ :free_disk_space_percent_warning, :free_disk_space_error, :free_disk_space_percent_error,
10
+ :vrde_auth_library, :web_service_auth_library, :default_vrde_ext_pack, :log_history_count,
11
+ :autostart_database_path, :default_additional_iso
12
+
13
+ vb_method :get_default_io_cache_setting_for_storage_controller, :get_device_types_for_storage_bus,
14
+ :get_max_devices_per_port_for_storage_bus, :get_max_instances_of_storage_bus, :get_max_network_adapters,
15
+ :get_max_network_adapters_of_type, :get_max_port_count_for_storage_bus,
16
+ :get_min_port_count_for_storage_bus
17
+ end
18
+ end
@@ -0,0 +1,17 @@
1
+ module VirtualBoxWS
2
+ class IVirtualBox < IBase
3
+
4
+ vb_attr_reader :version, :version_normalized, :revision, :package_type, :api_version, :home_folder,
5
+ :settings_file_path, :host, :system_properties, :machines, :machine_groups, :hard_disks, :dvd_images,
6
+ :floppy_images, :progress_operations, :guest_os_types, :shared_folders, :performance_collector,
7
+ :dhcp_servers, :event_source, :internal_networks, :generic_network_drivers
8
+
9
+ vb_method :check_firmware_present, :compose_machine_filename, :create_appliance, :create_dhcp_server,
10
+ :create_hard_disk, :create_machine, :create_shared_folder, :find_dhcp_server_by_network_name,
11
+ :find_machine, :get_extra_data, :get_extra_data_keys, :get_guest_os_types, :get_machine_states,
12
+ :get_machines_by_groups, :open_machine, :open_medium, :register_machine, :remove_dhcp_server,
13
+ :remove_shared_folder, :set_extra_data, :set_settings_secret
14
+ end
15
+ end
16
+
17
+
@@ -0,0 +1,21 @@
1
+ module VirtualBoxWS
2
+ class IWebsessionManager < IBase
3
+
4
+ vb_method :get_session_object
5
+
6
+ def initialize(obj_ref=nil)
7
+ super
8
+ end
9
+
10
+ def logon(args={})
11
+ key = VirtualBoxWS.send_request(:i_websession_manager_logon, args)
12
+ @_this[:ref_i_virtual_box] = key
13
+ end
14
+
15
+ def logoff
16
+ VirtualBoxWS.send_request(:i_websession_manager_logoff, @_this)
17
+ @_this = {}
18
+ nil
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,43 @@
1
+ require 'savon'
2
+
3
+
4
+ module VirtualBoxWS
5
+ class << self
6
+ def parse_response(response)
7
+ if response.body[response.body.keys[0]].nil?
8
+ nil
9
+ else
10
+ response.body[response.body.keys[0]][:returnval]
11
+ end
12
+ end
13
+
14
+ def send_request(soap_method, soap_message)
15
+ response = @conn.call(soap_method, :message => soap_message)
16
+ parse_response(response)
17
+ end
18
+
19
+ def connect(host='127.0.0.1', port='18083', debug=false)
20
+ endpoint = "http://#{host}:#{port}"
21
+ wsdl = endpoint + '/?wsdl'
22
+ @conn = Savon.client(:wsdl => wsdl, :endpoint => endpoint, :log => debug, :pretty_print_xml => debug)
23
+ if @conn.operations.include?(:i_websession_manager_logon)
24
+ @debug = debug
25
+ true
26
+ else
27
+ raise "Could not connect to VirtualBox SOAP Web Service at #{endpoint} (No VirtualBox SOAP service found)"
28
+ end
29
+ rescue Errno::ECONNREFUSED
30
+ raise "Could not connect to VirtualBox SOAP Web Service at #{endpoint} (Connection refused)"
31
+ end
32
+
33
+ def debug
34
+ @debug
35
+ end
36
+
37
+ def debug=(debug)
38
+ @debug = debug
39
+ @conn.globals[:log] = debug
40
+ @conn.globals[:pretty_print_xml] = debug
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,9 @@
1
+ class String
2
+ def to_underscore
3
+ self.gsub(/::/, '/').
4
+ gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
5
+ gsub(/([a-z\d])([A-Z])/,'\1_\2').
6
+ tr("-", "_").
7
+ downcase
8
+ end
9
+ end
@@ -0,0 +1,6 @@
1
+ module VirtualBoxWS
2
+ DEVICE_TYPE = %w(Null Floppy DVD HardDisk Network USB SharedFolder)
3
+ NETWORK_ADAPTER_TYPE = %w(Null Am79C970A Am79C973 I82540EM I82543GC I82545EM Virtio)
4
+ NETWORK_ATTACHMENT_TYPE = %w(Null NAT Bridged Internal HostOnly Generic)
5
+ STORAGE_BUS = %w(Null IDE SATA SCSI Floppy SAS)
6
+ end
@@ -0,0 +1,51 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/core_ext/string')
2
+
3
+
4
+ module VirtualBoxWS
5
+ class IBase
6
+ def initialize(obj_ref)
7
+ @_this = {}
8
+ @_this[:_this] = obj_ref unless obj_ref.nil?
9
+ end
10
+
11
+ def self.vb_attr_accessor(*vb_attrs)
12
+ vb_attrs.each do |vb_attr|
13
+ define_method(vb_attr) do
14
+ soap_method = "#{self.class.name.split('::').last.to_underscore}_get_#{vb_attr}".to_sym
15
+ VirtualBoxWS.send_request(soap_method, @_this)
16
+ end
17
+
18
+ define_method("#{vb_attr}=") do |value|
19
+ soap_method = "#{self.class.name.split('::').last.to_underscore}_set_#{vb_attr}".to_sym
20
+ # A hack for tags that start with an uppercase character
21
+ if vb_attr == :ioapic_enabled
22
+ soap_message = {'IOAPICEnabled' => value}
23
+ elsif vb_attr == :cpu_count
24
+ soap_message = {'CPUCount' => value}
25
+ else
26
+ soap_message = {vb_attr => value}
27
+ end
28
+ VirtualBoxWS.send_request(soap_method, @_this.merge(soap_message))
29
+ end
30
+ end
31
+ end
32
+
33
+ def self.vb_attr_reader(*vb_attrs)
34
+ vb_attrs.each do |vb_attr|
35
+ define_method(vb_attr) do
36
+ soap_method = "#{self.class.name.split('::').last.to_underscore}_get_#{vb_attr}".to_sym
37
+ VirtualBoxWS.send_request(soap_method, @_this)
38
+ end
39
+ end
40
+ end
41
+
42
+ def self.vb_method(*vb_meths)
43
+ vb_meths.each do |vb_meth|
44
+ define_method(vb_meth) do |message={}|
45
+ soap_method = "#{self.class.name.split('::').last.to_underscore}_#{vb_meth}".to_sym
46
+ VirtualBoxWS.send_request(soap_method, @_this.merge(message))
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,6 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/virtualbox/connection')
2
+ require File.expand_path(File.dirname(__FILE__) + '/virtualbox/i_base')
3
+ require File.expand_path(File.dirname(__FILE__) + '/virtualbox/enumerations')
4
+
5
+ classes_dir = File.expand_path(File.dirname(__FILE__)) + '/virtualbox/classes/*.rb'
6
+ Dir[classes_dir].each { |file| require file }
@@ -0,0 +1,16 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = "virtualbox-ws"
3
+ s.version = '0.0.1'
4
+ s.platform = Gem::Platform::RUBY
5
+ s.authors = ['Andriy Yurchuk']
6
+ s.email = ['ayurchuk@minuteware.net']
7
+ s.homepage = 'https://github.com/Ch00k/virtualbox-ws'
8
+ s.summary = 'VirtualBox SOAP API wrapper'
9
+ s.description = 'API wrapper that makes using VirtualBox SOAP API (relatively) easier'
10
+ s.license = 'MIT'
11
+
12
+ s.add_dependency 'savon'
13
+
14
+ s.files = `git ls-files`.split("\n")
15
+ s.require_path = 'lib'
16
+ end
metadata ADDED
@@ -0,0 +1,81 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: virtualbox-ws
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Andriy Yurchuk
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-10-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: savon
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: API wrapper that makes using VirtualBox SOAP API (relatively) easier
28
+ email:
29
+ - ayurchuk@minuteware.net
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - .gitignore
35
+ - Gemfile
36
+ - Gemfile.lock
37
+ - README.md
38
+ - lib/virtualbox-ws.rb
39
+ - lib/virtualbox/classes/i_bios_settings.rb
40
+ - lib/virtualbox/classes/i_console.rb
41
+ - lib/virtualbox/classes/i_host.rb
42
+ - lib/virtualbox/classes/i_host_network_interface.rb
43
+ - lib/virtualbox/classes/i_machine.rb
44
+ - lib/virtualbox/classes/i_managed_object_ref.rb
45
+ - lib/virtualbox/classes/i_medium.rb
46
+ - lib/virtualbox/classes/i_medium_format.rb
47
+ - lib/virtualbox/classes/i_network_adapter.rb
48
+ - lib/virtualbox/classes/i_session.rb
49
+ - lib/virtualbox/classes/i_system_properties.rb
50
+ - lib/virtualbox/classes/i_virtualbox.rb
51
+ - lib/virtualbox/classes/i_web_session_manager.rb
52
+ - lib/virtualbox/connection.rb
53
+ - lib/virtualbox/core_ext/string.rb
54
+ - lib/virtualbox/enumerations.rb
55
+ - lib/virtualbox/i_base.rb
56
+ - virtualbox-ws.gemspec
57
+ homepage: https://github.com/Ch00k/virtualbox-ws
58
+ licenses:
59
+ - MIT
60
+ metadata: {}
61
+ post_install_message:
62
+ rdoc_options: []
63
+ require_paths:
64
+ - lib
65
+ required_ruby_version: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ required_rubygems_version: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - '>='
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ requirements: []
76
+ rubyforge_project:
77
+ rubygems_version: 2.1.4
78
+ signing_key:
79
+ specification_version: 4
80
+ summary: VirtualBox SOAP API wrapper
81
+ test_files: []