components/openstack/neutron/files/neutron-l3-agent
author chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
Tue, 12 Jul 2016 11:18:58 -0700
changeset 6382 ed601ca40b9c
parent 6031 1aaf20a19738
child 6848 8e252a37ed0d
permissions -rw-r--r--
23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance 23855850 Neutron agents (L3 and DHCP) should cleanup pre-existing resources when starting 23855912 neutron-l3-agent should make sure contract is empty in SMF stop method
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4049
150852e281c4 20816335 move the core OpenStack components to Python 2.7
Drew Fisher <drew.fisher@oracle.com>
parents: 3998
diff changeset
     1
#!/usr/bin/python2.7
1760
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
     2
5405
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 4049
diff changeset
     3
# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
1760
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
     4
#
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
     5
#    Licensed under the Apache License, Version 2.0 (the "License"); you may
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
     6
#    not use this file except in compliance with the License. You may obtain
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
     7
#    a copy of the License at
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
     8
#
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
     9
#         http://www.apache.org/licenses/LICENSE-2.0
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
    10
#
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
    11
#    Unless required by applicable law or agreed to in writing, software
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
    12
#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
    13
#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
    14
#    License for the specific language governing permissions and limitations
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
    15
#    under the License.
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
    16
6031
1aaf20a19738 PSARC/2016/251 OpenStack Neutron ML2 framework and OVS mechanism driver
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5630
diff changeset
    17
import ConfigParser
1760
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
    18
import os
1944
56ac2df1785b PSARC/2014/207 OpenStack Glance Update to Havana
Drew Fisher <drew.fisher@oracle.com>
parents: 1792
diff changeset
    19
import re
5579
48110757c6c6 PSARC/2016/116 OpenStack Neutron support for Packet Filter
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5405
diff changeset
    20
from subprocess import CalledProcessError, Popen, PIPE, check_call
1760
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
    21
import sys
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
    22
1944
56ac2df1785b PSARC/2014/207 OpenStack Glance Update to Havana
Drew Fisher <drew.fisher@oracle.com>
parents: 1792
diff changeset
    23
import netaddr
6382
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    24
from openstack_common import is_ml2_plugin, kill_contract
1760
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
    25
import smf_include
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
    26
5579
48110757c6c6 PSARC/2016/116 OpenStack Neutron support for Packet Filter
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5405
diff changeset
    27
from neutron.agent.solaris import packetfilter
5405
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 4049
diff changeset
    28
from neutron_vpnaas.services.vpn.device_drivers.solaris_ipsec import \
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 4049
diff changeset
    29
    get_vpn_interfaces
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 4049
diff changeset
    30
from neutron_vpnaas.services.vpn.device_drivers.solaris_ipsec import \
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 4049
diff changeset
    31
    shutdown_vpn
1792
5cea652172c6 18416129 neutron-l3-agent should include dependency on ipfilter service
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 1760
diff changeset
    32
1760
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
    33
3998
5bd484384122 PSARC 2015/110 OpenStack service updates for Juno
Danek Duvall <danek.duvall@oracle.com>
parents: 2083
diff changeset
    34
def set_hostmodel(value):
5bd484384122 PSARC 2015/110 OpenStack service updates for Juno
Danek Duvall <danek.duvall@oracle.com>
parents: 2083
diff changeset
    35
    cmd = ["/usr/sbin/ipadm", "show-prop", "-p", "hostmodel",
5bd484384122 PSARC 2015/110 OpenStack service updates for Juno
Danek Duvall <danek.duvall@oracle.com>
parents: 2083
diff changeset
    36
           "-co", "current", "ipv4"]
5bd484384122 PSARC 2015/110 OpenStack service updates for Juno
Danek Duvall <danek.duvall@oracle.com>
parents: 2083
diff changeset
    37
    p = Popen(cmd, stdout=PIPE, stderr=PIPE)
5bd484384122 PSARC 2015/110 OpenStack service updates for Juno
Danek Duvall <danek.duvall@oracle.com>
parents: 2083
diff changeset
    38
    output, error = p.communicate()
5bd484384122 PSARC 2015/110 OpenStack service updates for Juno
Danek Duvall <danek.duvall@oracle.com>
parents: 2083
diff changeset
    39
    if p.returncode != 0:
5bd484384122 PSARC 2015/110 OpenStack service updates for Juno
Danek Duvall <danek.duvall@oracle.com>
parents: 2083
diff changeset
    40
        print "failed to retrieve hostmodel ipadm property"
