fuel-plugin-calico/deployment_scripts/remove_default_networks.sh

46 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
# This script removes default network config created in OpenStack as part of a
# Fuel deployment. These networks do not work for instance creation with
# Calico, so need to be removed.
# OpenStack authentication and authorization requires environment variables
# contained in the openrc file, this will allow us to issue commands via the
# neutron API.
source /root/openrc
# Details of the default networks/routers created on Fuel deployment of a
# Mirantis OpenStack environment.
DEFAULT_NET=net04
DEFAULT_NET_EXT=net04_ext
DEFAULT_ROUTER=router04
# DEFAULT_NET_EXT is set as the gateway for DEFAULT_ROUTER, we must clear that
# before we can delete the network.
neutron router-gateway-clear $DEFAULT_ROUTER
neutron net-delete $DEFAULT_NET_EXT
# DEFAULT_NET cannot be deleted until all ports configured on the network have
# been removed. We get details of the configured ports from the "neutron port-list"
# command, whose output is of the form:
# +-----+------+-------------------+-----------------------------------------------+
# | id | name | mac_address | fixed_ips |
# +-----+------+-------------------+-----------------------------------------------+
# | foo | | fa:16:3e:ae:70:4e | {"subnet_id": "bar", "ip_address": "a.b.c.d"} |
# +-----+------+-------------------+-----------------------------------------------+
port_ids=$(neutron port-list | grep "|" | grep -v "fixed_ips" | cut -d " " -f 2)
for port_id in "${port_ids[@]}"
do
neutron port-delete $port_id
if [[ $? != 0 ]]; then
# One of the ports is associated with the interface for the default router.
# This causes port deletion to fail. So we delete the interface on the
# router (this also removes the port).
neutron router-interface-delete $DEFAULT_ROUTER port=$port_id
fi
done
# We can now delete the default router and the default network.
neutron router-delete $DEFAULT_ROUTER
neutron net-delete $DEFAULT_NET