Skip to content

Commit

Permalink
Fixes: Launching of VMs getting failed
Browse files Browse the repository at this point in the history
In Kilo, the neutron auth_url should be mentined as admin_auth_url.
It is changed to auth_url in Liberty and later releases. Because of this,
the auth_url is poitning to the default value localhost:5000.

Fix is to set the neutron auth_url based on the release.

Change-Id: Iff257f7a01920f5e720d7a5e1bc700850c754a03
Closes-Bug: 1642005
  • Loading branch information
Ranjeet R committed Nov 18, 2016
1 parent 6765a2d commit 8d4d353
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 16 deletions.
33 changes: 25 additions & 8 deletions contrail_provisioning/compute/scripts/compute-server-setup.sh
Expand Up @@ -25,6 +25,7 @@ if [ -f /etc/redhat-release ]; then
OS_URL_TIMEOUT=neutron_url_timeout
fi
rpm_mitaka_or_higher=$(is_installed_rpm_greater openstack-nova-compute "1 13.0.0 1.el7" && echo 1 || echo 0)
rpm_liberty_or_higher=$(is_installed_rpm_greater openstack-nova-compute "1 12.0.0 1.el7" && echo 1 || echo 0)
rpm_kilo_or_higher=$(is_installed_rpm_greater openstack-nova-compute "0 2015.1.1 1.el7" && echo 1 || echo 0)
rpm_juno_or_higher=$(is_installed_rpm_greater openstack-nova-compute "0 2014.2.2 1.el7" && echo 1 || echo 0)
fi
Expand Down Expand Up @@ -103,6 +104,7 @@ if [ $CONTROLLER != $COMPUTE ] ; then
fi

kilo_or_above=0
liberty_or_above=0
mitaka_or_above=0
# for juno and kilo versions
if [ "$nova_compute_top_ver" -eq "1" ]; then
Expand All @@ -117,6 +119,10 @@ if [ $CONTROLLER != $COMPUTE ] ; then
if [ $? -eq 0 ]; then
kilo_or_above=1
fi
dpkg --compare-versions $nova_compute_version_without_epoch ge 12.0.1
if [ $? -eq 0 ]; then
liberty_or_above=1
fi
#For mitaka, the nova-compute version is 13.y.z
dpkg --compare-versions $nova_compute_version_without_epoch ge 13.0.0
if [ $? -eq 0 ]; then
Expand All @@ -125,19 +131,24 @@ if [ $CONTROLLER != $COMPUTE ] ; then
fi

if [ $kilo_or_above -eq 1 ] ; then
if [ $liberty_or_above -eq 1 ] ; then
NEUTRON_AUTH_URL_FIELD=auth_url
else
NEUTRON_AUTH_URL_FIELD=admin_auth_url
fi
if [ "$CONTRAIL_INTERNAL_VIP" != "none" ]; then
openstack-config --set /etc/nova/nova.conf neutron url ${QUANTUM_PROTOCOL}://$CONTRAIL_INTERNAL_VIP:9696/
if [ "$INTERNAL_VIP" != "none" ]; then
openstack-config --set /etc/nova/nova.conf neutron auth_url ${AUTH_PROTOCOL}://$INTERNAL_VIP:35357/$KEYSTONE_VERSION/
openstack-config --set /etc/nova/nova.conf neutron $NEUTRON_AUTH_URL_FIELD ${AUTH_PROTOCOL}://$INTERNAL_VIP:35357/$KEYSTONE_VERSION/
else
openstack-config --set /etc/nova/nova.conf neutron auth_url ${AUTH_PROTOCOL}://$CONTROLLER:35357/$KEYSTONE_VERSION/
openstack-config --set /etc/nova/nova.conf neutron $NEUTRON_AUTH_URL_FIELD ${AUTH_PROTOCOL}://$CONTROLLER:35357/$KEYSTONE_VERSION/
fi
elif [ "$INTERNAL_VIP" != "none" ]; then
openstack-config --set /etc/nova/nova.conf neutron url ${QUANTUM_PROTOCOL}://$INTERNAL_VIP:9696/
openstack-config --set /etc/nova/nova.conf neutron auth_url ${AUTH_PROTOCOL}://$INTERNAL_VIP:35357/$KEYSTONE_VERSION/
openstack-config --set /etc/nova/nova.conf neutron $NEUTRON_AUTH_URL_FIELD ${AUTH_PROTOCOL}://$INTERNAL_VIP:35357/$KEYSTONE_VERSION/
else
openstack-config --set /etc/nova/nova.conf neutron url ${QUANTUM_PROTOCOL}://$QUANTUM:9696/
openstack-config --set /etc/nova/nova.conf neutron auth_url ${AUTH_PROTOCOL}://$CONTROLLER:35357/$KEYSTONE_VERSION/
openstack-config --set /etc/nova/nova.conf neutron $NEUTRON_AUTH_URL_FIELD ${AUTH_PROTOCOL}://$CONTROLLER:35357/$KEYSTONE_VERSION/
fi
openstack-config --set /etc/nova/nova.conf neutron admin_username $OS_NET
openstack-config --set /etc/nova/nova.conf neutron admin_password $ADMIN_TOKEN
Expand Down Expand Up @@ -171,21 +182,27 @@ if [ $CONTROLLER != $COMPUTE ] ; then
openstack-config --set /etc/nova/nova.conf DEFAULT network_api_class nova_contrail_vif.contrailvif.ContrailNetworkAPI
fi