5bd484384122 PSARC 2015/110 OpenStack service updates for Juno
Danek Duvall <danek.duvall@oracle.com>
parents: 2083
diff changeset
    41
        return False
5bd484384122 PSARC 2015/110 OpenStack service updates for Juno
Danek Duvall <danek.duvall@oracle.com>
parents: 2083
diff changeset
    42
    if output.strip() == value:
5bd484384122 PSARC 2015/110 OpenStack service updates for Juno
Danek Duvall <danek.duvall@oracle.com>
parents: 2083
diff changeset
    43
        return True
5579
48110757c6c6 PSARC/2016/116 OpenStack Neutron support for Packet Filter
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5405
diff changeset
    44
    cmd = ["/usr/bin/pfexec", "/usr/sbin/ipadm", "set-prop", "-t", "-p",
48110757c6c6 PSARC/2016/116 OpenStack Neutron support for Packet Filter
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5405
diff changeset
    45
           "hostmodel=%s" % value, "ipv4"]
3998
5bd484384122 PSARC 2015/110 OpenStack service updates for Juno
Danek Duvall <danek.duvall@oracle.com>
parents: 2083
diff changeset
    46
    p = Popen(cmd, stdout=PIPE, stderr=PIPE)
5bd484384122 PSARC 2015/110 OpenStack service updates for Juno
Danek Duvall <danek.duvall@oracle.com>
parents: 2083
diff changeset
    47
    output, error = p.communicate()
5bd484384122 PSARC 2015/110 OpenStack service updates for Juno
Danek Duvall <danek.duvall@oracle.com>
parents: 2083
diff changeset
    48
    if p.returncode != 0:
5bd484384122 PSARC 2015/110 OpenStack service updates for Juno
Danek Duvall <danek.duvall@oracle.com>
parents: 2083
diff changeset
    49
        print "failed to set ipadm hostmodel property to %s" % value
5bd484384122 PSARC 2015/110 OpenStack service updates for Juno
Danek Duvall <danek.duvall@oracle.com>
parents: 2083
diff changeset
    50
        return False
5bd484384122 PSARC 2015/110 OpenStack service updates for Juno
Danek Duvall <danek.duvall@oracle.com>
parents: 2083
diff changeset
    51
    return True
5bd484384122 PSARC 2015/110 OpenStack service updates for Juno
Danek Duvall <danek.duvall@oracle.com>
parents: 2083
diff changeset
    52
5bd484384122 PSARC 2015/110 OpenStack service updates for Juno
Danek Duvall <danek.duvall@oracle.com>
parents: 2083
diff changeset
    53
6382
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    54
def cleanup_l3_agent_datalinks():
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    55
    cmd = ["/usr/sbin/dladm", "show-link", "-p", "-o", "link"]
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    56
    p = Popen(cmd, stdout=PIPE, stderr=PIPE)
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    57
    output, error = p.communicate()
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    58
    if p.returncode != 0:
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    59
        print "failed to retrieve datalink names"
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    60
        return smf_include.SMF_EXIT_ERR_FATAL
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    61
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    62
    dlnames = output.splitlines()
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    63
    # L3 agent datalinks are always 15 characters in length. They start
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    64
    # with either 'l3i' or 'l3e', end with '_0', and in between they are
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    65
    # hexadecimal digits.
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    66
    prog = re.compile('l3[ie][0-9A-Fa-f\_]{10}_0')
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    67
    retcode = smf_include.SMF_EXIT_OK
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    68
    is_ml2 = is_ml2_plugin()
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    69
    for dlname in dlnames:
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    70
        if prog.search(dlname) is None:
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    71
            continue
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    72
        try:
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    73
            # first remove the IP
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    74
            check_call(["/usr/bin/pfexec", "/usr/sbin/ipadm", "delete-ip",
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    75
                        dlname])
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    76
        except:
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    77
            # It is possible that the IP was already deleted but not the
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    78
            # datalink. So we continue and try and delete the datalink.
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    79
            pass
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    80
        try:
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    81
            # next remove the VNIC
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    82
            check_call(["/usr/bin/pfexec", "/usr/sbin/dladm", "delete-vnic",
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    83
                        dlname])
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    84
            # remove the OVS Port
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    85
            if is_ml2:
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    86
                ovs_bridge = get_ovs_bridge(dlname)
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    87
                if ovs_bridge:
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    88
                    check_call(["/usr/bin/pfexec", "/usr/sbin/ovs-vsctl", "--",
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    89
                                "--if-exists", "del-port", ovs_bridge, dlname])
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    90
        except CalledProcessError as err:
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    91
            print "failed to remove datalink '%s' used by L3 agent: %s" % \
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    92
                (dlname, err)
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    93
            retcode = smf_include.SMF_EXIT_ERR_FATAL
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    94
    return retcode
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    95
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
    96
1760
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
    97
def start():
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
    98
    # verify paths are valid
6031
1aaf20a19738 PSARC/2016/251 OpenStack Neutron ML2 framework and OVS mechanism driver
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5630
diff changeset
    99
    for f in sys.argv[2:6]:
1760
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
   100
        if not os.path.exists(f) or not os.access(f, os.R_OK):
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
   101
            print '%s does not exist or is not readable' % f
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
   102
            return smf_include.SMF_EXIT_ERR_CONFIG
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
   103
6382
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
   104
    # We need to remove VNICs associated with L3 agent if any were left over.
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
   105
    # Before that, we need to first remove the PF rules added under
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
   106
    # _auto/neutron:l3:agent anchor and then remove the IP interfaces on which
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
   107
    # the rules were applied.
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
   108
    pf = packetfilter.PacketFilter('_auto/neutron:l3:agent')
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
   109
    pf.remove_anchor_recursively()
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
   110
    ret_code = cleanup_l3_agent_datalinks()
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
   111
    if ret_code != smf_include.SMF_EXIT_OK:
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
   112
        return ret_code
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
   113
1792
5cea652172c6 18416129 neutron-l3-agent should include dependency on ipfilter service
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 1760
diff changeset
   114
    # System-wide forwarding (either ipv4 or ipv6 or both) must be enabled
5cea652172c6 18416129 neutron-l3-agent should include dependency on ipfilter service
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 1760
diff changeset
   115
    # before neutron-l3-agent can be started.
5cea652172c6 18416129 neutron-l3-agent should include dependency on ipfilter service
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 1760
diff changeset
   116
    cmd = ["/usr/sbin/ipadm", "show-prop", "-c", "-p", "forwarding",
5cea652172c6 18416129 neutron-l3-agent should include dependency on ipfilter service
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 1760
diff changeset
   117
           "-o", "current", "ipv4"]
5cea652172c6 18416129 neutron-l3-agent should include dependency on ipfilter service
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 1760
diff changeset
   118
    p = Popen(cmd, stdout=PIPE, stderr=PIPE)
5cea652172c6 18416129 neutron-l3-agent should include dependency on ipfilter service
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 1760
diff changeset
   119
    output, error = p.communicate()
5cea652172c6 18416129 neutron-l3-agent should include dependency on ipfilter service
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 1760
diff changeset
   120
    if p.returncode != 0:
5cea652172c6 18416129 neutron-l3-agent should include dependency on ipfilter service
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 1760
diff changeset
   121
        print "failed to determine if IPv4 forwarding is enabled or not"
5cea652172c6 18416129 neutron-l3-agent should include dependency on ipfilter service
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 1760
diff changeset
   122
        return smf_include.SMF_EXIT_ERR_FATAL
5cea652172c6 18416129 neutron-l3-agent should include dependency on ipfilter service
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 1760
diff changeset
   123
    v4fwding = "on" in output
5cea652172c6 18416129 neutron-l3-agent should include dependency on ipfilter service
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 1760
diff changeset
   124
5cea652172c6 18416129 neutron-l3-agent should include dependency on ipfilter service
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 1760
diff changeset
   125
    cmd = ["/usr/sbin/ipadm", "show-prop", "-c", "-p", "forwarding",
5cea652172c6 18416129 neutron-l3-agent should include dependency on ipfilter service
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 1760
diff changeset
   126
           "-o", "current", "ipv6"]
5cea652172c6 18416129 neutron-l3-agent should include dependency on ipfilter service
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 1760
diff changeset
   127
    p = Popen(cmd, stdout=PIPE, stderr=PIPE)
5cea652172c6 18416129 neutron-l3-agent should include dependency on ipfilter service
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 1760
diff changeset
   128
    output, error = p.communicate()
5cea652172c6 18416129 neutron-l3-agent should include dependency on ipfilter service
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 1760
diff changeset
   129
    if p.returncode != 0:
