9 echo '#!/usr/bin/env python
11 connection = pika.BlockingConnection(pika.ConnectionParameters(host="127.0.0.1"))
12 channel = connection.channel()
13 channel.queue_declare(queue="notifications.info")
14 test=r'"'"'{"event_type": "compute.instance.update", "_unique_id": "fake", "payload": {"ephemeral_gb": 0, "instance_id": "fake", "user_id": "fake", "root_gb": 0, "tenant_id": "fake", "memory_mb": 64, "vcpus": 1}, "priority": "INFO"}'"'"'
15 channel.basic_publish(exchange="nova", routing_key="notifications.info",
16 properties=pika.BasicProperties(priority=0, delivery_mode=2, headers="", content_encoding="utf-8", content_type="application/json"),
18 print " [x] Message was sent!"
19 connection.close()' > $(pwd)/send.py
23 mkdir -p /var/log/ceilometer
25 api_paste_config = /etc/ceilometer/api_paste.ini
26 policy_file = /etc/ceilometer/policy.json
29 log_file = /var/log/ceilometer/$package.log
30 rpc_backend = ceilometer.openstack.common.rpc.impl_kombu
33 connection=sqlite:////tmp/ceilometer" > /etc/ceilometer/ceilometer.conf
35 ceilometer-dbsync --config-file /etc/ceilometer/ceilometer.conf
36 if [ $? != "0" ]; then
41 rm -f /var/log/ceilometer/$package.log
45 if [[ `cat /etc/*-release | head -n 1 | awk '{print $1}'` =~ Ubuntu ]]; then
46 apt-get install screen python-pip sqlite3 curl -y
48 yum install screen python-pip sqlite curl -y
53 if [[ `cat /etc/*-release | head -n 1 | awk '{print $1}'` =~ Ubuntu ]]; then
54 apt-get install rabbitmq-server -y
56 yum install rabbitmq-server -y
58 echo "127.0.10.1 $(hostname)" >> /etc/hosts
59 service rabbitmq-server restart
63 send_fake_notification() {
64 pip install pika==0.9.8
69 check_fake_notification() {
70 sqlite3 /tmp/ceilometer 'select * from meter;'
71 local check=$(sqlite3 /tmp/ceilometer 'select * from meter;' | grep instance)
72 if [ -z "$check" ]; then
73 echo -e "Meter 'instance' is lost"
80 local test1=$(cat /var/log/ceilometer/$package.log | grep "Polling pollster $1")
81 local test2=$(cat /var/log/ceilometer/$package.log | grep "Polling pollster $2")
82 local test3=$(cat /var/log/ceilometer/$package.log | grep "Polling pollster $3")
83 if [ -z "$test1" -o -z "$test2" -o -z "$test3" ]; then
84 echo -e "Some pollsters aren't work"
91 if [ $(ps aux | grep $1 | wc -l) -lt "2" ]; then
92 echo "Process $1 is not running"
101 ceilometer-agent-central
102 ceilometer-agent-compute
103 ceilometer-agent-notification
105 ceilometer-alarm-evaluator
106 ceilometer-alarm-notifier
109 openstack-ceilometer-api
110 openstack-ceilometer-collector
111 openstack-ceilometer-notification
112 openstack-ceilometer-alarm-notifier
113 openstack-ceilometer-alarm-evaluator
114 openstack-ceilometer-compute
115 openstack-ceilometer-central
118 if [[ `cat /etc/*-release | head -n 1 | awk '{print $1}'` =~ Ubuntu ]]; then
119 services=${ubuntu_services[*]}
121 services=${centos_services[*]}
124 for service in ${services[*]}; do
125 service $service stop || true
130 ceilometer-api|openstack-ceilometer-api)
135 screen -dmS ceilometer-api
137 screen -S ceilometer-api -p 0 -X stuff 'ceilometer-api --config-file /etc/ceilometer/ceilometer.conf
140 check_running ceilometer-api
142 repsonce=$(curl "http://localhost:8777" | grep "Authentication required")
143 if [ -z "$repsonce" ]; then
144 echo -e "Ceilometer api doesn't work. No one process is listening on 8777 port"
148 killall -15 ceilometer-api
150 cat /var/log/ceilometer/$package.log
152 ceilometer-collector|openstack-ceilometer-collector|ceilometer-agent-notification|openstack-ceilometer-notification)
157 if [[ `cat /etc/*-release | head -n 1 | awk '{print $1}'` =~ Ubuntu ]]; then
158 apt-get install ceilometer-collector ceilometer-agent-notification -y
160 yum install openstack-ceilometer-collector openstack-ceilometer-notification -y
164 screen -dmS ceilometer-collector
165 screen -dmS ceilometer-agent-notification
167 screen -S ceilometer-collector -p 0 -X stuff 'ceilometer-collector --config-file /etc/ceilometer/ceilometer.conf --log-file /var/log/ceilometer/ceilometer-collector.log
169 screen -S ceilometer-agent-notification -p 0 -X stuff 'ceilometer-agent-notification --config-file /etc/ceilometer/ceilometer.conf --log-file /var/log/ceilometer/ceilometer-anotification.log
172 check_running ceilometer-collector
173 check_running ceilometer-agent-notification
174 send_fake_notification
176 check_fake_notification
178 killall -15 ceilometer-collector ceilometer-agent-notification
180 cat /var/log/ceilometer/ceilometer-collector.log
181 cat /var/log/ceilometer/ceilometer-anotification.log
183 ceilometer-alarm-notifier|ceilometer-alarm-evaluator|openstack-ceilometer-alarm)
184 if [[ `cat /etc/*-release | head -n 1 | awk '{print $1}'` =~ Ubuntu ]]; then
185 # Testing alarm-notifier and alarm-evaluator together
186 apt-get install ceilometer-alarm-evaluator ceilometer-alarm-notifier -y --force-yes
189 echo "Testing 'ceilometer-alarm-notifier'"
195 screen -dmS ceilometer-alarm-notifier
197 screen -S ceilometer-alarm-notifier -p 0 -X stuff 'ceilometer-alarm-notifier --config-file /etc/ceilometer/ceilometer.conf --log-file /var/log/ceilometer/ceilometer-alarm-notifier.log
200 check_running ceilometer-alarm-notifier
202 if [ -z "$(cat /var/log/ceilometer/ceilometer-alarm-notifier.log | grep 'Connected to AMQP server on')" ]; then
203 echo -e "Start alarm-notifier process is failed"
207 killall -15 ceilometer-alarm-notifier
209 cat /var/log/ceilometer/ceilometer-alarm-notifier.log
211 echo "Testing 'ceilometer-alarm-evaluator'"
212 screen -dmS ceilometer-alarm-evaluator
214 screen -S ceilometer-alarm-evaluator -p 0 -X stuff 'ceilometer-alarm-evaluator --config-file /etc/ceilometer/ceilometer.conf --log-file /var/log/ceilometer/ceilometer-alarm-evaluator.log
217 check_running ceilometer-alarm-evaluator
219 if [ -z "$(cat /var/log/ceilometer/ceilometer-alarm-evaluator.log | grep 'alarm evaluation cycle')" ]; then
220 echo -e "Start alarm-evalutor process is failed"
224 killall -15 ceilometer-alarm-evaluator
226 cat /var/log/ceilometer/ceilometer-alarm-evaluator.log
228 ceilometer-agent-compute|openstack-ceilometer-compute)
233 screen -dmS ceilometer-agent-compute
235 screen -S ceilometer-agent-compute -p 0 -X stuff 'ceilometer-agent-compute --config-file /etc/ceilometer/ceilometer.conf
238 check_running ceilometer-agent-compute
239 check_pollsters "cpu" "memory" "disk"
241 killall -15 ceilometer-agent-compute
243 cat /var/log/ceilometer/$package.log
245 ceilometer-agent-central|openstack-ceilometer-central)
250 screen -dmS ceilometer-agent-central
252 screen -S ceilometer-agent-central -p 0 -X stuff 'ceilometer-agent-central --config-file /etc/ceilometer/ceilometer.conf
255 check_running ceilometer-agent-central
256 check_pollsters "network" "switch" "hardware"
258 killall -15 ceilometer-agent-central
260 cat /var/log/ceilometer/$package.log
262 ceilometer-common|openstack-ceilometer-common)
263 if [ -z "$(cut -d: -f1 /etc/passwd | grep 'ceilometer')" ]; then
264 echo -e "User 'ceilometer' doesn't exist"
267 config_files="ceilometer.conf policy.json pipeline.yaml api_paste.ini event_definitions.yaml"
268 for i in $config_files; do
269 if [ ! -f "/etc/ceilometer/$i" ]; then
271 echo "File /etc/ceilometer/$i doesn't exist"
276 python -c 'import ceilometer'
277 if [ $? -ne '0' ]; then
278 echo -e "Couldn't import module 'ceilometer'"
281 if [ -z "$(which ceilometer)" ]; then
283 echo -e "Can't find command 'ceilometer'"
287 echo "test not defined, skipping..."