neutron-l3-agent revision 6380
5403N/A# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved. 2521N/A# Licensed under the Apache License, Version 2.0 (the "License"); you may 2521N/A# not use this file except in compliance with the License. You may obtain 2521N/A# Unless required by applicable law or agreed to in writing, software 2521N/A# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 2521N/A# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 2521N/A# License for the specific language governing permissions and limitations 3998N/A print "failed to retrieve hostmodel ipadm property" 3998N/A print "failed to set ipadm hostmodel property to %s" %
value 6380N/A print "failed to retrieve datalink names" 6380N/A # L3 agent datalinks are always 15 characters in length. They start 6380N/A # with either 'l3i' or 'l3e', end with '_0', and in between they are 6380N/A # It is possible that the IP was already deleted but not the 6380N/A # datalink. So we continue and try and delete the datalink. 6380N/A print "failed to remove datalink '%s' used by L3 agent: %s" % \
2521N/A print '%s does not exist or is not readable' % f
6380N/A # We need to remove VNICs associated with L3 agent if any were left over. 6380N/A # Before that, we need to first remove the PF rules added under 2583N/A # System-wide forwarding (either ipv4 or ipv6 or both) must be enabled 2583N/A # before neutron-l3-agent can be started. 2583N/A print "failed to determine if IPv4 forwarding is enabled or not" 2583N/A print "failed to determine if IPv6 forwarding is enabled or not" 2892N/A print "System-wide IPv4 or IPv6 (or both) forwarding must be " \
2892N/A "enabled before enabling neutron-l3-agent" 5577N/A "--config-file %s --config-file %s --config-file %s" % \
5403N/A # The VPNaaS shutdown should unplumb all IP tunnels it created. But 5403N/A # be paranoid and check for lingering tunnels created by OpenStack 5403N/A # that may have been left behind if the OpenStack device driver exits 5403N/A # unexpectedly. OpenStack VPN configuration is created when the service 5403N/A # starts. Errors will occur if old IP tunnels still exist. 5403N/A print "Error: Found existing IP tunnel interface(s)." 5403N/A print "Then use svcadm(1M) to clear the service." 5403N/A print "Use the following commands to remove:" 5403N/A print "\t# ipadm delete-ip %s; dladm delete-iptun %s" %
(ifn, ifn) 3998N/A # set the hostmodel property if necessary 6029N/A # retrieve the right OVS bridge based on the interface name 6380N/A # Keep issuing SIGTERM until the contract is empty. This way we will catch 6380N/A # any child processes missed because they were getting forked. 6380N/A # 50 attempts will be made at intervals of 2 seconds. Typically, we 6380N/A # will only need 0 or 1 additional attempt before the contract is empty but 6380N/A # we chose to err on the side of caution. In the worst case, we will use 6380N/A # 100 seconds in the below loop which will leave 500 seconds (timeout is 6380N/A # 600s) for the other cleanup tasks, after which the service will be put to 6380N/A # maintenance state if the contract was not killed successfully. 5577N/A # anchor and then remove the IP interfaces on which the rules were applied. 3162N/A # remove VNICs associated with L3 agent 3998N/A # finally reset the hostmodel property