author | Laszlo Peter <laszlo.peter@oracle.com> |
Wed, 07 Sep 2016 14:48:41 -0700 | |
changeset 6848 | 8e252a37ed0d |
parent 5405 | 66fd59fecd68 |
permissions | -rw-r--r-- |
5405
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
1 |
Changes to the Neutron Metadata agent to port it to Solaris. These |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
2 |
changes will eventually be proposed upstream. |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
3 |
|
6848
8e252a37ed0d
PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents:
5405
diff
changeset
|
4 |
--- neutron-8.0.0/neutron/agent/metadata/driver.py.~1~ 2016-04-07 00:44:25.000000000 -0700 |
8e252a37ed0d
PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents:
5405
diff
changeset
|
5 |
+++ neutron-8.0.0/neutron/agent/metadata/driver.py 2016-05-08 22:58:35.936392260 -0700 |
5405
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
6 |
@@ -14,6 +14,7 @@ |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
7 |
# under the License. |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
8 |
|
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
9 |
import os |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
10 |
+import platform |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
11 |
|
6848
8e252a37ed0d
PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents:
5405
diff
changeset
|
12 |
from neutron.agent.common import config |
8e252a37ed0d
PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents:
5405
diff
changeset
|
13 |
from neutron.agent.l3 import ha_router |
8e252a37ed0d
PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents:
5405
diff
changeset
|
14 |
@@ -36,10 +37,16 @@ class MetadataDriver(object): |
5405
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
15 |
def __init__(self, l3_agent): |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
16 |
self.metadata_port = l3_agent.conf.metadata_port |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
17 |
self.metadata_access_mark = l3_agent.conf.metadata_access_mark |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
18 |
- registry.subscribe( |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
19 |
- after_router_added, resources.ROUTER, events.AFTER_CREATE) |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
20 |
- registry.subscribe( |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
21 |
- before_router_removed, resources.ROUTER, events.BEFORE_DELETE) |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
22 |
+ if platform.system() == "SunOS": |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
23 |
+ registry.subscribe(after_router_added_solaris, resources.ROUTER, |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
24 |
+ events.AFTER_CREATE) |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
25 |
+ registry.subscribe(before_router_removed_solaris, resources.ROUTER, |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
26 |
+ events.BEFORE_DELETE) |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
27 |
+ else: |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
28 |
+ registry.subscribe(after_router_added, resources.ROUTER, |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
29 |
+ events.AFTER_CREATE) |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
30 |
+ registry.subscribe(before_router_removed, resources.ROUTER, |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
31 |
+ events.BEFORE_DELETE) |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
32 |
|
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
33 |
@classmethod |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
34 |
def metadata_filter_rules(cls, port, mark): |
6848
8e252a37ed0d
PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents:
5405
diff
changeset
|
35 |
@@ -96,14 +103,18 @@ class MetadataDriver(object): |
5405
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
36 |
metadata_proxy_socket = conf.metadata_proxy_socket |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
37 |
user, group, watch_log = ( |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
38 |
cls._get_metadata_proxy_user_group_watchlog(conf)) |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
39 |
- proxy_cmd = ['neutron-ns-metadata-proxy', |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
40 |
- '--pid_file=%s' % pid_file, |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
41 |
- '--metadata_proxy_socket=%s' % metadata_proxy_socket, |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
42 |
- lookup_param, |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
43 |
- '--state_path=%s' % conf.state_path, |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
44 |
- '--metadata_port=%s' % port, |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
45 |
- '--metadata_proxy_user=%s' % user, |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
46 |
- '--metadata_proxy_group=%s' % group] |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
47 |
+ if platform.system() == "SunOS": |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
48 |
+ proxy_cmd = ['/usr/lib/neutron/neutron-ns-metadata-proxy'] |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
49 |
+ else: |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
50 |
+ proxy_cmd = ['neutron-ns-metadata-proxy', |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
51 |
+ '--metadata_proxy_user=%s' % user, |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
52 |
+ '--metadata_proxy_group=%s' % group] |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
53 |
+ proxy_cmd.extend(['--pid_file=%s' % pid_file, |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
54 |
+ '--metadata_proxy_socket=%s' % |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
55 |
+ metadata_proxy_socket, |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
56 |
+ lookup_param, |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
57 |
+ '--state_path=%s' % conf.state_path, |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
58 |
+ '--metadata_port=%s' % port]) |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
59 |
proxy_cmd.extend(config.get_log_args( |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
60 |
conf, 'neutron-ns-metadata-proxy-%s.log' % uuid, |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
61 |
metadata_proxy_watch_log=watch_log)) |
6848
8e252a37ed0d
PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents:
5405
diff
changeset
|
62 |
@@ -168,3 +179,25 @@ def before_router_removed(resource, even |
5405
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
63 |
proxy.destroy_monitored_metadata_proxy(l3_agent.process_monitor, |
6848
8e252a37ed0d
PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents:
5405
diff
changeset
|
64 |
router.router['id'], |
8e252a37ed0d
PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents:
5405
diff
changeset
|
65 |
l3_agent.conf) |
5405
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
66 |
+ |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
67 |
+ |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
68 |
+def after_router_added_solaris(resource, event, l3_agent, **kwargs): |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
69 |
+ router = kwargs['router'] |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
70 |
+ proxy = l3_agent.metadata_driver |
6848
8e252a37ed0d
PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents:
5405
diff
changeset
|
71 |
+ if not router.router['ha']: |
5405
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
72 |
+ proxy.spawn_monitored_metadata_proxy( |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
73 |
+ l3_agent.process_monitor, |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
74 |
+ router.ns_name, |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
75 |
+ proxy.metadata_port, |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
76 |
+ l3_agent.conf, |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
77 |
+ router_id=router.router_id) |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
78 |
+ |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
79 |
+ |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
80 |
+def before_router_removed_solaris(resource, event, l3_agent, **kwargs): |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
81 |
+ router = kwargs['router'] |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
82 |
+ proxy = l3_agent.metadata_driver |
6848
8e252a37ed0d
PSARC 2016/268 Neutron EVS Plugin EOF
Laszlo Peter <laszlo.peter@oracle.com>
parents:
5405
diff
changeset
|
83 |
+ if not router.router['ha']: |
5405
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
84 |
+ proxy.destroy_monitored_metadata_proxy(l3_agent.process_monitor, |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
85 |
+ router.router['id'], |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
86 |
+ router.ns_name, |
66fd59fecd68
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff
changeset
|
87 |
+ l3_agent.conf) |