Files
puppet-nova/spec/unit/provider/nova_flavor/openstack_spec.rb
Trevor McCasland 0986087729 Add nova flavor provider
Nova is not including flavors by default anymore so there needs to be
a way to create flavors with puppet. This change adds a nova_flavor
provider for adding and removing flavors. Additionally the provider can
be used to manage properties on flavors. Since flavor information cannot
be updated after creation time, only the properties can be managed after
creation via the nova_flavor provider.

Change-Id: Ic370ac65990d0b3a360340632ada4016231c8a93
Related-Bug: #1564928
Co-Authored-By: Alex Schultz <aschultz@mirantis.com>
2016-05-04 09:06:00 -06:00

61 lines
1.6 KiB
Ruby

require 'puppet'
require 'spec_helper'
require 'puppet/provider/nova_flavor/openstack'
provider_class = Puppet::Type.type(:nova_flavor).provider(:openstack)
describe provider_class do
describe 'managing flavors' do
let(:flavor_attrs) do
{
:name => 'example',
:id => '1',
:ram => '512',
:disk => '1',
:vcpus => '1',
:ensure => 'present',
}
end
let :resource do
Puppet::Type::Nova_flavor.new(flavor_attrs)
end
let(:provider) do
provider_class.new(resource)
end
describe '#create' do
it 'creates flavor' do
provider.class.stubs(:openstack)
.with('flavor', 'list', ['--long', '--all'])
.returns('"ID", "Name", "RAM", "Disk", "Ephemeral", "VCPUs", "Is Public", "Swap", "RXTX Factor", "Properties"')
provider.class.stubs(:openstack)
.with('flavor', 'create', 'shell', ['example', '--public', '--id', '1', '--ram', '512', '--disk', '1', '--vcpus', '1'])
.returns('os-flv-disabled:disabled="False"
os-flv-ext-data:ephemeral="0"
disk="1"
id="1"
name="example"
os-flavor-access:is_public="True"
ram="512"
rxtx_factor="1.0"
swap=""
vcpus="1"')
end
end
describe '#destroy' do
it 'removes flavor' do
provider_class.expects(:openstack)
.with('flavor', 'delete', '1')
provider.instance_variable_set(:@property_hash, flavor_attrs)
provider.destroy
expect(provider.exists?).to be_falsey
end
end
end
end