+++ /dev/null
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-Doctor Configuration
-====================
-
-..
- This section will be compiled into OPNFV composite document.
-
-Doctor Inspector
-----------------
-
-Doctor Inspector is suggested to be placed in one of the controller nodes,
-but it can be put on any host where Doctor Monitor can reach and accessible
-to the OpenStack Controller (Nova).
-
-Make sure OpenStack env parameters are set properly, so that Doctor Inspector
-can issue admin actions such as compute host force-down and state update of VM.
-
-Then, you can configure Doctor Inspector as follows:
-
-.. code-block:: bash
-
- git clone https://gerrit.opnfv.org/gerrit/doctor -b stable/brahmaputra
- cd doctor/tests
- INSPECTOR_PORT=12345
- python inspector.py $INSPECTOR_PORT > inspector.log 2>&1 &
-
-Doctor Monitor
---------------
-
-Doctor Monitors are suggested to be placed in one of the controller nodes,
-but those can be put on any host which is reachable to target compute host and
-accessible to the Doctor Inspector.
-You need to configure Monitors for all compute hosts one by one.
-
-Make sure OpenStack env parameters are set properly, so that Doctor Inspector
-can issue admin actions such as compute host force-down and state update of VM.
-
-Then, you can configure Doctor Monitor as follows:
-
-.. code-block:: bash
-
- git clone https://gerrit.opnfv.org/gerrit/doctor -b stable/brahmaputra
- cd doctor/tests
- INSPECTOR_PORT=12345
- COMPUTE_HOST='overcloud-novacompute-0'
- sudo python monitor.py "$COMPUTE_HOST" \
- "http://127.0.0.1:$INSPECTOR_PORT/events" > monitor.log 2>&1 &
prepare_test_env() {
#TODO delete it when fuel support the configuration
if [[ "$INSTALLER_TYPE" == "fuel" ]] ; then
- echo "modify the ceilometer event_pipeline configuration..."
- cat > set_alarm_event_conf.sh << 'END_TXT'
+ echo "modify the configuration..."
+ cat > set_conf.sh << 'END_TXT'
#!/bin/bash
if [ -e /etc/ceilometer/event_pipeline.yaml ]; then
if ! grep -q '^ *- notifier://?topic=alarm.all$' /etc/ceilometer/event_pipeline.yaml; then
echo "ceilometer event_pipeline.yaml file does not exist"
exit 1
fi
+if [ -e /etc/nova/nova.conf ]; then
+ if ! grep -q '^notification_driver=messaging$' /etc/nova/nova.conf; then
+ sed -i -r 's/notification_driver=/notification_driver=messaging/g' /etc/nova/nova.conf
+ echo "modify nova config"
+ service nova-api restart
+ fi
+else
+ echo "nova.conf file does not exist"
+ exit 1
+fi
exit 0
END_TXT
- chmod +x set_alarm_event_conf.sh
+ chmod +x set_conf.sh
CONTROLLER_IP=$(sshpass -p r00tme ssh 2>/dev/null $ssh_opts root@${INSTALLER_IP} \
"fuel node | grep controller | cut -d '|' -f 5|xargs")
for node in $CONTROLLER_IP;do
- scp $ssh_opts_cpu set_alarm_event_conf.sh "root@$node:"
- ssh $ssh_opts_cpu "root@$node" './set_alarm_event_conf.sh > set_alarm_event_conf.log 2>&1 &'
+ scp $ssh_opts_cpu set_conf.sh "root@$node:"
+ ssh $ssh_opts_cpu "root@$node" './set_conf.sh > set_conf.log 2>&1 &'
sleep 1
- scp $ssh_opts_cpu "root@$node:set_alarm_event_conf.log" set_alarm_event_conf_$node.log
+ scp $ssh_opts_cpu "root@$node:set_conf.log" set_conf_$node.log
done
- if grep -q "modify the ceilometer config" set_alarm_event_conf_*.log ; then
- NEED_TO_RESTORE=true
+ if grep -q "modify the ceilometer config" set_conf_*.log ; then
+ NEED_TO_RESTORE_CEILOMETER=true
+ fi
+ if grep -q "modify nova config" set_conf_*.log ; then
+ NEED_TO_RESTORE_NOVA=true
fi
- echo "waiting ceilometer-agent-notification restart..."
+ echo "waiting service restart..."
sleep 60
fi
}
restore_test_env() {
#TODO delete it when fuel support the configuration
if [[ "$INSTALLER_TYPE" == "fuel" ]] ; then
- if ! $NEED_TO_RESTORE ; then
+ if ! ($NEED_TO_RESTORE_CEILOMETER || $NEED_TO_RESTORE_NOVA) ; then
echo "Don't need to restore config"
exit 0
fi
- echo "restore the ceilometer event_pipeline configuration..."
- cat > restore_alarm_event_conf.sh << 'END_TXT'
+ echo "restore the configuration..."
+ cat > restore_conf.sh << 'END_TXT'
#!/bin/bash
-if [ -e /etc/ceilometer/event_pipeline.yaml ]; then
- if grep -q '^ *- notifier://?topic=alarm.all$' /etc/ceilometer/event_pipeline.yaml; then
- sed -i 's|- notifier://?topic=alarm.all|- notifier://|' /etc/ceilometer/event_pipeline.yaml
- service ceilometer-agent-notification restart
+if @NEED_TO_RESTORE_CEILOMETER@ ; then
+ if [ -e /etc/ceilometer/event_pipeline.yaml ]; then
+ if grep -q '^ *- notifier://?topic=alarm.all$' /etc/ceilometer/event_pipeline.yaml; then
+ sed -i 's|- notifier://?topic=alarm.all|- notifier://|' /etc/ceilometer/event_pipeline.yaml
+ service ceilometer-agent-notification restart
+ fi
+ else
+ echo "ceilometer event_pipeline.yaml file does not exist"
+ exit 1
+ fi
+fi
+if @NEED_TO_RESTORE_NOVA@ ; then
+ if [ -e /etc/nova/nova.conf ]; then
+ if grep -q '^notification_driver=messaging$' /etc/nova/nova.conf; then
+ sed -i -r 's/notification_driver=messaging/notification_driver=/g' /etc/nova/nova.conf
+ service nova-api restart
+ fi
+ else
+ echo "nova.conf file does not exist"
+ exit 1
fi
-else
- echo "ceilometer event_pipeline.yaml file does not exist"
- exit 1
fi
exit 0
END_TXT
- chmod +x restore_alarm_event_conf.sh
+ sed -i -e "s/@NEED_TO_RESTORE_CEILOMETER@/$NEED_TO_RESTORE_CEILOMETER/" restore_conf.sh
+ sed -i -e "s/@NEED_TO_RESTORE_NOVA@/$NEED_TO_RESTORE_NOVA/" restore_conf.sh
+ chmod +x restore_conf.sh
for node in $CONTROLLER_IP;do
- scp $ssh_opts_cpu restore_alarm_event_conf.sh "root@$node:"
- ssh $ssh_opts_cpu "root@$node" './restore_alarm_event_conf.sh > set_alarm_event_conf.log 2>&1 &'
+ scp $ssh_opts_cpu restore_conf.sh "root@$node:"
+ ssh $ssh_opts_cpu "root@$node" './restore_conf.sh > restore_conf.log 2>&1 &'
done
- echo "waiting ceilometer-agent-notification restart..."
+ echo "waiting service restart..."
sleep 60
fi
}
exit 1
fi
echo "$notified $detected" | \
- awk '{d = $1 - $2; if (d < 1 && d > 0) print d " OK"; else print d " NG"}'
+ awk '{
+ d = $1 - $2;
+ if (d < 1 && d > 0) { print d " OK"; exit 0 }
+ else { print d " NG"; exit 1 }
+ }'
}
check_host_status() {