diff --git a/.gitignore b/.gitignore index 398a474..3fae405 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ .build Gemfile.lock .tox +.bundled_gems diff --git a/deployment_scripts/puppet/manifests/Gemfile b/deployment_scripts/puppet/manifests/Gemfile new file mode 100644 index 0000000..8784017 --- /dev/null +++ b/deployment_scripts/puppet/manifests/Gemfile @@ -0,0 +1,24 @@ +# Copyright 2015 Mirantis, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +source 'https://rubygems.org' + +group :development, :test do + gem 'rake' + gem "puppet", ENV['PUPPET_VERSION'] || '~> 3.4.0' + gem 'puppetlabs_spec_helper' + # Need to use master branch of puppet-lint because of + # # https://github.com/rodjek/puppet-lint/issues/355 + gem 'puppet-lint', :git => 'https://github.com/rodjek/puppet-lint.git' +end + diff --git a/deployment_scripts/puppet/manifests/Rakefile b/deployment_scripts/puppet/manifests/Rakefile new file mode 100644 index 0000000..9f2b0c1 --- /dev/null +++ b/deployment_scripts/puppet/manifests/Rakefile @@ -0,0 +1,13 @@ +require 'puppet-lint/tasks/puppet-lint' +require 'puppet-syntax/tasks/puppet-syntax' + +PuppetLint.configuration.fail_on_warnings = true +PuppetLint.configuration.send('disable_80chars') +PuppetLint.configuration.send('disable_class_inherits_from_params_class') +PuppetLint.configuration.send('disable_class_parameter_defaults') + +desc "Run lint and syntax tests." +task :test => [ + :lint, + :syntax, +] diff --git a/deployment_scripts/puppet/manifests/nagios.pp b/deployment_scripts/puppet/manifests/nagios.pp index 21cab4d..8e53cea 100644 --- a/deployment_scripts/puppet/manifests/nagios.pp +++ b/deployment_scripts/puppet/manifests/nagios.pp @@ -44,11 +44,10 @@ if $storage_options['objects_ceph']{ } class { 'lma_infra_alerting': - openstack_deployment_name => $env_id, - openstack_management_vip => $management_vip, - additional_services => keys($services), - # UI password - password => $password, + openstack_deployment_name => $env_id, + openstack_management_vip => $management_vip, + additional_services => keys($services), + password => $password, } class { 'lma_infra_alerting::nagios::contact': @@ -141,19 +140,19 @@ $influxdb_node_name = $influxdb_grafana['node_name'] $influxdb_nodes = filter_nodes(hiera('nodes'), 'user_node_name', $influxdb_node_name) if ! empty($influxdb_nodes){ lma_infra_alerting::nagios::check_http { 'Grafana': - host_name => $influxdb_nodes[0]['name'], - port => $lma_infra_alerting::params::grafana_port, - url => '/login', - custom_var_address => 'internal_address', - string_expected_in_content => 'grafana', + host_name => $influxdb_nodes[0]['name'], + port => $lma_infra_alerting::params::grafana_port, + url => '/login', + custom_var_address => 'internal_address', + string_expected_in_content => 'grafana', } lma_infra_alerting::nagios::check_http { 'InfluxDB': - host_name => $influxdb_nodes[0]['name'], - port => $lma_infra_alerting::params::influxdb_port, - url => '/ping', - custom_var_address => 'internal_address', - string_expected_in_status => '204 No Content', - string_expected_in_headers => 'X-Influxdb-Version', + host_name => $influxdb_nodes[0]['name'], + port => $lma_infra_alerting::params::influxdb_port, + url => '/ping', + custom_var_address => 'internal_address', + string_expected_in_status => '204 No Content', + string_expected_in_headers => 'X-Influxdb-Version', } } @@ -163,19 +162,19 @@ $es_node_name = $es_kibana['node_name'] $es_kibana_nodes = filter_nodes(hiera('nodes'), 'user_node_name', $es_node_name) if ! empty($es_kibana_nodes){ lma_infra_alerting::nagios::check_http { 'Kibana': - host_name => $es_kibana_nodes[0]['name'], - port => $lma_infra_alerting::params::kibana_port, - url => '/', - custom_var_address => 'internal_address', - string_expected_in_content => 'Kibana 3', + host_name => $es_kibana_nodes[0]['name'], + port => $lma_infra_alerting::params::kibana_port, + url => '/', + custom_var_address => 'internal_address', + string_expected_in_content => 'Kibana 3', } lma_infra_alerting::nagios::check_http { 'Elasticsearch': - host_name => $es_kibana_nodes[0]['name'], - port => $lma_infra_alerting::params::elasticserach_port, - url => '/', - custom_var_address => 'internal_address', - string_expected_in_content => '"status" : 200', + host_name => $es_kibana_nodes[0]['name'], + port => $lma_infra_alerting::params::elasticserach_port, + url => '/', + custom_var_address => 'internal_address', + string_expected_in_content => '"status" : 200', } } diff --git a/tox.ini b/tox.ini index 9c878fb..8de6c54 100644 --- a/tox.ini +++ b/tox.ini @@ -1,19 +1,42 @@ [tox] -envlist = nagios,lma_infra_alerting +envlist = manifests,nagios,lma_infra_alerting skipsdist = True +[testenv:manifests] +deps = +changedir = {toxinidir}/deployment_scripts/puppet/manifests +whitelist_externals = + mkdir + bundle +setenv = + GEM_HOME={toxinidir}/.bundled_gems +commands = + mkdir -p {toxinidir}/.bundled_gems + bundle install + bundle exec rake test + [testenv:nagios] deps = changedir = {toxinidir}/deployment_scripts/puppet/modules/{envname} -whitelist_externals = bundle +whitelist_externals = + mkdir + bundle +setenv = + GEM_HOME={toxinidir}/.bundled_gems commands = + mkdir -p {toxinidir}/.bundled_gems bundle install bundle exec rake test [testenv:lma_infra_alerting] deps = changedir = {toxinidir}/deployment_scripts/puppet/modules/{envname} -whitelist_externals = bundle +whitelist_externals = + mkdir + bundle +setenv = + GEM_HOME={toxinidir}/.bundled_gems commands = + mkdir -p {toxinidir}/.bundled_gems bundle install bundle exec rake test