From 590e5c1ab3b308d362c307c763ef2bd2e1065c41 Mon Sep 17 00:00:00 2001 From: Paulo Henrique Lopes Ribeiro Date: Fri, 18 Jul 2014 10:52:12 -0300 Subject: [PATCH] Configured Default attributes for some models. Breaked compatibility with older XENSERVER code. The save method from StorageRepository and Vlan didnt work properly since the were expecting attributes that werent part of the model and didnt expect them to as parameters. --- lib/fog/compute/xen_server/models/network.rb | 19 +---- lib/fog/compute/xen_server/models/server.rb | 76 +++++++++---------- .../xen_server/models/storage_repository.rb | 43 +++-------- lib/fog/compute/xen_server/models/vbd.rb | 23 +++--- lib/fog/compute/xen_server/models/vdi.rb | 3 +- lib/fog/compute/xen_server/models/vif.rb | 19 +++-- lib/fog/compute/xen_server/models/vlan.rb | 28 +------ .../compute/xen_server/requests/create_sr.rb | 12 +-- .../xen_server/requests/create_vlan.rb | 8 +- .../compute/xen_server/models/blob_spec.rb | 4 + .../compute/xen_server/models/bond_spec.rb | 4 + .../compute/xen_server/models/console_spec.rb | 4 + .../xen_server/models/crash_dump_spec.rb | 4 + .../compute/xen_server/models/dr_task_spec.rb | 4 + .../xen_server/models/gpu_group_spec.rb | 4 + .../xen_server/models/guest_metrics_spec.rb | 4 + .../xen_server/models/host_cpu_spec.rb | 2 + .../xen_server/models/host_crash_dump_spec.rb | 4 + .../xen_server/models/host_metrics_spec.rb | 4 + .../xen_server/models/host_patch_spec.rb | 4 + .../compute/xen_server/models/host_spec.rb | 4 + .../compute/xen_server/models/network_spec.rb | 10 ++- .../fog/compute/xen_server/models/pbd_spec.rb | 4 + .../fog/compute/xen_server/models/pci_spec.rb | 4 + .../compute/xen_server/models/pgpu_spec.rb | 4 + .../xen_server/models/pif_metrics_spec.rb | 4 + .../fog/compute/xen_server/models/pif_spec.rb | 4 + .../xen_server/models/pool_patch_spec.rb | 4 + .../compute/xen_server/models/pool_spec.rb | 4 + .../compute/xen_server/models/role_spec.rb | 4 + .../models/server_appliance_spec.rb | 4 + .../xen_server/models/server_metrics_spec.rb | 4 + .../compute/xen_server/models/server_spec.rb | 41 ++++++++-- .../xen_server/models/storage_manager_spec.rb | 4 + .../models/storage_repository_spec.rb | 7 ++ .../compute/xen_server/models/tunnel_spec.rb | 4 + .../xen_server/models/vbd_metrics_spec.rb | 4 + .../fog/compute/xen_server/models/vbd_spec.rb | 11 +++ .../xen_server/models/vif_metrics_spec.rb | 4 + .../fog/compute/xen_server/models/vif_spec.rb | 9 +++ .../compute/xen_server/models/vlan_spec.rb | 4 + .../compute/xen_server/models/vmpp_spec.rb | 4 + .../compute/xen_server/models/vtpm_spec.rb | 4 + 43 files changed, 266 insertions(+), 157 deletions(-) diff --git a/lib/fog/compute/xen_server/models/network.rb b/lib/fog/compute/xen_server/models/network.rb index 8d2eef9..f85067c 100644 --- a/lib/fog/compute/xen_server/models/network.rb +++ b/lib/fog/compute/xen_server/models/network.rb @@ -15,31 +15,20 @@ class Network < Fog::Model attribute :bridge attribute :current_operations attribute :default_locking_mode - attribute :description, :aliases => :name_description + attribute :description, :aliases => :name_description, :default => '' attribute :mtu, :aliases => :MTU - attribute :name, :aliases => :name_label - attribute :other_config + attribute :name, :aliases => :name_label, :default => '' + attribute :other_config, :default => {} attribute :tags attribute :uuid has_many :pifs, :pifs, :aliases => :PIFs has_many :vifs, :vifs, :aliases => :VIFs - # Creates a new network - # - # service = Fog::Compute[:xenserver] - # - # # create network 'foonet' - # net = service.networks.create :name => 'foonet', - # :description => 'test network' - # - # @return [Boolean] - # def save requires :name ref = service.create_network name, attributes - data = service.get_record ref, 'network' - merge_attributes data + merge_attributes service.networks.get(ref).attributes true end end diff --git a/lib/fog/compute/xen_server/models/server.rb b/lib/fog/compute/xen_server/models/server.rb index a1fdf62..ac3a7bd 100644 --- a/lib/fog/compute/xen_server/models/server.rb +++ b/lib/fog/compute/xen_server/models/server.rb @@ -12,9 +12,9 @@ class Server < Fog::Compute::Server identity :reference - attribute :actions_after_crash - attribute :actions_after_reboot - attribute :actions_after_shutdown + attribute :actions_after_crash, :default => 'Restart' + attribute :actions_after_reboot, :default => 'Restart' + attribute :actions_after_shutdown, :default => 'Destroy' attribute :allowed_operations attribute :blobs attribute :blocked_operations @@ -22,38 +22,42 @@ class Server < Fog::Compute::Server attribute :current_operations attribute :domarch attribute :domid - attribute :description, :aliases => :name_description + attribute :description, :aliases => :name_description, :default => '' attribute :generation_id attribute :ha_always_run attribute :ha_restart_priority - attribute :hvm_boot_params, :aliases => :HVM_boot_params - attribute :hvm_boot_policy, :aliases => :HVM_boot_policy + attribute :hvm_boot_params, :aliases => :HVM_boot_params, :default => {} + attribute :hvm_boot_policy, :aliases => :HVM_boot_policy, :default => '' attribute :hvm_shadow_multiplier, :aliases => :HVM_shadow_multiplier attribute :is_a_snapshot - attribute :is_a_template + attribute :is_a_template, :default => true attribute :is_control_domain attribute :is_snapshot_from_vmpp attribute :last_booted_record attribute :last_boot_cpu_flags, :aliases => :last_boot_CPU_flags - attribute :memory_dynamic_max - attribute :memory_dynamic_min + attribute :memory_dynamic_max, :default => '536870912' + attribute :memory_dynamic_min, :default => '536870912' attribute :memory_overhead - attribute :memory_static_max - attribute :memory_static_min + attribute :memory_static_max, :default => '536870912' + attribute :memory_static_min, :default => '536870912' attribute :memory_target - attribute :name, :aliases => :name_label + attribute :name, :aliases => :name_label, :default => '' attribute :order - attribute :other_config - attribute :pci_bus, :aliases => :PCI_bus - attribute :platform + attribute :other_config, :default => {} + attribute :pci_bus, :aliases => :PCI_bus, :default => '' + attribute :platform, :default => { 'nx' => 'true', + 'acpi' => 'true', + 'apic' => 'true', + 'pae' => 'true', + 'viridian' => 'true' } attribute :power_state - attribute :pv_args, :aliases => :PV_args - attribute :pv_bootloader, :aliases => :PV_bootloader - attribute :pv_bootloader_args, :aliases => :PV_bootloader_args - attribute :pv_kernel, :aliases => :PV_kernel - attribute :pv_legacy_args, :aliases => :PV_legacy_args - attribute :pv_ramdisk, :aliases => :PV_ramdisk - attribute :recommendations + attribute :pv_args, :aliases => :PV_args, :default => '-- quiet console=hvc0' + attribute :pv_bootloader, :aliases => :PV_bootloader, :default => 'pygrub' #pvgrub, eliloader + attribute :pv_bootloader_args, :aliases => :PV_bootloader_args, :default => '' + attribute :pv_kernel, :aliases => :PV_kernel, :default => '' + attribute :pv_legacy_args, :aliases => :PV_legacy_args, :default => '' + attribute :pv_ramdisk, :aliases => :PV_ramdisk, :default => '' + attribute :recommendations, :default => '' attribute :shutdown_delay attribute :snapshot_info attribute :snapshot_metadata @@ -62,11 +66,11 @@ class Server < Fog::Compute::Server attribute :tags attribute :template_name attribute :transportable_snapshot_id - attribute :user_version + attribute :user_version, :default => '0' attribute :uuid - attribute :vcpus_at_startup, :aliases => :VCPUs_at_startup - attribute :vcpus_max, :aliases => :VCPUs_max - attribute :vcpus_params, :aliases => :VCPUs_params + attribute :vcpus_at_startup, :aliases => :VCPUs_at_startup, :default => '1' + attribute :vcpus_max, :aliases => :VCPUs_max, :default => '1' + attribute :vcpus_params, :aliases => :VCPUs_params, :default => {} attribute :version attribute :xenstore_data @@ -114,24 +118,14 @@ def halted? def save(params = {}) requires :name - nets = attributes[:networks] || [] - if params[:auto_start].nil? - auto_start = true - else - auto_start = params[:auto_start] - end + nets = params.fetch(:networks, []) + auto_start = params.fetch(:auto_start, true) if template_name - attr = service.get_record( - service.create_server( name, template_name, nets, :auto_start => auto_start), - 'VM' - ) + ref = service.create_server(name, template_name, nets, :auto_start => auto_start) else - attr = service.get_record( - service.create_server_raw(attributes), - 'VM' - ) + ref = service.create_server_raw(attributes) end - merge_attributes attr + merge_attributes service.servers.get(ref).attributes true end diff --git a/lib/fog/compute/xen_server/models/storage_repository.rb b/lib/fog/compute/xen_server/models/storage_repository.rb index b6d5331..8198ccf 100644 --- a/lib/fog/compute/xen_server/models/storage_repository.rb +++ b/lib/fog/compute/xen_server/models/storage_repository.rb @@ -12,17 +12,17 @@ class StorageRepository < Fog::Model attribute :allowed_operations attribute :blobs - attribute :content_type + attribute :content_type, :default => 'user' attribute :current_operations - attribute :description, :aliases => :name_description + attribute :description, :aliases => :name_description, :default => '' attribute :introduced_by attribute :local_cache_enabled attribute :name, :aliases => :name_label attribute :other_config - attribute :physical_size + attribute :physical_size, :default => '0' attribute :physical_utilisation - attribute :shared - attribute :sm_config + attribute :shared, :default => false + attribute :sm_config, :default => {} attribute :tags attribute :type attribute :uuid @@ -31,34 +31,11 @@ class StorageRepository < Fog::Model has_many :pbds, :pbds, :aliases => :PBDs has_many :vdis, :vdis, :aliases => :VDIs - def save - requires :name - requires :type - - # host is not a model attribute (not in XAPI at least), - # but we need it here - host = attributes[:host] - raise ArgumentError.new('host is required for this operation') unless - host - - # Not sure if this is always required, so not raising exception if nil - device_config = attributes[:device_config] - - # create_sr request provides sane defaults if some attributes are - # missing - attr = service.get_record( - service.create_sr( host.reference, - name, - type, - description || '', - device_config || {}, - physical_size || '0', - content_type || 'user', - shared || false, - sm_config || {}), - 'SR' - ) - merge_attributes attr + def save(host, device_config = {}) + requires :name, :type + ref = service.create_sr(host, name, type, description, device_config, physical_size, content_type, + shared || false, sm_config) + merge_attributes service.storage_repositories.get(ref).attributes true end end diff --git a/lib/fog/compute/xen_server/models/vbd.rb b/lib/fog/compute/xen_server/models/vbd.rb index e6f792b..b18f9a4 100644 --- a/lib/fog/compute/xen_server/models/vbd.rb +++ b/lib/fog/compute/xen_server/models/vbd.rb @@ -11,23 +11,23 @@ class Vbd < Fog::Model identity :reference attribute :allowed_operations - attribute :bootable + attribute :bootable, :default => true attribute :currently_attached attribute :current_operations attribute :device - attribute :empty - attribute :mode - attribute :other_config - attribute :qos_supported_algorithms - attribute :qos_algorithm_params - attribute :qos_algorithm_type + attribute :empty, :default => false + attribute :mode, :default => 'RW' + attribute :other_config, :default => { 'owner' => '' } + attribute :qos_supported_algorithms, :default => [] + attribute :qos_algorithm_params, :default => {} + attribute :qos_algorithm_type, :default => '' attribute :runtime_properties attribute :status_code attribute :status_detail attribute :storage_lock - attribute :type + attribute :type, :default => 'Disk' attribute :unpluggable - attribute :userdevice + attribute :userdevice, :default => '0' attribute :uuid has_one :metrics, :vbds_metrics @@ -38,8 +38,9 @@ class Vbd < Fog::Model def save requires :vdi, :server - ref = service.create_vbd attributes[:server], attributes[:vdi], attributes - merge_attributes service.vbds.get(ref).attributes + ref = service.create_vbd(server, vdi, attributes) + merge_attributes(service.vbds.get(ref).attributes) + true end end end diff --git a/lib/fog/compute/xen_server/models/vdi.rb b/lib/fog/compute/xen_server/models/vdi.rb index 3a99acb..c40e925 100644 --- a/lib/fog/compute/xen_server/models/vdi.rb +++ b/lib/fog/compute/xen_server/models/vdi.rb @@ -58,8 +58,9 @@ def initialize(attributes = {}) def save requires :name, :storage_repository - ref = service.create_vdi attributes + ref = service.create_vdi(attributes) merge_attributes service.vdis.get(ref).attributes + true end end end diff --git a/lib/fog/compute/xen_server/models/vif.rb b/lib/fog/compute/xen_server/models/vif.rb index 59677b5..0725dfa 100644 --- a/lib/fog/compute/xen_server/models/vif.rb +++ b/lib/fog/compute/xen_server/models/vif.rb @@ -17,12 +17,12 @@ class Vif < Fog::Model attribute :ipv4_allowed attribute :ipv6_allowed attribute :locking_mode - attribute :mac, :aliases => :MAC - attribute :mac_autogenerated, :aliases => :MAC_autogenerated - attribute :mtu, :aliases => :MTU - attribute :other_config - attribute :qos_algorithm_params - attribute :qos_algorithm_type + attribute :mac, :aliases => :MAC, :default => '' + attribute :mac_autogenerated, :aliases => :MAC_autogenerated, :default => 'True' + attribute :mtu, :aliases => :MTU, :default => '0' + attribute :other_config, :default => {} + attribute :qos_algorithm_params, :default => {} + attribute :qos_algorithm_type, :default => 'ratelimit' attribute :qos_supported_algorithms attribute :runtime_properties attribute :status_code @@ -36,11 +36,10 @@ class Vif < Fog::Model alias_method :server, :vm def save - requires :server - raise ArgumentError.new('network is required for this operation') \ - unless attributes[:__network] - ref = service.create_vif attributes[:server], attributes[:__network] + requires :server, :network + ref = service.create_vif(server, network) merge_attributes service.vifs.get(ref).attributes + true end end end diff --git a/lib/fog/compute/xen_server/models/vlan.rb b/lib/fog/compute/xen_server/models/vlan.rb index 9ccfcbf..ca42f80 100644 --- a/lib/fog/compute/xen_server/models/vlan.rb +++ b/lib/fog/compute/xen_server/models/vlan.rb @@ -17,32 +17,10 @@ class Vlan < Fog::Model has_one :tagged_pif, :pifs, :aliases => :tagged_PIF has_one :untagged_pif, :pifs, :aliases => :untagged_PIF - # Creates a new VLAN. - # - # service = Fog::Compute[:xenserver] - # - # # create a network 'foo-net' - # net = service.networks.create :name => 'foo-net' - # - # # get the eth0 physical interface where the - # # VLAN subinterface will be added - # pif = service.pifs.find { |p| p.device == 'eth0' and p.physical } - # - # Fog::Compute[:xenserver].vlans.create :tag => 123, - # :network => net, - # :pif => pif - def save + def save(pif, network) requires :tag - pif = attributes[:pif] - net = attributes[:network] - unless pif and net - raise Fog::Error.new 'save requires :pif and :network attributes' - end - ref = service.create_vlan attributes[:pif].reference, - tag, - attributes[:network].reference - data = service.get_record ref, 'VLAN' - merge_attributes data + ref = service.create_vlan(pif, tag, network) + merge_attributes service.vlans.get(ref).attributes true end end diff --git a/lib/fog/compute/xen_server/requests/create_sr.rb b/lib/fog/compute/xen_server/requests/create_sr.rb index aa74eef..18d45f4 100644 --- a/lib/fog/compute/xen_server/requests/create_sr.rb +++ b/lib/fog/compute/xen_server/requests/create_sr.rb @@ -32,18 +32,10 @@ def create_sr( host_ref, content_type = 'user', shared = false, sm_config = {} ) - + host_ref = host_ref.reference if host_ref.kind_of? Fog::Compute::XenServer::StorageRepository @connection.request( {:parser => Fog::Parsers::XenServer::Base.new, :method => 'SR.create'}, - host_ref, - device_config || {}, - physical_size || '0', - name_label, - name_description || '', - type, - content_type, - shared || false, - sm_config || {} + host_ref, device_config, physical_size, name_label, name_description, type, content_type, shared, sm_config ) end end diff --git a/lib/fog/compute/xen_server/requests/create_vlan.rb b/lib/fog/compute/xen_server/requests/create_vlan.rb index 135bce0..6efa346 100644 --- a/lib/fog/compute/xen_server/requests/create_vlan.rb +++ b/lib/fog/compute/xen_server/requests/create_vlan.rb @@ -7,15 +7,15 @@ class Real # # @see http://docs.vmd.citrix.com/XenServer/6.0.0/1.0/en_gb/api/?c=VLAN # - def create_vlan( pif_ref, vlan_id, network_ref ) + def create_vlan(pif_ref, vlan_id, network_ref) + pif_ref = pif_ref.reference if pif_ref.kind_of? Fog::Compute::XenServer::Pif + network_ref = network_ref.reference if network_ref.kind_of? Fog::Compute::XenServer::Network @connection.request( { :parser => Fog::Parsers::XenServer::Base.new, :method => 'VLAN.create' }, - pif_ref, - vlan_id.to_s, - network_ref + pif_ref, vlan_id.to_s, network_ref ) end end diff --git a/spec/fog/compute/xen_server/models/blob_spec.rb b/spec/fog/compute/xen_server/models/blob_spec.rb index f8d35e7..d053026 100644 --- a/spec/fog/compute/xen_server/models/blob_spec.rb +++ b/spec/fog/compute/xen_server/models/blob_spec.rb @@ -33,4 +33,8 @@ def self.read_identity blob_class.aliases.must_equal({ :name_description => :description, :name_label => :name }) end + + it "shouldn't have default values" do + blob_class.default_values.must_equal({}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/bond_spec.rb b/spec/fog/compute/xen_server/models/bond_spec.rb index 4b6aeed..9f8cb73 100644 --- a/spec/fog/compute/xen_server/models/bond_spec.rb +++ b/spec/fog/compute/xen_server/models/bond_spec.rb @@ -35,4 +35,8 @@ def self.read_identity :primary_slave => :__primary_slave, :slaves => :__slaves }) end + + it "shouldn't have default values" do + bond_class.default_values.must_equal({}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/console_spec.rb b/spec/fog/compute/xen_server/models/console_spec.rb index 152f3f9..09620aa 100644 --- a/spec/fog/compute/xen_server/models/console_spec.rb +++ b/spec/fog/compute/xen_server/models/console_spec.rb @@ -31,4 +31,8 @@ def self.read_identity console_class.aliases.must_equal({ :VM => :__vm, :vm => :__vm }) end + + it "shouldn't have default values" do + console_class.default_values.must_equal({}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/crash_dump_spec.rb b/spec/fog/compute/xen_server/models/crash_dump_spec.rb index b270a70..47470cd 100644 --- a/spec/fog/compute/xen_server/models/crash_dump_spec.rb +++ b/spec/fog/compute/xen_server/models/crash_dump_spec.rb @@ -32,4 +32,8 @@ def self.read_identity :VM => :__vm, :vm => :__vm }) end + + it "shouldn't have default values" do + crash_dump_class.default_values.must_equal({}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/dr_task_spec.rb b/spec/fog/compute/xen_server/models/dr_task_spec.rb index 6b10024..abdab1a 100644 --- a/spec/fog/compute/xen_server/models/dr_task_spec.rb +++ b/spec/fog/compute/xen_server/models/dr_task_spec.rb @@ -28,4 +28,8 @@ def self.read_identity dr_task_class.aliases.must_equal({ :introduced_SRs => :__introduced_srs, :introduced_srs => :__introduced_srs }) end + + it "shouldn't have default values" do + dr_task_class.default_values.must_equal({}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/gpu_group_spec.rb b/spec/fog/compute/xen_server/models/gpu_group_spec.rb index a5eb28d..ddcead2 100644 --- a/spec/fog/compute/xen_server/models/gpu_group_spec.rb +++ b/spec/fog/compute/xen_server/models/gpu_group_spec.rb @@ -38,4 +38,8 @@ def self.read_identity :VGPUs => :__vgpus, :vgpus => :__vgpus }) end + + it "shouldn't have default values" do + gpu_group_class.default_values.must_equal({}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/guest_metrics_spec.rb b/spec/fog/compute/xen_server/models/guest_metrics_spec.rb index 94de064..172976f 100644 --- a/spec/fog/compute/xen_server/models/guest_metrics_spec.rb +++ b/spec/fog/compute/xen_server/models/guest_metrics_spec.rb @@ -37,4 +37,8 @@ def self.read_identity guest_metrics_class.aliases.must_equal({ :PV_drivers_up_to_date => :pv_drivers_up_to_date, :PV_drivers_version => :pv_drivers_version }) end + + it "shouldn't have default values" do + guest_metrics_class.default_values.must_equal({}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/host_cpu_spec.rb b/spec/fog/compute/xen_server/models/host_cpu_spec.rb index 8bf89b8..87f7764 100644 --- a/spec/fog/compute/xen_server/models/host_cpu_spec.rb +++ b/spec/fog/compute/xen_server/models/host_cpu_spec.rb @@ -39,4 +39,6 @@ def self.read_identity host_cpu_class.aliases.must_equal({ :host => :__host, :modelname => :model_name }) end + + end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/host_crash_dump_spec.rb b/spec/fog/compute/xen_server/models/host_crash_dump_spec.rb index fe3aa94..0a932e6 100644 --- a/spec/fog/compute/xen_server/models/host_crash_dump_spec.rb +++ b/spec/fog/compute/xen_server/models/host_crash_dump_spec.rb @@ -30,4 +30,8 @@ def self.read_identity it 'should have 1 alias' do host_crash_dump_class.aliases.must_equal({ :host => :__host }) end + + it "shouldn't have default values" do + host_crash_dump_class.default_values.must_equal({}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/host_metrics_spec.rb b/spec/fog/compute/xen_server/models/host_metrics_spec.rb index 6e8c082..3ba0765 100644 --- a/spec/fog/compute/xen_server/models/host_metrics_spec.rb +++ b/spec/fog/compute/xen_server/models/host_metrics_spec.rb @@ -34,6 +34,10 @@ def self.read_identity host_metrics_class.aliases.must_equal({}) end + it "shouldn't have default values" do + host_metrics_class.default_values.must_equal({}) + end + describe '#last_updated' do before :each do host_metrics.last_updated = XMLRPC::DateTime.new(2000, 7, 8, 10, 20, 34) diff --git a/spec/fog/compute/xen_server/models/host_patch_spec.rb b/spec/fog/compute/xen_server/models/host_patch_spec.rb index 3960d4a..d6f73f1 100644 --- a/spec/fog/compute/xen_server/models/host_patch_spec.rb +++ b/spec/fog/compute/xen_server/models/host_patch_spec.rb @@ -38,4 +38,8 @@ def self.read_identity :name_label => :name, :pool_patch => :__pool_patch }) end + + it "shouldn't have default values" do + host_patch_class.default_values.must_equal({}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/host_spec.rb b/spec/fog/compute/xen_server/models/host_spec.rb index 7915cce..7bbb2f5 100644 --- a/spec/fog/compute/xen_server/models/host_spec.rb +++ b/spec/fog/compute/xen_server/models/host_spec.rb @@ -95,4 +95,8 @@ def self.read_identity :host_CPUs => :__host_cpus, :host_cpus => :__host_cpus }) end + + it "shouldn't have default values" do + host_class.default_values.must_equal({}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/network_spec.rb b/spec/fog/compute/xen_server/models/network_spec.rb index cd41111..98bf445 100644 --- a/spec/fog/compute/xen_server/models/network_spec.rb +++ b/spec/fog/compute/xen_server/models/network_spec.rb @@ -38,10 +38,16 @@ def self.read_identity it 'should have 7 aliases' do network_class.aliases.must_equal({ :VIFs => :__vifs, :vifs => :__vifs, - :MTU => :mtu, - :name_description => :description, + :MTU => :mtu, + :name_description => :description, :name_label => :name, :PIFs => :__pifs, :pifs => :__pifs }) end + + it 'should have 3 default values' do + network_class.default_values.must_equal(:description => '', + :name => '', + :other_config => {}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/pbd_spec.rb b/spec/fog/compute/xen_server/models/pbd_spec.rb index fe6617b..eb11fc9 100644 --- a/spec/fog/compute/xen_server/models/pbd_spec.rb +++ b/spec/fog/compute/xen_server/models/pbd_spec.rb @@ -33,4 +33,8 @@ def self.read_identity :SR => :__sr, :sr => :__sr }) end + + it "shouldn't have default values" do + pbd_class.default_values.must_equal({}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/pci_spec.rb b/spec/fog/compute/xen_server/models/pci_spec.rb index 960461b..2aa150e 100644 --- a/spec/fog/compute/xen_server/models/pci_spec.rb +++ b/spec/fog/compute/xen_server/models/pci_spec.rb @@ -33,4 +33,8 @@ def self.read_identity pci_class.aliases.must_equal({ :dependencies => :__dependencies, :host => :__host }) end + + it "shouldn't have default values" do + pci_class.default_values.must_equal({}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/pgpu_spec.rb b/spec/fog/compute/xen_server/models/pgpu_spec.rb index cf21ffc..279616c 100644 --- a/spec/fog/compute/xen_server/models/pgpu_spec.rb +++ b/spec/fog/compute/xen_server/models/pgpu_spec.rb @@ -34,4 +34,8 @@ def self.read_identity :PCI => :__pci, :pci => :__pci }) end + + it "shouldn't have default values" do + pgpu_class.default_values.must_equal({}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/pif_metrics_spec.rb b/spec/fog/compute/xen_server/models/pif_metrics_spec.rb index 8eab102..bc63629 100644 --- a/spec/fog/compute/xen_server/models/pif_metrics_spec.rb +++ b/spec/fog/compute/xen_server/models/pif_metrics_spec.rb @@ -38,4 +38,8 @@ def self.read_identity it "shouldn't have aliases" do pif_metrics_class.aliases.must_equal({}) end + + it "shouldn't have default values" do + pif_metrics_class.default_values.must_equal({}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/pif_spec.rb b/spec/fog/compute/xen_server/models/pif_spec.rb index 3047b96..f50b21d 100644 --- a/spec/fog/compute/xen_server/models/pif_spec.rb +++ b/spec/fog/compute/xen_server/models/pif_spec.rb @@ -74,4 +74,8 @@ def self.read_identity :vlan_slave_of => :__vlan_slave_of, :host => :__host }) end + + it "shouldn't have default values" do + pif_class.default_values.must_equal({}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/pool_patch_spec.rb b/spec/fog/compute/xen_server/models/pool_patch_spec.rb index f31d2b5..f335b03 100644 --- a/spec/fog/compute/xen_server/models/pool_patch_spec.rb +++ b/spec/fog/compute/xen_server/models/pool_patch_spec.rb @@ -36,4 +36,8 @@ def self.read_identity :name_description => :description, :name_label => :name }) end + + it "shouldn't have default values" do + pool_patch_class.default_values.must_equal({}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/pool_spec.rb b/spec/fog/compute/xen_server/models/pool_spec.rb index 23b5d0c..f5d887f 100644 --- a/spec/fog/compute/xen_server/models/pool_spec.rb +++ b/spec/fog/compute/xen_server/models/pool_spec.rb @@ -62,4 +62,8 @@ def self.read_identity :suspend_image_SR => :__suspend_image_sr, :suspend_image_sr => :__suspend_image_sr }) end + + it "shouldn't have default values" do + pool_class.default_values.must_equal({}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/role_spec.rb b/spec/fog/compute/xen_server/models/role_spec.rb index 2affdf8..014855c 100644 --- a/spec/fog/compute/xen_server/models/role_spec.rb +++ b/spec/fog/compute/xen_server/models/role_spec.rb @@ -31,4 +31,8 @@ def self.read_identity :name_label => :name, :subroles => :__subroles }) end + + it "shouldn't have default values" do + role_class.default_values.must_equal({}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/server_appliance_spec.rb b/spec/fog/compute/xen_server/models/server_appliance_spec.rb index 4eb6b96..319c2cb 100644 --- a/spec/fog/compute/xen_server/models/server_appliance_spec.rb +++ b/spec/fog/compute/xen_server/models/server_appliance_spec.rb @@ -34,4 +34,8 @@ def self.read_identity :VMs => :__vms, :vms => :__vms }) end + + it "shouldn't have default values" do + server_appliance_class.default_values.must_equal({}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/server_metrics_spec.rb b/spec/fog/compute/xen_server/models/server_metrics_spec.rb index e918203..dca4825 100644 --- a/spec/fog/compute/xen_server/models/server_metrics_spec.rb +++ b/spec/fog/compute/xen_server/models/server_metrics_spec.rb @@ -41,4 +41,8 @@ def self.read_identity :VCPUs_params => :vcpus_params, :VCPUs_utilisation => :vcpus_utilisation }) end + + it "shouldn't have default values" do + server_metrics_class.default_values.must_equal({}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/server_spec.rb b/spec/fog/compute/xen_server/models/server_spec.rb index fa90b97..ee624f9 100644 --- a/spec/fog/compute/xen_server/models/server_spec.rb +++ b/spec/fog/compute/xen_server/models/server_spec.rb @@ -147,6 +147,39 @@ def self.read_identity :PCI_bus => :pci_bus }) end + it 'should have 26 default values' do + server_class.default_values.must_equal(:actions_after_crash => 'Restart', + :actions_after_reboot => 'Restart', + :actions_after_shutdown => 'Destroy', + :description => '', + :hvm_boot_params => {}, + :hvm_boot_policy => '', + :is_a_template => true, + :memory_dynamic_max => '536870912', + :memory_dynamic_min => '536870912', + :memory_static_max => '536870912', + :memory_static_min => '536870912', + :name => '', + :other_config => {}, + :pci_bus => '', + :platform => { 'nx' => 'true', + 'acpi' => 'true', + 'apic' => 'true', + 'pae' => 'true', + 'viridian' => 'true' }, + :pv_args => '-- quiet console=hvc0', + :pv_bootloader => 'pygrub', + :pv_bootloader_args => '', + :pv_kernel => '', + :pv_legacy_args => '', + :pv_ramdisk => '', + :recommendations => '', + :user_version => '0', + :vcpus_at_startup => '1', + :vcpus_max => '1', + :vcpus_params => {}) + end + describe '#tools_installed?' do describe 'when guest_metrics is nil' do it 'should return false' do @@ -180,13 +213,11 @@ def service.hosts end describe '#mac_address' do - before :each do - vif.mac = 'mac' - end - it 'should return the mac address of the first virtual interface' do server.stub(:vifs, [ vif ]) do - server.mac_address.must_equal 'mac' + vif.stub(:mac, 'mac') do + server.mac_address.must_equal 'mac' + end end end end diff --git a/spec/fog/compute/xen_server/models/storage_manager_spec.rb b/spec/fog/compute/xen_server/models/storage_manager_spec.rb index 7de2f8d..f4305a0 100644 --- a/spec/fog/compute/xen_server/models/storage_manager_spec.rb +++ b/spec/fog/compute/xen_server/models/storage_manager_spec.rb @@ -39,4 +39,8 @@ def self.read_identity storage_manager_class.aliases.must_equal({ :name_description => :description, :name_label => :name }) end + + it "shouldn't have default values" do + storage_manager_class.default_values.must_equal({}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/storage_repository_spec.rb b/spec/fog/compute/xen_server/models/storage_repository_spec.rb index d4da60a..68f5858 100644 --- a/spec/fog/compute/xen_server/models/storage_repository_spec.rb +++ b/spec/fog/compute/xen_server/models/storage_repository_spec.rb @@ -49,4 +49,11 @@ def self.read_identity :VDIs => :__vdis, :vdis => :__vdis }) end + + it 'should have 4 default values' do + storage_repository_class.default_values.must_equal(:content_type => 'user', + :description => '', + :physical_size => '0', + :sm_config => {}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/tunnel_spec.rb b/spec/fog/compute/xen_server/models/tunnel_spec.rb index 78f7084..4431a12 100644 --- a/spec/fog/compute/xen_server/models/tunnel_spec.rb +++ b/spec/fog/compute/xen_server/models/tunnel_spec.rb @@ -33,4 +33,8 @@ def self.read_identity :transport_PIF => :__transport_pif, :transport_pif => :__transport_pif }) end + + it "shouldn't have default values" do + tunnel_class.default_values.must_equal({}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/vbd_metrics_spec.rb b/spec/fog/compute/xen_server/models/vbd_metrics_spec.rb index ded309c..848edda 100644 --- a/spec/fog/compute/xen_server/models/vbd_metrics_spec.rb +++ b/spec/fog/compute/xen_server/models/vbd_metrics_spec.rb @@ -33,6 +33,10 @@ def self.read_identity vbd_metrics_class.aliases.must_equal({}) end + it "shouldn't have default values" do + vbd_metrics_class.default_values.must_equal({}) + end + describe '#last_updated' do before :each do vbd_metrics.last_updated = XMLRPC::DateTime.new(2000, 7, 8, 10, 20, 34) diff --git a/spec/fog/compute/xen_server/models/vbd_spec.rb b/spec/fog/compute/xen_server/models/vbd_spec.rb index ab5121b..4fc5f58 100644 --- a/spec/fog/compute/xen_server/models/vbd_spec.rb +++ b/spec/fog/compute/xen_server/models/vbd_spec.rb @@ -51,4 +51,15 @@ def self.read_identity :vm => :__vm, :metrics => :__metrics }) end + + it 'should have 8 default values' do + vbd_class.default_values.must_equal(:bootable => true, + :mode => 'RW', + :other_config => { 'owner' => '' }, + :qos_supported_algorithms => [], + :qos_algorithm_params => {}, + :qos_algorithm_type => '', + :type => 'Disk', + :userdevice => '0') + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/vif_metrics_spec.rb b/spec/fog/compute/xen_server/models/vif_metrics_spec.rb index 64130a8..44df69f 100644 --- a/spec/fog/compute/xen_server/models/vif_metrics_spec.rb +++ b/spec/fog/compute/xen_server/models/vif_metrics_spec.rb @@ -30,4 +30,8 @@ def self.read_identity it "should't have aliases" do vif_metrics_class.aliases.must_equal({}) end + + it "shouldn't have default values" do + vif_metrics_class.default_values.must_equal({}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/vif_spec.rb b/spec/fog/compute/xen_server/models/vif_spec.rb index 160f7aa..1b20cc6 100644 --- a/spec/fog/compute/xen_server/models/vif_spec.rb +++ b/spec/fog/compute/xen_server/models/vif_spec.rb @@ -52,4 +52,13 @@ def self.read_identity :VM => :__vm, :vm => :__vm }) end + + it 'should have 6 default values' do + vif_class.default_values.must_equal(:mac => '', + :mac_autogenerated => 'True', + :mtu => '0', + :other_config => {}, + :qos_algorithm_params => {}, + :qos_algorithm_type => 'ratelimit') + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/vlan_spec.rb b/spec/fog/compute/xen_server/models/vlan_spec.rb index c617f9e..b6aecbe 100644 --- a/spec/fog/compute/xen_server/models/vlan_spec.rb +++ b/spec/fog/compute/xen_server/models/vlan_spec.rb @@ -33,4 +33,8 @@ def self.read_identity :tagged_PIF => :__tagged_pif, :tagged_pif => :__tagged_pif }) end + + it "shouldn't have default values" do + vlan_class.default_values.must_equal({}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/vmpp_spec.rb b/spec/fog/compute/xen_server/models/vmpp_spec.rb index e9d34d4..395fc45 100644 --- a/spec/fog/compute/xen_server/models/vmpp_spec.rb +++ b/spec/fog/compute/xen_server/models/vmpp_spec.rb @@ -48,4 +48,8 @@ def self.read_identity :VMs => :__vms, :vms => :__vms }) end + + it "shouldn't have default values" do + vmpp_class.default_values.must_equal({}) + end end \ No newline at end of file diff --git a/spec/fog/compute/xen_server/models/vtpm_spec.rb b/spec/fog/compute/xen_server/models/vtpm_spec.rb index 7204922..a57db24 100644 --- a/spec/fog/compute/xen_server/models/vtpm_spec.rb +++ b/spec/fog/compute/xen_server/models/vtpm_spec.rb @@ -29,4 +29,8 @@ def self.read_identity vtpm_class.aliases.must_equal({ :backend => :__backend, :vm => :__vm }) end + + it "shouldn't have default values" do + vtpm_class.default_values.must_equal({}) + end end \ No newline at end of file