Add Puppet 4.x lint checks

This changes the puppet-lint requirement to 1.1.x, so that we can use
puppet-lint plugins.  Most of these plugins are for 4.x compat, but some
just catch common errors.

This commit also remove custom metadata rake task (this task is now
provided by puppetlabs_spec_helper).

Conflicts:
	Gemfile

Change-Id: I22369948db6a2f8ddab9b8c93c3a047ff2e229ca
This commit is contained in:
Sebastien Badia 2015-02-22 22:14:37 +01:00 committed by Gael Chamoulaud
parent 55b7aad8cf
commit 565c78cc7f
17 changed files with 41 additions and 35 deletions

15
Gemfile
View File

@ -2,9 +2,20 @@ source 'https://rubygems.org'
group :development, :test do
gem 'puppetlabs_spec_helper', :require => false
gem 'rspec-puppet', '~> 2.0.0'
gem 'puppet-lint-param-docs'
gem 'rspec-puppet', '~> 2.0.0', :require => false
gem 'metadata-json-lint'
gem 'puppet-lint-param-docs'
gem 'puppet-lint-absolute_classname-check'
gem 'puppet-lint-absolute_template_path'
gem 'puppet-lint-trailing_newline-check'
# Puppet 4.x related lint checks
gem 'puppet-lint-unquoted_string-check'
gem 'puppet-lint-leading_zero-check'
gem 'puppet-lint-variable_contains_upcase'
gem 'puppet-lint-numericvariable'
gem 'json'
gem 'webmock'
end

View File

@ -10,8 +10,3 @@ PuppetLint.configuration.send('disable_only_variable_string')
exclude_tests_paths = ['pkg/**/*','vendor/**/*']
PuppetLint.configuration.ignore_paths = exclude_tests_paths
PuppetSyntax.exclude_paths = exclude_tests_paths
desc "Lint metadata.json file"
task :metadata do
sh "metadata-json-lint metadata.json"
end

View File

@ -4,39 +4,39 @@ node default {
}
# First, install a mysql server
class { 'mysql::server': }
class { '::mysql::server': }
# And create the database
class { 'ceilometer::db::mysql':
class { '::ceilometer::db::mysql':
password => 'ceilometer',
}
# Add the base ceilometer class & parameters
# This class is required by ceilometer agents & api classes
# The metering_secret parameter is mandatory
class { 'ceilometer':
class { '::ceilometer':
metering_secret => 'darksecret'
}
# Configure the ceilometer database
# Only needed if ceilometer::agent::central or ceilometer::api are declared
class { 'ceilometer::db':
class { '::ceilometer::db':
}
# Configure ceilometer database with mongodb
# class { 'ceilometer::db':
# class { '::ceilometer::db':
# database_connection => 'mongodb://localhost:27017/ceilometer',
# require => Class['mongodb'],
# }
# Install the ceilometer-api service
# The keystone_password parameter is mandatory
class { 'ceilometer::api':
class { '::ceilometer::api':
keystone_password => 'tralalayouyou'
}
# Set common auth parameters used by all agents (compute/central)
class { 'ceilometer::agent::auth':
class { '::ceilometer::agent::auth':
auth_url => 'http://localhost:35357/v2.0',
auth_password => 'tralalerotralala'
}
@ -59,7 +59,7 @@ node default {
# ipmi_namespace => true
# }
# As default use central and compute polling namespaces
class { 'ceilometer::agent::polling':
class { '::ceilometer::agent::polling':
central_namespace => true,
compute_namespace => true,
ipmi_namespace => false,
@ -75,20 +75,20 @@ node default {
# }
# Install alarm notifier
class { 'ceilometer::alarm::notifier':
class { '::ceilometer::alarm::notifier':
}
# Install alarm evaluator
class { 'ceilometer::alarm::evaluator':
class { '::ceilometer::alarm::evaluator':
}
# Purge 1 month old meters
class { 'ceilometer::expirer':
class { '::ceilometer::expirer':
time_to_live => '2592000'
}
# Install notification agent
class { 'ceilometer::agent::notification':
class { '::ceilometer::agent::notification':
}
}

View File

@ -25,7 +25,7 @@ class ceilometer::agent::central (
$coordination_url = undef,
) {
include ceilometer::params
include ::ceilometer::params
Ceilometer_config<||> ~> Service['ceilometer-agent-central']

View File

@ -22,7 +22,7 @@ class ceilometer::agent::compute (
warning('This class is deprecated. Please use ceilometer::agent::polling with compute namespace instead.')
include ceilometer::params
include ::ceilometer::params
Ceilometer_config<||> ~> Service['ceilometer-agent-compute']

View File

@ -52,7 +52,7 @@ class ceilometer::agent::notification (
$package_ensure = 'present',
) {
include ceilometer::params
include ::ceilometer::params
Ceilometer_config<||> ~> Service['ceilometer-agent-notification']

View File

@ -40,7 +40,7 @@ class ceilometer::agent::polling (
$coordination_url = undef,
) inherits ceilometer {
include ceilometer::params
include ::ceilometer::params
if $central_namespace {
$central_namespace_name = 'central'

View File

@ -39,7 +39,7 @@ class ceilometer::alarm::evaluator (
$coordination_url = undef,
) {
include ceilometer::params
include ::ceilometer::params
validate_re("${evaluation_interval}",'^(\d+)$')

View File

@ -34,7 +34,7 @@ class ceilometer::alarm::notifier (
$rest_notifier_ssl_verify = true,
) {
include ceilometer::params
include ::ceilometer::params
validate_bool($rest_notifier_ssl_verify)

View File

@ -76,8 +76,8 @@ class ceilometer::api (
$port = '8777'
) {
include ceilometer::params
include ceilometer::policy
include ::ceilometer::params
include ::ceilometer::policy
validate_string($keystone_password)

View File

@ -9,7 +9,7 @@ class ceilometer::client (
$ensure = 'present'
) {
include ceilometer::params
include ::ceilometer::params
package { 'python-ceilometerclient':
ensure => $ensure,

View File

@ -19,7 +19,7 @@ class ceilometer::collector (
$package_ensure = 'present',
) {
include ceilometer::params
include ::ceilometer::params
Ceilometer_config<||> ~> Service['ceilometer-collector']

View File

@ -18,7 +18,7 @@ class ceilometer::db (
$mysql_module = undef,
) {
include ceilometer::params
include ::ceilometer::params
if $mysql_module {
warning('The mysql_module parameter is deprecated. The latest 2.x mysql module will be used.')
@ -33,7 +33,7 @@ class ceilometer::db (
/^mysql:\/\//: {
$backend_package = false
include mysql::bindings::python
include ::mysql::bindings::python
}
/^postgresql:\/\//: {
$backend_package = $::ceilometer::params::psycopg_package_name

View File

@ -51,7 +51,7 @@ class ceilometer::expirer (
$weekday = '*',
) {
include ceilometer::params
include ::ceilometer::params
Package<| title == 'ceilometer-common' |> -> Class['ceilometer::expirer']

View File

@ -112,7 +112,7 @@ class ceilometer(
validate_string($metering_secret)
include ceilometer::params
include ::ceilometer::params
if $kombu_ssl_ca_certs and !$rabbit_use_ssl {
fail('The kombu_ssl_ca_certs parameter requires rabbit_use_ssl to be set to true')

View File

@ -125,7 +125,7 @@ class ceilometer::keystone::auth (
$real_service_name = $auth_name
}
keystone::resource::service_identity { $auth_name:
::keystone::resource::service_identity { $auth_name:
configure_user => $configure_user,
configure_user_role => $configure_user_role,
configure_endpoint => $configure_endpoint,

View File

@ -102,7 +102,7 @@ class ceilometer::wsgi::apache (
include ::apache::mod::ssl
}
openstacklib::wsgi::apache { 'ceilometer_wsgi':
::openstacklib::wsgi::apache { 'ceilometer_wsgi':
bind_host => $bind_host,
bind_port => $port,
group => 'ceilometer',