grenade/from-grizzly/upgrade-nova

63 lines
2.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# ``upgrade-nova``
function configure_nova_upgrade {
# upgrade rootwrap configs
configure_nova_rootwrap
add_v3_api_to_catalog
#enable nova_v3_api
if ! grep -q "^\[composite:osapi_compute\]" $NOVA_API_PASTE_INI; then
# Add section at the end
echo -e "\n[composite:osapi_compute]\nuse = call:nova.api.openstack.urlmap:urlmap_factory" >> $NOVA_API_PASTE_INI
fi
sed -i -e "/^\[composite:osapi_compute\]/ a\\
/v3: openstack_compute_api_v3
" "$NOVA_API_PASTE_INI"
iniset $NOVA_API_PASTE_INI composite:openstack_compute_api_v3 use call:nova.api.auth:pipeline_factory
iniset $NOVA_API_PASTE_INI composite:openstack_compute_api_v3 noauth "faultwrap sizelimit noauth ratelimit osapi_compute_app_v3"
iniset $NOVA_API_PASTE_INI composite:openstack_compute_api_v3 keystone "faultwrap sizelimit authtoken keystonecontext ratelimit osapi_compute_app_v3"
iniset $NOVA_API_PASTE_INI composite:openstack_compute_api_v3 keystone_nolimit "faultwrap sizelimit authtoken keystonecontext osapi_compute_app_v3"
iniset $NOVA_API_PASTE_INI app:osapi_compute_app_v3 paste.app_factory nova.api.openstack.compute:APIRouterV3.factory
iniset $NOVA_CONF osapi_v3 enabled True
#add policy for v3 api
sed -i -e "1 a\\
`grep "v3:" $NOVA_DIR/etc/nova/policy.json | sed 's#,#,\\\#g'`
" $NOVA_CONF_DIR/policy.json
}
#add nova v3 endpoint for blue-print:nova-v3-api-tests
function add_v3_api_to_catalog {
source $TARGET_DEVSTACK_DIR/openrc admin admin
if [[ "$ENABLED_SERVICES" =~ "n-api" && "$KEYSTONE_CATALOG_BACKEND" = 'sql' ]]; then
NOVA_V3_SERVICE=$(keystone service-create \
--name=nova \
--type=computev3 \
--description="Nova Compute Service V3" \
| grep " id " | get_field 2)
keystone endpoint-create \
--region RegionOne \
--service_id $NOVA_V3_SERVICE \
--publicurl "$SERVICE_PROTOCOL://$NOVA_SERVICE_HOST:$NOVA_SERVICE_PORT/v3" \
--adminurl "$SERVICE_PROTOCOL://$NOVA_SERVICE_HOST:$NOVA_SERVICE_PORT/v3" \
--internalurl "$SERVICE_PROTOCOL://$NOVA_SERVICE_HOST:$NOVA_SERVICE_PORT/v3"
fi
if [[ "$KEYSTONE_CATALOG_BACKEND" != 'sql' && -f "$KEYSTONE_CATALOG" ]]; then
stop_keystone
echo -e "
catalog.RegionOne.computev3.publicURL = http://%SERVICE_HOST%:8774/v3
catalog.RegionOne.computev3.adminURL = http://%SERVICE_HOST%:8774/v3
catalog.RegionOne.computev3.internalURL = http://%SERVICE_HOST%:8774/v3
catalog.RegionOne.computev3.name = Compute Service V3
" >> $KEYSTONE_CATALOG
start_keystone
fi
}