if [ $rpm_liberty_or_higher -eq 1 ] ; then
NEUTRON_AUTH_URL_FIELD=auth_url
else
NEUTRON_AUTH_URL_FIELD=admin_auth_url
fi

if [[ $rpm_kilo_or_higher -eq 1 ]]; then
# Neutron section in nova.conf
if [ "$CONTRAIL_INTERNAL_VIP" != "none" ]; then
openstack-config --set /etc/nova/nova.conf neutron url ${QUANTUM_PROTOCOL}://$CONTRAIL_INTERNAL_VIP:9696/
if [ "$INTERNAL_VIP" != "none" ]; then
openstack-config --set /etc/nova/nova.conf neutron auth_url ${AUTH_PROTOCOL}://$INTERNAL_VIP:35357/$KEYSTONE_VERSION/
openstack-config --set /etc/nova/nova.conf neutron $NEUTRON_AUTH_URL_FIELD ${AUTH_PROTOCOL}://$INTERNAL_VIP:35357/$KEYSTONE_VERSION/
else
openstack-config --set /etc/nova/nova.conf neutron auth_url ${AUTH_PROTOCOL}://$CONTROLLER:35357/$KEYSTONE_VERSION/
openstack-config --set /etc/nova/nova.conf neutron $NEUTRON_AUTH_URL_FIELD ${AUTH_PROTOCOL}://$CONTROLLER:35357/$KEYSTONE_VERSION/
fi
elif [ "$INTERNAL_VIP" != "none" ]; then
openstack-config --set /etc/nova/nova.conf neutron url ${QUANTUM_PROTOCOL}://$INTERNAL_VIP:9696/
openstack-config --set /etc/nova/nova.conf neutron auth_url ${AUTH_PROTOCOL}://$INTERNAL_VIP:35357/$KEYSTONE_VERSION/
openstack-config --set /etc/nova/nova.conf neutron $NEUTRON_AUTH_URL_FIELD ${AUTH_PROTOCOL}://$INTERNAL_VIP:35357/$KEYSTONE_VERSION/
else
openstack-config --set /etc/nova/nova.conf neutron url ${QUANTUM_PROTOCOL}://$QUANTUM:9696/
openstack-config --set /etc/nova/nova.conf neutron auth_url ${AUTH_PROTOCOL}://$CONTROLLER:35357/$KEYSTONE_VERSION/
openstack-config --set /etc/nova/nova.conf neutron $NEUTRON_AUTH_URL_FIELD ${AUTH_PROTOCOL}://$CONTROLLER:35357/$KEYSTONE_VERSION/
fi
openstack-config --set /etc/nova/nova.conf DEFAULT network_api_class nova.network.neutronv2.api.API
openstack-config --set /etc/nova/nova.conf neutron admin_tenant_name $SERVICE_TENANT_NAME
Expand Down
30 changes: 22 additions & 8 deletions contrail_provisioning/openstack/scripts/nova-server-setup.sh
Expand Up @@ -306,20 +306,28 @@ if [ $is_ubuntu -eq 1 ] ; then
fi
fi
openstack-config --set /etc/nova/nova.conf DEFAULT ec2_private_dns_show_ip False

