components/openstack/neutron/patches/02-l3-agent-add-solaris.patch
author Laszlo Peter <laszlo.peter@oracle.com>
Wed, 07 Sep 2016 14:48:41 -0700
changeset 6848 8e252a37ed0d
parent 6678 6e93d2f59ffb
permissions -rw-r--r--
PSARC 2016/268 Neutron EVS Plugin EOF 24465835 Update Neutron for the Mitaka release 22271305 EOF monolithic neutron plugin for Openstack 18734794 port-create --fixed-ip accepts invalid argument, creates port with wrong IP
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5405
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
     1
Changes to the Neutron L3 agent to port it to Solaris. These changes
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
     2
will eventually be proposed upstream.
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
     3
6848
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
     4
--- neutron-8.1.2/neutron/agent/l3/config.py	2016-06-09 18:45:29.000000000 -0700
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
     5
+++ new/neutron/agent/l3/config.py	2016-08-01 16:27:05.166039913 -0700
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
     6
@@ -46,7 +46,6 @@
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
     7
                help=_("Send this many gratuitous ARPs for HA setup, if "
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
     8
                       "less than or equal to 0, the feature is disabled")),
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
     9
     cfg.StrOpt('router_id', default='',
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    10
-               deprecated_for_removal=True,
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    11
                help=_("If non-empty, the l3 agent can only configure a router "
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    12
                       "that has the matching router ID.")),
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    13
     cfg.BoolOpt('handle_internal_only_routers',
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    14
--- neutron-8.1.2/neutron/agent/linux/daemon.py.~1~	2016-06-09 18:45:29.000000000 -0700
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    15
+++ neutron-8.1.2/neutron/agent/linux/daemon.py	2016-07-04 16:19:23.339906615 -0700
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    16
@@ -18,6 +18,7 @@ import grp
5405
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    17
 import logging as std_logging
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    18
 from logging import handlers
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    19
 import os
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    20
+import platform
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    21
 import pwd
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    22
 import signal
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    23
 import sys
6848
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    24
@@ -26,6 +27,7 @@ from oslo_log import log as logging
5405
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    25
 
6848
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    26
 from neutron._i18n import _, _LE, _LI
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    27
 from neutron.common import exceptions
5405
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    28
+from neutron.agent.linux import utils
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    29
 
6848
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    30
 LOG = logging.getLogger(__name__)
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    31
 
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    32
@@ -152,6 +154,15 @@ class Pidfile(object):
5405
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    33
         if not pid:
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    34
             return False
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    35
 
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    36
+        if platform.system() == "SunOS":
6402
498ec92d1f73 23756654 Missing '-l' option when using pargs command in Neutron
Vardhnee Ramanujam Ravi <vardhnee.ramanujam.ravi@oracle.com>
parents: 6031
diff changeset
    37
+            cmd = ['/usr/bin/pargs', '-l', pid]
5405
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    38
+            try:
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    39
+                exec_out = utils.execute(cmd)
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    40
+            except RuntimeError:
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    41
+                return False
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    42
+            return self.procname in exec_out and (not self.uuid or
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    43
+                                                  self.uuid in exec_out)
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    44
+
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    45
         cmdline = '/proc/%s/cmdline' % pid
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    46
         try:
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    47
             with open(cmdline, "r") as f:
6848
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    48
--- neutron-8.1.2/neutron/common/ipv6_utils.py.~1~	2016-06-09 18:45:36.000000000 -0700
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    49
+++ neutron-8.1.2/neutron/common/ipv6_utils.py	2016-07-04 16:19:23.340616655 -0700
5405
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    50
@@ -17,6 +17,7 @@
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    51
 IPv6-related utilities and helper functions.
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    52
 """
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    53
 import os
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    54
+import platform
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    55
 
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    56
 import netaddr
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    57
 from oslo_log import log
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    58
@@ -51,6 +52,11 @@ def get_ipv6_addr_by_EUI64(prefix, mac):
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    59
 def is_enabled():
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    60
     global _IS_IPV6_ENABLED
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    61
 
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    62
+    if platform.system() == "SunOS":
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    63
+        if _IS_IPV6_ENABLED is None:
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    64
+            _IS_IPV6_ENABLED = True
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    65
+        return _IS_IPV6_ENABLED
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    66
+
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    67
     if _IS_IPV6_ENABLED is None:
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    68
         disabled_ipv6_path = "/proc/sys/net/ipv6/conf/default/disable_ipv6"
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents: 3998
diff changeset
    69
         if os.path.exists(disabled_ipv6_path):
6848
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    70
--- neutron-8.1.2/neutron/agent/l3/agent.py.~1~	2016-08-30 13:29:12.113143750 -0700
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    71
+++ neutron-8.1.2/neutron/agent/l3/agent.py	2016-08-30 13:20:22.455764906 -0700
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    72
@@ -13,6 +13,9 @@
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    73
 #    under the License.
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    74
 #
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    75
 
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    76
+import os
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    77
+import platform
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    78
+
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    79
 import eventlet
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    80
 import netaddr
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    81
 from oslo_config import cfg
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    82
@@ -32,12 +35,18 @@
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    83
 from neutron.agent.l3 import ha
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    84
 from neutron.agent.l3 import ha_router
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    85
 from neutron.agent.l3 import legacy_router
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    86
-from neutron.agent.l3 import namespace_manager
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    87
+if platform.system() == "SunOS":
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    88
+    from neutron.agent.solaris import namespace_manager
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    89
+else:
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    90
+    from neutron.agent.l3 import namespace_manager
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    91
 from neutron.agent.l3 import namespaces
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    92
 from neutron.agent.l3 import router_processing_queue as queue
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    93
 from neutron.agent.linux import external_process
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    94
 from neutron.agent.linux import ip_lib
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    95
-from neutron.agent.linux import pd
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    96
+if platform.system() == "SunOS":
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    97
+    from neutron.agent.solaris import pd
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    98
+else:
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
    99
+    from neutron.agent.linux import pd
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   100
 from neutron.agent.metadata import driver as metadata_driver
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   101
 from neutron.agent import rpc as agent_rpc
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   102
 from neutron.callbacks import events
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   103
@@ -268,6 +277,11 @@
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   104
                             "default value is 'br-ex' so it must be "
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   105
                             "explicitly set to a blank value."))
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   106
 
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   107
+        if not self.conf.router_id:
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   108
+            msg = _LE('Router id is required if not using namespaces.')
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   109
+            LOG.error(msg)
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   110
+            raise SystemExit(1)
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   111
+
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   112
         if self.conf.ipv6_gateway:
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   113
             # ipv6_gateway configured. Check for valid v6 link-local address.
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   114
             try:
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   115
@@ -559,6 +573,12 @@
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   116
             for i in range(0, len(router_ids), self.sync_routers_chunk_size):
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   117
                 routers = self.plugin_rpc.get_routers(
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   118
                     context, router_ids[i:i + self.sync_routers_chunk_size])
6678
6e93d2f59ffb 24478382 invalid router_id in l3_agent.ini is not caught
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6561
diff changeset
   119
+                if not routers:
6e93d2f59ffb 24478382 invalid router_id in l3_agent.ini is not caught
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6561
diff changeset
   120
+                    LOG.error(_LE('Server failed to return info for router '
6848
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   121
+                                  'with id %s. Make sure the correct router_id'
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   122
+                                  ' is specified in l3_agent.ini'),
6678
6e93d2f59ffb 24478382 invalid router_id in l3_agent.ini is not caught
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6561
diff changeset
   123
+                              self.conf.router_id)
6848
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   124
+                    os._exit(1)
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   125
                 LOG.debug('Processing :%r', routers)
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   126
                 for r in routers:
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   127
                     curr_router_ids.add(r['id'])
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   128
--- neutron-8.1.2/neutron/agent/l3_agent.py.~1~	2016-06-09 18:45:29.000000000 -0700
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   129
+++ neutron-8.1.2/neutron/agent/l3_agent.py	2016-07-04 16:19:23.341146110 -0700
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   130
@@ -14,6 +14,7 @@
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   131
 #    License for the specific language governing permissions and limitations
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   132
 #    under the License.
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   133
 
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   134
+import platform
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   135
 import sys
6678
6e93d2f59ffb 24478382 invalid router_id in l3_agent.ini is not caught
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents: 6561
diff changeset
   136
 
6848
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   137
 from oslo_config import cfg
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   138
@@ -27,6 +28,7 @@ from neutron.agent.linux import interfac
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   139
 from neutron.agent.linux import pd
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   140
 from neutron.agent.linux import ra
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   141
 from neutron.agent.metadata import config as metadata_config
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   142
+from neutron.agent.solaris import interface as solaris_interface
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   143
 from neutron.common import config as common_config
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   144
 from neutron.common import topics
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   145
 from neutron import service as neutron_service
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   146
@@ -40,6 +42,7 @@ def register_opts(conf):
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   147
     config.register_interface_driver_opts_helper(conf)
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   148
     config.register_agent_state_opts_helper(conf)
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   149
     conf.register_opts(interface.OPTS)
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   150
+    conf.register_opts(solaris_interface.OPTS)
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   151
     conf.register_opts(external_process.OPTS)
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   152
     conf.register_opts(pd.OPTS)
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   153
     conf.register_opts(ra.OPTS)
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   154
@@ -50,6 +53,8 @@ def main(manager='neutron.agent.l3.agent
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   155
     register_opts(cfg.CONF)
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   156
     common_config.init(sys.argv[1:])
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   157
     config.setup_logging()
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   158
+    if platform.system() == "SunOS":
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   159
+        manager = 'neutron.agent.l3.solaris_agent.L3NATAgent'
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   160
     server = neutron_service.Service.create(
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   161
         binary='neutron-l3-agent',
8e252a37ed0d PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents: 6678
diff changeset
   162
         topic=topics.L3_AGENT,