[apex] change config for doctor testing 11/30011/6
authorRyota MIBU <r-mibu@cq.jp.nec.com>
Wed, 8 Mar 2017 06:53:40 +0000 (06:53 +0000)
committerRyota MIBU <r-mibu@cq.jp.nec.com>
Wed, 8 Mar 2017 09:01:05 +0000 (09:01 +0000)
JIRA: DOCTOR-96

Change-Id: I5b0923ffeb53ff53ad9f780b8b5ebdce834d995a
Signed-off-by: Ryota MIBU <r-mibu@cq.jp.nec.com>
tests/lib/installers/apex

index d9c41f8..55878de 100644 (file)
@@ -24,10 +24,44 @@ function get_controller_ips {
     die_if_not_set $LINENO CONTROLLER_IPS "No controller IPs"
 }
 
+function installer_apply_patches {
+    # TODO(r-mibu): fix the followings in upstream (apex)
+    for node in $CONTROLLER_IPS;do
+        echo "check controller configuration for doctor ($node)"
+        ssh $ssh_opts_cpu "heat-admin@$node" '
+            set -x
+            date
+            echo "### apply patches (installer=apex)"
+
+            ep_conf=/etc/ceilometer/event_pipeline.yaml
+            ep_entry="- notifier://?topic=alarm.all"
+            if sudo grep -e "$ep_entry" $ep_conf; then
+                echo "NOTE: ceilometer is configured as we needed"
+            else
+                echo "modify the ceilometer config"
+                sudo sed -i -e "$ a \ \ \ \ \ \ \ \ \ \ $ep_entry    # added by doctor script" $ep_conf
+                sudo systemctl restart openstack-ceilometer-notification.service
+            fi
+
+            co_conf=/etc/congress/congress.conf
+            co_entry="congress.datasources.doctor_driver.DoctorDriver"
+            if sudo grep -e "^drivers.*$co_entry" $co_conf; then
+                echo "NOTE: congress is configured as we needed"
+            else
+                echo "modify the congress config"
+                sudo sed -i -e "/^drivers/s/$/,$co_entry    # added by doctor script/" \
+                    $co_conf
+                sudo systemctl restart openstack-congress-server.service
+            fi
+            ' > installer_apply_patches_$node.log 2>&1
+    done
+}
+
 function setup_installer {
     get_installer_ip
     installer_get_ssh_keys
     get_controller_ips
+    installer_apply_patches
 
     # NOTE: while executing command as doctor user,
     #       'OS_PROJECT_ID' env parameter make openstack clients confused.
@@ -45,7 +79,35 @@ function get_compute_ip_from_hostname {
     die_if_not_set $LINENO COMPUTE_IP "Could get IP address of $compute_host."
 }
 
+function installer_revert_patches {
+    # TODO(r-mibu): fix the followings in upstream (apex)
+    get_controller_ips
+    for node in $CONTROLLER_IPS;do
+        echo "restore controller configuration if touched ($node)"
+        ssh $ssh_opts_cpu "heat-admin@$node" '
+            set -x
+            echo "### revert patches (installer=apex)"
+            date
+
+            co_conf=/etc/congress/congress.conf
+            co_entry="congress.datasources.doctor_driver.DoctorDriver"
+            if sudo grep -q -e "# added by doctor script" $co_conf; then
+                echo "modify the congress config"
+                sudo sed -i -e "/^drivers/s/^\(.*\),$co_entry    # added by doctor script/\1/" $co_conf
+                sudo systemctl restart openstack-congress-server.service
+            fi
+
+            ep_conf=/etc/ceilometer/event_pipeline.yaml
+            if sudo grep -q -e "# added by doctor script" $ep_conf; then
+                echo "modify the ceilometer config"
+                sudo sed -ie "/# added by doctor script/d" $ep_conf
+                sudo systemctl restart openstack-ceilometer-notification.service
+            fi
+            ' >> installer_apply_patches_$node.log 2>&1
+    done
+}
+
 function cleanup_installer {
-    # Noop
+    installer_revert_patches
     return
 }