Added Kitchen tests and Travis
diff --git a/.kitchen.yml b/.kitchen.yml
new file mode 100644
index 0000000..c422fbe
--- /dev/null
+++ b/.kitchen.yml
@@ -0,0 +1,58 @@
+---
+driver:
+ name: docker
+ hostname: ceilometer.ci.local
+ use_sudo: false
+
+provisioner:
+ name: salt_solo
+ salt_install: bootstrap
+ salt_bootstrap_url: https://bootstrap.saltstack.com
+ salt_version: latest
+ require_chef: false
+ log_level: error
+ formula: ceilometer
+ grains:
+ noservices: True
+ state_top:
+ base:
+ "*":
+ - ceilometer
+ pillars:
+ top.sls:
+ base:
+ "*":
+ - ceilometer
+
+verifier:
+ name: inspec
+ sudo: true
+
+platforms:
+ - name: ubuntu-xenial
+ driver_config:
+ image: trevorj/salty-whales:xenial
+ platform: ubuntu
+
+suites:
+
+ - name: agent_cluster
+ provisioner:
+ pillars-from-files:
+ ceilometer.sls: tests/pillar/agent_cluster.sls
+
+ - name: agent_single
+ provisioner:
+ pillars-from-files:
+ ceilometer.sls: tests/pillar/agent_single.sls
+
+ - name: server_cluster
+ provisioner:
+ pillars-from-files:
+ ceilometer.sls: tests/pillar/server_cluster.sls
+
+ - name: server_single
+ provisioner:
+ pillars-from-files:
+ ceilometer.sls: tests/pillar/server_single.sls
+# vim: ft=yaml sw=2 ts=2 sts=2 tw=125
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..4c8e84e
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,29 @@
+sudo: required
+services:
+ - docker
+
+install:
+ - pip install PyYAML
+ - pip install virtualenv
+ - |
+ test -e Gemfile || cat <<EOF > Gemfile
+ source 'https://rubygems.org'
+ gem 'rake'
+ gem 'test-kitchen'
+ gem 'kitchen-docker'
+ gem 'kitchen-inspec'
+ gem 'inspec'
+ gem 'kitchen-salt', :git => 'https://github.com/epcim/kitchen-salt.git', :branch => 'dependencis-pkg-repo2'
+ #Waiting for PR#78
+ #gem 'kitchen-salt', '>=0.2.25'
+ - bundle install
+
+env:
+ - PLATFORM=trevorj/salty-whales:trusty
+ - PLATFORM=trevorj/salty-whales:xenial
+
+before_script:
+ - make test | tail
+
+script:
+ - test ! -e .kitchen.yml || bundle exec kitchen test -t tests/integration
diff --git a/ceilometer/files/liberty/ceilometer-agent.conf.Debian b/ceilometer/files/liberty/ceilometer-agent.conf.Debian
index 0234a65..9c7164a 100644
--- a/ceilometer/files/liberty/ceilometer-agent.conf.Debian
+++ b/ceilometer/files/liberty/ceilometer-agent.conf.Debian
@@ -385,6 +385,13 @@
# value)
# Deprecated group/name - [DEFAULT]/rabbit_host
#rabbit_host = localhost
+{%- if agent.message_queue.members is defined %}
+rabbit_hosts = {% for member in agent.message_queue.members -%}
+ {{ member.host }}:{{ member.get('port', 5672) }}
+ {%- if not loop.last -%},{%- endif -%}
+ {%- endfor -%}
+{%- else %}
+
rabbit_host = {{ agent.message_queue.host }}
# The RabbitMQ broker port where a single node is used. (integer
@@ -397,6 +404,8 @@
# Deprecated group/name - [DEFAULT]/rabbit_hosts
#rabbit_hosts = $rabbit_host:$rabbit_port
+{%- endif %}
+
# Connect over SSL for RabbitMQ. (boolean value)
# Deprecated group/name - [DEFAULT]/rabbit_use_ssl
#rabbit_use_ssl = false
diff --git a/ceilometer/files/mitaka/ceilometer-server.conf.Debian b/ceilometer/files/mitaka/ceilometer-server.conf.Debian
index ba2a790..95c0a9d 100644
--- a/ceilometer/files/mitaka/ceilometer-server.conf.Debian
+++ b/ceilometer/files/mitaka/ceilometer-server.conf.Debian
@@ -193,7 +193,13 @@
# Deprecated group/name - [DEFAULT]/sql_connection
# Deprecated group/name - [DATABASE]/sql_connection
# Deprecated group/name - [sql]/connection
+{%- if server.database.influxdb.members is defined %}
+metering_connection = {% for member in server.database.influxdb.members -%}
+ stacklight://{{ server.database.influxdb.user }}:{{ server.database.influxdb.password }}@{% for member in server.database.influxdb.members %}{{ member.host }}:{{ member.port }}{% if not loop.last %},{% endif %}{% endfor %}/{{ server.database.influxdb.name }}
+ {%- endfor -%}
+{%- else %}
metering_connection = stacklight://{{ server.database.influxdb.user }}:{{ server.database.influxdb.password }}@{{ server.database.influxdb.host }}:{{ server.database.influxdb.port }}/{{ server.database.influxdb.database }}
+{%- endif %}
{%- if server.database.elasticsearch.enabled %}
resource_connection = es://{{ server.database.elasticsearch.host}}:{{server.database.elasticsearch.port }}
diff --git a/tests/pillar/agent_cluster.sls b/tests/pillar/agent_cluster.sls
index 9e7ae5c..a072236 100644
--- a/tests/pillar/agent_cluster.sls
+++ b/tests/pillar/agent_cluster.sls
@@ -16,8 +16,13 @@
endpoint_type: internalURL
message_queue:
engine: rabbitmq
- host: 127.0.0.1
- port: 5672
+ members:
+ - host: 127.0.0.1
+ port: 5672
+ - host: 127.0.0.1
+ port: 5672
+ - host: 127.0.0.1
+ port: 5672
user: openstack
password: ${_param:rabbitmq_openstack_password}
virtual_host: '/openstack'
diff --git a/tests/pillar/server_cluster.sls b/tests/pillar/server_cluster.sls
index 2cd6eb4..0723a4d 100644
--- a/tests/pillar/server_cluster.sls
+++ b/tests/pillar/server_cluster.sls
@@ -23,22 +23,31 @@
engine: rabbitmq
members:
- host: 127.0.0.1
+ port: 5672
- host: 127.0.0.1
+ port: 5672
- host: 127.0.0.1
+ port: 5672
user: openstack
password: password
virtual_host: '/openstack'
# Workaround for https://bugs.launchpad.net/ceilometer/+bug/1337715
rpc_thread_pool_size: 5
database:
- engine: mongodb
- members:
- - host: 127.0.0.1
- port: 27017
- - host: 127.0.0.1
- port: 27017
- - host: 127.0.0.1
- port: 27017
- name: ceilometer
- user: ceilometer
- password: password
+ engine: influxdb
+ influxdb:
+ members:
+ - host: 127.0.0.1
+ port: 8086
+ - host: 127.0.0.1
+ port: 8086
+ - host: 127.0.0.1
+ port: 8086
+ name: ceilometer
+ user: ceilometer
+ password: password
+ database: database
+ elasticsearch:
+ enabled: true
+ host: 127.0.0.1
+ port: 8086
diff --git a/tests/pillar/server_single.sls b/tests/pillar/server_single.sls
index 1b75393..444c399 100644
--- a/tests/pillar/server_single.sls
+++ b/tests/pillar/server_single.sls
@@ -29,9 +29,15 @@
# Workaround for https://bugs.launchpad.net/ceilometer/+bug/1337715
rpc_thread_pool_size: 5
database:
- engine: mongodb
- host: 127.0.0.1
- port: 27017
- name: ceilometer
- user: ceilometer
- password: password
+ engine: influxdb
+ influxdb:
+ host: 127.0.0.1
+ port: 8086
+ name: ceilometer
+ user: ceilometer
+ password: password
+ database: database
+ elasticsearch:
+ enabled: true
+ host: 127.0.0.1
+ port: 8086