5cea652172c6 18416129 neutron-l3-agent should include dependency on ipfilter service
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 1760
diff changeset
   130
        print "failed to determine if IPv6 forwarding is enabled or not"
5cea652172c6 18416129 neutron-l3-agent should include dependency on ipfilter service
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 1760
diff changeset
   131
        return smf_include.SMF_EXIT_ERR_FATAL
5cea652172c6 18416129 neutron-l3-agent should include dependency on ipfilter service
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 1760
diff changeset
   132
    v6fwding = "on" in output
5cea652172c6 18416129 neutron-l3-agent should include dependency on ipfilter service
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 1760
diff changeset
   133
5cea652172c6 18416129 neutron-l3-agent should include dependency on ipfilter service
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 1760
diff changeset
   134
    if not any((v4fwding, v6fwding)):
1944
56ac2df1785b PSARC/2014/207 OpenStack Glance Update to Havana
Drew Fisher <drew.fisher@oracle.com>
parents: 1792
diff changeset
   135
        print "System-wide IPv4 or IPv6 (or both) forwarding must be " \
56ac2df1785b PSARC/2014/207 OpenStack Glance Update to Havana
Drew Fisher <drew.fisher@oracle.com>
parents: 1792
diff changeset
   136
              "enabled before enabling neutron-l3-agent"
1792
5cea652172c6 18416129 neutron-l3-agent should include dependency on ipfilter service
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 1760
diff changeset
   137
        return smf_include.SMF_EXIT_ERR_CONFIG
5cea652172c6 18416129 neutron-l3-agent should include dependency on ipfilter service
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 1760
diff changeset
   138
5579
48110757c6c6 PSARC/2016/116 OpenStack Neutron support for Packet Filter
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5405
diff changeset
   139
    # remove any stale PF rules under _auto/neutron:l3:agent anchor
48110757c6c6 PSARC/2016/116 OpenStack Neutron support for Packet Filter
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5405
diff changeset
   140
    pf = packetfilter.PacketFilter('_auto/neutron:l3:agent')
48110757c6c6 PSARC/2016/116 OpenStack Neutron support for Packet Filter
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5405
diff changeset
   141
    pf.remove_anchor_recursively()
48110757c6c6 PSARC/2016/116 OpenStack Neutron support for Packet Filter
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5405
diff changeset
   142
48110757c6c6 PSARC/2016/116 OpenStack Neutron support for Packet Filter
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5405
diff changeset
   143
    cmd = "/usr/bin/pfexec /usr/lib/neutron/neutron-l3-agent " \
48110757c6c6 PSARC/2016/116 OpenStack Neutron support for Packet Filter
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5405
diff changeset
   144
        "--config-file %s --config-file %s --config-file %s" % \
48110757c6c6 PSARC/2016/116 OpenStack Neutron support for Packet Filter
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5405
diff changeset
   145
        tuple(sys.argv[2:5])
6031
1aaf20a19738 PSARC/2016/251 OpenStack Neutron ML2 framework and OVS mechanism driver
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5630
diff changeset
   146
    if is_ml2_plugin():
1aaf20a19738 PSARC/2016/251 OpenStack Neutron ML2 framework and OVS mechanism driver
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5630
diff changeset
   147
        cmd += " --config-file %s" % sys.argv[5]
5405
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 4049
diff changeset
   148
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 4049
diff changeset
   149
    # The VPNaaS shutdown should unplumb all IP tunnels it created. But
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 4049
diff changeset
   150
    # be paranoid and check for lingering tunnels created by OpenStack
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 4049
diff changeset
   151
    # that may have been left behind if the OpenStack device driver exits
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 4049
diff changeset
   152
    # unexpectedly. OpenStack VPN configuration is created when the service
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 4049
diff changeset
   153
    # starts. Errors will occur if old IP tunnels still exist.
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 4049
diff changeset
   154
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 4049
diff changeset
   155
    vpn_ifs = get_vpn_interfaces()
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 4049
diff changeset
   156
    if vpn_ifs:
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 4049
diff changeset
   157
        print "Error: Found existing IP tunnel interface(s)."
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 4049
diff changeset
   158
        print "Use ipadm(1M) and dladm(1M) to remove it/them."
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 4049
diff changeset
   159
        print "Then use svcadm(1M) to clear the service."
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 4049
diff changeset
   160
        print "Use the following commands to remove:"
5630
dff517d5c829 22902853 Neutron/VPNaaS needs a workaround for 22902761
Mark Fenwick <Mark.Fenwick@Oracle.COM>
parents: 5579
diff changeset
   161
        for ifn in vpn_ifs:
5405
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 4049
diff changeset
   162
            print "\t# ipadm delete-ip %s; dladm delete-iptun %s" % (ifn, ifn)
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 4049
diff changeset
   163
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 4049
diff changeset
   164
        return smf_include.SMF_EXIT_ERR_CONFIG
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 4049
diff changeset
   165
3998
5bd484384122 PSARC 2015/110 OpenStack service updates for Juno
Danek Duvall <danek.duvall@oracle.com>
parents: 2083
diff changeset
   166
    # set the hostmodel property if necessary
5bd484384122 PSARC 2015/110 OpenStack service updates for Juno
Danek Duvall <danek.duvall@oracle.com>
parents: 2083
diff changeset
   167
    if not set_hostmodel("src-priority"):
5bd484384122 PSARC 2015/110 OpenStack service updates for Juno
Danek Duvall <danek.duvall@oracle.com>
parents: 2083
diff changeset
   168
        return smf_include.SMF_EXIT_ERR_FATAL
5bd484384122 PSARC 2015/110 OpenStack service updates for Juno
Danek Duvall <danek.duvall@oracle.com>
parents: 2083
diff changeset
   169
5405
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 4049
diff changeset
   170
    return smf_include.smf_subprocess(cmd)
1760
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
   171
1944
56ac2df1785b PSARC/2014/207 OpenStack Glance Update to Havana
Drew Fisher <drew.fisher@oracle.com>
parents: 1792
diff changeset
   172
6382
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
   173
def get_ovs_bridge(dlname):
6031
1aaf20a19738 PSARC/2016/251 OpenStack Neutron ML2 framework and OVS mechanism driver
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5630
diff changeset
   174
    # retrieve the right OVS bridge based on the interface name
6382
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
   175
    if dlname.startswith('l3i'):
6031
1aaf20a19738 PSARC/2016/251 OpenStack Neutron ML2 framework and OVS mechanism driver
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5630
diff changeset
   176
        config_file = '/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini'
1aaf20a19738 PSARC/2016/251 OpenStack Neutron ML2 framework and OVS mechanism driver
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5630
diff changeset
   177
        section = "ovs"
1aaf20a19738 PSARC/2016/251 OpenStack Neutron ML2 framework and OVS mechanism driver
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5630
diff changeset
   178
        option = "integration_bridge"
1aaf20a19738 PSARC/2016/251 OpenStack Neutron ML2 framework and OVS mechanism driver
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5630
diff changeset
   179
    else:
1aaf20a19738 PSARC/2016/251 OpenStack Neutron ML2 framework and OVS mechanism driver
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5630
diff changeset
   180
        config_file = '/etc/neutron/l3_agent.ini'
1aaf20a19738 PSARC/2016/251 OpenStack Neutron ML2 framework and OVS mechanism driver
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5630
diff changeset
   181
        section = "DEFAULT"
1aaf20a19738 PSARC/2016/251 OpenStack Neutron ML2 framework and OVS mechanism driver
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5630
diff changeset
   182
        option = "external_network_bridge"
1aaf20a19738 PSARC/2016/251 OpenStack Neutron ML2 framework and OVS mechanism driver
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5630
diff changeset
   183
    parser = ConfigParser.ConfigParser()
1aaf20a19738 PSARC/2016/251 OpenStack Neutron ML2 framework and OVS mechanism driver
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5630
diff changeset
   184
    parser.read(config_file)
1aaf20a19738 PSARC/2016/251 OpenStack Neutron ML2 framework and OVS mechanism driver
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5630
diff changeset
   185
    try:
1aaf20a19738 PSARC/2016/251 OpenStack Neutron ML2 framework and OVS mechanism driver
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5630
diff changeset
   186
        ovs_bridge = parser.get(section, option)
1aaf20a19738 PSARC/2016/251 OpenStack Neutron ML2 framework and OVS mechanism driver
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5630
diff changeset
   187
    except ConfigParser.NoOptionError:
1aaf20a19738 PSARC/2016/251 OpenStack Neutron ML2 framework and OVS mechanism driver
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5630
diff changeset
   188
        ovs_bridge = None
1aaf20a19738 PSARC/2016/251 OpenStack Neutron ML2 framework and OVS mechanism driver
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5630
diff changeset
   189
    return ovs_bridge