if [[ $nova_api_version == *"2015"* ]] || [[ $is_liberty_or_above -eq 1 ]]; then
# In Kilo, the neutron auth URL should be configured as admin_auth_url.
# In releases > Kilo, it is changed to auth_url.
if [ $is_liberty_or_above -eq 1 ]; then
NEUTRON_AUTH_URL_FIELD=auth_url
else
NEUTRON_AUTH_URL_FIELD=admin_auth_url
fi
if [ "$CONTRAIL_INTERNAL_VIP" != "none" ]; then
openstack-config --set /etc/nova/nova.conf neutron url ${QUANTUM_PROTOCOL}://$CONTRAIL_INTERNAL_VIP:9696/
if [ "$INTERNAL_VIP" != "none" ]; then
openstack-config --set /etc/nova/nova.conf neutron auth_url ${AUTH_PROTOCOL}://$INTERNAL_VIP:35357/$KEYSTONE_VERSION/
openstack-config --set /etc/nova/nova.conf neutron $NEUTRON_AUTH_URL_FIELD ${AUTH_PROTOCOL}://$INTERNAL_VIP:35357/$KEYSTONE_VERSION/
else
openstack-config --set /etc/nova/nova.conf neutron auth_url ${AUTH_PROTOCOL}://$CONTROLLER:35357/$KEYSTONE_VERSION/
openstack-config --set /etc/nova/nova.conf neutron $NEUTRON_AUTH_URL_FIELD ${AUTH_PROTOCOL}://$CONTROLLER:35357/$KEYSTONE_VERSION/
fi
elif [ "$INTERNAL_VIP" != "none" ]; then
openstack-config --set /etc/nova/nova.conf neutron url ${QUANTUM_PROTOCOL}://$INTERNAL_VIP:9696/
openstack-config --set /etc/nova/nova.conf neutron auth_url ${AUTH_PROTOCOL}://$INTERNAL_VIP:35357/$KEYSTONE_VERSION/
openstack-config --set /etc/nova/nova.conf neutron $NEUTRON_AUTH_URL_FIELD ${AUTH_PROTOCOL}://$INTERNAL_VIP:35357/$KEYSTONE_VERSION/
else
openstack-config --set /etc/nova/nova.conf neutron url ${QUANTUM_PROTOCOL}://$QUANTUM:9696/
openstack-config --set /etc/nova/nova.conf neutron auth_url ${AUTH_PROTOCOL}://$CONTROLLER:35357/$KEYSTONE_VERSION/
openstack-config --set /etc/nova/nova.conf neutron $NEUTRON_AUTH_URL_FIELD ${AUTH_PROTOCOL}://$CONTROLLER:35357/$KEYSTONE_VERSION/
fi

openstack-config --set /etc/nova/nova.conf neutron admin_username $OS_NET
Expand Down Expand Up @@ -362,23 +370,29 @@ else
if [[ $rpm_kilo_or_higher -eq 1 ]]; then
openstack-config --set /etc/nova/nova.conf DEFAULT network_api_class nova.network.neutronv2.api.API

if [[ $rpm_liberty_or_higher -eq 1 ]]; then
NEUTRON_AUTH_URL_FIELD=auth_url
else
NEUTRON_AUTH_URL_FIELD=admin_auth_url
fi

# Neutron section in nova.conf
if [ $AUTH_PROTOCOL == "https" ]; then
openstack-config --set /etc/nova/nova.conf neutron insecure True
fi
if [ "$CONTRAIL_INTERNAL_VIP" != "none" ]; then
openstack-config --set /etc/nova/nova.conf neutron url ${QUANTUM_PROTOCOL}://$CONTRAIL_INTERNAL_VIP:9696/
if [ "$INTERNAL_VIP" != "none" ]; then
openstack-config --set /etc/nova/nova.conf neutron auth_url ${AUTH_PROTOCOL}://$INTERNAL_VIP:35357/$KEYSTONE_VERSION/
openstack-config --set /etc/nova/nova.conf neutron $NEUTRON_AUTH_URL_FIELD ${AUTH_PROTOCOL}://$INTERNAL_VIP:35357/$KEYSTONE_VERSION/
else
openstack-config --set /etc/nova/nova.conf neutron auth_url ${AUTH_PROTOCOL}://$CONTROLLER:35357/$KEYSTONE_VERSION/
openstack-config --set /etc/nova/nova.conf neutron $NEUTRON_AUTH_URL_FIELD ${AUTH_PROTOCOL}://$CONTROLLER:35357/$KEYSTONE_VERSION/
fi
elif [ "$INTERNAL_VIP" != "none" ]; then
openstack-config --set /etc/nova/nova.conf neutron url ${QUANTUM_PROTOCOL}://$INTERNAL_VIP:9696/
openstack-config --set /etc/nova/nova.conf neutron auth_url ${AUTH_PROTOCOL}://$INTERNAL_VIP:35357/$KEYSTONE_VERSION/
openstack-config --set /etc/nova/nova.conf neutron $NEUTRON_AUTH_URL_FIELD ${AUTH_PROTOCOL}://$INTERNAL_VIP:35357/$KEYSTONE_VERSION/
else
openstack-config --set /etc/nova/nova.conf neutron url ${QUANTUM_PROTOCOL}://$QUANTUM:9696/
openstack-config --set /etc/nova/nova.conf neutron auth_url ${AUTH_PROTOCOL}://$CONTROLLER:35357/$KEYSTONE_VERSION/
openstack-config --set /etc/nova/nova.conf neutron $NEUTRON_AUTH_URL_FIELD ${AUTH_PROTOCOL}://$CONTROLLER:35357/$KEYSTONE_VERSION/
fi
openstack-config --set /etc/nova/nova.conf neutron admin_tenant_name $SERVICE_TENANT_NAME
openstack-config --set /etc/nova/nova.conf neutron auth_strategy keystone
Expand Down

0 comments on commit 8d4d353

Please sign in to comment.