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
|
/InstalledFiles
|
||||||
**/pkg/
|
**/pkg/
|
||||||
/spec/reports/
|
/spec/reports/
|
||||||
|
/spec/fixtures/modules/*
|
||||||
/test/tmp/
|
/test/tmp/
|
||||||
/test/version_tmp/
|
/test/version_tmp/
|
||||||
/tmp/
|
/tmp/
|
||||||
|
1
Rakefile
1
Rakefile
@ -1,6 +1,7 @@
|
|||||||
require 'rubygems'
|
require 'rubygems'
|
||||||
require 'puppetlabs_spec_helper/rake_tasks'
|
require 'puppetlabs_spec_helper/rake_tasks'
|
||||||
require 'puppet-lint/tasks/puppet-lint'
|
require 'puppet-lint/tasks/puppet-lint'
|
||||||
|
require 'rspec/core/rake_task'
|
||||||
PuppetLint.configuration.send('disable_80chars')
|
PuppetLint.configuration.send('disable_80chars')
|
||||||
PuppetLint.configuration.send('disable_autoloader_layout')
|
PuppetLint.configuration.send('disable_autoloader_layout')
|
||||||
PuppetLint.configuration.ignore_paths = ["spec/**/*.pp", "pkg/**/*.pp"]
|
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
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# 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",
|
"issues_url": "https://midonet.atlassian.net/projects/MDT",
|
||||||
"dependencies": [
|
"dependencies": [
|
||||||
{ "name":"ripienaar-module_data","version_requirement":">=0.0.3" },
|
{ "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-zookeeper","version_requirement":">=1.0.0" },
|
||||||
{ "name":"midonet-cassandra","version_requirement":">=1.0.0" },
|
{ "name":"midonet-cassandra","version_requirement":">=1.0.0" },
|
||||||
{ "name":"puppetlabs-apt","version_requirement":">=1.7.0 <2.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;
|
exit 1;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test 'midonetrc file is created' {
|
||||||
|
run bash -c "file /root/.midonetrc"
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user