1aaf20a19738 PSARC/2016/251 OpenStack Neutron ML2 framework and OVS mechanism driver
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5630
diff changeset
   190
1aaf20a19738 PSARC/2016/251 OpenStack Neutron ML2 framework and OVS mechanism driver
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5630
diff changeset
   191
1944
56ac2df1785b PSARC/2014/207 OpenStack Glance Update to Havana
Drew Fisher <drew.fisher@oracle.com>
parents: 1792
diff changeset
   192
def stop():
5405
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 4049
diff changeset
   193
    shutdown_vpn()
6382
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
   194
    # Keep issuing SIGTERM until the contract is empty. This way we will catch
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
   195
    # any child processes missed because they were getting forked.
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
   196
    # 50 attempts will be made at intervals of 2 seconds. Typically, we
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
   197
    # will only need 0 or 1 additional attempt before the contract is empty but
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
   198
    # we chose to err on the side of caution. In the worst case, we will use
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
   199
    # 100 seconds in the below loop which will leave 500 seconds (timeout is
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
   200
    # 600s) for the other cleanup tasks, after which the service will be put to
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
   201
    # maintenance state if the contract was not killed successfully.
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
   202
    if not kill_contract(50, 2, sys.argv[2]):
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
   203
        return smf_include.SMF_EXIT_ERR_FATAL
1944
56ac2df1785b PSARC/2014/207 OpenStack Glance Update to Havana
Drew Fisher <drew.fisher@oracle.com>
parents: 1792
diff changeset
   204
5579
48110757c6c6 PSARC/2016/116 OpenStack Neutron support for Packet Filter
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5405
diff changeset
   205
    # We need to first remove the PF rules added under _auto/neutron:l3:agent
48110757c6c6 PSARC/2016/116 OpenStack Neutron support for Packet Filter
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5405
diff changeset
   206
    # anchor and then remove the IP interfaces on which the rules were applied.
48110757c6c6 PSARC/2016/116 OpenStack Neutron support for Packet Filter
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5405
diff changeset
   207
    pf = packetfilter.PacketFilter('_auto/neutron:l3:agent')
48110757c6c6 PSARC/2016/116 OpenStack Neutron support for Packet Filter
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 5405
diff changeset
   208
    pf.remove_anchor_recursively()
1944
56ac2df1785b PSARC/2014/207 OpenStack Glance Update to Havana
Drew Fisher <drew.fisher@oracle.com>
parents: 1792
diff changeset
   209
2083
87196737f09f 19571319 datalink protection kicks in if L3 agent and DHCP agent are on the same m/c
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 1977
diff changeset
   210
    # remove VNICs associated with L3 agent
6382
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
   211
    ret_code = cleanup_l3_agent_datalinks()
2083
87196737f09f 19571319 datalink protection kicks in if L3 agent and DHCP agent are on the same m/c
Girish Moodalbail <Girish.Moodalbail@oracle.COM>
parents: 1977
diff changeset
   212
3998
5bd484384122 PSARC 2015/110 OpenStack service updates for Juno
Danek Duvall <danek.duvall@oracle.com>
parents: 2083
diff changeset
   213
    # finally reset the hostmodel property
6382
ed601ca40b9c 23726258 SMF enable-disable with many nws puts neutron-dhcp-agent into maintenance
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6031
diff changeset
   214
    if not set_hostmodel("weak") or ret_code != smf_include.SMF_EXIT_OK:
3998
5bd484384122 PSARC 2015/110 OpenStack service updates for Juno
Danek Duvall <danek.duvall@oracle.com>
parents: 2083
diff changeset
   215
        return smf_include.SMF_EXIT_ERR_FATAL
1944
56ac2df1785b PSARC/2014/207 OpenStack Glance Update to Havana
Drew Fisher <drew.fisher@oracle.com>
parents: 1792
diff changeset
   216
    return smf_include.SMF_EXIT_OK
56ac2df1785b PSARC/2014/207 OpenStack Glance Update to Havana
Drew Fisher <drew.fisher@oracle.com>
parents: 1792
diff changeset
   217
1760
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
   218
if __name__ == "__main__":
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
   219
    os.putenv("LC_ALL", "C")
353323c7bdc1 PSARC/2013/350 OpenStack for Solaris (Umbrella)
Drew Fisher <drew.fisher@oracle.com>
parents:
diff changeset
   220
    smf_include.smf_main()