[MOS 10.0] Update cinder to v9.0.0.0b1
[openstack-build/cinder-build.git] / xenial / debian / cinder-api.postinst.in
diff --git a/xenial/debian/cinder-api.postinst.in b/xenial/debian/cinder-api.postinst.in
new file mode 100644 (file)
index 0000000..7cea903
--- /dev/null
@@ -0,0 +1,81 @@
+#!/bin/sh
+
+set -e
+
+#PKGOS-INCLUDE#
+
+if [ "$1" = "configure" ] || [ "$1" = "reconfigure" ] ; then
+       . /usr/share/debconf/confmodule
+
+       # We need special handling for Cinder, as it needs 2 endpoints
+       PKG_NAME=cinder
+       db_get ${PKG_NAME}/register-endpoint
+       if [ "${RET}" = "true" ] ; then
+               # Setup the v1 endpoint
+               db_get ${PKG_NAME}/keystone-ip
+               KEYSTONE_ENDPOINT_IP=`echo ${RET} | egrep '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$'`
+               db_get ${PKG_NAME}/keystone-auth-token
+               AUTH_TOKEN=${RET}
+               db_get ${PKG_NAME}/endpoint-ip
+               PKG_ENDPOINT_IP=`echo ${RET} | egrep '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$'`
+               db_get ${PKG_NAME}/region-name
+               REGION_NAME=${RET}
+
+               if [ -n "${KEYSTONE_ENDPOINT_IP}" ] && [ -n "${PKG_ENDPOINT_IP}" ] && [ -n "${REGION_NAME}" ] && [ -n "${AUTH_TOKEN}" ] ; then
+                       SERVICE_NAME=cinder
+                       SERVICE_TYPE=volume
+                       SERVICE_DESC="OpenStack Block Storage"
+                       SERVICE_PORT=8776
+                       SERVICE_URL=/v1/'%(tenant_id)s'
+                       echo "Registering service and endpoints for ${SERVICE_NAME} with type ${SERVICE_TYPE} at http://${PKG_ENDPOINT_IP}:${SERVICE_PORT}${SERVICE_URL}"
+                       NUM_LINES=$(openstack --os-token ${AUTH_TOKEN} --os-url=http://${KEYSTONE_ENDPOINT_IP}:35357/v3/ --os-domain-name default --os-identity-api-version=3 service list --format=csv | q -d , -H 'SELECT ID FROM - WHERE `Type`="'${SERVICE_TYPE}'"' | wc -l)
+                       if [ "${NUM_LINES}" = "0" ] ; then
+                               openstack --os-token ${AUTH_TOKEN} --os-url=http://${KEYSTONE_ENDPOINT_IP}:35357/v3/ --os-domain-name default --os-identity-api-version=3 service create \
+                                       --name=${SERVICE_NAME} --description="${SERVICE_DESC}" ${SERVICE_TYPE}
+
+                               openstack --os-token ${AUTH_TOKEN} --os-url=http://${KEYSTONE_ENDPOINT_IP}:35357/v3/ --os-domain-name default --os-identity-api-version=3 endpoint create \
+                                       --region "${REGION_NAME}" ${SERVICE_NAME} public http://${PKG_ENDPOINT_IP}:${SERVICE_PORT}${SERVICE_URL}
+
+                               openstack --os-token ${AUTH_TOKEN} --os-url=http://${KEYSTONE_ENDPOINT_IP}:35357/v3/ --os-domain-name default --os-identity-api-version=3 endpoint create \
+                                       --region "${REGION_NAME}" ${SERVICE_NAME} internal http://${PKG_ENDPOINT_IP}:${SERVICE_PORT}${SERVICE_URL}
+
+                               openstack --os-token ${AUTH_TOKEN} --os-url=http://${KEYSTONE_ENDPOINT_IP}:35357/v3/ --os-domain-name default --os-identity-api-version=3 endpoint create \
+                                       --region "${REGION_NAME}" ${SERVICE_NAME} admin http://${PKG_ENDPOINT_IP}:${SERVICE_PORT}${SERVICE_URL}
+                       fi
+
+                       SERVICE_NAME=cinderv2
+                       SERVICE_TYPE=volumev2
+                       SERVICE_DESC="OpenStack Block Storage v2"
+                       SERVICE_PORT=8776
+                       SERVICE_URL=/v2/'%(tenant_id)s'
+                       echo "Registering service and endpoints for ${SERVICE_NAME} with type ${SERVICE_TYPE} at http://${PKG_ENDPOINT_IP}:${SERVICE_PORT}${SERVICE_URL}"
+                       NUM_LINES=$(openstack --os-token ${AUTH_TOKEN} --os-url=http://${KEYSTONE_ENDPOINT_IP}:35357/v3/ --os-domain-name default --os-identity-api-version=3 service list --format=csv | q -d , -H 'SELECT ID FROM - WHERE `Type`="'${SERVICE_TYPE}'"' | wc -l)
+                       if [ "${NUM_LINES}" = "0" ] ; then
+                               openstack --os-token ${AUTH_TOKEN} --os-url=http://${KEYSTONE_ENDPOINT_IP}:35357/v3/ --os-domain-name default --os-identity-api-version=3 service create \
+                                       --name=${SERVICE_NAME} --description="${SERVICE_DESC}" ${SERVICE_TYPE}
+
+                               openstack --os-token ${AUTH_TOKEN} --os-url=http://${KEYSTONE_ENDPOINT_IP}:35357/v3/ --os-domain-name default --os-identity-api-version=3 endpoint create \
+                                       --region "${REGION_NAME}" ${SERVICE_NAME} public http://${PKG_ENDPOINT_IP}:${SERVICE_PORT}${SERVICE_URL}
+
+                               openstack --os-token ${AUTH_TOKEN} --os-url=http://${KEYSTONE_ENDPOINT_IP}:35357/v3/ --os-domain-name default --os-identity-api-version=3 endpoint create \
+                                       --region "${REGION_NAME}" ${SERVICE_NAME} internal http://${PKG_ENDPOINT_IP}:${SERVICE_PORT}${SERVICE_URL}
+
+                               openstack --os-token ${AUTH_TOKEN} --os-url=http://${KEYSTONE_ENDPOINT_IP}:35357/v3/ --os-domain-name default --os-identity-api-version=3 endpoint create \
+                                       --region "${REGION_NAME}" ${SERVICE_NAME} admin http://${PKG_ENDPOINT_IP}:${SERVICE_PORT}${SERVICE_URL}
+                       fi
+#                      pkgos_register_endpoint_postinst cinder cinder volume "Cinder Volume Service" 8776 /v1/'%(tenant_id)s'
+#                      pkgos_register_endpoint_postinst cinder cinderv2 volumev2 "Cinder Volume Service" 8776 /v2/'%(tenant_id)s'
+               else
+                       echo "Problem in endpoint parameter (IPs or otherwise)."
+               fi
+               db_unregister ${PKG_NAME}/register-endpoint
+       else
+               echo "Will not register "${SERVICE_NAME}" endpoint this time (no user request for it)."
+       fi
+       db_unregister ${PKG_NAME}/keystone-auth-token
+       db_stop
+fi
+
+#DEBHELPER#
+
+exit 0