Creating the .midonetrc file
Introduce rspec tests for this functionality Change-Id: Ib52d2d3d7cfe4301af0f423d186fe01c3590918f
This commit is contained in:
parent
8c353be83b
commit
74bcc6babd
7
.fixtures.yml
Normal file
7
.fixtures.yml
Normal file
@ -0,0 +1,7 @@
|
||||
fixtures:
|
||||
forge_modules:
|
||||
apt:
|
||||
repo: "puppetlabs-apt"
|
||||
ref: "1.8.0"
|
||||
stdlib: "puppetlabs-stdlib"
|
||||
inifile: "puppetlabs-inifile"
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -5,6 +5,7 @@
|
||||
/InstalledFiles
|
||||
**/pkg/
|
||||
/spec/reports/
|
||||
/spec/fixtures/modules/*
|
||||
/test/tmp/
|
||||
/test/version_tmp/
|
||||
/tmp/
|
||||
|
1
Rakefile
1
Rakefile
@ -1,6 +1,7 @@
|
||||
require 'rubygems'
|
||||
require 'puppetlabs_spec_helper/rake_tasks'
|
||||
require 'puppet-lint/tasks/puppet-lint'
|
||||
require 'rspec/core/rake_task'
|
||||
PuppetLint.configuration.send('disable_80chars')
|
||||
PuppetLint.configuration.send('disable_autoloader_layout')
|
||||
PuppetLint.configuration.ignore_paths = ["spec/**/*.pp", "pkg/**/*.pp"]
|
||||
|
22
lib/puppet/provider/midonet_client_conf/ini_setting.rb
Normal file
22
lib/puppet/provider/midonet_client_conf/ini_setting.rb
Normal file
@ -0,0 +1,22 @@
|
||||
Puppet::Type.type(:midonet_client_conf).provide(
|
||||
:ini_setting,
|
||||
:parent => Puppet::Type.type(:ini_setting).provider(:ruby)
|
||||
) do
|
||||
|
||||
def section
|
||||
resource[:name].split('/', 2).first
|
||||
end
|
||||
|
||||
def setting
|
||||
resource[:name].split('/', 2).last
|
||||
end
|
||||
|
||||
def setparator
|
||||
'='
|
||||
end
|
||||
|
||||
def file_path
|
||||
'/root/.midonetrc'
|
||||
end
|
||||
|
||||
end
|
29
lib/puppet/type/midonet_client_conf.rb
Normal file
29
lib/puppet/type/midonet_client_conf.rb
Normal file
@ -0,0 +1,29 @@
|
||||
Puppet::Type.newtype(:midonet_client_conf) do
|
||||
|
||||
ensurable
|
||||
|
||||
newparam(:name, :namevar => true) do
|
||||
desc 'Section/setting name to manage from .midonetrc'
|
||||
newvalues(/\S+\/\S+/)
|
||||
end
|
||||
|
||||
autorequire(:package) do ['python-midonetclient'] end
|
||||
|
||||
newproperty(:value) do
|
||||
desc 'The value of the setting to be defined.'
|
||||
munge do |value|
|
||||
value = value.to_s.strip
|
||||
value.capitalize! if value =~ /^(true|false)$/i
|
||||
value
|
||||
end
|
||||
|
||||
def is_to_s( currentvalue )
|
||||
return currentvalue
|
||||
end
|
||||
|
||||
def should_to_s( newvalue )
|
||||
return newvalue
|
||||
end
|
||||
end
|
||||
|
||||
end
|
@ -30,12 +30,25 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
class midonet::midonet_cli {
|
||||
class midonet::midonet_cli(
|
||||
$api_endpoint='http://127.0.0.1:8080/midonet-api',
|
||||
$username='admin',
|
||||
$password='admin',
|
||||
$tenant_name='admin',
|
||||
) {
|
||||
|
||||
require midonet::repository
|
||||
require midonet::repository
|
||||
|
||||
package {'python-midonetclient':
|
||||
ensure => present,
|
||||
require => Exec['update-midonet-repos']
|
||||
}
|
||||
|
||||
midonet_client_conf {
|
||||
'cli/api_url': value => $api_endpoint;
|
||||
'cli/username': value => $username;
|
||||
'cli/password': value => $password;
|
||||
'cli/project_id': value => $tenant_name;
|
||||
}
|
||||
|
||||
package {'python-midonetclient':
|
||||
ensure => present,
|
||||
require => Exec['update-midonet-repos']
|
||||
}
|
||||
}
|
||||
|
@ -9,6 +9,7 @@
|
||||
"issues_url": "https://midonet.atlassian.net/projects/MDT",
|
||||
"dependencies": [
|
||||
{ "name":"ripienaar-module_data","version_requirement":">=0.0.3" },
|
||||
{ "name": "puppetlabs/inifile", "version_requirement": ">=1.0.0 <2.0.0" },
|
||||
{ "name":"midonet-zookeeper","version_requirement":">=1.0.0" },
|
||||
{ "name":"midonet-cassandra","version_requirement":">=1.0.0" },
|
||||
{ "name":"puppetlabs-apt","version_requirement":">=1.7.0 <2.0.0" },
|
||||
|
68
spec/classes/midonet_client_spec.rb
Normal file
68
spec/classes/midonet_client_spec.rb
Normal file
@ -0,0 +1,68 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'midonet::midonet_cli' do
|
||||
|
||||
let :pre_condition do
|
||||
"class {'midonet::repository':
|
||||
midonet_repo => 'fake',
|
||||
midonet_openstack_repo => 'fake',
|
||||
midonet_thirdparty_repo => 'fake',
|
||||
midonet_stage => 'fake',
|
||||
openstack_release => 'fake',
|
||||
midonet_key => '35FEEF2BAD40EA777D0C5BA6FCE340D250F18FCF',
|
||||
midonet_key_url => 'http://repo.midonet.org/packages.midokura.com'
|
||||
}"
|
||||
end
|
||||
|
||||
let :default_params do
|
||||
{
|
||||
:api_endpoint => 'http://87.23.43.2:8080/midonet-api',
|
||||
:username => 'midonet',
|
||||
:password => 'dummy',
|
||||
:tenant_name => 'midonet'
|
||||
}
|
||||
end
|
||||
|
||||
shared_examples_for 'midonet client' do
|
||||
let :params do
|
||||
{}
|
||||
end
|
||||
|
||||
before do
|
||||
params.merge!(default_params)
|
||||
end
|
||||
|
||||
it 'should have the package installed' do
|
||||
is_expected.to contain_package('python-midonetclient')
|
||||
end
|
||||
|
||||
it 'should create .midonetrc file' do
|
||||
is_expected.to contain_midonet_client_conf('cli/api_url').with_value(params[:api_endpoint])
|
||||
is_expected.to contain_midonet_client_conf('cli/username').with_value(params[:username])
|
||||
is_expected.to contain_midonet_client_conf('cli/password').with_value(params[:password])
|
||||
is_expected.to contain_midonet_client_conf('cli/project_id').with_value(params[:tenant_name])
|
||||
end
|
||||
end
|
||||
|
||||
context 'on Debian' do
|
||||
let :facts do
|
||||
{
|
||||
:osfamily => 'Debian',
|
||||
:lsbdistrelease => '14.04',
|
||||
:lsbdistid => 'Ubuntu'
|
||||
}
|
||||
end
|
||||
it_configures 'midonet client'
|
||||
end
|
||||
|
||||
context 'on RedHat' do
|
||||
let :facts do
|
||||
{
|
||||
:osfamily => 'RedHat',
|
||||
:operatingsystemmajrelease => 7,
|
||||
}
|
||||
end
|
||||
it_configures 'midonet client'
|
||||
end
|
||||
|
||||
end
|
12
spec/spec_helper.rb
Normal file
12
spec/spec_helper.rb
Normal file
@ -0,0 +1,12 @@
|
||||
require 'rspec-puppet'
|
||||
require 'puppetlabs_spec_helper/module_spec_helper'
|
||||
|
||||
|
||||
fixture_path = File.expand_path(File.join(__FILE__, '..', 'fixtures'))
|
||||
|
||||
RSpec.configure do |c|
|
||||
c.alias_it_should_behave_like_to :it_configures, 'configures'
|
||||
c.alias_it_should_behave_like_to :it_raises, 'raises'
|
||||
c.module_path = File.join(fixture_path, 'modules')
|
||||
c.manifest_dir = File.join(fixture_path, 'manifests')
|
||||
end
|
@ -153,3 +153,8 @@ get_distro
|
||||
exit 1;
|
||||
esac
|
||||
}
|
||||
|
||||
@test 'midonetrc file is created' {
|
||||
run bash -c "file /root/.midonetrc"
|
||||
[ "$status" -eq 0 ]
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user