#!/bin/sh

set -e
#set -x

MY_HOSTNAME=$(hostname --fqdn)
if [ "$1" = '--api-only' ]; then
	API_ONLY=true
else
	API_ONLY=false
fi

if [ -e /etc/haproxy/ssl/private/oci-pki-api.pem ] || [ -e /etc/haproxy/ssl/private/oci-pki-swiftproxy.pem ] ; then
	echo "===> Restarting haproxy"
	[ -e /etc/haproxy/ssl/private/oci-pki-api.pem ] && cp /etc/ssl/private/oci-pki-api.pem /etc/haproxy/ssl/private/oci-pki-api.pem
	[ -e /etc/haproxy/ssl/private/oci-pki-swiftproxy.pem ] && cp /etc/ssl/private/oci-pki-swiftproxy.pem /etc/haproxy/ssl/private/oci-pki-swiftproxy.pem
	systemctl reload haproxy.service
fi

if ! $API_ONLY; then
	for servicename in aodh barbican ceilometer cloudkitty congress designate glance gnocchi heat ironic keystone magnum manila mistral murano neutron nova octavia panko placement sahara senlin swift vitrage watcher zaqar rabbitmq ; do
		if [ -e /etc/${servicename}/ssl/private/${MY_HOSTNAME}.pem ] ; then
			cp /etc/ssl/private/ssl-cert-snakeoil.key /etc/${servicename}/ssl/private/${MY_HOSTNAME}.pem
		fi
		if [ -e /etc/${servicename}/ssl/public/${MY_HOSTNAME}.crt ] ; then
			cp /etc/ssl/certs/ssl-cert-snakeoil.pem /etc/${servicename}/ssl/public/${MY_HOSTNAME}.crt
		fi
	done

	for servicename in aodh-api aodh-evaluator aodh-listener aodh-notifier \
			barbican-api \
			ceilometer-agent-notification ceilometer-polling \
			cinder-api cinder-backup cinder-scheduler cinder-volume \
			cloudkitty-api cloudkitty-processor \
			glance-api \
			gnocchi-api gnocchi-metricd gnocchi-statsd \
			heat-api heat-api-cfn heat-engine \
			keystone \
			magnum-api magnum-conductor \
			neutron-api neutron-dhcp-agent neutron-l3-agent neutron-metadata-agent neutron-metering-agent neutron-openvswitch-agent neutron-rpc-server \
			nova-api nova-api-metadata nova-compute nova-conductor nova-novncproxy \
			octavia-api octavia-health-manager octavia-housekeeping octavia-worker \
			panko-api \
			placement-api ; do
		if [ -x /etc/init.d/$servicename ] ; then
			echo "===> Restarting $servicename"
			systemctl stop $servicename
			sleep 2
			systemctl start $servicename
		fi
	done
fi
