Skip to content

Instantly share code, notes, and snippets.

@yosshy
Created July 15, 2014 16:01
Show Gist options
  • Save yosshy/f50debb1127d2aed42db to your computer and use it in GitHub Desktop.
Save yosshy/f50debb1127d2aed42db to your computer and use it in GitHub Desktop.
Monkey Patch for Neutron
#!/bin/bash
LINE=""
/bin/grep -Ev '^#' $HOME/neutron_list > /tmp/list2
while read i ; do
if [ -n "$LINE" ]; then
LINE=$LINE,$i:neutron.ct.ct
else
LINE=$i:neutron.ct.ct
fi
done < /tmp/list2
sed -e "s/%%%%/$LINE/" $HOME/neutron.conf > /etc/neutron/neutron.conf
[DEFAULT]
nova_admin_auth_url = http://192.168.33.102:35357/v2.0
nova_admin_tenant_id = 80751b3428ac433e91cfc522cdad90a5
nova_admin_password = openstack
nova_admin_username = nova
nova_url = http://192.168.33.102:8774/v2
notify_nova_on_port_data_changes = True
notify_nova_on_port_status_change = True
auth_strategy = keystone
allow_overlapping_ips = True
policy_file = /etc/neutron/policy.json
debug = True
verbose = True
service_plugins = neutron.services.l3_router.l3_router_plugin.L3RouterPlugin,neutron.services.loadbalancer.plugin.LoadBalancerPlugin
core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin
rabbit_password = openstack
rabbit_hosts = 192.168.33.102
rpc_backend = neutron.openstack.common.rpc.impl_kombu
logging_exception_prefix = %(color)s%(asctime)s.%(msecs)03d TRACE %(name)s %(instance)s
logging_debug_format_suffix = from (pid=%(process)d) %(funcName)s %(pathname)s:%(lineno)d
logging_default_format_string = %(asctime)s.%(msecs)03d %(color)s%(levelname)s %(name)s [-%(color)s] %(instance)s%(color)s%(message)s
logging_context_format_string = %(asctime)s.%(msecs)03d %(color)s%(levelname)s %(name)s [%(request_id)s %(user_name)s %(project_id)s%(color)s] %(instance)s%(color)s%(message)s
state_path = /opt/stack/data/neutron
# Print more verbose output (set logging level to INFO instead of default WARNING level).
# verbose = False
# Print debugging output (set logging level to DEBUG instead of default WARNING level).
# debug = False
# Where to store Neutron state files. This directory must be writable by the
# user executing the agent.
# state_path = /var/lib/neutron
# Where to store lock files
lock_path = $state_path/lock
# log_format = %(asctime)s %(levelname)8s [%(name)s] %(message)s
# log_date_format = %Y-%m-%d %H:%M:%S
# use_syslog -> syslog
# log_file and log_dir -> log_dir/log_file
# (not log_file) and log_dir -> log_dir/{binary_name}.log
# use_stderr -> stderr
# (not user_stderr) and (not log_file) -> stdout
# publish_errors -> notification system
# use_syslog = False
# syslog_log_facility = LOG_USER
# use_stderr = True
# log_file =
# log_dir =
# publish_errors = False
# Address to bind the API server to
# bind_host = 0.0.0.0
# Port the bind the API server to
# bind_port = 9696
# Path to the extensions. Note that this can be a colon-separated list of
# paths. For example:
# api_extensions_path = extensions:/path/to/more/extensions:/even/more/extensions
# The __path__ of neutron.extensions is appended to this, so if your
# extensions are in there you don't need to specify them here
# api_extensions_path =
# (StrOpt) Neutron core plugin entrypoint to be loaded from the
# neutron.core_plugins namespace. See setup.cfg for the entrypoint names of the
# plugins included in the neutron source distribution. For compatibility with
# previous versions, the class name of a plugin can be specified instead of its
# entrypoint name.
#
# core_plugin =
# Example: core_plugin = ml2
# (ListOpt) List of service plugin entrypoints to be loaded from the
# neutron.service_plugins namespace. See setup.cfg for the entrypoint names of
# the plugins included in the neutron source distribution. For compatibility
# with previous versions, the class name of a plugin can be specified instead
# of its entrypoint name.
#
# service_plugins =
# Example: service_plugins = router,firewall,lbaas,vpnaas,metering
# Paste configuration file
# api_paste_config = api-paste.ini
# The strategy to be used for auth.
# Supported values are 'keystone'(default), 'noauth'.
# auth_strategy = keystone
# Base MAC address. The first 3 octets will remain unchanged. If the
# 4h octet is not 00, it will also be used. The others will be
# randomly generated.
# 3 octet
# base_mac = fa:16:3e:00:00:00
# 4 octet
# base_mac = fa:16:3e:4f:00:00
# Maximum amount of retries to generate a unique MAC address
# mac_generation_retries = 16
# DHCP Lease duration (in seconds)
# dhcp_lease_duration = 86400
# Allow sending resource operation notification to DHCP agent
# dhcp_agent_notification = True
# Enable or disable bulk create/update/delete operations
# allow_bulk = True
# Enable or disable pagination
# allow_pagination = False
# Enable or disable sorting
# allow_sorting = False
# Enable or disable overlapping IPs for subnets
# Attention: the following parameter MUST be set to False if Neutron is
# being used in conjunction with nova security groups
# allow_overlapping_ips = False
# Ensure that configured gateway is on subnet
# force_gateway_on_subnet = False
# RPC configuration options. Defined in rpc __init__
# The messaging module to use, defaults to kombu.
# rpc_backend = neutron.openstack.common.rpc.impl_kombu
# Size of RPC thread pool
# rpc_thread_pool_size = 64
# Size of RPC connection pool
# rpc_conn_pool_size = 30
# Seconds to wait for a response from call or multicall
# rpc_response_timeout = 60
# Seconds to wait before a cast expires (TTL). Only supported by impl_zmq.
# rpc_cast_timeout = 30
# Modules of exceptions that are permitted to be recreated
# upon receiving exception data from an rpc call.
# allowed_rpc_exception_modules = neutron.openstack.common.exception, nova.exception
# AMQP exchange to connect to if using RabbitMQ or QPID
# control_exchange = neutron
# If passed, use a fake RabbitMQ provider
# fake_rabbit = False
# Configuration options if sending notifications via kombu rpc (these are
# the defaults)
# SSL version to use (valid only if SSL enabled)
# kombu_ssl_version =
# SSL key file (valid only if SSL enabled)
# kombu_ssl_keyfile =
# SSL cert file (valid only if SSL enabled)
# kombu_ssl_certfile =
# SSL certification authority file (valid only if SSL enabled)
# kombu_ssl_ca_certs =
# IP address of the RabbitMQ installation
# rabbit_host = localhost
# Password of the RabbitMQ server
# rabbit_password = guest
# Port where RabbitMQ server is running/listening
# rabbit_port = 5672
# RabbitMQ single or HA cluster (host:port pairs i.e: host1:5672, host2:5672)
# rabbit_hosts is defaulted to '$rabbit_host:$rabbit_port'
# rabbit_hosts = localhost:5672
# User ID used for RabbitMQ connections
# rabbit_userid = guest
# Location of a virtual RabbitMQ installation.
# rabbit_virtual_host = /
# Maximum retries with trying to connect to RabbitMQ
# (the default of 0 implies an infinite retry count)
# rabbit_max_retries = 0
# RabbitMQ connection retry interval
# rabbit_retry_interval = 1
# Use HA queues in RabbitMQ (x-ha-policy: all). You need to
# wipe RabbitMQ database when changing this option. (boolean value)
# rabbit_ha_queues = false
# QPID
# rpc_backend=neutron.openstack.common.rpc.impl_qpid
# Qpid broker hostname
# qpid_hostname = localhost
# Qpid broker port
# qpid_port = 5672
# Qpid single or HA cluster (host:port pairs i.e: host1:5672, host2:5672)
# qpid_hosts is defaulted to '$qpid_hostname:$qpid_port'
# qpid_hosts = localhost:5672
# Username for qpid connection
# qpid_username = ''
# Password for qpid connection
# qpid_password = ''
# Space separated list of SASL mechanisms to use for auth
# qpid_sasl_mechanisms = ''
# Seconds between connection keepalive heartbeats
# qpid_heartbeat = 60
# Transport to use, either 'tcp' or 'ssl'
# qpid_protocol = tcp
# Disable Nagle algorithm
# qpid_tcp_nodelay = True
# ZMQ
# rpc_backend=neutron.openstack.common.rpc.impl_zmq
# ZeroMQ bind address. Should be a wildcard (*), an ethernet interface, or IP.
# The "host" option should point or resolve to this address.
# rpc_zmq_bind_address = *
# ============ Notification System Options =====================
# Notifications can be sent when network/subnet/port are created, updated or deleted.
# There are three methods of sending notifications: logging (via the
# log_file directive), rpc (via a message queue) and
# noop (no notifications sent, the default)
# Notification_driver can be defined multiple times
# Do nothing driver
# notification_driver = neutron.openstack.common.notifier.no_op_notifier
# Logging driver
# notification_driver = neutron.openstack.common.notifier.log_notifier
# RPC driver.
notification_driver = neutron.openstack.common.notifier.rpc_notifier
# default_notification_level is used to form actual topic name(s) or to set logging level
# default_notification_level = INFO
# default_publisher_id is a part of the notification payload
# host = myhost.com
# default_publisher_id = $host
# Defined in rpc_notifier, can be comma separated values.
# The actual topic names will be %s.%(default_notification_level)s
# notification_topics = notifications
# Default maximum number of items returned in a single response,
# value == infinite and value < 0 means no max limit, and value must
# be greater than 0. If the number of items requested is greater than
# pagination_max_limit, server will just return pagination_max_limit
# of number of items.
# pagination_max_limit = -1
# Maximum number of DNS nameservers per subnet
# max_dns_nameservers = 5
# Maximum number of host routes per subnet
# max_subnet_host_routes = 20
# Maximum number of fixed ips per port
# max_fixed_ips_per_port = 5
# =========== items for agent management extension =============
# Seconds to regard the agent as down; should be at least twice
# report_interval, to be sure the agent is down for good
# agent_down_time = 75
# =========== end of items for agent management extension =====
# =========== items for agent scheduler extension =============
# Driver to use for scheduling network to DHCP agent
# network_scheduler_driver = neutron.scheduler.dhcp_agent_scheduler.ChanceScheduler
# Driver to use for scheduling router to a default L3 agent
# router_scheduler_driver = neutron.scheduler.l3_agent_scheduler.ChanceScheduler
# Driver to use for scheduling a loadbalancer pool to an lbaas agent
# loadbalancer_pool_scheduler_driver = neutron.services.loadbalancer.agent_scheduler.ChanceScheduler
# Allow auto scheduling networks to DHCP agent. It will schedule non-hosted
# networks to first DHCP agent which sends get_active_networks message to
# neutron server
# network_auto_schedule = True
# Allow auto scheduling routers to L3 agent. It will schedule non-hosted
# routers to first L3 agent which sends sync_routers message to neutron server
# router_auto_schedule = True
# Number of DHCP agents scheduled to host a network. This enables redundant
# DHCP agents for configured networks.
# dhcp_agents_per_network = 1
# =========== end of items for agent scheduler extension =====
# =========== WSGI parameters related to the API server ==============
# Number of separate worker processes to spawn. The default, 0, runs the
# worker thread in the current process. Greater than 0 launches that number of
# child processes as workers. The parent process manages them.
# api_workers = 0
# Number of separate RPC worker processes to spawn. The default, 0, runs the
# worker thread in the current process. Greater than 0 launches that number of
# child processes as RPC workers. The parent process manages them.
# This feature is experimental until issues are addressed and testing has been
# enabled for various plugins for compatibility.
# rpc_workers = 0
# Sets the value of TCP_KEEPIDLE in seconds to use for each server socket when
# starting API server. Not supported on OS X.
# tcp_keepidle = 600
# Number of seconds to keep retrying to listen
# retry_until_window = 30
# Number of backlog requests to configure the socket with.
# backlog = 4096
# Max header line to accommodate large tokens
# max_header_line = 16384
# Enable SSL on the API server
# use_ssl = False
# Certificate file to use when starting API server securely
# ssl_cert_file = /path/to/certfile
# Private key file to use when starting API server securely
# ssl_key_file = /path/to/keyfile
# CA certificate file to use when starting API server securely to
# verify connecting clients. This is an optional parameter only required if
# API clients need to authenticate to the API server using SSL certificates
# signed by a trusted CA
# ssl_ca_file = /path/to/cafile
# ======== end of WSGI parameters related to the API server ==========
# ======== neutron nova interactions ==========
# Send notification to nova when port status is active.
# notify_nova_on_port_status_changes = True
# Send notifications to nova when port data (fixed_ips/floatingips) change
# so nova can update it's cache.
# notify_nova_on_port_data_changes = True
# URL for connection to nova (Only supports one nova region currently).
# nova_url = http://127.0.0.1:8774/v2
# Name of nova region to use. Useful if keystone manages more than one region
# nova_region_name =
# Username for connection to nova in admin context
# nova_admin_username =
# The uuid of the admin nova tenant
# nova_admin_tenant_id =
# Password for connection to nova in admin context.
# nova_admin_password =
# Authorization URL for connection to nova in admin context.
# nova_admin_auth_url =
# Number of seconds between sending events to nova if there are any events to send
# send_events_interval = 2
# ======== end of neutron nova interactions ==========
[quotas]
# Default driver to use for quota checks
# quota_driver = neutron.db.quota_db.DbQuotaDriver
# Resource name(s) that are supported in quota features
# quota_items = network,subnet,port
# Default number of resource allowed per tenant. A negative value means
# unlimited.
# default_quota = -1
# Number of networks allowed per tenant. A negative value means unlimited.
# quota_network = 10
# Number of subnets allowed per tenant. A negative value means unlimited.
# quota_subnet = 10
# Number of ports allowed per tenant. A negative value means unlimited.
# quota_port = 50
# Number of security groups allowed per tenant. A negative value means
# unlimited.
# quota_security_group = 10
# Number of security group rules allowed per tenant. A negative value means
# unlimited.
# quota_security_group_rule = 100
# Number of vips allowed per tenant. A negative value means unlimited.
# quota_vip = 10
# Number of pools allowed per tenant. A negative value means unlimited.
# quota_pool = 10
# Number of pool members allowed per tenant. A negative value means unlimited.
# The default is unlimited because a member is not a real resource consumer
# on Openstack. However, on back-end, a member is a resource consumer
# and that is the reason why quota is possible.
# quota_member = -1
# Number of health monitors allowed per tenant. A negative value means
# unlimited.
# The default is unlimited because a health monitor is not a real resource
# consumer on Openstack. However, on back-end, a member is a resource consumer
# and that is the reason why quota is possible.
# quota_health_monitors = -1
# Number of routers allowed per tenant. A negative value means unlimited.
# quota_router = 10
# Number of floating IPs allowed per tenant. A negative value means unlimited.
# quota_floatingip = 50
[agent]
root_helper = sudo /usr/local/bin/neutron-rootwrap /etc/neutron/rootwrap.conf
# Use "sudo neutron-rootwrap /etc/neutron/rootwrap.conf" to use the real
# root filter facility.
# Change to "sudo" to skip the filtering and just run the comand directly
# root_helper = sudo
# =========== items for agent management extension =============
# seconds between nodes reporting state to server; should be less than
# agent_down_time, best if it is half or less than agent_down_time
# report_interval = 30
# =========== end of items for agent management extension =====
[keystone_authtoken]
auth_host = 192.168.33.102
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = neutron
admin_password = openstack
signing_dir = /var/cache/neutron
[database]
# This line MUST be changed to actually run the plugin.
# Example:
# connection = mysql://root:[email protected]:3306/neutron
# Replace 127.0.0.1 above with the IP address of the database used by the
# main neutron server. (Leave it as is if the database runs on this host.)
# connection = sqlite://
# The SQLAlchemy connection string used to connect to the slave database
# slave_connection =
# Database reconnection retry times - in event connectivity is lost
# set to -1 implies an infinite retry count
# max_retries = 10
# Database reconnection interval in seconds - if the initial connection to the
# database fails
# retry_interval = 10
# Minimum number of SQL connections to keep open in a pool
# min_pool_size = 1
# Maximum number of SQL connections to keep open in a pool
# max_pool_size = 10
# Timeout in seconds before idle sql connections are reaped
# idle_timeout = 3600
# If set, use this value for max_overflow with sqlalchemy
# max_overflow = 20
# Verbosity of SQL debugging information. 0=None, 100=Everything
# connection_debug = 0
# Add python stack traces to SQL as comment strings
# connection_trace = False
# If set, use this value for pool_timeout with sqlalchemy
# pool_timeout = 10
[service_providers]
# Specify service providers (drivers) for advanced services like loadbalancer, VPN, Firewall.
# Must be in form:
# service_provider=<service_type>:<name>:<driver>[:default]
# List of allowed service types includes LOADBALANCER, FIREWALL, VPN
# Combination of <service type> and <name> must be unique; <driver> must also be unique
# This is multiline option, example for default provider:
# service_provider=LOADBALANCER:name:lbaas_plugin_driver_path:default
# example of non-default provider:
# service_provider=FIREWALL:name2:firewall_driver_path
# --- Reference implementations ---
service_provider=LOADBALANCER:Haproxy:neutron.services.loadbalancer.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default
service_provider=VPN:openswan:neutron.services.vpn.service_drivers.ipsec.IPsecVPNDriver:default
# In order to activate Radware's lbaas driver you need to uncomment the next line.
# If you want to keep the HA Proxy as the default lbaas driver, remove the attribute default from the line below.
# Otherwise comment the HA Proxy line
# service_provider = LOADBALANCER:Radware:neutron.services.loadbalancer.drivers.radware.driver.LoadBalancerDriver:default
# uncomment the following line to make the 'netscaler' LBaaS provider available.
# service_provider=LOADBALANCER:NetScaler:neutron.services.loadbalancer.drivers.netscaler.netscaler_driver.NetScalerPluginDriver
# Uncomment the following line (and comment out the OpenSwan VPN line) to enable Cisco's VPN driver.
# service_provider=VPN:cisco:neutron.services.vpn.service_drivers.cisco_ipsec.CiscoCsrIPsecVPNDriver:default
# Uncomment the line below to use Embrane heleos as Load Balancer service provider.
# service_provider=LOADBALANCER:Embrane:neutron.services.loadbalancer.drivers.embrane.driver.EmbraneLbaas:default
[monkey_patch]
enabled = True
target_modules = %%%%
commit 08851e10104beed5e704d58d5169af1263eee9ad
Author: Akira Yoshiyama <[email protected]>
Date: Mon Jun 23 12:50:29 2014 +0000
Added calltrace monkey patch.
diff --git a/neutron/agent/dhcp_agent.py b/neutron/agent/dhcp_agent.py
index ae597cd..44b8ce8 100644
--- a/neutron/agent/dhcp_agent.py
+++ b/neutron/agent/dhcp_agent.py
@@ -37,6 +37,7 @@ from neutron import manager
from neutron.openstack.common import importutils
from neutron.openstack.common import log as logging
from neutron.openstack.common import loopingcall
+from neutron.openstack.common import monkeypatch_utils as mp
from neutron.openstack.common.rpc import common
from neutron.openstack.common.rpc import proxy
from neutron.openstack.common import service
@@ -601,6 +602,7 @@ def main():
cfg.CONF(project='neutron')
config.setup_logging(cfg.CONF)
legacy.modernize_quantum_config(cfg.CONF)
+ mp.monkey_patch()
server = neutron_service.Service.create(
binary='neutron-dhcp-agent',
topic=topics.DHCP_AGENT,
diff --git a/neutron/agent/l3_agent.py b/neutron/agent/l3_agent.py
index 94700aa..3c98b4f 100644
--- a/neutron/agent/l3_agent.py
+++ b/neutron/agent/l3_agent.py
@@ -35,6 +35,7 @@ from neutron.openstack.common import importutils
from neutron.openstack.common import lockutils
from neutron.openstack.common import log as logging
from neutron.openstack.common import loopingcall
+from neutron.openstack.common import monkeypatch_utils as mp
from neutron.openstack.common import periodic_task
from neutron.openstack.common import processutils
from neutron.openstack.common.rpc import common as rpc_common
@@ -986,6 +987,7 @@ def main(manager='neutron.agent.l3_agent.L3NATAgentWithStateReport'):
conf(project='neutron')
config.setup_logging(conf)
legacy.modernize_quantum_config(conf)
+ mp.monkey_patch()
server = neutron_service.Service.create(
binary='neutron-l3-agent',
topic=topics.L3_AGENT,
diff --git a/neutron/agent/netns_cleanup_util.py b/neutron/agent/netns_cleanup_util.py
index f43efd3..bbac2b7 100644
--- a/neutron/agent/netns_cleanup_util.py
+++ b/neutron/agent/netns_cleanup_util.py
@@ -31,6 +31,7 @@ from neutron.api.v2 import attributes
from neutron.common import config
from neutron.openstack.common import importutils
from neutron.openstack.common import log as logging
+from neutron.openstack.common import monkeypatch_utils as mp
LOG = logging.getLogger(__name__)
@@ -162,6 +163,7 @@ def main():
conf = setup_conf()
conf()
config.setup_logging(conf)
+ mp.monkey_patch()
root_helper = agent_config.get_root_helper(conf)
# Identify namespaces that are candidates for deletion.
diff --git a/neutron/agent/ovs_cleanup_util.py b/neutron/agent/ovs_cleanup_util.py
index f7a388b..02368a4 100644
--- a/neutron/agent/ovs_cleanup_util.py
+++ b/neutron/agent/ovs_cleanup_util.py
@@ -24,6 +24,7 @@ from neutron.agent.linux import ip_lib
from neutron.agent.linux import ovs_lib
from neutron.common import config
from neutron.openstack.common import log as logging
+from neutron.openstack.common import monkeypatch_utils as mp
LOG = logging.getLogger(__name__)
@@ -84,6 +85,7 @@ def main():
conf = setup_conf()
conf()
config.setup_logging(conf)
+ mp.monkey_patch()
configuration_bridges = set([conf.ovs_integration_bridge,
conf.external_network_bridge])
diff --git a/neutron/ct.py b/neutron/ct.py
new file mode 100644
index 0000000..2bd55b4
--- /dev/null
+++ b/neutron/ct.py
@@ -0,0 +1,50 @@
+import fcntl
+import inspect
+import os.path
+import eventlet.corolocal
+
+from oslo.config import cfg
+
+
+LOGFILE = "/tmp/calltrace.log"
+binary = os.path.basename(inspect.stack()[-1][1])
+
+PERIODIC_TASKS = [
+ "create_or_update_agent",
+ "get_dhcp_port",
+ "_rpc_loop",
+ "report_state",
+ #"periodic_tasks",
+]
+
+tls = eventlet.corolocal.local()
+
+
+def ct(name, fn):
+
+ def wrapped_func(*args, **kwarg):
+ tid = eventlet.corolocal.get_ident()
+ if hasattr(tls, "periodic_task"):
+ return fn(*args, **kwarg)
+
+ func_name = name.rsplit('.')[-1]
+ if func_name in PERIODIC_TASKS:
+ tls.periodic_task = 1
+ return fn(*args, **kwarg)
+
+ if not hasattr(tls, "count"):
+ tls.count = 0
+ try:
+ with open(LOGFILE, "a") as f:
+ f.write("%s-%s %sentering %s\n" % (
+ binary, tid, "|" * tls.count, name))
+ tls.count += 1
+ return fn(*args, **kwarg)
+
+ finally:
+ tls.count -= 1
+ with open(LOGFILE, "a") as f:
+ f.write("%s-%s %sexiting %s\n" % (
+ binary, tid, "|" * tls.count, name))
+
+ return wrapped_func
diff --git a/neutron/openstack/common/monkeypatch_utils.py b/neutron/openstack/common/monkeypatch_utils.py
new file mode 100644
index 0000000..68e7ec1
--- /dev/null
+++ b/neutron/openstack/common/monkeypatch_utils.py
@@ -0,0 +1,94 @@
+# Copyright 2010 United States Government as represented by the
+# Administrator of the National Aeronautics and Space Administration.
+# Copyright 2011 Justin Santa Barbara
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+"""Monkey Patching Helper."""
+
+import inspect
+import pyclbr
+import sys
+
+import eventlet
+from oslo.config import cfg
+from neutron.openstack.common import importutils
+
+monkey_patch_opts = [
+ cfg.BoolOpt('enabled',
+ default=False,
+ help='Whether to log monkey patching'),
+ cfg.ListOpt('target_modules',
+ default=[],
+ help='List of modules/decorators to monkey patch'),
+ cfg.ListOpt('exclude_methods',
+ default=[],
+ help='List of methods not to monkey patch'),
+]
+
+CONF = cfg.CONF
+CONF.register_opts(monkey_patch_opts, 'monkey_patch')
+
+
+def monkey_patch():
+ """If the CONF.monkey_patch set as True,
+ this function patches a decorator
+ for all functions in specified modules.
+ You can set decorators for each modules
+ using CONF.monkey_patch_modules.
+ The format is "Module path:Decorator function".
+ Example:
+ 'nova.api.ec2.cloud:nova.notifications.notify_decorator'
+
+ Parameters of the decorator is as follows.
+ (See nova.notifications.notify_decorator)
+
+ name - name of the function
+ function - object of the function
+ """
+ # If CONF.monkey_patch is not True, this function do nothing.
+ if not CONF.monkey_patch.enabled:
+ return
+ # Get list of modules and decorators
+ for module_and_decorator in CONF.monkey_patch.target_modules:
+ module, decorator_name = module_and_decorator.split(':')
+ # import decorator function
+ decorator = importutils.import_class(decorator_name)
+ __import__(module)
+ # Retrieve module information using pyclbr
+ module_data = pyclbr.readmodule_ex(module)
+ for key in module_data.keys():
+ # set the decorator for the class methods
+ if isinstance(module_data[key], pyclbr.Class):
+ clz = importutils.import_class("%s.%s" % (module, key))
+ for method, func in inspect.getmembers(clz, inspect.ismethod):
+ # check exclude_methods
+ if method in CONF.monkey_patch.exclude_methods:
+ continue
+ # avoid applying patch to methods with @classmethod
+ m = getattr(clz, method)
+ if m.__self__ is clz:
+ continue
+ # apply it
+ setattr(clz, method,
+ decorator("%s.%s.%s" % (module, key, method), func))
+ # set the decorator for the function
+ if isinstance(module_data[key], pyclbr.Function):
+ # check exclude_methods
+ if key in CONF.monkey_patch.exclude_methods:
+ continue
+ # apply it
+ func = importutils.import_class("%s.%s" % (module, key))
+ setattr(sys.modules[module], key,
+ decorator("%s.%s" % (module, key), func))
diff --git a/neutron/server/__init__.py b/neutron/server/__init__.py
index d5177cb..ab77362 100755
--- a/neutron/server/__init__.py
+++ b/neutron/server/__init__.py
@@ -28,6 +28,7 @@ from neutron import service
from neutron.openstack.common import gettextutils
from neutron.openstack.common import log as logging
+from neutron.openstack.common import monkeypatch_utils as mp
gettextutils.install('neutron', lazy=True)
LOG = logging.getLogger(__name__)
@@ -42,6 +43,7 @@ def main():
sys.exit(_("ERROR: Unable to find configuration file via the default"
" search paths (~/.neutron/, ~/, /etc/neutron/, /etc/) and"
" the '--config-file' option!"))
+ mp.monkey_patch()
try:
pool = eventlet.GreenPool()
neutron.policy
#neutron.openstack
#neutron.openstack.common.policy
#neutron.openstack.common.local
#neutron.openstack.common.periodic_task
#neutron.openstack.common.gettextutils
#neutron.openstack.common
#neutron.openstack.common.loopingcall
#neutron.openstack.common.importutils
#neutron.openstack.common.versionutils
#neutron.openstack.common.fileutils
#neutron.openstack.common.monkeypatch_utils
#neutron.openstack.common.jsonutils
#neutron.openstack.common.uuidutils
#neutron.openstack.common.excutils
#neutron.openstack.common.processutils
#neutron.openstack.common.notifier.rpc_notifier
#neutron.openstack.common.notifier.test_notifier
#neutron.openstack.common.notifier
#neutron.openstack.common.notifier.api
#neutron.openstack.common.notifier.log_notifier
#neutron.openstack.common.notifier.rpc_notifier2
#neutron.openstack.common.notifier.rabbit_notifier
#neutron.openstack.common.notifier.no_op_notifier
#neutron.openstack.common.service
#neutron.openstack.common.log_handler
#neutron.openstack.common.timeutils
#neutron.openstack.common.eventlet_backdoor
#neutron.openstack.common.threadgroup
#neutron.openstack.common.cache
#neutron.openstack.common.cache.backends
#neutron.openstack.common.cache.cache
#neutron.openstack.common.cache._backends
#neutron.openstack.common.cache._backends.memory
#neutron.openstack.common.network_utils
#neutron.openstack.common.sslutils
#neutron.openstack.common.middleware.audit
#neutron.openstack.common.middleware
#neutron.openstack.common.middleware.catch_errors
#neutron.openstack.common.middleware.request_id
#neutron.openstack.common.middleware.notifier
#neutron.openstack.common.middleware.base
#neutron.openstack.common.middleware.correlation_id
#neutron.openstack.common.middleware.sizelimit
#neutron.openstack.common.middleware.debug
#neutron.openstack.common.db.exception
#neutron.openstack.common.db
#neutron.openstack.common.db.api
#neutron.openstack.common.db.sqlalchemy.session
#neutron.openstack.common.db.sqlalchemy
#neutron.openstack.common.db.sqlalchemy.models
#neutron.openstack.common.db.sqlalchemy.utils
#neutron.openstack.common.rpc.matchmaker_redis
#neutron.openstack.common.rpc.impl_fake
#neutron.openstack.common.rpc.impl_qpid
#neutron.openstack.common.rpc.impl_kombu
#neutron.openstack.common.rpc
#neutron.openstack.common.rpc.impl_zmq
#neutron.openstack.common.rpc.zmq_receiver
#neutron.openstack.common.rpc.matchmaker
#neutron.openstack.common.rpc.proxy
#neutron.openstack.common.rpc.matchmaker_ring
#neutron.openstack.common.rpc.service
#neutron.openstack.common.rpc.amqp
#neutron.openstack.common.rpc.serializer
#neutron.openstack.common.rpc.common
#neutron.openstack.common.rpc.dispatcher
#neutron.openstack.common.context
#neutron.openstack.common.fixture
#neutron.openstack.common.fixture.config
#neutron.openstack.common.fixture.mockpatch
#neutron.openstack.common.fixture.moxstubout
#neutron.openstack.common.fixture.lockutils
#neutron.openstack.common.lockutils
#neutron.openstack.common.log
neutron.agent.firewall
#neutron.agent
neutron.agent.ovs_cleanup_util
#neutron.agent.common
neutron.agent.common.config
neutron.agent.linux.external_process
neutron.agent.linux.ovsdb_monitor
#neutron.agent.linux
neutron.agent.linux.ip_lib
neutron.agent.linux.ovs_lib
neutron.agent.linux.async_process
neutron.agent.linux.iptables_manager
neutron.agent.linux.polling
neutron.agent.linux.utils
neutron.agent.linux.iptables_firewall
neutron.agent.linux.interface
neutron.agent.linux.dhcp
neutron.agent.linux.daemon
neutron.agent.metadata.agent
#neutron.agent.metadata
neutron.agent.metadata.namespace_proxy
neutron.agent.rpc
neutron.agent.l2population_rpc
neutron.agent.netns_cleanup_util
neutron.agent.dhcp_agent
neutron.agent.l3_agent
neutron.agent.securitygroups_rpc
neutron.api.versions
#neutron.api
neutron.api.views.versions
neutron.api.views
neutron.api.v2.attributes
neutron.api.v2.resource_helper
neutron.api.v2
#neutron.api.v2.resource
neutron.api.v2.base
neutron.api.v2.router
neutron.api.extensions
#neutron.api.rpc
neutron.api.rpc.agentnotifiers.l3_rpc_agent_api
#neutron.api.rpc.agentnotifiers
neutron.api.rpc.agentnotifiers.metering_rpc_agent_api
neutron.api.rpc.agentnotifiers.dhcp_rpc_agent_api
neutron.api.api_common
#neutron
#neutron.scheduler
neutron.scheduler.l3_agent_scheduler
neutron.scheduler.dhcp_agent_scheduler
neutron.common.ipv6_utils
#neutron.common
#neutron.common.exceptions
#neutron.common.constants
#neutron.common.test_lib
#neutron.common.config
#neutron.common.legacy
#neutron.common.topics
#neutron.common.utils
#neutron.common.rpc
#neutron.common.log
#neutron.plugins.nuage.plugin
#neutron.plugins.nuage.nuage_models
#neutron.plugins.nuage
#neutron.plugins.nuage.common
#neutron.plugins.nuage.common.exceptions
#neutron.plugins.nuage.common.constants
#neutron.plugins.nuage.common.config
#neutron.plugins.nuage.nuagedb
#neutron.plugins.nuage.extensions.nuage_subnet
#neutron.plugins.nuage.extensions
#neutron.plugins.nuage.extensions.nuage_router
#neutron.plugins.nuage.extensions.netpartition
#neutron.plugins.nec.agent
#neutron.plugins.nec.agent.nec_neutron_agent
#neutron.plugins.nec
#neutron.plugins.nec.ofc_driver_base
#neutron.plugins.nec.nec_plugin
#neutron.plugins.nec.common
#neutron.plugins.nec.common.exceptions
#neutron.plugins.nec.common.constants
#neutron.plugins.nec.common.config
#neutron.plugins.nec.common.ofc_client
#neutron.plugins.nec.common.utils
#neutron.plugins.nec.drivers
#neutron.plugins.nec.drivers.pfc
#neutron.plugins.nec.drivers.trema
#neutron.plugins.nec.nec_router
#neutron.plugins.nec.extensions.packetfilter
#neutron.plugins.nec.extensions.router_provider
#neutron.plugins.nec.extensions
#neutron.plugins.nec.packet_filter
#neutron.plugins.nec.db.packetfilter
#neutron.plugins.nec.db
#neutron.plugins.nec.db.api
#neutron.plugins.nec.db.models
#neutron.plugins.nec.db.router
#neutron.plugins.nec.ofc_manager
#neutron.plugins.nec.router_drivers
#neutron.plugins
#neutron.plugins.ibm.sdnve_api
#neutron.plugins.ibm.agent
#neutron.plugins.ibm.agent.sdnve_neutron_agent
#neutron.plugins.ibm
#neutron.plugins.ibm.sdnve_neutron_plugin
#neutron.plugins.ibm.common
#neutron.plugins.ibm.common.exceptions
#neutron.plugins.ibm.common.constants
#neutron.plugins.ibm.common.config
#neutron.plugins.ibm.sdnve_api_fake
#neutron.plugins.midonet.plugin
#neutron.plugins.midonet.agent
#neutron.plugins.midonet.agent.midonet_driver
#neutron.plugins.midonet
#neutron.plugins.midonet.common
#neutron.plugins.midonet.common.config
#neutron.plugins.midonet.common.net_util
#neutron.plugins.midonet.midonet_lib
#neutron.plugins.common
#neutron.plugins.common.constants
#neutron.plugins.common.utils
#neutron.plugins.hyperv.agent
#neutron.plugins.hyperv.agent.utilsfactory
#neutron.plugins.hyperv.agent.utilsv2
#neutron.plugins.hyperv.agent.hyperv_neutron_agent
#neutron.plugins.hyperv.agent.utils
#neutron.plugins.hyperv.agent.security_groups_driver
#neutron.plugins.hyperv.hyperv_neutron_plugin
#neutron.plugins.hyperv
#neutron.plugins.hyperv.model
#neutron.plugins.hyperv.common
#neutron.plugins.hyperv.common.constants
#neutron.plugins.hyperv.rpc_callbacks
#neutron.plugins.hyperv.agent_notifier_api
#neutron.plugins.hyperv.db
#neutron.plugins.ryu.agent
#neutron.plugins.ryu.agent.ryu_neutron_agent
#neutron.plugins.ryu
#neutron.plugins.ryu.common
#neutron.plugins.ryu.common.config
#neutron.plugins.ryu.db.models_v2
#neutron.plugins.ryu.db
#neutron.plugins.ryu.db.api_v2
#neutron.plugins.ryu.ryu_neutron_plugin
#neutron.plugins.oneconvergence.plugin
#neutron.plugins.oneconvergence.agent
#neutron.plugins.oneconvergence.agent.nvsd_neutron_agent
#neutron.plugins.oneconvergence
#neutron.plugins.oneconvergence.lib.exception
#neutron.plugins.oneconvergence.lib
#neutron.plugins.oneconvergence.lib.config
#neutron.plugins.oneconvergence.lib.nvsd_db
#neutron.plugins.oneconvergence.lib.nvsdlib
#neutron.plugins.oneconvergence.lib.plugin_helper
#neutron.plugins.ofagent.agent
#neutron.plugins.ofagent.agent.ofa_neutron_agent
#neutron.plugins.ofagent
#neutron.plugins.ofagent.common
#neutron.plugins.ofagent.common.config
#neutron.plugins.mlnx.agent
#neutron.plugins.mlnx.agent.utils
#neutron.plugins.mlnx.agent.eswitch_neutron_agent
#neutron.plugins.mlnx
#neutron.plugins.mlnx.common.comm_utils
#neutron.plugins.mlnx.common
#neutron.plugins.mlnx.common.exceptions
#neutron.plugins.mlnx.common.constants
#neutron.plugins.mlnx.common.config
#neutron.plugins.mlnx.rpc_callbacks
#neutron.plugins.mlnx.mlnx_plugin
#neutron.plugins.mlnx.agent_notify_api
#neutron.plugins.mlnx.db
#neutron.plugins.mlnx.db.mlnx_models_v2
#neutron.plugins.mlnx.db.mlnx_db_v2
#neutron.plugins.vmware.dhcpmeta_modes
#neutron.plugins.vmware.plugin
#neutron.plugins.vmware.api_client.exception
#neutron.plugins.vmware.api_client
#neutron.plugins.vmware.api_client.eventlet_client
#neutron.plugins.vmware.api_client.version
#neutron.plugins.vmware.api_client.request
#neutron.plugins.vmware.api_client.base
#neutron.plugins.vmware.api_client.client
#neutron.plugins.vmware.api_client.eventlet_request
#neutron.plugins.vmware.dbexts.distributedrouter
#neutron.plugins.vmware.dbexts.vcns_models
#neutron.plugins.vmware.dbexts.maclearning
#neutron.plugins.vmware.dbexts.networkgw_db
#neutron.plugins.vmware.dbexts
#neutron.plugins.vmware.dbexts.qos_db
#neutron.plugins.vmware.dbexts.nsxrouter
#neutron.plugins.vmware.dbexts.models
#neutron.plugins.vmware.dbexts.vcns_db
#neutron.plugins.vmware.dbexts.servicerouter
#neutron.plugins.vmware.dbexts.lsn_db
#neutron.plugins.vmware.dbexts.db
#neutron.plugins.vmware
#neutron.plugins.vmware.dhcp_meta.lsnmanager
#neutron.plugins.vmware.dhcp_meta.combined
#neutron.plugins.vmware.dhcp_meta
#neutron.plugins.vmware.dhcp_meta.constants
#neutron.plugins.vmware.dhcp_meta.migration
#neutron.plugins.vmware.dhcp_meta.rpc
#neutron.plugins.vmware.dhcp_meta.nsx
#neutron.plugins.vmware.common
#neutron.plugins.vmware.common.exceptions
#neutron.plugins.vmware.common.sync
#neutron.plugins.vmware.common.securitygroups
#neutron.plugins.vmware.common.nsx_utils
#neutron.plugins.vmware.common.config
#neutron.plugins.vmware.common.utils
#neutron.plugins.vmware.nsx_cluster
#neutron.plugins.vmware.shell
#neutron.plugins.vmware.shell.commands
#neutron.plugins.vmware.plugins
#neutron.plugins.vmware.plugins.base
#neutron.plugins.vmware.plugins.service
#neutron.plugins.vmware.extensions.distributedrouter
#neutron.plugins.vmware.extensions.maclearning
#neutron.plugins.vmware.extensions
#neutron.plugins.vmware.extensions.networkgw
#neutron.plugins.vmware.extensions.nvp_qos
#neutron.plugins.vmware.extensions.qos
#neutron.plugins.vmware.extensions.servicerouter
#neutron.plugins.vmware.extensions.lsn
#neutron.plugins.vmware.vshield.edge_ipsecvpn_driver
#neutron.plugins.vmware.vshield.tasks
#neutron.plugins.vmware.vshield.tasks.constants
#neutron.plugins.vmware.vshield.tasks.tasks
#neutron.plugins.vmware.vshield.edge_firewall_driver
#neutron.plugins.vmware.vshield
#neutron.plugins.vmware.vshield.common
#neutron.plugins.vmware.vshield.common.exceptions
#neutron.plugins.vmware.vshield.common.constants
#neutron.plugins.vmware.vshield.common.VcnsApiClient
#neutron.plugins.vmware.vshield.vcns_driver
#neutron.plugins.vmware.vshield.edge_loadbalancer_driver
#neutron.plugins.vmware.vshield.vcns
#neutron.plugins.vmware.vshield.edge_appliance_driver
#neutron.plugins.vmware.nsxlib
#neutron.plugins.vmware.nsxlib.queue
#neutron.plugins.vmware.nsxlib.versioning
#neutron.plugins.vmware.nsxlib.secgroup
#neutron.plugins.vmware.nsxlib.l2gateway
#neutron.plugins.vmware.nsxlib.router
#neutron.plugins.vmware.nsxlib.switch
#neutron.plugins.vmware.nsxlib.lsn
#neutron.plugins.vmware.check_nsx_config
#neutron.plugins.plumgrid.plumgrid_plugin
#neutron.plugins.plumgrid.plumgrid_plugin.plugin_ver
#neutron.plugins.plumgrid.plumgrid_plugin.plumgrid_plugin
#neutron.plugins.plumgrid
#neutron.plugins.plumgrid.common
#neutron.plugins.plumgrid.common.exceptions
#neutron.plugins.plumgrid.drivers
#neutron.plugins.plumgrid.drivers.fake_plumlib
#neutron.plugins.plumgrid.drivers.plumlib
#neutron.plugins.ml2.plugin
#neutron.plugins.ml2
#neutron.plugins.ml2.common
#neutron.plugins.ml2.common.exceptions
#neutron.plugins.ml2.config
neutron.plugins.ml2.drivers.type_gre
neutron.plugins.ml2.drivers.mech_openvswitch
#neutron.plugins.ml2.drivers.mech_bigswitch
#neutron.plugins.ml2.drivers.mech_bigswitch.driver
neutron.plugins.ml2.drivers.type_vlan
#neutron.plugins.ml2.drivers
neutron.plugins.ml2.drivers.type_tunnel
neutron.plugins.ml2.drivers.type_vxlan
neutron.plugins.ml2.drivers.mech_ofagent
neutron.plugins.ml2.drivers.type_local
neutron.plugins.ml2.drivers.mech_linuxbridge
neutron.plugins.ml2.drivers.type_flat
#neutron.plugins.ml2.drivers.mlnx
#neutron.plugins.ml2.drivers.mlnx.config
#neutron.plugins.ml2.drivers.mlnx.mech_mlnx
#neutron.plugins.ml2.drivers.mechanism_ncs
#neutron.plugins.ml2.drivers.cisco
#neutron.plugins.ml2.drivers.cisco.nexus.nexus_db_v2
#neutron.plugins.ml2.drivers.cisco.nexus
#neutron.plugins.ml2.drivers.cisco.nexus.exceptions
#neutron.plugins.ml2.drivers.cisco.nexus.credentials_v2
#neutron.plugins.ml2.drivers.cisco.nexus.constants
#neutron.plugins.ml2.drivers.cisco.nexus.config
#neutron.plugins.ml2.drivers.cisco.nexus.nexus_snippets
#neutron.plugins.ml2.drivers.cisco.nexus.nexus_models_v2
#neutron.plugins.ml2.drivers.cisco.nexus.mech_cisco_nexus
#neutron.plugins.ml2.drivers.cisco.nexus.nexus_network_driver
#neutron.plugins.ml2.drivers.cisco.nexus.network_db_v2
#neutron.plugins.ml2.drivers.cisco.nexus.network_models_v2
#neutron.plugins.ml2.drivers.mech_hyperv
#neutron.plugins.ml2.drivers.mech_arista
#neutron.plugins.ml2.drivers.mech_arista.exceptions
#neutron.plugins.ml2.drivers.mech_arista.config
#neutron.plugins.ml2.drivers.mech_arista.mechanism_arista
#neutron.plugins.ml2.drivers.mech_arista.db
#neutron.plugins.ml2.drivers.mech_agent
neutron.plugins.ml2.drivers.l2pop.mech_driver
neutron.plugins.ml2.drivers.l2pop
neutron.plugins.ml2.drivers.l2pop.constants
neutron.plugins.ml2.drivers.l2pop.config
neutron.plugins.ml2.drivers.l2pop.rpc
neutron.plugins.ml2.drivers.l2pop.db
#neutron.plugins.ml2.drivers.brocade.mechanism_brocade
#neutron.plugins.ml2.drivers.brocade
#neutron.plugins.ml2.drivers.brocade.nos
#neutron.plugins.ml2.drivers.brocade.nos.nosdriver
#neutron.plugins.ml2.drivers.brocade.nos.nctemplates
#neutron.plugins.ml2.drivers.brocade.db
#neutron.plugins.ml2.drivers.brocade.db.models
neutron.plugins.ml2.drivers.mechanism_odl
#neutron.plugins.ml2.models
neutron.plugins.ml2.driver_context
neutron.plugins.ml2.driver_api
neutron.plugins.ml2.rpc
neutron.plugins.ml2.managers
#neutron.plugins.ml2.db
neutron.plugins.metaplugin.meta_neutron_plugin
neutron.plugins.metaplugin
neutron.plugins.metaplugin.meta_models_v2
neutron.plugins.metaplugin.common
neutron.plugins.metaplugin.common.config
neutron.plugins.metaplugin.meta_db_v2
neutron.plugins.metaplugin.proxy_neutron_plugin
#neutron.plugins.cisco.models.virt_phy_sw_v2
#neutron.plugins.cisco.models
#neutron.plugins.cisco
#neutron.plugins.cisco.l2device_plugin_base
#neutron.plugins.cisco.n1kv
#neutron.plugins.cisco.n1kv.n1kv_client
#neutron.plugins.cisco.n1kv.n1kv_neutron_plugin
#neutron.plugins.cisco.common.cisco_credentials_v2
#neutron.plugins.cisco.common.cisco_faults
#neutron.plugins.cisco.common.cisco_exceptions
#neutron.plugins.cisco.common.cisco_constants
#neutron.plugins.cisco.common
#neutron.plugins.cisco.common.config
#neutron.plugins.cisco.extensions
#neutron.plugins.cisco.extensions._qos_view
#neutron.plugins.cisco.extensions.credential
#neutron.plugins.cisco.extensions.policy_profile
#neutron.plugins.cisco.extensions.network_profile
#neutron.plugins.cisco.extensions.qos
#neutron.plugins.cisco.extensions.n1kv
#neutron.plugins.cisco.extensions._credential_view
#neutron.plugins.cisco.test
#neutron.plugins.cisco.test.nexus
#neutron.plugins.cisco.test.nexus.fake_nexus_driver
#neutron.plugins.cisco.network_plugin
#neutron.plugins.cisco.nexus.cisco_nexus_plugin_v2
#neutron.plugins.cisco.nexus
#neutron.plugins.cisco.nexus.cisco_nexus_snippets
#neutron.plugins.cisco.nexus.cisco_nexus_network_driver_v2
#neutron.plugins.cisco.db.nexus_db_v2
#neutron.plugins.cisco.db
#neutron.plugins.cisco.db.nexus_models_v2
#neutron.plugins.cisco.db.n1kv_db_v2
#neutron.plugins.cisco.db.n1kv_models_v2
#neutron.plugins.cisco.db.network_db_v2
#neutron.plugins.cisco.db.network_models_v2
neutron.plugins.linuxbridge.agent
neutron.plugins.linuxbridge.agent.linuxbridge_neutron_agent
neutron.plugins.linuxbridge
neutron.plugins.linuxbridge.common
neutron.plugins.linuxbridge.common.constants
neutron.plugins.linuxbridge.common.config
neutron.plugins.linuxbridge.lb_neutron_plugin
neutron.plugins.linuxbridge.db
neutron.plugins.linuxbridge.db.l2network_db_v2
neutron.plugins.linuxbridge.db.l2network_models_v2
neutron.plugins.openvswitch.ovs_db_v2
neutron.plugins.openvswitch.agent
neutron.plugins.openvswitch.agent.ovs_neutron_agent
neutron.plugins.openvswitch.ovs_neutron_plugin
neutron.plugins.openvswitch
neutron.plugins.openvswitch.common
neutron.plugins.openvswitch.common.constants
neutron.plugins.openvswitch.common.config
neutron.plugins.openvswitch.ovs_models_v2
#neutron.plugins.bigswitch.routerrule_db
#neutron.plugins.bigswitch.plugin
#neutron.plugins.bigswitch.agent
#neutron.plugins.bigswitch.agent.restproxy_agent
#neutron.plugins.bigswitch
#neutron.plugins.bigswitch.config
#neutron.plugins.bigswitch.version
#neutron.plugins.bigswitch.extensions.routerrule
#neutron.plugins.bigswitch.extensions
#neutron.plugins.bigswitch.servermanager
#neutron.plugins.bigswitch.vcsversion
#neutron.plugins.bigswitch.tests
#neutron.plugins.bigswitch.tests.test_server
#neutron.plugins.bigswitch.db.porttracker_db
#neutron.plugins.bigswitch.db.consistency_db
#neutron.plugins.bigswitch.db
#neutron.plugins.embrane.agent.operations
#neutron.plugins.embrane.agent.operations.router_operations
#neutron.plugins.embrane.agent
#neutron.plugins.embrane.agent.dispatcher
#neutron.plugins.embrane
#neutron.plugins.embrane.l2base.support_base
#neutron.plugins.embrane.l2base
#neutron.plugins.embrane.l2base.support_exceptions
#neutron.plugins.embrane.l2base.openvswitch
#neutron.plugins.embrane.l2base.openvswitch.openvswitch_support
#neutron.plugins.embrane.l2base.fake
#neutron.plugins.embrane.l2base.fake.fakeplugin_support
#neutron.plugins.embrane.l2base.fake.fake_l2_plugin
#neutron.plugins.embrane.common
#neutron.plugins.embrane.common.exceptions
#neutron.plugins.embrane.common.operation
#neutron.plugins.embrane.common.constants
#neutron.plugins.embrane.common.config
#neutron.plugins.embrane.common.utils
#neutron.plugins.embrane.common.contexts
#neutron.plugins.embrane.base_plugin
#neutron.plugins.embrane.plugins
#neutron.plugins.embrane.plugins.embrane_fake_plugin
#neutron.plugins.embrane.plugins.embrane_ovs_plugin
#neutron.plugins.nicira
#neutron.plugins.brocade
#neutron.plugins.brocade.vlanbm
#neutron.plugins.brocade.NeutronPlugin
#neutron.plugins.brocade.nos.fake_nosdriver
#neutron.plugins.brocade.nos
#neutron.plugins.brocade.nos.nosdriver
#neutron.plugins.brocade.nos.nctemplates
#neutron.plugins.brocade.tests.nostest
#neutron.plugins.brocade.tests.noscli
#neutron.plugins.brocade.db
#neutron.plugins.brocade.db.models
neutron.debug
neutron.debug.shell
neutron.debug.debug_agent
neutron.debug.commands
neutron.version
neutron.quota
neutron.extensions.agent
neutron.extensions.securitygroup
neutron.extensions.routerservicetype
neutron.extensions.servicetype
neutron.extensions.portbindings
neutron.extensions.quotasv2
neutron.extensions.allowedaddresspairs
neutron.extensions.firewall
neutron.extensions
neutron.extensions.dhcpagentscheduler
neutron.extensions.l3agentscheduler
neutron.extensions.extraroute
neutron.extensions.portsecurity
neutron.extensions.vpnaas
neutron.extensions.external_net
neutron.extensions.multiprovidernet
neutron.extensions.l3
neutron.extensions.loadbalancer
neutron.extensions.routedserviceinsertion
neutron.extensions.providernet
neutron.extensions.flavor
neutron.extensions.extra_dhcp_opt
neutron.extensions.lbaas_agentscheduler
neutron.extensions.metering
neutron.extensions.l3_ext_gw_mode
neutron.neutron_plugin_base_v2
neutron.service
neutron.hooks
neutron.server
#neutron.tests
#neutron.tests.functional.agent
#neutron.tests.functional.agent.linux
#neutron.tests.functional.agent.linux.test_async_process
#neutron.tests.functional.agent.linux.test_ovsdb_monitor
#neutron.tests.functional
#neutron.tests.post_mortem_debug
#neutron.tests.base
#neutron.tests.tools
#neutron.tests.unit.nuage.test_netpartition
#neutron.tests.unit.nuage
#neutron.tests.unit.nuage.test_nuage_plugin
#neutron.tests.unit.nuage.fake_nuageclient
#neutron.tests.unit.database_stubs
#neutron.tests.unit.extension_stubs
#neutron.tests.unit.test_agent_rpc
#neutron.tests.unit.test_agent_netns_cleanup
#neutron.tests.unit.test_linux_external_process
#neutron.tests.unit.nec
#neutron.tests.unit.nec.test_nec_agent
#neutron.tests.unit.nec.test_pfc_driver
#neutron.tests.unit.nec.test_db
#neutron.tests.unit.nec.test_ofc_manager
#neutron.tests.unit.nec.fake_ofc_manager
#neutron.tests.unit.nec.test_router
#neutron.tests.unit.nec.test_nec_plugin
#neutron.tests.unit.nec.test_trema_driver
#neutron.tests.unit.nec.test_ofc_client
#neutron.tests.unit.nec.stub_ofc_driver
#neutron.tests.unit.nec.test_packet_filter
#neutron.tests.unit.nec.test_config
#neutron.tests.unit.nec.test_utils
#neutron.tests.unit.nec.test_security_group
#neutron.tests.unit.nec.test_agent_scheduler
#neutron.tests.unit.nec.test_portbindings
#neutron.tests.unit.test_auth
#neutron.tests.unit.agent
#neutron.tests.unit.agent.linux.test_polling
#neutron.tests.unit.agent.linux
#neutron.tests.unit.agent.linux.test_async_process
#neutron.tests.unit.agent.linux.test_ovsdb_monitor
#neutron.tests.unit.test_extension_allowedaddresspairs
#neutron.tests.unit.api
#neutron.tests.unit.api.rpc
#neutron.tests.unit.api.rpc.agentnotifiers.test_dhcp_rpc_agent_api
#neutron.tests.unit.api.rpc.agentnotifiers
#neutron.tests.unit.test_extension_ext_gw_mode
#neutron.tests.unit.test_db_rpc_base
#neutron.tests.unit
#neutron.tests.unit.test_agent_config
#neutron.tests.unit.ibm
#neutron.tests.unit.ibm.test_sdnve_agent
#neutron.tests.unit.ibm.test_sdnve_api
#neutron.tests.unit.ibm.test_sdnve_plugin
#neutron.tests.unit.test_api_v2_resource
#neutron.tests.unit.test_servicetype
#neutron.tests.unit.test_common_log
#neutron.tests.unit.test_extension_extended_attribute
#neutron.tests.unit.test_agent_ovs_cleanup
#neutron.tests.unit.test_api_v2
#neutron.tests.unit.midonet
#neutron.tests.unit.midonet.test_midonet_plugin
#neutron.tests.unit.midonet.mock_lib
#neutron.tests.unit.midonet.test_midonet_lib
#neutron.tests.unit.midonet.test_midonet_driver
#neutron.tests.unit.dummy_plugin
#neutron.tests.unit.hyperv.test_hyperv_neutron_plugin
#neutron.tests.unit.hyperv
#neutron.tests.unit.hyperv.test_hyperv_utilsv2
#neutron.tests.unit.hyperv.test_hyperv_neutron_agent
#neutron.tests.unit.hyperv.test_hyperv_rpcapi
#neutron.tests.unit.hyperv.test_hyperv_security_groups_driver
#neutron.tests.unit.hyperv.test_hyperv_utilsfactory
#neutron.tests.unit.ryu
#neutron.tests.unit.ryu.test_ryu_plugin
#neutron.tests.unit.ryu.fake_ryu
#neutron.tests.unit.ryu.test_ryu_security_group
#neutron.tests.unit.ryu.test_defaults
#neutron.tests.unit.ryu.test_ryu_agent
#neutron.tests.unit.ryu.test_ryu_db
#neutron.tests.unit.test_extension_extraroute
#neutron.tests.unit.test_l3_schedulers
#neutron.tests.unit.test_linux_interface
#neutron.tests.unit.test_common_utils
#neutron.tests.unit.oneconvergence.test_nvsd_agent
#neutron.tests.unit.oneconvergence
#neutron.tests.unit.oneconvergence.test_plugin_helper
#neutron.tests.unit.oneconvergence.test_security_group
#neutron.tests.unit.oneconvergence.test_nvsdlib
#neutron.tests.unit.oneconvergence.test_nvsd_plugin
#neutron.tests.unit.test_linux_dhcp
#neutron.tests.unit.ofagent
#neutron.tests.unit.ofagent.test_ofa_defaults
#neutron.tests.unit.ofagent.fake_oflib
#neutron.tests.unit.ofagent.test_ofa_neutron_agent
#neutron.tests.unit.test_l3_agent
#neutron.tests.unit.test_db_plugin
#neutron.tests.unit.mlnx.test_mlnx_security_group
#neutron.tests.unit.mlnx
#neutron.tests.unit.mlnx.test_mlnx_plugin_config
#neutron.tests.unit.mlnx.test_rpcapi
#neutron.tests.unit.mlnx.test_mlnx_neutron_agent
#neutron.tests.unit.mlnx.test_mlnx_db
#neutron.tests.unit.mlnx.test_defaults
#neutron.tests.unit.mlnx.test_agent_scheduler
#neutron.tests.unit.mlnx.test_mlnx_comm_utils
#neutron.tests.unit.mlnx.test_mlnx_plugin
#neutron.tests.unit.test_provider_configuration
#neutron.tests.unit.vmware.test_nsx_plugin
#neutron.tests.unit.vmware.apiclient
#neutron.tests.unit.vmware.apiclient.fake
#neutron.tests.unit.vmware.apiclient.test_api_common
#neutron.tests.unit.vmware.apiclient.test_api_eventlet_request
#neutron.tests.unit.vmware
#neutron.tests.unit.vmware.test_dhcpmeta
#neutron.tests.unit.vmware.test_nsx_opts
#neutron.tests.unit.vmware.test_nsx_utils
#neutron.tests.unit.vmware.test_nsx_sync
#neutron.tests.unit.vmware.extensions.test_portsecurity
#neutron.tests.unit.vmware.extensions
#neutron.tests.unit.vmware.extensions.test_qosqueues
#neutron.tests.unit.vmware.extensions.test_addresspairs
#neutron.tests.unit.vmware.extensions.test_networkgw
#neutron.tests.unit.vmware.extensions.test_providernet
#neutron.tests.unit.vmware.extensions.test_maclearning
#neutron.tests.unit.vmware.vshield.test_firewall_driver
#neutron.tests.unit.vmware.vshield
#neutron.tests.unit.vmware.vshield.test_vcns_driver
#neutron.tests.unit.vmware.vshield.test_vpnaas_plugin
#neutron.tests.unit.vmware.vshield.test_edge_router
#neutron.tests.unit.vmware.vshield.test_loadbalancer_driver
#neutron.tests.unit.vmware.vshield.test_lbaas_plugin
#neutron.tests.unit.vmware.vshield.fake_vcns
#neutron.tests.unit.vmware.vshield.test_fwaas_plugin
#neutron.tests.unit.vmware.nsxlib.test_l2gateway
#neutron.tests.unit.vmware.nsxlib
#neutron.tests.unit.vmware.nsxlib.test_queue
#neutron.tests.unit.vmware.nsxlib.test_lsn
#neutron.tests.unit.vmware.nsxlib.test_versioning
#neutron.tests.unit.vmware.nsxlib.test_router
#neutron.tests.unit.vmware.nsxlib.base
#neutron.tests.unit.vmware.nsxlib.test_secgroup
#neutron.tests.unit.vmware.nsxlib.test_switch
#neutron.tests.unit.vmware.db.test_nsx_db
#neutron.tests.unit.vmware.db
#neutron.tests.unit.vmware.db.test_lsn_db
#neutron.tests.unit.vmware.test_agent_scheduler
#neutron.tests.unit.extensions
#neutron.tests.unit.extensions.extendedattribute
#neutron.tests.unit.extensions.extensionattribute
#neutron.tests.unit.extensions.foxinsocks
#neutron.tests.unit.extensions.v2attributes
#neutron.tests.unit.test_attributes
#neutron.tests.unit.test_extension_pnet
#neutron.tests.unit._test_extension_portbindings
#neutron.tests.unit.test_metadata_agent
#neutron.tests.unit.plumgrid
#neutron.tests.unit.plumgrid.test_plumgrid_plugin
#neutron.tests.unit.test_extension_extradhcpopts
#neutron.tests.unit.test_wsgi
#neutron.tests.unit.test_extension_security_group
#neutron.tests.unit.test_dhcp_agent
#neutron.tests.unit.test_extensions
#neutron.tests.unit.notifiers
#neutron.tests.unit.notifiers.test_notifiers_nova
#neutron.tests.unit.ml2
#neutron.tests.unit.ml2.test_mechanism_odl
#neutron.tests.unit.ml2.test_mech_hyperv
#neutron.tests.unit.ml2.test_port_binding
#neutron.tests.unit.ml2.test_type_gre
#neutron.tests.unit.ml2.drivers.test_l2population
#neutron.tests.unit.ml2.drivers
#neutron.tests.unit.ml2.drivers.test_mech_mlnx
#neutron.tests.unit.ml2.drivers.test_ofagent_mech
#neutron.tests.unit.ml2.drivers.mechanism_bulkless
#neutron.tests.unit.ml2.drivers.mechanism_test
#neutron.tests.unit.ml2.drivers.cisco
#neutron.tests.unit.ml2.drivers.cisco.nexus
#neutron.tests.unit.ml2.drivers.cisco.nexus.test_cisco_nexus_db
#neutron.tests.unit.ml2.drivers.cisco.nexus.test_cisco_network_db
#neutron.tests.unit.ml2.drivers.cisco.nexus.test_cisco_mech
#neutron.tests.unit.ml2.drivers.cisco.nexus.test_cisco_nexus
#neutron.tests.unit.ml2.drivers.test_arista_mechanism_driver
#neutron.tests.unit.ml2.drivers.test_bigswitch_mech
#neutron.tests.unit.ml2.drivers.brocade
#neutron.tests.unit.ml2.drivers.brocade.test_brocade_mechanism_driver
#neutron.tests.unit.ml2.drivers.mechanism_logger
#neutron.tests.unit.ml2.test_rpcapi
#neutron.tests.unit.ml2.test_mech_linuxbridge
#neutron.tests.unit.ml2.test_type_vxlan
#neutron.tests.unit.ml2.test_ml2_plugin
#neutron.tests.unit.ml2._test_mech_agent
#neutron.tests.unit.ml2.test_mechanism_ncs
#neutron.tests.unit.ml2.test_security_group
#neutron.tests.unit.ml2.test_agent_scheduler
#neutron.tests.unit.ml2.test_mech_openvswitch
#neutron.tests.unit.test_legacy
#neutron.tests.unit.test_post_mortem_debug
#neutron.tests.unit.test_policy
#neutron.tests.unit.test_api_api_common
#neutron.tests.unit.testlib_api
#neutron.tests.unit.test_neutron_context
#neutron.tests.unit.test_config
#neutron.tests.unit.metaplugin
#neutron.tests.unit.metaplugin.fake_plugin
#neutron.tests.unit.metaplugin.test_metaplugin
#neutron.tests.unit.metaplugin.test_basic
#neutron.tests.unit.cisco
#neutron.tests.unit.cisco.n1kv
#neutron.tests.unit.cisco.n1kv.test_n1kv_db
#neutron.tests.unit.cisco.n1kv.test_n1kv_plugin
#neutron.tests.unit.cisco.n1kv.fake_client
#neutron.tests.unit.cisco.test_nexus_plugin
#neutron.tests.unit.cisco.test_config
#neutron.tests.unit.cisco.test_nexus_db
#neutron.tests.unit.cisco.test_plugin_model
#neutron.tests.unit.cisco.test_network_plugin
#neutron.tests.unit.cisco.test_network_db
#neutron.tests.unit.test_agent_ext_plugin
#neutron.tests.unit.services
#neutron.tests.unit.services.firewall
#neutron.tests.unit.services.firewall.drivers
#neutron.tests.unit.services.firewall.drivers.linux.test_iptables_fwaas
#neutron.tests.unit.services.firewall.drivers.linux
#neutron.tests.unit.services.firewall.drivers.varmour.test_varmour_fwaas
#neutron.tests.unit.services.firewall.drivers.varmour
#neutron.tests.unit.services.firewall.agents
#neutron.tests.unit.services.firewall.agents.test_firewall_agent_api
#neutron.tests.unit.services.firewall.agents.l3reference
#neutron.tests.unit.services.firewall.agents.l3reference.test_firewall_l3_agent
#neutron.tests.unit.services.firewall.agents.varmour
#neutron.tests.unit.services.firewall.agents.varmour.test_varmour_router
#neutron.tests.unit.services.firewall.test_fwaas_plugin
#neutron.tests.unit.services.vpn.test_vpnaas_extension
#neutron.tests.unit.services.vpn.service_drivers.test_ipsec
#neutron.tests.unit.services.vpn.service_drivers
#neutron.tests.unit.services.vpn.service_drivers.test_cisco_ipsec
#neutron.tests.unit.services.vpn
#neutron.tests.unit.services.vpn.test_vpn_agent
#neutron.tests.unit.services.vpn.device_drivers.test_ipsec
#neutron.tests.unit.services.vpn.device_drivers
#neutron.tests.unit.services.vpn.device_drivers.cisco_csr_mock
#neutron.tests.unit.services.vpn.device_drivers.test_cisco_ipsec
#neutron.tests.unit.services.vpn.device_drivers.notest_cisco_csr_rest
#neutron.tests.unit.services.vpn.test_vpnaas_driver_plugin
#neutron.tests.unit.services.loadbalancer.agent.test_agent
#neutron.tests.unit.services.loadbalancer.agent.test_api
#neutron.tests.unit.services.loadbalancer.agent
#neutron.tests.unit.services.loadbalancer.agent.test_agent_manager
#neutron.tests.unit.services.loadbalancer
#neutron.tests.unit.services.loadbalancer.test_loadbalancer_quota_ext
#neutron.tests.unit.services.loadbalancer.drivers
#neutron.tests.unit.services.loadbalancer.drivers.radware.test_plugin_driver
#neutron.tests.unit.services.loadbalancer.drivers.radware
#neutron.tests.unit.services.loadbalancer.drivers.netscaler.test_ncc_client
#neutron.tests.unit.services.loadbalancer.drivers.netscaler
#neutron.tests.unit.services.loadbalancer.drivers.netscaler.test_netscaler_driver
#neutron.tests.unit.services.loadbalancer.drivers.haproxy
#neutron.tests.unit.services.loadbalancer.drivers.haproxy.test_namespace_driver
#neutron.tests.unit.services.loadbalancer.drivers.haproxy.test_cfg
#neutron.tests.unit.services.loadbalancer.drivers.embrane.test_plugin_driver
#neutron.tests.unit.services.loadbalancer.drivers.embrane
#neutron.tests.unit.services.loadbalancer.drivers.embrane.test_embrane_defaults
#neutron.tests.unit.services.loadbalancer.drivers.test_agent_driver_base
#neutron.tests.unit.services.loadbalancer.test_agent_scheduler
#neutron.tests.unit.services.loadbalancer.test_loadbalancer_plugin
#neutron.tests.unit.services.metering
#neutron.tests.unit.services.metering.drivers
#neutron.tests.unit.services.metering.drivers.test_iptables_driver
#neutron.tests.unit.services.metering.test_metering_plugin
#neutron.tests.unit.services.metering.test_metering_agent
#neutron.tests.unit.linuxbridge.test_lb_security_group
#neutron.tests.unit.linuxbridge
#neutron.tests.unit.linuxbridge.test_linuxbridge_plugin
#neutron.tests.unit.linuxbridge.test_rpcapi
#neutron.tests.unit.linuxbridge.test_lb_db
#neutron.tests.unit.linuxbridge.test_lb_neutron_agent
#neutron.tests.unit.linuxbridge.test_defaults
#neutron.tests.unit.linuxbridge.test_agent_scheduler
#neutron.tests.unit.openvswitch.test_ovs_defaults
#neutron.tests.unit.openvswitch.test_ovs_tunnel
#neutron.tests.unit.openvswitch
#neutron.tests.unit.openvswitch.test_ovs_db
#neutron.tests.unit.openvswitch.test_ovs_rpcapi
#neutron.tests.unit.openvswitch.test_ovs_lib
#neutron.tests.unit.openvswitch.test_openvswitch_plugin
#neutron.tests.unit.openvswitch.test_ovs_neutron_agent
#neutron.tests.unit.openvswitch.test_agent_scheduler
#neutron.tests.unit.openvswitch.test_ovs_security_group
#neutron.tests.unit.test_security_groups_rpc
#neutron.tests.unit.bigswitch.test_router_db
#neutron.tests.unit.bigswitch
#neutron.tests.unit.bigswitch.test_ssl
#neutron.tests.unit.bigswitch.test_servermanager
#neutron.tests.unit.bigswitch.fake_server
#neutron.tests.unit.bigswitch.test_base
#neutron.tests.unit.bigswitch.test_restproxy_agent
#neutron.tests.unit.bigswitch.test_security_groups
#neutron.tests.unit.bigswitch.test_agent_scheduler
#neutron.tests.unit.bigswitch.test_restproxy_plugin
#neutron.tests.unit.bigswitch.test_capabilities
#neutron.tests.unit.test_api_v2_extension
#neutron.tests.unit.test_debug_commands
#neutron.tests.unit.db.test_agent_db
#neutron.tests.unit.db
#neutron.tests.unit.db.firewall
#neutron.tests.unit.db.firewall.test_db_firewall
#neutron.tests.unit.db.vpn
#neutron.tests.unit.db.vpn.test_db_vpnaas
#neutron.tests.unit.db.loadbalancer
#neutron.tests.unit.db.loadbalancer.test_db_loadbalancer
#neutron.tests.unit.db.metering
#neutron.tests.unit.db.metering.test_db_metering
#neutron.tests.unit.test_quota_ext
#neutron.tests.unit.test_iptables_manager
#neutron.tests.unit.test_dhcp_scheduler
#neutron.tests.unit.test_iptables_firewall
#neutron.tests.unit.test_metadata_namespace_proxy
#neutron.tests.unit.test_extension_ext_net
#neutron.tests.unit.test_linux_ip_lib
#neutron.tests.unit.embrane
#neutron.tests.unit.embrane.test_embrane_neutron_plugin
#neutron.tests.unit.embrane.test_embrane_l3_plugin
#neutron.tests.unit.embrane.test_embrane_defaults
#neutron.tests.unit.test_linux_daemon
#neutron.tests.unit.test_agent_linux_utils
#neutron.tests.unit.test_ipv6
#neutron.tests.unit.test_l3_plugin
#neutron.tests.unit.test_routerserviceinsertion
#neutron.tests.unit.test_extension_portsecurity
#neutron.tests.unit.test_neutron_manager
#neutron.tests.unit.brocade
#neutron.tests.unit.brocade.test_brocade_db
#neutron.tests.unit.brocade.test_brocade_vlan
#neutron.tests.unit.brocade.test_brocade_plugin
#neutron.tests.unit._test_rootwrap_exec
#neutron.tests.unit.test_extension_firewall
#neutron.tests.unit.test_db_migration
neutron.notifiers
neutron.notifiers.nova
neutron.manager
neutron.services
neutron.services.provider_configuration
neutron.services.firewall
neutron.services.firewall.drivers
neutron.services.firewall.drivers.linux
neutron.services.firewall.drivers.linux.iptables_fwaas
neutron.services.firewall.drivers.fwaas_base
#neutron.services.firewall.drivers.varmour
#neutron.services.firewall.drivers.varmour.varmour_fwaas
neutron.services.firewall.agents
neutron.services.firewall.agents.l3reference
neutron.services.firewall.agents.l3reference.firewall_l3_agent
neutron.services.firewall.agents.firewall_agent_api
#neutron.services.firewall.agents.varmour.varmour_utils
#neutron.services.firewall.agents.varmour
#neutron.services.firewall.agents.varmour.varmour_router
#neutron.services.firewall.agents.varmour.varmour_api
neutron.services.firewall.fwaas_plugin
neutron.services.vpn.agent
neutron.services.vpn.service_drivers
neutron.services.vpn.service_drivers.ipsec
#neutron.services.vpn.service_drivers.cisco_ipsec
#neutron.services.vpn.service_drivers.cisco_csr_db
neutron.services.vpn.plugin
neutron.services.vpn
neutron.services.vpn.common
neutron.services.vpn.common.topics
neutron.services.vpn.device_drivers
neutron.services.vpn.device_drivers.ipsec
#neutron.services.vpn.device_drivers.cisco_ipsec
#neutron.services.vpn.device_drivers.cisco_csr_rest_client
neutron.services.loadbalancer.plugin
neutron.services.loadbalancer.agent.agent
neutron.services.loadbalancer.agent.agent_device_driver
neutron.services.loadbalancer.agent
neutron.services.loadbalancer.agent.agent_manager
neutron.services.loadbalancer.agent.agent_api
neutron.services.loadbalancer
neutron.services.loadbalancer.constants
#neutron.services.loadbalancer.drivers
#neutron.services.loadbalancer.drivers.radware
#neutron.services.loadbalancer.drivers.radware.driver
#neutron.services.loadbalancer.drivers.radware.exceptions
neutron.services.loadbalancer.drivers.common
neutron.services.loadbalancer.drivers.common.agent_driver_base
#neutron.services.loadbalancer.drivers.netscaler
#neutron.services.loadbalancer.drivers.netscaler.ncc_client
#neutron.services.loadbalancer.drivers.netscaler.netscaler_driver
#neutron.services.loadbalancer.drivers.abstract_driver
neutron.services.loadbalancer.drivers.haproxy
neutron.services.loadbalancer.drivers.haproxy.plugin_driver
neutron.services.loadbalancer.drivers.haproxy.cfg
neutron.services.loadbalancer.drivers.haproxy.namespace_driver
#neutron.services.loadbalancer.drivers.embrane.agent.lb_operations
#neutron.services.loadbalancer.drivers.embrane.agent
#neutron.services.loadbalancer.drivers.embrane.agent.dispatcher
#neutron.services.loadbalancer.drivers.embrane
#neutron.services.loadbalancer.drivers.embrane.driver
#neutron.services.loadbalancer.drivers.embrane.constants
#neutron.services.loadbalancer.drivers.embrane.config
#neutron.services.loadbalancer.drivers.embrane.models
#neutron.services.loadbalancer.drivers.embrane.poller
#neutron.services.loadbalancer.drivers.embrane.db
neutron.services.loadbalancer.agent_scheduler
neutron.services.l3_router
neutron.services.l3_router.l3_router_plugin
neutron.services.metering.metering_plugin
neutron.services.metering
neutron.services.metering.drivers.iptables
neutron.services.metering.drivers.iptables.iptables_driver
neutron.services.metering.drivers
neutron.services.metering.drivers.abstract_driver
neutron.services.metering.drivers.noop
neutron.services.metering.drivers.noop.noop_driver
neutron.services.metering.agents
neutron.services.metering.agents.metering_agent
neutron.services.service_base
#neutron.db.routedserviceinsertion_db
#neutron.db.sqlalchemyutils
#neutron.db.extradhcpopt_db
#neutron.db.allowedaddresspairs_db
#neutron.db.models_v2
#neutron.db.agentschedulers_db
#neutron.db
#neutron.db.portbindings_base
#neutron.db.servicetype_db
#neutron.db.api
#neutron.db.l3_gwmode_db
#neutron.db.l3_db
#neutron.db.firewall
#neutron.db.firewall.firewall_db
#neutron.db.routerservicetype_db
#neutron.db.vpn.vpn_db
#neutron.db.vpn
#neutron.db.loadbalancer
#neutron.db.loadbalancer.loadbalancer_db
#neutron.db.l3_agentschedulers_db
#neutron.db.portsecurity_db
#neutron.db.quota_db
#neutron.db.db_base_plugin_v2
#neutron.db.migration
#neutron.db.migration.alembic_migrations
#neutron.db.migration.alembic_migrations.common_ext_ops
#neutron.db.migration.alembic_migrations.versions.19180cf98af6_nsx_gw_devices
#neutron.db.migration.alembic_migrations.versions.40dffbf4b549_nvp_dist_router
#neutron.db.migration.alembic_migrations.versions.50e86cb2637a_nsx_mappings
#neutron.db.migration.alembic_migrations.versions.1c33fa3cd1a1_extra_route_config
#neutron.db.migration.alembic_migrations.versions.1b693c095aa3_quota_ext_db_grizzly
#neutron.db.migration.alembic_migrations.versions.49f5e553f61f_ml2_security_groups
#neutron.db.migration.alembic_migrations.versions.3c6e57a23db4_add_multiprovider
#neutron.db.migration.alembic_migrations.versions.3cb5d900c5de_security_groups
#neutron.db.migration.alembic_migrations.versions.38fc1f6789f8_cisco_n1kv_overlay
#neutron.db.migration.alembic_migrations.versions.3d3cb89d84ee_nsx_switch_mappings
#neutron.db.migration.alembic_migrations.versions.3ed8f075e38a_nvp_fwaas_plugin
#neutron.db.migration.alembic_migrations.versions.11c6e18605c8_pool_monitor_status_
#neutron.db.migration.alembic_migrations.versions.1fcfc149aca4_agents_unique_by_type_and_host
#neutron.db.migration.alembic_migrations.versions.4692d074d587_agent_scheduler
#neutron.db.migration.alembic_migrations.versions.35c7c198ddea_lbaas_healthmon_del_status
#neutron.db.migration.alembic_migrations.versions.63afba73813_ovs_tunnelendpoints_id_unique
#neutron.db.migration.alembic_migrations.versions.176a85fc7d79_add_portbindings_db
#neutron.db.migration.alembic_migrations.versions.14f24494ca31_arista_ml2
#neutron.db.migration.alembic_migrations.versions.havana_release
#neutron.db.migration.alembic_migrations.versions.477a4488d3f4_ml2_vxlan_type_driver
#neutron.db.migration.alembic_migrations.versions.557edfc53098_new_service_types
#neutron.db.migration.alembic_migrations.versions.81c553f3776c_bsn_consistencyhashes
#neutron.db.migration.alembic_migrations.versions.1064e98b7917_nec_pf_port_del
#neutron.db.migration.alembic_migrations.versions.f44ab9871cd6_bsn_security_groups
#neutron.db.migration.alembic_migrations.versions.32a65f71af51_ml2_portbinding
#neutron.db.migration.alembic_migrations.versions.511471cc46b_agent_ext_model_supp
#neutron.db.migration.alembic_migrations.versions.e766b19a3bb_nuage_initial
#neutron.db.migration.alembic_migrations.versions.b7a8863760e_rm_cisco_vlan_bindin
#neutron.db.migration.alembic_migrations.versions.1149d7de0cfa_port_security
#neutron.db.migration.alembic_migrations.versions.e197124d4b9_add_unique_constrain
#neutron.db.migration.alembic_migrations.versions.icehouse_release
#neutron.db.migration.alembic_migrations.versions.27ef74513d33_quota_in_plumgrid_pl
#neutron.db.migration.alembic_migrations.versions.49332180ca96_ryu_plugin_update
#neutron.db.migration.alembic_migrations.versions.54c2c487e913_lbaas
#neutron.db.migration.alembic_migrations.versions.157a5d299379_ml2_binding_profile
#neutron.db.migration.alembic_migrations.versions.2a3bae1ceb8_nec_port_binding
#neutron.db.migration.alembic_migrations.versions.50d5ba354c23_ml2_binding_vif_details
#neutron.db.migration.alembic_migrations.versions.48b6f43f7471_service_type
#neutron.db.migration.alembic_migrations.versions.3d2585038b95_vmware_nsx
#neutron.db.migration.alembic_migrations.versions.2a6d0b51f4bb_cisco_plugin_cleanup
#neutron.db.migration.alembic_migrations.versions.40b0aff0302e_mlnx_initial
#neutron.db.migration.alembic_migrations.versions.51b4de912379_cisco_nexus_ml2_mech
#neutron.db.migration.alembic_migrations.versions.3b54bf9e29f7_nec_plugin_sharednet
#neutron.db.migration.alembic_migrations.versions.4a666eb208c2_service_router
#neutron.db.migration.alembic_migrations.versions.38335592a0dc_nvp_portmap
#neutron.db.migration.alembic_migrations.versions.66a59a7f516_nec_openflow_router
#neutron.db.migration.alembic_migrations.versions.1d76643bcec4_nvp_netbinding
#neutron.db.migration.alembic_migrations.versions.53bbd27ec841_extra_dhcp_opts_supp
#neutron.db.migration.alembic_migrations.versions.4ca36cfc898c_nsx_router_mappings
#neutron.db.migration.alembic_migrations.versions.33dd0a9fa487_embrane_lbaas_driver
#neutron.db.migration.alembic_migrations.versions.538732fa21e1_nec_rename_quantum_id_to_neutron_id
#neutron.db.migration.alembic_migrations.versions.45680af419f9_nvp_qos
#neutron.db.migration.alembic_migrations.versions.ed93525fd003_bigswitch_quota
#neutron.db.migration.alembic_migrations.versions.fcac4c42e2cc_bsn_addresspairs
#neutron.db.migration.alembic_migrations.versions.2032abe8edac_lbaas_add_status_des
#neutron.db.migration.alembic_migrations.versions.492a106273f8_brocade_ml2_mech_dri
#neutron.db.migration.alembic_migrations.versions.3a520dd165d0_cisco_nexus_multi_switch
#neutron.db.migration.alembic_migrations.versions.f489cf14a79c_lbaas_havana
#neutron.db.migration.alembic_migrations.versions.1341ed32cc1e_nvp_netbinding_update
#neutron.db.migration.alembic_migrations.versions.86cf4d88bd3_remove_bigswitch_por
#neutron.db.migration.alembic_migrations.versions.263772d65691_cisco_db_cleanup_2
#neutron.db.migration.alembic_migrations.versions.2528ceb28230_nec_pf_netid_fix
#neutron.db.migration.alembic_migrations.versions.grizzly_release
#neutron.db.migration.alembic_migrations.versions.32b517556ec9_remove_tunnelip_mode
#neutron.db.migration.alembic_migrations.versions.1efb85914233_allowedaddresspairs
#neutron.db.migration.alembic_migrations.versions.2447ad0e9585_add_ipv6_mode_props
#neutron.db.migration.alembic_migrations.versions.2c4af419145b_l3_support
#neutron.db.migration.alembic_migrations.versions.128e042a2b68_ext_gw_mode
#neutron.db.migration.alembic_migrations.versions.5a875d0e5c_ryu
#neutron.db.migration.alembic_migrations.versions.46a0efbd8f0_cisco_n1kv_multisegm
#neutron.db.migration.alembic_migrations.versions.2eeaf963a447_floatingip_status
#neutron.db.migration.alembic_migrations.versions.3cabb850f4a5_table_to_track_port_
#neutron.db.migration.alembic_migrations.versions.3d6fae8b70b0_nvp_lbaas_plugin
#neutron.db.migration.alembic_migrations.versions.folsom_initial
#neutron.db.migration.alembic_migrations.versions.1b2580001654_nsx_sec_group_mappin
#neutron.db.migration.alembic_migrations.versions.f9263d6df56_remove_dhcp_lease
#neutron.db.migration.alembic_migrations.versions.c88b6b5fea3_cisco_n1kv_tables
#neutron.db.migration.alembic_migrations.versions.13de305df56e_add_nec_pf_name
#neutron.db.migration.alembic_migrations.versions.24c7ea5160d7_cisco_csr_vpnaas
#neutron.db.migration.alembic_migrations.versions.363468ac592c_nvp_network_gw
#neutron.db.migration.alembic_migrations.versions.39cf3f799352_fwaas_havana_2_model
#neutron.db.migration.alembic_migrations.versions.e6b16a30d97_cisco_provider_nets
#neutron.db.migration.alembic_migrations.versions.5ac1c354a051_n1kv_segment_alloc
#neutron.db.migration.alembic_migrations.versions.3cbf70257c28_nvp_mac_learning
#neutron.db.migration.alembic_migrations.versions.abc88c33f74f_lb_stats_needs_bigint
#neutron.db.migration.alembic_migrations.versions.20ae61555e95_ml2_gre_type_driver
#neutron.db.migration.alembic_migrations.versions.569e98a8132b_metering
#neutron.db.migration.alembic_migrations.versions.8f682276ee4_ryu_plugin_quota
#neutron.db.migration.alembic_migrations.versions.27cc183af192_ml2_vnic_type
#neutron.db.migration.alembic_migrations.versions.52ff27f7567a_support_for_vpnaas
#neutron.db.migration.alembic_migrations.versions.338d7508968c_vpnaas_peer_address_
#neutron.db.migration.alembic_migrations.versions.5918cbddab04_add_tables_for_route
#neutron.db.migration.alembic_migrations.versions.1421183d533f_nsx_dhcp_metadata
#neutron.db.migration.alembic_migrations.versions.5ac71e65402c_ml2_initial
#neutron.db.migration.alembic_migrations.versions.117643811bca_nec_delete_ofc_mapping
#neutron.db.migration.alembic_migrations.versions.52c5e4a18807_lbaas_pool_scheduler
#neutron.db.migration.alembic_migrations.env
#neutron.db.migration.migrate_to_ml2
#neutron.db.migration.cli
#neutron.db.securitygroups_db
#neutron.db.model_base
#neutron.db.l3_rpc_base
#neutron.db.external_net_db
#neutron.db.portbindings_db
#neutron.db.securitygroups_rpc_base
#neutron.db.dhcp_rpc_base
#neutron.db.extraroute_db
#neutron.db.metering
#neutron.db.metering.metering_db
#neutron.db.agents_db
#neutron.context
#neutron.auth
#neutron.wsgi
#neutron.cmd
#neutron.cmd.usage_audit
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment