From 8aff29509f1f6cfc73973b8da3e55ed559ae1112 Mon Sep 17 00:00:00 2001 From: Isaku Yamahata Date: Tue, 1 Jul 2014 17:11:09 +0900 Subject: [PATCH] import neutron master of cba140daccd7c4f715263cda422d5cec27af069d Merge Neutron master branch to tacker master branch with modification of tox.ini and .gitreview. This patch imports the following change set of Neutron. > commit cba140daccd7c4f715263cda422d5cec27af069d > Merge: 63d8237 6bed4a0 > Author: Jenkins > Date: Sun Jun 22 16:02:56 2014 +0000 > > Merge "Adding static routes data for members" Change-Id: I5a0f522bc20530c46e35dc9e03fe72d72ad04577 --- .coveragerc | 7 + .gitignore | 28 + .mailmap | 11 + .pylintrc | 42 + .testr.conf | 4 + HACKING.rst | 28 + LICENSE | 176 + MANIFEST.in | 14 + README.rst | 25 + TESTING.rst | 180 + babel.cfg | 2 + bin/neutron-rootwrap | 21 + bin/neutron-rootwrap-xen-dom0 | 141 + doc/Makefile | 96 + doc/pom.xml | 135 + doc/source/conf.py | 250 + doc/source/devref/advanced_services.rst | 7 + doc/source/devref/api_extensions.rst | 18 + doc/source/devref/api_layer.rst | 57 + doc/source/devref/common.rst | 25 + doc/source/devref/db_layer.rst | 2 + doc/source/devref/development.environment.rst | 49 + doc/source/devref/fwaas.rst | 30 + doc/source/devref/index.rst | 65 + doc/source/devref/l2_agents.rst | 7 + doc/source/devref/layer3.rst | 199 + doc/source/devref/lbaas.rst | 32 + doc/source/devref/linuxbridge_agent.rst | 2 + doc/source/devref/openvswitch_agent.rst | 21 + doc/source/devref/plugin-api.rst | 12 + doc/source/devref/rpc_api.rst | 2 + doc/source/devref/security_group_api.rst | 50 + doc/source/devref/vpnaas.rst | 21 + doc/source/docbkx/docbkx-example/README | 14 + doc/source/docbkx/docbkx-example/pom.xml | 38 + .../docbkx-example/src/docbkx/example.xml | 318 + .../src/docbkx/figures/example.sdx | 79 + .../src/docbkx/figures/example.svg | 523 + doc/source/docbkx/quantum-api-1.0/common.ent | 112 + .../quantum-api-1.0/figures/Arrow_east.svg | 70 + .../figures/Check_mark_23x20_02.svg | 60 + .../docbkx/quantum-api-1.0/js/shjs/sh_java.js | 337 + .../quantum-api-1.0/js/shjs/sh_javascript.js | 347 + .../docbkx/quantum-api-1.0/js/shjs/sh_main.js | 538 + .../docbkx/quantum-api-1.0/js/shjs/sh_xml.js | 115 + .../js/trc/schema/controller.js | 184 + .../js/trc/schema/layoutManager.js | 137 + .../js/trc/schema/sampleManager.js | 342 + .../docbkx/quantum-api-1.0/js/trc/util.js | 564 + .../quantum-api-1.0/quantum-api-guide.xml | 2011 ++ .../samples/att-get-res-none.json | 3 + .../samples/att-get-res-none.xml | 1 + .../quantum-api-1.0/samples/att-get-res.json | 6 + .../quantum-api-1.0/samples/att-get-res.xml | 1 + .../quantum-api-1.0/samples/att-put-req.json | 6 + .../quantum-api-1.0/samples/att-put-req.xml | 2 + .../quantum-api-1.0/samples/extensions.json | 19 + .../quantum-api-1.0/samples/extensions.xml | 21 + .../docbkx/quantum-api-1.0/samples/fault.json | 7 + .../docbkx/quantum-api-1.0/samples/fault.xml | 8 + .../samples/network-get-detail-res.json | 22 + .../samples/network-get-detail-res.xml | 14 + .../samples/network-get-res.json | 7 + .../samples/network-get-res.xml | 3 + .../samples/network-post-req.json | 6 + .../samples/network-post-req.xml | 2 + .../samples/network-post-res.json | 6 + .../samples/network-post-res.xml | 2 + .../samples/networks-get-detail-res.json | 13 + .../samples/networks-get-detail-res.xml | 8 + .../samples/networks-get-res.json | 11 + .../samples/networks-get-res.xml | 4 + .../samples/networks-post-req.json | 5 + .../samples/networks-post-req.xml | 2 + .../samples/networks-post-res.json | 5 + .../samples/networks-post-res.xml | 2 + .../quantum-api-1.0/samples/notfound.json | 7 + .../quantum-api-1.0/samples/notfound.xml | 7 + .../samples/notimplemented.json | 7 + .../samples/notimplemented.xml | 5 + .../samples/port-get-detail-res.json | 12 + .../samples/port-get-detail-res.xml | 6 + .../quantum-api-1.0/samples/port-get-res.json | 8 + .../quantum-api-1.0/samples/port-get-res.xml | 3 + .../samples/port-post-req.json | 6 + .../quantum-api-1.0/samples/port-post-req.xml | 2 + .../samples/port-post-res.json | 6 + .../quantum-api-1.0/samples/port-post-res.xml | 2 + .../samples/ports-get-detail-res.json | 12 + .../samples/ports-get-detail-res.xml | 8 + .../samples/ports-get-res.json | 11 + .../quantum-api-1.0/samples/ports-get-res.xml | 6 + .../quantum-api-1.0/samples/private.json | 9 + .../quantum-api-1.0/samples/private.xml | 6 + .../quantum-api-1.0/samples/public.json | 11 + .../docbkx/quantum-api-1.0/samples/public.xml | 8 + .../quantum-api-1.0/samples/versions-atom.xml | 22 + .../quantum-api-1.0/samples/versions.json | 24 + .../quantum-api-1.0/samples/versions.xml | 12 + .../docbkx/quantum-api-1.0/style/schema.css | 82 + .../quantum-api-1.0/style/shjs/sh_acid.css | 151 + .../style/shjs/sh_darkblue.css | 151 + .../quantum-api-1.0/style/shjs/sh_emacs.css | 139 + .../quantum-api-1.0/style/shjs/sh_night.css | 151 + .../quantum-api-1.0/style/shjs/sh_pablo.css | 151 + .../quantum-api-1.0/style/shjs/sh_print.css | 145 + .../quantum-api-1.0/style/shjs/sh_style.css | 66 + .../style/shjs/sh_whitengrey.css | 139 + .../docbkx/quantum-api-1.0/xsd/.htaccess | 6 + .../docbkx/quantum-api-1.0/xsd/actions.xsd | 439 + .../quantum-api-1.0/xsd/affinity-id.xjb | 11 + .../quantum-api-1.0/xsd/affinity-id.xsd | 39 + .../docbkx/quantum-api-1.0/xsd/api-common.xjb | 11 + .../docbkx/quantum-api-1.0/xsd/api-common.xsd | 66 + doc/source/docbkx/quantum-api-1.0/xsd/api.xjb | 21 + doc/source/docbkx/quantum-api-1.0/xsd/api.xsd | 103 + .../docbkx/quantum-api-1.0/xsd/atom.xjb | 11 + .../docbkx/quantum-api-1.0/xsd/atom/atom.xsd | 105 + .../docbkx/quantum-api-1.0/xsd/atom/xml.xsd | 294 + .../docbkx/quantum-api-1.0/xsd/backup.xsd | 378 + .../docbkx/quantum-api-1.0/xsd/common.xsd | 156 + .../quantum-api-1.0/xsd/ext/rax-dme/api.xsd | 38 + .../xsd/ext/rax-dme/rax-dme.xsd | 25 + .../docbkx/quantum-api-1.0/xsd/extensions.xsd | 203 + .../docbkx/quantum-api-1.0/xsd/faults.xsd | 532 + .../docbkx/quantum-api-1.0/xsd/flavor.xsd | 244 + .../docbkx/quantum-api-1.0/xsd/image.xsd | 443 + .../docbkx/quantum-api-1.0/xsd/ipgroup.xsd | 245 + .../docbkx/quantum-api-1.0/xsd/limits.xsd | 315 + .../docbkx/quantum-api-1.0/xsd/metadata.xsd | 89 + .../docbkx/quantum-api-1.0/xsd/server.xsd | 1013 + .../docbkx/quantum-api-1.0/xsd/shareip.xjb | 11 + .../docbkx/quantum-api-1.0/xsd/shareip.xsd | 83 + .../docbkx/quantum-api-1.0/xsd/txt.htaccess | 4 + .../docbkx/quantum-api-1.0/xsd/version.xsd | 355 + .../docbkx/quantum-api-1.0/xslt/schema.xsl | 1342 ++ doc/source/index.rst | 60 + doc/source/man/neutron-server.rst | 75 + etc/api-paste.ini | 30 + etc/dhcp_agent.ini | 88 + etc/fwaas_driver.ini | 3 + etc/init.d/neutron-server | 68 + etc/l3_agent.ini | 79 + etc/lbaas_agent.ini | 42 + etc/metadata_agent.ini | 59 + etc/metering_agent.ini | 15 + etc/neutron.conf | 479 + etc/neutron/plugins/bigswitch/restproxy.ini | 114 + .../plugins/bigswitch/ssl/ca_certs/README | 3 + .../plugins/bigswitch/ssl/host_certs/README | 6 + etc/neutron/plugins/brocade/brocade.ini | 29 + etc/neutron/plugins/cisco/cisco_plugins.ini | 138 + etc/neutron/plugins/cisco/cisco_vpn_agent.ini | 22 + etc/neutron/plugins/embrane/heleos_conf.ini | 41 + .../plugins/hyperv/hyperv_neutron_plugin.ini | 63 + .../plugins/ibm/sdnve_neutron_plugin.ini | 50 + .../plugins/linuxbridge/linuxbridge_conf.ini | 78 + etc/neutron/plugins/metaplugin/metaplugin.ini | 31 + etc/neutron/plugins/midonet/midonet.ini | 19 + etc/neutron/plugins/ml2/ml2_conf.ini | 62 + etc/neutron/plugins/ml2/ml2_conf_arista.ini | 45 + etc/neutron/plugins/ml2/ml2_conf_brocade.ini | 13 + etc/neutron/plugins/ml2/ml2_conf_cisco.ini | 94 + etc/neutron/plugins/ml2/ml2_conf_fslsdn.ini | 52 + etc/neutron/plugins/ml2/ml2_conf_mlnx.ini | 6 + etc/neutron/plugins/ml2/ml2_conf_ncs.ini | 28 + etc/neutron/plugins/ml2/ml2_conf_odl.ini | 30 + etc/neutron/plugins/ml2/ml2_conf_ofa.ini | 13 + etc/neutron/plugins/mlnx/mlnx_conf.ini | 79 + etc/neutron/plugins/nec/nec.ini | 60 + etc/neutron/plugins/nuage/nuage_plugin.ini | 10 + .../plugins/oneconvergence/nvsdplugin.ini | 35 + .../openvswitch/ovs_neutron_plugin.ini | 179 + etc/neutron/plugins/plumgrid/plumgrid.ini | 14 + etc/neutron/plugins/ryu/ryu.ini | 44 + etc/neutron/plugins/vmware/nsx.ini | 202 + etc/neutron/rootwrap.d/debug.filters | 14 + etc/neutron/rootwrap.d/dhcp.filters | 38 + .../rootwrap.d/iptables-firewall.filters | 21 + etc/neutron/rootwrap.d/l3.filters | 41 + etc/neutron/rootwrap.d/lbaas-haproxy.filters | 26 + .../rootwrap.d/linuxbridge-plugin.filters | 19 + etc/neutron/rootwrap.d/nec-plugin.filters | 12 + .../rootwrap.d/openvswitch-plugin.filters | 22 + etc/neutron/rootwrap.d/ryu-plugin.filters | 21 + etc/neutron/rootwrap.d/vpnaas.filters | 13 + etc/policy.json | 136 + etc/rootwrap.conf | 34 + etc/services.conf | 40 + etc/vpn_agent.ini | 14 + neutron/__init__.py | 21 + neutron/agent/__init__.py | 16 + neutron/agent/common/__init__.py | 16 + neutron/agent/common/config.py | 123 + neutron/agent/dhcp_agent.py | 622 + neutron/agent/firewall.py | 138 + neutron/agent/l2population_rpc.py | 56 + neutron/agent/l3_agent.py | 990 + neutron/agent/linux/__init__.py | 16 + neutron/agent/linux/async_process.py | 223 + neutron/agent/linux/daemon.py | 151 + neutron/agent/linux/dhcp.py | 908 + neutron/agent/linux/external_process.py | 104 + neutron/agent/linux/interface.py | 450 + neutron/agent/linux/ip_lib.py | 569 + neutron/agent/linux/iptables_firewall.py | 383 + neutron/agent/linux/iptables_manager.py | 668 + neutron/agent/linux/ovs_lib.py | 564 + neutron/agent/linux/ovsdb_monitor.py | 107 + neutron/agent/linux/polling.py | 114 + neutron/agent/linux/utils.py | 130 + neutron/agent/metadata/__init__.py | 17 + neutron/agent/metadata/agent.py | 392 + neutron/agent/metadata/namespace_proxy.py | 184 + neutron/agent/netns_cleanup_util.py | 176 + neutron/agent/ovs_cleanup_util.py | 112 + neutron/agent/rpc.py | 112 + neutron/agent/securitygroups_rpc.py | 303 + neutron/api/__init__.py | 0 neutron/api/api_common.py | 327 + neutron/api/extensions.py | 684 + neutron/api/rpc/__init__.py | 0 neutron/api/rpc/agentnotifiers/__init__.py | 0 .../rpc/agentnotifiers/dhcp_rpc_agent_api.py | 177 + .../rpc/agentnotifiers/l3_rpc_agent_api.py | 121 + .../agentnotifiers/metering_rpc_agent_api.py | 99 + neutron/api/v2/__init__.py | 0 neutron/api/v2/attributes.py | 774 + neutron/api/v2/base.py | 679 + neutron/api/v2/resource.py | 172 + neutron/api/v2/resource_helper.py | 93 + neutron/api/v2/router.py | 115 + neutron/api/versions.py | 69 + neutron/api/views/__init__.py | 0 neutron/api/views/versions.py | 60 + neutron/auth.py | 73 + neutron/cmd/__init__.py | 16 + neutron/cmd/sanity/__init__.py | 0 neutron/cmd/sanity/checks.py | 38 + neutron/cmd/sanity_check.py | 93 + neutron/cmd/usage_audit.py | 50 + neutron/common/__init__.py | 0 neutron/common/config.py | 189 + neutron/common/constants.py | 121 + neutron/common/exceptions.py | 321 + neutron/common/ipv6_utils.py | 39 + neutron/common/log.py | 35 + neutron/common/rpc.py | 136 + neutron/common/rpc_compat.py | 165 + neutron/common/test_lib.py | 44 + neutron/common/topics.py | 57 + neutron/common/utils.py | 301 + neutron/context.py | 176 + neutron/db/__init__.py | 0 neutron/db/agents_db.py | 219 + neutron/db/agentschedulers_db.py | 226 + neutron/db/allowedaddresspairs_db.py | 147 + neutron/db/api.py | 89 + neutron/db/db_base_plugin_v2.py | 1625 ++ neutron/db/dhcp_rpc_base.py | 287 + neutron/db/external_net_db.py | 163 + neutron/db/extradhcpopt_db.py | 127 + neutron/db/extraroute_db.py | 185 + neutron/db/firewall/__init__.py | 16 + neutron/db/firewall/firewall_db.py | 481 + neutron/db/l3_agentschedulers_db.py | 291 + neutron/db/l3_db.py | 1039 + neutron/db/l3_gwmode_db.py | 73 + neutron/db/l3_rpc_base.py | 128 + neutron/db/loadbalancer/__init__.py | 15 + neutron/db/loadbalancer/loadbalancer_db.py | 802 + neutron/db/metering/__init__.py | 15 + neutron/db/metering/metering_db.py | 239 + neutron/db/metering/metering_rpc.py | 55 + neutron/db/migration/README | 92 + neutron/db/migration/__init__.py | 53 + neutron/db/migration/alembic.ini | 52 + .../migration/alembic_migrations/__init__.py | 0 .../alembic_migrations/common_ext_ops.py | 83 + .../db/migration/alembic_migrations/env.py | 106 + .../alembic_migrations/script.py.mako | 52 + .../versions/1064e98b7917_nec_pf_port_del.py | 63 + .../versions/10cd28e692e9_nuage_extraroute.py | 68 + .../versions/1149d7de0cfa_port_security.py | 84 + .../117643811bca_nec_delete_ofc_mapping.py | 208 + .../11c6e18605c8_pool_monitor_status_.py | 62 + .../versions/128e042a2b68_ext_gw_mode.py | 71 + .../1341ed32cc1e_nvp_netbinding_update.py | 70 + .../versions/13de305df56e_add_nec_pf_name.py | 55 + .../1421183d533f_nsx_dhcp_metadata.py | 74 + .../versions/14f24494ca31_arista_ml2.py | 78 + .../157a5d299379_ml2_binding_profile.py | 55 + .../176a85fc7d79_add_portbindings_db.py | 66 + .../versions/19180cf98af6_nsx_gw_devices.py | 103 + .../1b2580001654_nsx_sec_group_mappin.py | 61 + .../1b693c095aa3_quota_ext_db_grizzly.py | 64 + .../1b837a7125a9_cisco_apic_driver.py | 74 + .../1c33fa3cd1a1_extra_route_config.py | 82 + .../versions/1d76643bcec4_nvp_netbinding.py | 67 + ...5dd1d09b22_set_not_null_fields_lb_stats.py | 66 + .../1efb85914233_allowedaddresspairs.py | 67 + ...c149aca4_agents_unique_by_type_and_host.py | 73 + .../2032abe8edac_lbaas_add_status_des.py | 57 + .../20ae61555e95_ml2_gre_type_driver.py | 66 + .../2447ad0e9585_add_ipv6_mode_props.py | 81 + .../versions/24c7ea5160d7_cisco_csr_vpnaas.py | 60 + .../versions/2528ceb28230_nec_pf_netid_fix.py | 61 + .../263772d65691_cisco_db_cleanup_2.py | 66 + .../versions/27cc183af192_ml2_vnic_type.py | 54 + .../27ef74513d33_quota_in_plumgrid_pl.py | 65 + .../versions/2a3bae1ceb8_nec_port_binding.py | 65 + .../2a6d0b51f4bb_cisco_plugin_cleanup.py | 88 + .../versions/2c4af419145b_l3_support.py | 56 + .../versions/2db5203cb7a9_nuage_floatingip.py | 83 + .../2eeaf963a447_floatingip_status.py | 81 + .../versions/32a65f71af51_ml2_portbinding.py | 70 + .../32b517556ec9_remove_tunnelip_mode.py | 58 + .../338d7508968c_vpnaas_peer_address_.py | 55 + ...et_length_of_description_field_metering.py | 58 + .../33dd0a9fa487_embrane_lbaas_driver.py | 61 + ...35c7c198ddea_lbaas_healthmon_del_status.py | 58 + .../versions/363468ac592c_nvp_network_gw.py | 100 + .../versions/38335592a0dc_nvp_portmap.py | 62 + .../38fc1f6789f8_cisco_n1kv_overlay.py | 57 + .../39cf3f799352_fwaas_havana_2_model.py | 109 + .../3a520dd165d0_cisco_nexus_multi_switch.py | 59 + .../3b54bf9e29f7_nec_plugin_sharednet.py | 84 + .../3c6e57a23db4_add_multiprovider.py | 103 + .../3cabb850f4a5_table_to_track_port_.py | 63 + .../versions/3cb5d900c5de_security_groups.py | 103 + .../versions/3cbf70257c28_nvp_mac_learning.py | 63 + .../versions/3d2585038b95_vmware_nsx.py | 65 + .../3d3cb89d84ee_nsx_switch_mappings.py | 61 + .../versions/3d6fae8b70b0_nvp_lbaas_plugin.py | 82 + .../versions/3ed8f075e38a_nvp_fwaas_plugin.py | 60 + .../versions/40b0aff0302e_mlnx_initial.py | 194 + .../versions/40dffbf4b549_nvp_dist_router.py | 63 + .../versions/45680af419f9_nvp_qos.py | 94 + .../versions/4692d074d587_agent_scheduler.py | 89 + .../46a0efbd8f0_cisco_n1kv_multisegm.py | 80 + .../477a4488d3f4_ml2_vxlan_type_driver.py | 69 + .../versions/48b6f43f7471_service_type.py | 76 + .../492a106273f8_brocade_ml2_mech_dri.py | 70 + .../49332180ca96_ryu_plugin_update.py | 59 + .../49f5e553f61f_ml2_security_groups.py | 95 + .../versions/4a666eb208c2_service_router.py | 70 + .../4ca36cfc898c_nsx_router_mappings.py | 64 + .../4eca4a84f08a_remove_ml2_cisco_cred_db.py | 59 + .../50d5ba354c23_ml2_binding_vif_details.py | 99 + .../versions/50e86cb2637a_nsx_mappings.py | 82 + .../511471cc46b_agent_ext_model_supp.py | 84 + .../51b4de912379_cisco_nexus_ml2_mech.py | 68 + .../52c5e4a18807_lbaas_pool_scheduler.py | 63 + .../52ff27f7567a_support_for_vpnaas.py | 183 + ...1e1_nec_rename_quantum_id_to_neutron_id.py | 65 + .../53bbd27ec841_extra_dhcp_opts_supp.py | 66 + .../versions/54c2c487e913_lbaas.py | 163 + .../54f7549a0e5f_set_not_null_peer_address.py | 54 + .../557edfc53098_new_service_types.py | 81 + .../versions/569e98a8132b_metering.py | 77 + .../5918cbddab04_add_tables_for_route.py | 71 + .../versions/5a875d0e5c_ryu.py | 74 + .../5ac1c354a051_n1kv_segment_alloc.py | 83 + .../versions/5ac71e65402c_ml2_initial.py | 84 + ...afba73813_ovs_tunnelendpoints_id_unique.py | 64 + .../66a59a7f516_nec_openflow_router.py | 68 + .../6be312499f9_set_not_null_vlan_id_cisco.py | 54 + .../81c553f3776c_bsn_consistencyhashes.py | 56 + .../86cf4d88bd3_remove_bigswitch_por.py | 59 + .../versions/8f682276ee4_ryu_plugin_quota.py | 61 + .../alembic_migrations/versions/HEAD | 1 + .../alembic_migrations/versions/README | 5 + .../abc88c33f74f_lb_stats_needs_bigint.py | 67 + ...65aa907aec_set_length_of_protocol_field.py | 52 + .../b7a8863760e_rm_cisco_vlan_bindin.py | 60 + .../versions/c88b6b5fea3_cisco_n1kv_tables.py | 150 + ...871c0d5_set_admin_state_up_not_null_ml2.py | 54 + .../e197124d4b9_add_unique_constrain.py | 65 + .../e6b16a30d97_cisco_provider_nets.py | 62 + .../versions/e766b19a3bb_nuage_initial.py | 120 + .../versions/ed93525fd003_bigswitch_quota.py | 64 + .../f44ab9871cd6_bsn_security_groups.py | 95 + .../versions/f489cf14a79c_lbaas_havana.py | 162 + .../versions/f9263d6df56_remove_dhcp_lease.py | 46 + .../versions/fcac4c42e2cc_bsn_addresspairs.py | 58 + .../versions/folsom_initial.py | 563 + .../versions/grizzly_release.py | 42 + .../versions/havana_release.py | 42 + .../versions/icehouse_release.py | 42 + neutron/db/migration/cli.py | 171 + neutron/db/migration/migrate_to_ml2.py | 462 + neutron/db/model_base.py | 52 + neutron/db/models_v2.py | 204 + neutron/db/portbindings_base.py | 41 + neutron/db/portbindings_db.py | 121 + neutron/db/portsecurity_db.py | 185 + neutron/db/quota_db.py | 179 + neutron/db/routedserviceinsertion_db.py | 106 + neutron/db/routerservicetype_db.py | 57 + neutron/db/securitygroups_db.py | 564 + neutron/db/securitygroups_rpc_base.py | 374 + neutron/db/servicetype_db.py | 99 + neutron/db/sqlalchemyutils.py | 107 + neutron/db/vpn/__init__.py | 18 + neutron/db/vpn/vpn_db.py | 691 + neutron/debug/README | 38 + neutron/debug/__init__.py | 16 + neutron/debug/commands.py | 157 + neutron/debug/debug_agent.py | 198 + neutron/debug/shell.py | 90 + neutron/extensions/__init__.py | 0 neutron/extensions/agent.py | 163 + neutron/extensions/allowedaddresspairs.py | 116 + neutron/extensions/dhcpagentscheduler.py | 152 + neutron/extensions/external_net.py | 68 + neutron/extensions/extra_dhcp_opt.py | 91 + neutron/extensions/extraroute.py | 74 + neutron/extensions/firewall.py | 431 + neutron/extensions/flavor.py | 67 + neutron/extensions/l3.py | 254 + neutron/extensions/l3_ext_gw_mode.py | 66 + neutron/extensions/l3agentscheduler.py | 194 + neutron/extensions/lbaas_agentscheduler.py | 137 + neutron/extensions/loadbalancer.py | 506 + neutron/extensions/metering.py | 190 + neutron/extensions/multiprovidernet.py | 114 + neutron/extensions/portbindings.py | 133 + neutron/extensions/portsecurity.py | 78 + neutron/extensions/providernet.py | 95 + neutron/extensions/quotasv2.py | 152 + neutron/extensions/routedserviceinsertion.py | 71 + neutron/extensions/routerservicetype.py | 55 + neutron/extensions/securitygroup.py | 354 + neutron/extensions/servicetype.py | 91 + neutron/extensions/vpnaas.py | 482 + neutron/hacking/__init__.py | 0 neutron/hacking/checks.py | 50 + neutron/hooks.py | 29 + .../de/LC_MESSAGES/neutron-log-error.po | 170 + .../locale/de/LC_MESSAGES/neutron-log-info.po | 131 + .../de/LC_MESSAGES/neutron-log-warning.po | 57 + .../en_AU/LC_MESSAGES/neutron-log-error.po | 163 + .../en_AU/LC_MESSAGES/neutron-log-info.po | 128 + .../en_GB/LC_MESSAGES/neutron-log-error.po | 163 + .../en_GB/LC_MESSAGES/neutron-log-info.po | 128 + neutron/locale/en_US/LC_MESSAGES/neutron.po | 16163 ++++++++++++++++ .../es/LC_MESSAGES/neutron-log-error.po | 170 + .../locale/es/LC_MESSAGES/neutron-log-info.po | 128 + .../fr/LC_MESSAGES/neutron-log-critical.po | 23 + .../fr/LC_MESSAGES/neutron-log-error.po | 171 + .../locale/fr/LC_MESSAGES/neutron-log-info.po | 128 + .../locale/it/LC_MESSAGES/neutron-log-info.po | 128 + .../ja/LC_MESSAGES/neutron-log-error.po | 170 + .../locale/ja/LC_MESSAGES/neutron-log-info.po | 128 + .../ko_KR/LC_MESSAGES/neutron-log-error.po | 165 + .../ko_KR/LC_MESSAGES/neutron-log-info.po | 128 + neutron/locale/neutron-log-critical.pot | 19 + neutron/locale/neutron-log-error.pot | 158 + neutron/locale/neutron-log-info.pot | 127 + neutron/locale/neutron-log-warning.pot | 53 + neutron/locale/neutron.pot | 16162 +++++++++++++++ .../pt_BR/LC_MESSAGES/neutron-log-error.po | 168 + .../pt_BR/LC_MESSAGES/neutron-log-info.po | 128 + .../zh_CN/LC_MESSAGES/neutron-log-error.po | 162 + .../zh_CN/LC_MESSAGES/neutron-log-info.po | 128 + .../zh_TW/LC_MESSAGES/neutron-log-info.po | 128 + neutron/manager.py | 225 + neutron/neutron_plugin_base_v2.py | 352 + neutron/notifiers/__init__.py | 0 neutron/notifiers/nova.py | 249 + neutron/openstack/__init__.py | 0 neutron/openstack/common/__init__.py | 17 + neutron/openstack/common/cache/__init__.py | 0 .../common/cache/_backends/__init__.py | 0 .../common/cache/_backends/memory.py | 165 + neutron/openstack/common/cache/backends.py | 263 + neutron/openstack/common/cache/cache.py | 78 + neutron/openstack/common/context.py | 83 + neutron/openstack/common/db/__init__.py | 0 neutron/openstack/common/db/api.py | 162 + neutron/openstack/common/db/exception.py | 56 + neutron/openstack/common/db/options.py | 171 + .../common/db/sqlalchemy/__init__.py | 0 .../openstack/common/db/sqlalchemy/models.py | 119 + .../common/db/sqlalchemy/provision.py | 157 + .../openstack/common/db/sqlalchemy/session.py | 904 + .../common/db/sqlalchemy/test_base.py | 153 + .../openstack/common/db/sqlalchemy/utils.py | 647 + neutron/openstack/common/eventlet_backdoor.py | 144 + neutron/openstack/common/excutils.py | 113 + neutron/openstack/common/fileutils.py | 137 + neutron/openstack/common/fixture/__init__.py | 0 neutron/openstack/common/fixture/config.py | 45 + neutron/openstack/common/fixture/lockutils.py | 51 + neutron/openstack/common/fixture/mockpatch.py | 49 + .../openstack/common/fixture/moxstubout.py | 32 + neutron/openstack/common/gettextutils.py | 498 + neutron/openstack/common/importutils.py | 66 + neutron/openstack/common/jsonutils.py | 186 + neutron/openstack/common/local.py | 45 + neutron/openstack/common/lockutils.py | 303 + neutron/openstack/common/log.py | 626 + neutron/openstack/common/log_handler.py | 30 + neutron/openstack/common/loopingcall.py | 145 + .../openstack/common/middleware/__init__.py | 0 neutron/openstack/common/middleware/audit.py | 44 + neutron/openstack/common/middleware/base.py | 56 + .../common/middleware/catch_errors.py | 43 + .../common/middleware/correlation_id.py | 28 + neutron/openstack/common/middleware/debug.py | 60 + .../openstack/common/middleware/notifier.py | 126 + .../openstack/common/middleware/request_id.py | 41 + .../openstack/common/middleware/sizelimit.py | 81 + neutron/openstack/common/network_utils.py | 89 + neutron/openstack/common/periodic_task.py | 183 + neutron/openstack/common/policy.py | 780 + neutron/openstack/common/processutils.py | 248 + neutron/openstack/common/service.py | 512 + neutron/openstack/common/sslutils.py | 98 + neutron/openstack/common/strutils.py | 239 + neutron/openstack/common/systemd.py | 104 + neutron/openstack/common/threadgroup.py | 129 + neutron/openstack/common/timeutils.py | 210 + neutron/openstack/common/uuidutils.py | 37 + neutron/openstack/common/versionutils.py | 148 + neutron/plugins/__init__.py | 0 neutron/plugins/bigswitch/README | 14 + neutron/plugins/bigswitch/__init__.py | 16 + neutron/plugins/bigswitch/agent/__init__.py | 0 .../bigswitch/agent/restproxy_agent.py | 181 + neutron/plugins/bigswitch/config.py | 123 + neutron/plugins/bigswitch/db/__init__.py | 18 + .../plugins/bigswitch/db/consistency_db.py | 56 + .../plugins/bigswitch/db/porttracker_db.py | 53 + .../plugins/bigswitch/extensions/__init__.py | 18 + .../bigswitch/extensions/routerrule.py | 144 + neutron/plugins/bigswitch/plugin.py | 1115 ++ neutron/plugins/bigswitch/routerrule_db.py | 148 + neutron/plugins/bigswitch/servermanager.py | 595 + neutron/plugins/bigswitch/tests/__init__.py | 16 + .../plugins/bigswitch/tests/test_server.py | 188 + neutron/plugins/bigswitch/vcsversion.py | 27 + neutron/plugins/bigswitch/version.py | 53 + neutron/plugins/brocade/NeutronPlugin.py | 497 + neutron/plugins/brocade/README.md | 112 + neutron/plugins/brocade/__init__.py | 16 + neutron/plugins/brocade/db/__init__.py | 16 + neutron/plugins/brocade/db/models.py | 151 + neutron/plugins/brocade/nos/__init__.py | 16 + neutron/plugins/brocade/nos/fake_nosdriver.py | 117 + neutron/plugins/brocade/nos/nctemplates.py | 204 + neutron/plugins/brocade/nos/nosdriver.py | 233 + neutron/plugins/brocade/tests/README | 24 + neutron/plugins/brocade/tests/noscli.py | 93 + neutron/plugins/brocade/tests/nostest.py | 48 + neutron/plugins/brocade/vlanbm.py | 60 + neutron/plugins/cisco/README | 7 + neutron/plugins/cisco/__init__.py | 18 + neutron/plugins/cisco/common/__init__.py | 17 + .../plugins/cisco/common/cisco_constants.py | 111 + .../cisco/common/cisco_credentials_v2.py | 61 + .../plugins/cisco/common/cisco_exceptions.py | 236 + neutron/plugins/cisco/common/cisco_faults.py | 138 + neutron/plugins/cisco/common/config.py | 151 + neutron/plugins/cisco/db/__init__.py | 18 + neutron/plugins/cisco/db/n1kv_db_v2.py | 1621 ++ neutron/plugins/cisco/db/n1kv_models_v2.py | 185 + neutron/plugins/cisco/db/network_db_v2.py | 290 + neutron/plugins/cisco/db/network_models_v2.py | 56 + neutron/plugins/cisco/db/nexus_db_v2.py | 154 + neutron/plugins/cisco/db/nexus_models_v2.py | 46 + neutron/plugins/cisco/extensions/__init__.py | 16 + .../cisco/extensions/_credential_view.py | 52 + neutron/plugins/cisco/extensions/_qos_view.py | 52 + .../plugins/cisco/extensions/credential.py | 84 + neutron/plugins/cisco/extensions/n1kv.py | 106 + .../cisco/extensions/network_profile.py | 103 + .../cisco/extensions/policy_profile.py | 85 + neutron/plugins/cisco/extensions/qos.py | 156 + neutron/plugins/cisco/l2device_plugin_base.py | 175 + neutron/plugins/cisco/models/__init__.py | 17 + .../plugins/cisco/models/virt_phy_sw_v2.py | 553 + neutron/plugins/cisco/n1kv/__init__.py | 18 + neutron/plugins/cisco/n1kv/n1kv_client.py | 541 + .../plugins/cisco/n1kv/n1kv_neutron_plugin.py | 1438 ++ neutron/plugins/cisco/network_plugin.py | 176 + neutron/plugins/cisco/nexus/__init__.py | 21 + .../nexus/cisco_nexus_network_driver_v2.py | 196 + .../cisco/nexus/cisco_nexus_plugin_v2.py | 347 + .../cisco/nexus/cisco_nexus_snippets.py | 180 + neutron/plugins/cisco/test/__init__.py | 0 neutron/plugins/cisco/test/nexus/__init__.py | 19 + .../cisco/test/nexus/fake_nexus_driver.py | 101 + neutron/plugins/common/__init__.py | 16 + neutron/plugins/common/constants.py | 85 + neutron/plugins/common/utils.py | 69 + neutron/plugins/embrane/README | 9 + neutron/plugins/embrane/__init__.py | 18 + neutron/plugins/embrane/agent/__init__.py | 18 + neutron/plugins/embrane/agent/dispatcher.py | 134 + .../embrane/agent/operations/__init__.py | 18 + .../agent/operations/router_operations.py | 156 + neutron/plugins/embrane/base_plugin.py | 375 + neutron/plugins/embrane/common/__init__.py | 18 + neutron/plugins/embrane/common/config.py | 49 + neutron/plugins/embrane/common/constants.py | 72 + neutron/plugins/embrane/common/contexts.py | 40 + neutron/plugins/embrane/common/exceptions.py | 28 + neutron/plugins/embrane/common/operation.py | 51 + neutron/plugins/embrane/common/utils.py | 73 + neutron/plugins/embrane/l2base/__init__.py | 18 + .../plugins/embrane/l2base/fake/__init__.py | 18 + .../embrane/l2base/fake/fake_l2_plugin.py | 24 + .../embrane/l2base/fake/fakeplugin_support.py | 45 + .../embrane/l2base/openvswitch/__init__.py | 18 + .../l2base/openvswitch/openvswitch_support.py | 58 + .../plugins/embrane/l2base/support_base.py | 50 + .../embrane/l2base/support_exceptions.py | 25 + neutron/plugins/embrane/plugins/__init__.py | 18 + .../embrane/plugins/embrane_fake_plugin.py | 34 + .../embrane/plugins/embrane_ovs_plugin.py | 38 + neutron/plugins/hyperv/__init__.py | 16 + neutron/plugins/hyperv/agent/__init__.py | 16 + .../hyperv/agent/hyperv_neutron_agent.py | 475 + .../hyperv/agent/security_groups_driver.py | 146 + neutron/plugins/hyperv/agent/utils.py | 256 + neutron/plugins/hyperv/agent/utilsfactory.py | 72 + neutron/plugins/hyperv/agent/utilsv2.py | 439 + neutron/plugins/hyperv/agent_notifier_api.py | 80 + neutron/plugins/hyperv/common/__init__.py | 16 + neutron/plugins/hyperv/common/constants.py | 23 + neutron/plugins/hyperv/db.py | 219 + .../plugins/hyperv/hyperv_neutron_plugin.py | 333 + neutron/plugins/hyperv/model.py | 55 + neutron/plugins/hyperv/rpc_callbacks.py | 94 + neutron/plugins/ibm/README | 6 + neutron/plugins/ibm/__init__.py | 0 neutron/plugins/ibm/agent/__init__.py | 0 .../plugins/ibm/agent/sdnve_neutron_agent.py | 270 + neutron/plugins/ibm/common/__init__.py | 0 neutron/plugins/ibm/common/config.py | 74 + neutron/plugins/ibm/common/constants.py | 32 + neutron/plugins/ibm/common/exceptions.py | 28 + neutron/plugins/ibm/sdnve_api.py | 388 + neutron/plugins/ibm/sdnve_api_fake.py | 64 + neutron/plugins/ibm/sdnve_neutron_plugin.py | 666 + neutron/plugins/linuxbridge/README | 169 + neutron/plugins/linuxbridge/__init__.py | 0 neutron/plugins/linuxbridge/agent/__init__.py | 0 .../agent/linuxbridge_neutron_agent.py | 1026 + .../plugins/linuxbridge/common/__init__.py | 17 + neutron/plugins/linuxbridge/common/config.py | 78 + .../plugins/linuxbridge/common/constants.py | 42 + neutron/plugins/linuxbridge/db/__init__.py | 18 + .../plugins/linuxbridge/db/l2network_db_v2.py | 238 + .../linuxbridge/db/l2network_models_v2.py | 59 + .../plugins/linuxbridge/lb_neutron_plugin.py | 530 + neutron/plugins/metaplugin/README | 92 + neutron/plugins/metaplugin/__init__.py | 16 + neutron/plugins/metaplugin/common/__init__.py | 16 + neutron/plugins/metaplugin/common/config.py | 80 + neutron/plugins/metaplugin/meta_db_v2.py | 52 + neutron/plugins/metaplugin/meta_models_v2.py | 43 + .../plugins/metaplugin/meta_neutron_plugin.py | 419 + .../metaplugin/proxy_neutron_plugin.py | 136 + neutron/plugins/midonet/__init__.py | 17 + neutron/plugins/midonet/agent/__init__.py | 16 + .../plugins/midonet/agent/midonet_driver.py | 52 + neutron/plugins/midonet/common/__init__.py | 16 + neutron/plugins/midonet/common/config.py | 46 + neutron/plugins/midonet/common/net_util.py | 68 + neutron/plugins/midonet/midonet_lib.py | 696 + neutron/plugins/midonet/plugin.py | 1258 ++ neutron/plugins/ml2/README | 53 + neutron/plugins/ml2/__init__.py | 14 + neutron/plugins/ml2/common/__init__.py | 14 + neutron/plugins/ml2/common/exceptions.py | 23 + neutron/plugins/ml2/config.py | 36 + neutron/plugins/ml2/db.py | 136 + neutron/plugins/ml2/driver_api.py | 597 + neutron/plugins/ml2/driver_context.py | 135 + neutron/plugins/ml2/drivers/README.fslsdn | 102 + neutron/plugins/ml2/drivers/README.odl | 41 + neutron/plugins/ml2/drivers/__init__.py | 14 + neutron/plugins/ml2/drivers/brocade/README.md | 60 + .../plugins/ml2/drivers/brocade/__init__.py | 0 .../ml2/drivers/brocade/db/__init__.py | 0 .../plugins/ml2/drivers/brocade/db/models.py | 139 + .../ml2/drivers/brocade/mechanism_brocade.py | 385 + .../ml2/drivers/brocade/nos/__init__.py | 0 .../ml2/drivers/brocade/nos/nctemplates.py | 197 + .../ml2/drivers/brocade/nos/nosdriver.py | 236 + neutron/plugins/ml2/drivers/cisco/__init__.py | 14 + .../ml2/drivers/cisco/apic/__init__.py | 0 .../ml2/drivers/cisco/apic/apic_client.py | 416 + .../ml2/drivers/cisco/apic/apic_manager.py | 559 + .../ml2/drivers/cisco/apic/apic_model.py | 177 + .../plugins/ml2/drivers/cisco/apic/config.py | 82 + .../ml2/drivers/cisco/apic/exceptions.py | 59 + .../ml2/drivers/cisco/apic/mechanism_apic.py | 150 + .../plugins/ml2/drivers/cisco/nexus/README | 19 + .../ml2/drivers/cisco/nexus/__init__.py | 0 .../plugins/ml2/drivers/cisco/nexus/config.py | 65 + .../ml2/drivers/cisco/nexus/constants.py | 24 + .../ml2/drivers/cisco/nexus/exceptions.py | 84 + .../drivers/cisco/nexus/mech_cisco_nexus.py | 219 + .../ml2/drivers/cisco/nexus/nexus_db_v2.py | 143 + .../drivers/cisco/nexus/nexus_models_v2.py | 45 + .../cisco/nexus/nexus_network_driver.py | 171 + .../ml2/drivers/cisco/nexus/nexus_snippets.py | 200 + neutron/plugins/ml2/drivers/l2pop/README | 41 + neutron/plugins/ml2/drivers/l2pop/__init__.py | 18 + neutron/plugins/ml2/drivers/l2pop/config.py | 29 + .../plugins/ml2/drivers/l2pop/constants.py | 23 + neutron/plugins/ml2/drivers/l2pop/db.py | 83 + .../plugins/ml2/drivers/l2pop/mech_driver.py | 248 + neutron/plugins/ml2/drivers/l2pop/rpc.py | 86 + neutron/plugins/ml2/drivers/mech_agent.py | 149 + .../plugins/ml2/drivers/mech_arista/README | 9 + .../ml2/drivers/mech_arista/__init__.py | 14 + .../plugins/ml2/drivers/mech_arista/config.py | 70 + neutron/plugins/ml2/drivers/mech_arista/db.py | 402 + .../ml2/drivers/mech_arista/exceptions.py | 27 + .../drivers/mech_arista/mechanism_arista.py | 1014 + .../ml2/drivers/mech_bigswitch/__init__.py | 0 .../ml2/drivers/mech_bigswitch/driver.py | 130 + neutron/plugins/ml2/drivers/mech_hyperv.py | 57 + .../plugins/ml2/drivers/mech_linuxbridge.py | 57 + neutron/plugins/ml2/drivers/mech_ofagent.py | 61 + .../plugins/ml2/drivers/mech_openvswitch.py | 58 + .../plugins/ml2/drivers/mechanism_fslsdn.py | 288 + neutron/plugins/ml2/drivers/mechanism_ncs.py | 182 + neutron/plugins/ml2/drivers/mechanism_odl.py | 374 + neutron/plugins/ml2/drivers/mlnx/__init__.py | 0 neutron/plugins/ml2/drivers/mlnx/config.py | 32 + neutron/plugins/ml2/drivers/mlnx/mech_mlnx.py | 91 + neutron/plugins/ml2/drivers/type_flat.py | 131 + neutron/plugins/ml2/drivers/type_gre.py | 190 + neutron/plugins/ml2/drivers/type_local.py | 59 + neutron/plugins/ml2/drivers/type_tunnel.py | 132 + neutron/plugins/ml2/drivers/type_vlan.py | 267 + neutron/plugins/ml2/drivers/type_vxlan.py | 203 + neutron/plugins/ml2/managers.py | 480 + neutron/plugins/ml2/models.py | 76 + neutron/plugins/ml2/plugin.py | 791 + neutron/plugins/ml2/rpc.py | 239 + neutron/plugins/mlnx/README | 8 + neutron/plugins/mlnx/__init__.py | 16 + neutron/plugins/mlnx/agent/__init__.py | 16 + .../mlnx/agent/eswitch_neutron_agent.py | 438 + neutron/plugins/mlnx/agent/utils.py | 144 + neutron/plugins/mlnx/agent_notify_api.py | 67 + neutron/plugins/mlnx/common/__init__.py | 16 + neutron/plugins/mlnx/common/comm_utils.py | 66 + neutron/plugins/mlnx/common/config.py | 80 + neutron/plugins/mlnx/common/constants.py | 28 + neutron/plugins/mlnx/common/exceptions.py | 30 + neutron/plugins/mlnx/db/__init__.py | 16 + neutron/plugins/mlnx/db/mlnx_db_v2.py | 257 + neutron/plugins/mlnx/db/mlnx_models_v2.py | 86 + neutron/plugins/mlnx/mlnx_plugin.py | 512 + neutron/plugins/mlnx/rpc_callbacks.py | 119 + neutron/plugins/nec/README | 13 + neutron/plugins/nec/__init__.py | 15 + neutron/plugins/nec/agent/__init__.py | 15 + .../plugins/nec/agent/nec_neutron_agent.py | 252 + neutron/plugins/nec/common/__init__.py | 15 + neutron/plugins/nec/common/config.py | 84 + neutron/plugins/nec/common/constants.py | 24 + neutron/plugins/nec/common/exceptions.py | 85 + neutron/plugins/nec/common/ofc_client.py | 158 + neutron/plugins/nec/common/utils.py | 24 + neutron/plugins/nec/db/__init__.py | 15 + neutron/plugins/nec/db/api.py | 186 + neutron/plugins/nec/db/models.py | 71 + neutron/plugins/nec/db/packetfilter.py | 220 + neutron/plugins/nec/db/router.py | 92 + neutron/plugins/nec/drivers/__init__.py | 40 + neutron/plugins/nec/drivers/pfc.py | 374 + neutron/plugins/nec/drivers/trema.py | 250 + neutron/plugins/nec/extensions/__init__.py | 15 + .../plugins/nec/extensions/packetfilter.py | 208 + .../plugins/nec/extensions/router_provider.py | 60 + neutron/plugins/nec/nec_plugin.py | 781 + neutron/plugins/nec/nec_router.py | 358 + neutron/plugins/nec/ofc_driver_base.py | 105 + neutron/plugins/nec/ofc_manager.py | 201 + neutron/plugins/nec/packet_filter.py | 258 + neutron/plugins/nec/router_drivers.py | 224 + neutron/plugins/nuage/__init__.py | 0 neutron/plugins/nuage/common/__init__.py | 0 neutron/plugins/nuage/common/config.py | 47 + neutron/plugins/nuage/common/constants.py | 28 + neutron/plugins/nuage/common/exceptions.py | 24 + neutron/plugins/nuage/extensions/__init__.py | 0 .../plugins/nuage/extensions/netpartition.py | 107 + .../plugins/nuage/extensions/nuage_router.py | 73 + .../plugins/nuage/extensions/nuage_subnet.py | 59 + neutron/plugins/nuage/nuage_models.py | 102 + neutron/plugins/nuage/nuagedb.py | 202 + neutron/plugins/nuage/plugin.py | 1006 + neutron/plugins/ofagent/README | 21 + neutron/plugins/ofagent/__init__.py | 0 neutron/plugins/ofagent/agent/__init__.py | 0 .../ofagent/agent/ofa_neutron_agent.py | 1418 ++ neutron/plugins/ofagent/common/__init__.py | 0 neutron/plugins/ofagent/common/config.py | 33 + neutron/plugins/oneconvergence/README | 32 + neutron/plugins/oneconvergence/__init__.py | 0 .../plugins/oneconvergence/agent/__init__.py | 0 .../agent/nvsd_neutron_agent.py | 176 + .../plugins/oneconvergence/lib/__init__.py | 0 neutron/plugins/oneconvergence/lib/config.py | 57 + .../plugins/oneconvergence/lib/exception.py | 55 + neutron/plugins/oneconvergence/lib/nvsd_db.py | 45 + neutron/plugins/oneconvergence/lib/nvsdlib.py | 352 + .../oneconvergence/lib/plugin_helper.py | 186 + neutron/plugins/oneconvergence/plugin.py | 440 + neutron/plugins/openvswitch/README | 6 + neutron/plugins/openvswitch/__init__.py | 0 neutron/plugins/openvswitch/agent/__init__.py | 0 .../openvswitch/agent/ovs_neutron_agent.py | 1517 ++ .../plugins/openvswitch/agent/xenapi/README | 16 + .../agent/xenapi/contrib/build-rpm.sh | 34 + .../SPECS/openstack-quantum-xen-plugins.spec | 30 + .../agent/xenapi/etc/xapi.d/plugins/netwrap | 72 + .../plugins/openvswitch/common/__init__.py | 15 + neutron/plugins/openvswitch/common/config.py | 94 + .../plugins/openvswitch/common/constants.py | 54 + neutron/plugins/openvswitch/ovs_db_v2.py | 396 + neutron/plugins/openvswitch/ovs_models_v2.py | 107 + .../plugins/openvswitch/ovs_neutron_plugin.py | 623 + neutron/plugins/plumgrid/README | 8 + neutron/plugins/plumgrid/__init__.py | 17 + neutron/plugins/plumgrid/common/__init__.py | 17 + neutron/plugins/plumgrid/common/exceptions.py | 30 + neutron/plugins/plumgrid/drivers/__init__.py | 16 + .../plugins/plumgrid/drivers/fake_plumlib.py | 99 + neutron/plugins/plumgrid/drivers/plumlib.py | 100 + .../plumgrid/plumgrid_plugin/__init__.py | 17 + .../plumgrid/plumgrid_plugin/plugin_ver.py | 19 + .../plumgrid_plugin/plumgrid_plugin.py | 604 + neutron/plugins/ryu/README | 22 + neutron/plugins/ryu/__init__.py | 0 neutron/plugins/ryu/agent/__init__.py | 0 .../plugins/ryu/agent/ryu_neutron_agent.py | 314 + neutron/plugins/ryu/common/__init__.py | 15 + neutron/plugins/ryu/common/config.py | 52 + neutron/plugins/ryu/db/__init__.py | 0 neutron/plugins/ryu/db/api_v2.py | 215 + neutron/plugins/ryu/db/models_v2.py | 41 + neutron/plugins/ryu/ryu_neutron_plugin.py | 269 + neutron/plugins/vmware/__init__.py | 3 + neutron/plugins/vmware/api_client/__init__.py | 29 + neutron/plugins/vmware/api_client/base.py | 249 + neutron/plugins/vmware/api_client/client.py | 143 + .../vmware/api_client/eventlet_client.py | 155 + .../vmware/api_client/eventlet_request.py | 240 + .../plugins/vmware/api_client/exception.py | 121 + neutron/plugins/vmware/api_client/request.py | 287 + neutron/plugins/vmware/api_client/version.py | 43 + neutron/plugins/vmware/check_nsx_config.py | 163 + neutron/plugins/vmware/common/__init__.py | 0 neutron/plugins/vmware/common/config.py | 198 + neutron/plugins/vmware/common/exceptions.py | 126 + neutron/plugins/vmware/common/nsx_utils.py | 249 + .../plugins/vmware/common/securitygroups.py | 134 + neutron/plugins/vmware/common/sync.py | 669 + neutron/plugins/vmware/common/utils.py | 69 + neutron/plugins/vmware/dbexts/__init__.py | 0 neutron/plugins/vmware/dbexts/db.py | 193 + .../vmware/dbexts/distributedrouter.py | 28 + neutron/plugins/vmware/dbexts/lsn_db.py | 131 + neutron/plugins/vmware/dbexts/maclearning.py | 78 + neutron/plugins/vmware/dbexts/models.py | 135 + neutron/plugins/vmware/dbexts/networkgw_db.py | 499 + neutron/plugins/vmware/dbexts/nsxrouter.py | 66 + neutron/plugins/vmware/dbexts/qos_db.py | 297 + .../plugins/vmware/dbexts/servicerouter.py | 27 + neutron/plugins/vmware/dbexts/vcns_db.py | 202 + neutron/plugins/vmware/dbexts/vcns_models.py | 90 + neutron/plugins/vmware/dhcp_meta/__init__.py | 16 + neutron/plugins/vmware/dhcp_meta/combined.py | 95 + neutron/plugins/vmware/dhcp_meta/constants.py | 28 + .../plugins/vmware/dhcp_meta/lsnmanager.py | 462 + neutron/plugins/vmware/dhcp_meta/migration.py | 180 + neutron/plugins/vmware/dhcp_meta/nsx.py | 321 + neutron/plugins/vmware/dhcp_meta/rpc.py | 222 + neutron/plugins/vmware/dhcpmeta_modes.py | 163 + neutron/plugins/vmware/extensions/__init__.py | 0 .../vmware/extensions/distributedrouter.py | 70 + neutron/plugins/vmware/extensions/lsn.py | 82 + .../plugins/vmware/extensions/maclearning.py | 61 + .../plugins/vmware/extensions/networkgw.py | 251 + neutron/plugins/vmware/extensions/nvp_qos.py | 40 + neutron/plugins/vmware/extensions/qos.py | 223 + .../vmware/extensions/servicerouter.py | 59 + neutron/plugins/vmware/nsx_cluster.py | 97 + neutron/plugins/vmware/nsxlib/__init__.py | 141 + neutron/plugins/vmware/nsxlib/l2gateway.py | 211 + neutron/plugins/vmware/nsxlib/lsn.py | 270 + neutron/plugins/vmware/nsxlib/queue.py | 71 + neutron/plugins/vmware/nsxlib/router.py | 689 + neutron/plugins/vmware/nsxlib/secgroup.py | 141 + neutron/plugins/vmware/nsxlib/switch.py | 397 + neutron/plugins/vmware/nsxlib/versioning.py | 66 + neutron/plugins/vmware/plugin.py | 22 + neutron/plugins/vmware/plugins/__init__.py | 0 neutron/plugins/vmware/plugins/base.py | 2528 +++ neutron/plugins/vmware/plugins/service.py | 1812 ++ neutron/plugins/vmware/shell/__init__.py | 41 + neutron/plugins/vmware/shell/commands.py | 67 + neutron/plugins/vmware/vshield/__init__.py | 16 + .../vmware/vshield/common/VcnsApiClient.py | 80 + .../plugins/vmware/vshield/common/__init__.py | 0 .../vmware/vshield/common/constants.py | 45 + .../vmware/vshield/common/exceptions.py | 70 + .../vmware/vshield/edge_appliance_driver.py | 667 + .../vmware/vshield/edge_firewall_driver.py | 354 + .../vmware/vshield/edge_ipsecvpn_driver.py | 150 + .../vshield/edge_loadbalancer_driver.py | 403 + .../plugins/vmware/vshield/tasks/__init__.py | 0 .../plugins/vmware/vshield/tasks/constants.py | 44 + neutron/plugins/vmware/vshield/tasks/tasks.py | 397 + neutron/plugins/vmware/vshield/vcns.py | 304 + neutron/plugins/vmware/vshield/vcns_driver.py | 53 + neutron/policy.py | 416 + neutron/quota.py | 334 + neutron/scheduler/__init__.py | 16 + neutron/scheduler/dhcp_agent_scheduler.py | 132 + neutron/scheduler/l3_agent_scheduler.py | 194 + neutron/server/__init__.py | 70 + neutron/service.py | 299 + neutron/services/__init__.py | 16 + neutron/services/firewall/__init__.py | 16 + neutron/services/firewall/agents/__init__.py | 16 + .../firewall/agents/firewall_agent_api.py | 85 + .../firewall/agents/l3reference/__init__.py | 16 + .../agents/l3reference/firewall_l3_agent.py | 295 + .../firewall/agents/varmour/__init__.py | 16 + .../firewall/agents/varmour/varmour_api.py | 147 + .../firewall/agents/varmour/varmour_router.py | 351 + .../firewall/agents/varmour/varmour_utils.py | 74 + neutron/services/firewall/drivers/__init__.py | 16 + .../services/firewall/drivers/fwaas_base.py | 100 + .../firewall/drivers/linux/__init__.py | 16 + .../firewall/drivers/linux/iptables_fwaas.py | 275 + .../firewall/drivers/varmour/__init__.py | 16 + .../firewall/drivers/varmour/varmour_fwaas.py | 207 + neutron/services/firewall/fwaas_plugin.py | 299 + neutron/services/l3_router/README | 30 + neutron/services/l3_router/__init__.py | 16 + neutron/services/l3_router/l3_apic.py | 135 + .../services/l3_router/l3_router_plugin.py | 98 + neutron/services/loadbalancer/__init__.py | 16 + .../services/loadbalancer/agent/__init__.py | 0 neutron/services/loadbalancer/agent/agent.py | 72 + .../services/loadbalancer/agent/agent_api.py | 100 + .../loadbalancer/agent/agent_device_driver.py | 98 + .../loadbalancer/agent/agent_manager.py | 338 + .../services/loadbalancer/agent_scheduler.py | 130 + neutron/services/loadbalancer/constants.py | 47 + .../services/loadbalancer/drivers/__init__.py | 17 + .../loadbalancer/drivers/abstract_driver.py | 130 + .../loadbalancer/drivers/common/__init__.py | 0 .../drivers/common/agent_driver_base.py | 445 + .../loadbalancer/drivers/embrane/README | 9 + .../loadbalancer/drivers/embrane/__init__.py | 0 .../drivers/embrane/agent/__init__.py | 0 .../drivers/embrane/agent/dispatcher.py | 108 + .../drivers/embrane/agent/lb_operations.py | 179 + .../loadbalancer/drivers/embrane/config.py | 53 + .../loadbalancer/drivers/embrane/constants.py | 74 + .../loadbalancer/drivers/embrane/db.py | 56 + .../loadbalancer/drivers/embrane/driver.py | 342 + .../loadbalancer/drivers/embrane/models.py | 30 + .../loadbalancer/drivers/embrane/poller.py | 71 + .../loadbalancer/drivers/haproxy/__init__.py | 17 + .../loadbalancer/drivers/haproxy/cfg.py | 238 + .../drivers/haproxy/namespace_driver.py | 396 + .../drivers/haproxy/plugin_driver.py | 23 + .../drivers/netscaler/__init__.py | 0 .../drivers/netscaler/ncc_client.py | 182 + .../drivers/netscaler/netscaler_driver.py | 489 + .../loadbalancer/drivers/radware/__init__.py | 17 + .../loadbalancer/drivers/radware/driver.py | 1097 ++ .../drivers/radware/exceptions.py | 44 + neutron/services/loadbalancer/plugin.py | 326 + neutron/services/metering/__init__.py | 15 + neutron/services/metering/agents/__init__.py | 15 + .../metering/agents/metering_agent.py | 297 + neutron/services/metering/drivers/__init__.py | 15 + .../metering/drivers/abstract_driver.py | 51 + .../metering/drivers/iptables/__init__.py | 15 + .../drivers/iptables/iptables_driver.py | 284 + .../metering/drivers/noop/__init__.py | 15 + .../metering/drivers/noop/noop_driver.py | 45 + neutron/services/metering/metering_plugin.py | 74 + neutron/services/provider_configuration.py | 162 + neutron/services/service_base.py | 103 + neutron/services/vpn/__init__.py | 18 + neutron/services/vpn/agent.py | 148 + neutron/services/vpn/common/__init__.py | 16 + neutron/services/vpn/common/topics.py | 22 + .../services/vpn/device_drivers/__init__.py | 38 + .../device_drivers/cisco_csr_rest_client.py | 258 + .../vpn/device_drivers/cisco_ipsec.py | 858 + neutron/services/vpn/device_drivers/ipsec.py | 713 + .../template/openswan/ipsec.conf.template | 64 + .../template/openswan/ipsec.secret.template | 3 + neutron/services/vpn/plugin.py | 107 + .../services/vpn/service_drivers/__init__.py | 92 + .../vpn/service_drivers/cisco_csr_db.py | 239 + .../vpn/service_drivers/cisco_ipsec.py | 245 + neutron/services/vpn/service_drivers/ipsec.py | 156 + neutron/tests/__init__.py | 16 + neutron/tests/base.py | 216 + neutron/tests/etc/api-paste.ini.test | 8 + neutron/tests/etc/neutron.conf.test | 27 + .../tests/etc/rootwrap.d/neutron.test.filters | 12 + neutron/tests/fake_notifier.py | 50 + neutron/tests/functional/__init__.py | 15 + neutron/tests/functional/agent/__init__.py | 15 + .../tests/functional/agent/linux/__init__.py | 15 + neutron/tests/functional/agent/linux/base.py | 74 + .../agent/linux/test_async_process.py | 71 + .../agent/linux/test_ovsdb_monitor.py | 108 + neutron/tests/functional/sanity/__init__.py | 0 .../functional/sanity/test_ovs_sanity.py | 46 + neutron/tests/post_mortem_debug.py | 106 + neutron/tests/tools.py | 47 + neutron/tests/unit/__init__.py | 26 + .../unit/_test_extension_portbindings.py | 377 + neutron/tests/unit/_test_rootwrap_exec.py | 85 + neutron/tests/unit/agent/__init__.py | 15 + neutron/tests/unit/agent/linux/__init__.py | 15 + .../unit/agent/linux/test_async_process.py | 251 + .../tests/unit/agent/linux/test_ovs_lib.py | 967 + .../unit/agent/linux/test_ovsdb_monitor.py | 105 + .../tests/unit/agent/linux/test_polling.py | 116 + neutron/tests/unit/api/__init__.py | 0 neutron/tests/unit/api/rpc/__init__.py | 0 .../unit/api/rpc/agentnotifiers/__init__.py | 0 .../agentnotifiers/test_dhcp_rpc_agent_api.py | 154 + neutron/tests/unit/bigswitch/__init__.py | 16 + .../unit/bigswitch/etc/restproxy.ini.test | 44 + .../unit/bigswitch/etc/ssl/ca_certs/README | 2 + .../unit/bigswitch/etc/ssl/combined/README | 2 + .../unit/bigswitch/etc/ssl/host_certs/README | 2 + neutron/tests/unit/bigswitch/fake_server.py | 185 + .../unit/bigswitch/test_agent_scheduler.py | 33 + neutron/tests/unit/bigswitch/test_base.py | 74 + .../tests/unit/bigswitch/test_capabilities.py | 84 + .../unit/bigswitch/test_restproxy_agent.py | 188 + .../unit/bigswitch/test_restproxy_plugin.py | 316 + .../tests/unit/bigswitch/test_router_db.py | 554 + .../unit/bigswitch/test_security_groups.py | 47 + .../unit/bigswitch/test_servermanager.py | 467 + neutron/tests/unit/bigswitch/test_ssl.py | 250 + neutron/tests/unit/brocade/__init__.py | 17 + neutron/tests/unit/brocade/test_brocade_db.py | 100 + .../tests/unit/brocade/test_brocade_plugin.py | 74 + .../tests/unit/brocade/test_brocade_vlan.py | 73 + neutron/tests/unit/cisco/__init__.py | 16 + neutron/tests/unit/cisco/n1kv/__init__.py | 18 + neutron/tests/unit/cisco/n1kv/fake_client.py | 119 + neutron/tests/unit/cisco/n1kv/test_n1kv_db.py | 870 + .../tests/unit/cisco/n1kv/test_n1kv_plugin.py | 709 + neutron/tests/unit/cisco/test_config.py | 72 + neutron/tests/unit/cisco/test_network_db.py | 291 + .../tests/unit/cisco/test_network_plugin.py | 1186 ++ neutron/tests/unit/cisco/test_nexus_db.py | 239 + neutron/tests/unit/cisco/test_nexus_plugin.py | 301 + neutron/tests/unit/cisco/test_plugin_model.py | 63 + neutron/tests/unit/database_stubs.py | 188 + neutron/tests/unit/db/__init__.py | 15 + neutron/tests/unit/db/firewall/__init__.py | 15 + .../unit/db/firewall/test_db_firewall.py | 1055 + .../tests/unit/db/loadbalancer/__init__.py | 15 + .../db/loadbalancer/test_db_loadbalancer.py | 1572 ++ neutron/tests/unit/db/metering/__init__.py | 15 + .../unit/db/metering/test_db_metering.py | 291 + neutron/tests/unit/db/test_agent_db.py | 86 + neutron/tests/unit/db/test_quota_db.py | 143 + neutron/tests/unit/db/vpn/__init__.py | 17 + neutron/tests/unit/db/vpn/test_db_vpnaas.py | 1670 ++ neutron/tests/unit/dummy_plugin.py | 139 + neutron/tests/unit/embrane/__init__.py | 18 + .../unit/embrane/test_embrane_defaults.py | 31 + .../unit/embrane/test_embrane_l3_plugin.py | 41 + .../embrane/test_embrane_neutron_plugin.py | 82 + neutron/tests/unit/extension_stubs.py | 77 + neutron/tests/unit/extensions/__init__.py | 15 + .../unit/extensions/extendedattribute.py | 58 + .../unit/extensions/extensionattribute.py | 110 + neutron/tests/unit/extensions/foxinsocks.py | 110 + neutron/tests/unit/extensions/v2attributes.py | 48 + neutron/tests/unit/hyperv/__init__.py | 16 + .../unit/hyperv/test_hyperv_neutron_agent.py | 221 + .../unit/hyperv/test_hyperv_neutron_plugin.py | 69 + .../tests/unit/hyperv/test_hyperv_rpcapi.py | 125 + .../test_hyperv_security_groups_driver.py | 189 + .../unit/hyperv/test_hyperv_utilsfactory.py | 54 + .../tests/unit/hyperv/test_hyperv_utilsv2.py | 519 + neutron/tests/unit/ibm/__init__.py | 0 neutron/tests/unit/ibm/test_sdnve_agent.py | 118 + neutron/tests/unit/ibm/test_sdnve_api.py | 145 + neutron/tests/unit/ibm/test_sdnve_plugin.py | 126 + neutron/tests/unit/linuxbridge/__init__.py | 16 + .../unit/linuxbridge/test_agent_scheduler.py | 34 + .../tests/unit/linuxbridge/test_defaults.py | 42 + neutron/tests/unit/linuxbridge/test_lb_db.py | 172 + .../unit/linuxbridge/test_lb_neutron_agent.py | 1054 + .../linuxbridge/test_lb_security_group.py | 99 + .../linuxbridge/test_linuxbridge_plugin.py | 132 + neutron/tests/unit/linuxbridge/test_rpcapi.py | 132 + neutron/tests/unit/metaplugin/__init__.py | 16 + neutron/tests/unit/metaplugin/fake_plugin.py | 79 + neutron/tests/unit/metaplugin/test_basic.py | 78 + .../tests/unit/metaplugin/test_metaplugin.py | 404 + neutron/tests/unit/midonet/__init__.py | 17 + .../tests/unit/midonet/etc/midonet.ini.test | 16 + neutron/tests/unit/midonet/mock_lib.py | 265 + .../tests/unit/midonet/test_midonet_driver.py | 55 + .../tests/unit/midonet/test_midonet_lib.py | 189 + .../tests/unit/midonet/test_midonet_plugin.py | 218 + neutron/tests/unit/ml2/__init__.py | 14 + neutron/tests/unit/ml2/_test_mech_agent.py | 218 + neutron/tests/unit/ml2/drivers/__init__.py | 14 + .../unit/ml2/drivers/brocade/__init__.py | 0 .../brocade/test_brocade_mechanism_driver.py | 69 + .../tests/unit/ml2/drivers/cisco/__init__.py | 0 .../unit/ml2/drivers/cisco/apic/__init__.py | 0 .../cisco/apic/test_cisco_apic_client.py | 272 + .../cisco/apic/test_cisco_apic_common.py | 225 + .../cisco/apic/test_cisco_apic_manager.py | 698 + .../apic/test_cisco_apic_mechanism_driver.py | 226 + .../unit/ml2/drivers/cisco/nexus/__init__.py | 0 .../drivers/cisco/nexus/test_cisco_config.py | 71 + .../drivers/cisco/nexus/test_cisco_mech.py | 715 + .../drivers/cisco/nexus/test_cisco_nexus.py | 201 + .../cisco/nexus/test_cisco_nexus_db.py | 206 + .../unit/ml2/drivers/mechanism_bulkless.py | 23 + .../unit/ml2/drivers/mechanism_logger.py | 120 + .../tests/unit/ml2/drivers/mechanism_test.py | 171 + .../drivers/test_arista_mechanism_driver.py | 726 + .../unit/ml2/drivers/test_bigswitch_mech.py | 144 + .../unit/ml2/drivers/test_l2population.py | 724 + .../tests/unit/ml2/drivers/test_mech_mlnx.py | 139 + .../unit/ml2/drivers/test_ofagent_mech.py | 74 + .../tests/unit/ml2/test_agent_scheduler.py | 36 + neutron/tests/unit/ml2/test_mech_hyperv.py | 65 + .../tests/unit/ml2/test_mech_linuxbridge.py | 74 + .../tests/unit/ml2/test_mech_openvswitch.py | 74 + .../tests/unit/ml2/test_mechanism_fslsdn.py | 293 + neutron/tests/unit/ml2/test_mechanism_ncs.py | 50 + neutron/tests/unit/ml2/test_mechanism_odl.py | 117 + neutron/tests/unit/ml2/test_ml2_plugin.py | 477 + neutron/tests/unit/ml2/test_port_binding.py | 136 + neutron/tests/unit/ml2/test_rpcapi.py | 109 + neutron/tests/unit/ml2/test_security_group.py | 106 + neutron/tests/unit/ml2/test_type_flat.py | 98 + neutron/tests/unit/ml2/test_type_gre.py | 208 + neutron/tests/unit/ml2/test_type_local.py | 56 + neutron/tests/unit/ml2/test_type_vlan.py | 187 + neutron/tests/unit/ml2/test_type_vxlan.py | 227 + neutron/tests/unit/mlnx/__init__.py | 16 + .../tests/unit/mlnx/test_agent_scheduler.py | 34 + neutron/tests/unit/mlnx/test_defaults.py | 39 + .../tests/unit/mlnx/test_mlnx_comm_utils.py | 139 + neutron/tests/unit/mlnx/test_mlnx_db.py | 181 + .../unit/mlnx/test_mlnx_neutron_agent.py | 156 + neutron/tests/unit/mlnx/test_mlnx_plugin.py | 116 + .../unit/mlnx/test_mlnx_plugin_config.py | 89 + .../unit/mlnx/test_mlnx_security_group.py | 100 + neutron/tests/unit/mlnx/test_rpcapi.py | 155 + neutron/tests/unit/nec/__init__.py | 15 + neutron/tests/unit/nec/fake_ofc_manager.py | 106 + neutron/tests/unit/nec/stub_ofc_driver.py | 293 + .../tests/unit/nec/test_agent_scheduler.py | 118 + neutron/tests/unit/nec/test_config.py | 44 + neutron/tests/unit/nec/test_db.py | 176 + neutron/tests/unit/nec/test_nec_agent.py | 366 + neutron/tests/unit/nec/test_nec_plugin.py | 930 + neutron/tests/unit/nec/test_ofc_client.py | 179 + neutron/tests/unit/nec/test_ofc_manager.py | 297 + neutron/tests/unit/nec/test_packet_filter.py | 714 + neutron/tests/unit/nec/test_pfc_driver.py | 705 + neutron/tests/unit/nec/test_portbindings.py | 350 + neutron/tests/unit/nec/test_router.py | 45 + neutron/tests/unit/nec/test_security_group.py | 101 + neutron/tests/unit/nec/test_trema_driver.py | 353 + neutron/tests/unit/nec/test_utils.py | 31 + neutron/tests/unit/notifiers/__init__.py | 0 .../unit/notifiers/test_notifiers_nova.py | 305 + neutron/tests/unit/nuage/__init__.py | 0 neutron/tests/unit/nuage/fake_nuageclient.py | 115 + neutron/tests/unit/nuage/test_netpartition.py | 100 + neutron/tests/unit/nuage/test_nuage_plugin.py | 283 + neutron/tests/unit/ofagent/__init__.py | 0 neutron/tests/unit/ofagent/fake_oflib.py | 113 + .../tests/unit/ofagent/test_ofa_defaults.py | 25 + .../unit/ofagent/test_ofa_neutron_agent.py | 1023 + neutron/tests/unit/oneconvergence/__init__.py | 0 .../unit/oneconvergence/test_nvsd_agent.py | 177 + .../unit/oneconvergence/test_nvsd_plugin.py | 152 + .../tests/unit/oneconvergence/test_nvsdlib.py | 261 + .../unit/oneconvergence/test_plugin_helper.py | 60 + .../oneconvergence/test_security_group.py | 157 + neutron/tests/unit/openvswitch/__init__.py | 16 + .../unit/openvswitch/test_agent_scheduler.py | 1245 ++ .../openvswitch/test_openvswitch_plugin.py | 88 + neutron/tests/unit/openvswitch/test_ovs_db.py | 322 + .../unit/openvswitch/test_ovs_defaults.py | 35 + .../openvswitch/test_ovs_neutron_agent.py | 954 + .../tests/unit/openvswitch/test_ovs_rpcapi.py | 123 + .../openvswitch/test_ovs_security_group.py | 104 + .../tests/unit/openvswitch/test_ovs_tunnel.py | 603 + neutron/tests/unit/plumgrid/__init__.py | 17 + .../unit/plumgrid/test_plumgrid_plugin.py | 171 + neutron/tests/unit/ryu/__init__.py | 16 + neutron/tests/unit/ryu/fake_ryu.py | 42 + neutron/tests/unit/ryu/test_defaults.py | 33 + neutron/tests/unit/ryu/test_ryu_agent.py | 651 + neutron/tests/unit/ryu/test_ryu_db.py | 57 + neutron/tests/unit/ryu/test_ryu_plugin.py | 51 + .../tests/unit/ryu/test_ryu_security_group.py | 92 + neutron/tests/unit/services/__init__.py | 17 + .../tests/unit/services/firewall/__init__.py | 15 + .../unit/services/firewall/agents/__init__.py | 15 + .../firewall/agents/l3reference/__init__.py | 15 + .../l3reference/test_firewall_l3_agent.py | 391 + .../agents/test_firewall_agent_api.py | 105 + .../firewall/agents/varmour/__init__.py | 16 + .../agents/varmour/test_varmour_router.py | 322 + .../services/firewall/drivers/__init__.py | 15 + .../firewall/drivers/linux/__init__.py | 15 + .../drivers/linux/test_iptables_fwaas.py | 218 + .../firewall/drivers/varmour/__init__.py | 16 + .../drivers/varmour/test_varmour_fwaas.py | 290 + .../services/firewall/test_fwaas_plugin.py | 401 + .../tests/unit/services/l3_router/__init__.py | 0 .../services/l3_router/test_l3_apic_plugin.py | 134 + .../unit/services/loadbalancer/__init__.py | 17 + .../services/loadbalancer/agent/__init__.py | 0 .../services/loadbalancer/agent/test_agent.py | 51 + .../loadbalancer/agent/test_agent_manager.py | 371 + .../services/loadbalancer/agent/test_api.py | 166 + .../services/loadbalancer/drivers/__init__.py | 17 + .../loadbalancer/drivers/embrane/__init__.py | 0 .../drivers/embrane/test_embrane_defaults.py | 30 + .../drivers/embrane/test_plugin_driver.py | 93 + .../loadbalancer/drivers/haproxy/__init__.py | 17 + .../loadbalancer/drivers/haproxy/test_cfg.py | 228 + .../drivers/haproxy/test_namespace_driver.py | 550 + .../drivers/netscaler/__init__.py | 0 .../drivers/netscaler/test_ncc_client.py | 204 + .../netscaler/test_netscaler_driver.py | 802 + .../loadbalancer/drivers/radware/__init__.py | 15 + .../drivers/radware/test_plugin_driver.py | 961 + .../drivers/test_agent_driver_base.py | 753 + .../loadbalancer/test_agent_scheduler.py | 222 + .../loadbalancer/test_loadbalancer_plugin.py | 464 + .../test_loadbalancer_quota_ext.py | 168 + .../tests/unit/services/metering/__init__.py | 15 + .../services/metering/drivers/__init__.py | 15 + .../metering/drivers/test_iptables_driver.py | 408 + .../services/metering/test_metering_agent.py | 160 + .../services/metering/test_metering_plugin.py | 448 + neutron/tests/unit/services/vpn/__init__.py | 17 + .../services/vpn/device_drivers/__init__.py | 16 + .../vpn/device_drivers/cisco_csr_mock.py | 579 + .../device_drivers/notest_cisco_csr_rest.py | 1346 ++ .../vpn/device_drivers/test_cisco_ipsec.py | 1709 ++ .../services/vpn/device_drivers/test_ipsec.py | 258 + .../services/vpn/service_drivers/__init__.py | 16 + .../vpn/service_drivers/test_cisco_ipsec.py | 365 + .../vpn/service_drivers/test_ipsec.py | 91 + .../tests/unit/services/vpn/test_vpn_agent.py | 196 + .../services/vpn/test_vpnaas_driver_plugin.py | 160 + .../services/vpn/test_vpnaas_extension.py | 530 + neutron/tests/unit/test_agent_config.py | 44 + neutron/tests/unit/test_agent_ext_plugin.py | 259 + neutron/tests/unit/test_agent_linux_utils.py | 162 + .../tests/unit/test_agent_netns_cleanup.py | 258 + neutron/tests/unit/test_agent_ovs_cleanup.py | 93 + neutron/tests/unit/test_agent_rpc.py | 113 + neutron/tests/unit/test_api_api_common.py | 99 + neutron/tests/unit/test_api_v2.py | 1541 ++ neutron/tests/unit/test_api_v2_extension.py | 125 + neutron/tests/unit/test_api_v2_resource.py | 372 + neutron/tests/unit/test_attributes.py | 800 + neutron/tests/unit/test_auth.py | 99 + neutron/tests/unit/test_common_log.py | 70 + neutron/tests/unit/test_common_utils.py | 383 + neutron/tests/unit/test_config.py | 55 + neutron/tests/unit/test_db_migration.py | 184 + neutron/tests/unit/test_db_plugin.py | 3982 ++++ neutron/tests/unit/test_db_rpc_base.py | 233 + neutron/tests/unit/test_debug_commands.py | 363 + neutron/tests/unit/test_dhcp_agent.py | 1466 ++ neutron/tests/unit/test_dhcp_scheduler.py | 90 + .../test_extension_allowedaddresspairs.py | 262 + .../tests/unit/test_extension_ext_gw_mode.py | 421 + neutron/tests/unit/test_extension_ext_net.py | 176 + .../unit/test_extension_extended_attribute.py | 156 + .../unit/test_extension_extradhcpopts.py | 266 + .../tests/unit/test_extension_extraroute.py | 500 + neutron/tests/unit/test_extension_firewall.py | 495 + neutron/tests/unit/test_extension_pnet.py | 161 + .../tests/unit/test_extension_portsecurity.py | 392 + .../unit/test_extension_security_group.py | 1431 ++ neutron/tests/unit/test_extensions.py | 685 + neutron/tests/unit/test_hacking.py | 43 + neutron/tests/unit/test_iptables_firewall.py | 1225 ++ neutron/tests/unit/test_iptables_manager.py | 705 + neutron/tests/unit/test_ipv6.py | 50 + neutron/tests/unit/test_l3_agent.py | 1379 ++ neutron/tests/unit/test_l3_plugin.py | 2070 ++ neutron/tests/unit/test_l3_schedulers.py | 206 + neutron/tests/unit/test_linux_daemon.py | 211 + neutron/tests/unit/test_linux_dhcp.py | 1252 ++ .../tests/unit/test_linux_external_process.py | 202 + neutron/tests/unit/test_linux_interface.py | 620 + neutron/tests/unit/test_linux_ip_lib.py | 860 + neutron/tests/unit/test_metadata_agent.py | 581 + .../unit/test_metadata_namespace_proxy.py | 353 + neutron/tests/unit/test_neutron_context.py | 136 + neutron/tests/unit/test_neutron_manager.py | 146 + neutron/tests/unit/test_policy.py | 553 + neutron/tests/unit/test_post_mortem_debug.py | 101 + .../tests/unit/test_provider_configuration.py | 201 + neutron/tests/unit/test_quota_ext.py | 432 + .../tests/unit/test_routerserviceinsertion.py | 490 + .../tests/unit/test_security_groups_rpc.py | 2047 ++ neutron/tests/unit/test_servicetype.py | 241 + neutron/tests/unit/test_wsgi.py | 1136 ++ neutron/tests/unit/testlib_api.py | 84 + neutron/tests/unit/vmware/__init__.py | 53 + .../tests/unit/vmware/apiclient/__init__.py | 0 neutron/tests/unit/vmware/apiclient/fake.py | 660 + .../unit/vmware/apiclient/test_api_common.py | 35 + .../apiclient/test_api_eventlet_request.py | 331 + neutron/tests/unit/vmware/db/__init__.py | 0 neutron/tests/unit/vmware/db/test_lsn_db.py | 103 + neutron/tests/unit/vmware/db/test_nsx_db.py | 86 + .../unit/vmware/etc/fake_get_gwservice.json | 15 + .../unit/vmware/etc/fake_get_lqueue.json | 11 + .../unit/vmware/etc/fake_get_lrouter.json | 29 + .../vmware/etc/fake_get_lrouter_lport.json | 12 + .../etc/fake_get_lrouter_lport_att.json | 11 + .../unit/vmware/etc/fake_get_lrouter_nat.json | 6 + .../unit/vmware/etc/fake_get_lswitch.json | 12 + .../vmware/etc/fake_get_lswitch_lport.json | 28 + .../etc/fake_get_lswitch_lport_att.json | 7 + .../etc/fake_get_lswitch_lport_status.json | 23 + .../vmware/etc/fake_get_security_profile.json | 10 + .../unit/vmware/etc/fake_post_gwservice.json | 13 + .../unit/vmware/etc/fake_post_lqueue.json | 11 + .../unit/vmware/etc/fake_post_lrouter.json | 23 + .../vmware/etc/fake_post_lrouter_lport.json | 10 + .../vmware/etc/fake_post_lrouter_nat.json | 6 + .../unit/vmware/etc/fake_post_lswitch.json | 12 + .../vmware/etc/fake_post_lswitch_lport.json | 17 + .../etc/fake_post_security_profile.json | 10 + .../etc/fake_put_lrouter_lport_att.json | 12 + .../etc/fake_put_lswitch_lport_att.json | 11 + .../tests/unit/vmware/etc/neutron.conf.test | 26 + .../unit/vmware/etc/nsx.ini.agentless.test | 17 + .../tests/unit/vmware/etc/nsx.ini.basic.test | 5 + .../unit/vmware/etc/nsx.ini.combined.test | 17 + .../tests/unit/vmware/etc/nsx.ini.full.test | 13 + neutron/tests/unit/vmware/etc/nsx.ini.test | 7 + .../tests/unit/vmware/etc/nvp.ini.full.test | 13 + neutron/tests/unit/vmware/etc/vcns.ini.test | 9 + .../tests/unit/vmware/extensions/__init__.py | 0 .../vmware/extensions/test_addresspairs.py | 22 + .../vmware/extensions/test_maclearning.py | 139 + .../unit/vmware/extensions/test_networkgw.py | 1074 + .../vmware/extensions/test_portsecurity.py | 47 + .../vmware/extensions/test_providernet.py | 163 + .../unit/vmware/extensions/test_qosqueues.py | 273 + neutron/tests/unit/vmware/nsxlib/__init__.py | 0 neutron/tests/unit/vmware/nsxlib/base.py | 88 + .../unit/vmware/nsxlib/test_l2gateway.py | 296 + neutron/tests/unit/vmware/nsxlib/test_lsn.py | 370 + .../tests/unit/vmware/nsxlib/test_queue.py | 69 + .../tests/unit/vmware/nsxlib/test_router.py | 922 + .../tests/unit/vmware/nsxlib/test_secgroup.py | 140 + .../tests/unit/vmware/nsxlib/test_switch.py | 314 + .../unit/vmware/nsxlib/test_versioning.py | 58 + .../tests/unit/vmware/test_agent_scheduler.py | 65 + neutron/tests/unit/vmware/test_dhcpmeta.py | 1429 ++ neutron/tests/unit/vmware/test_nsx_opts.py | 253 + neutron/tests/unit/vmware/test_nsx_plugin.py | 1181 ++ neutron/tests/unit/vmware/test_nsx_sync.py | 712 + neutron/tests/unit/vmware/test_nsx_utils.py | 325 + neutron/tests/unit/vmware/vshield/__init__.py | 0 .../tests/unit/vmware/vshield/fake_vcns.py | 600 + .../unit/vmware/vshield/test_edge_router.py | 308 + .../vmware/vshield/test_firewall_driver.py | 375 + .../unit/vmware/vshield/test_fwaas_plugin.py | 697 + .../unit/vmware/vshield/test_lbaas_plugin.py | 532 + .../vshield/test_loadbalancer_driver.py | 340 + .../unit/vmware/vshield/test_vcns_driver.py | 587 + .../unit/vmware/vshield/test_vpnaas_plugin.py | 417 + neutron/tests/var/ca.crt | 35 + neutron/tests/var/certandkey.pem | 81 + neutron/tests/var/certificate.crt | 30 + neutron/tests/var/privatekey.key | 51 + neutron/version.py | 19 + neutron/wsgi.py | 1303 ++ openstack-common.conf | 35 + requirements.txt | 29 + run_tests.sh | 226 + setup.cfg | 201 + setup.py | 30 + test-requirements.txt | 18 + tools/check_i18n.py | 155 + tools/check_i18n_test_case.txt | 67 + tools/clean.sh | 5 + tools/i18n_cfg.py | 97 + tools/install_venv.py | 74 + tools/install_venv_common.py | 174 + tools/with_venv.sh | 21 + tox.ini | 73 + 1426 files changed, 278589 insertions(+) create mode 100644 .coveragerc create mode 100644 .gitignore create mode 100644 .mailmap create mode 100644 .pylintrc create mode 100644 .testr.conf create mode 100644 HACKING.rst create mode 100644 LICENSE create mode 100644 MANIFEST.in create mode 100644 README.rst create mode 100644 TESTING.rst create mode 100644 babel.cfg create mode 100755 bin/neutron-rootwrap create mode 100755 bin/neutron-rootwrap-xen-dom0 create mode 100644 doc/Makefile create mode 100644 doc/pom.xml create mode 100644 doc/source/conf.py create mode 100644 doc/source/devref/advanced_services.rst create mode 100644 doc/source/devref/api_extensions.rst create mode 100644 doc/source/devref/api_layer.rst create mode 100644 doc/source/devref/common.rst create mode 100644 doc/source/devref/db_layer.rst create mode 100644 doc/source/devref/development.environment.rst create mode 100644 doc/source/devref/fwaas.rst create mode 100644 doc/source/devref/index.rst create mode 100644 doc/source/devref/l2_agents.rst create mode 100644 doc/source/devref/layer3.rst create mode 100644 doc/source/devref/lbaas.rst create mode 100644 doc/source/devref/linuxbridge_agent.rst create mode 100644 doc/source/devref/openvswitch_agent.rst create mode 100644 doc/source/devref/plugin-api.rst create mode 100644 doc/source/devref/rpc_api.rst create mode 100644 doc/source/devref/security_group_api.rst create mode 100644 doc/source/devref/vpnaas.rst create mode 100644 doc/source/docbkx/docbkx-example/README create mode 100644 doc/source/docbkx/docbkx-example/pom.xml create mode 100644 doc/source/docbkx/docbkx-example/src/docbkx/example.xml create mode 100644 doc/source/docbkx/docbkx-example/src/docbkx/figures/example.sdx create mode 100644 doc/source/docbkx/docbkx-example/src/docbkx/figures/example.svg create mode 100644 doc/source/docbkx/quantum-api-1.0/common.ent create mode 100644 doc/source/docbkx/quantum-api-1.0/figures/Arrow_east.svg create mode 100644 doc/source/docbkx/quantum-api-1.0/figures/Check_mark_23x20_02.svg create mode 100644 doc/source/docbkx/quantum-api-1.0/js/shjs/sh_java.js create mode 100644 doc/source/docbkx/quantum-api-1.0/js/shjs/sh_javascript.js create mode 100644 doc/source/docbkx/quantum-api-1.0/js/shjs/sh_main.js create mode 100644 doc/source/docbkx/quantum-api-1.0/js/shjs/sh_xml.js create mode 100644 doc/source/docbkx/quantum-api-1.0/js/trc/schema/controller.js create mode 100644 doc/source/docbkx/quantum-api-1.0/js/trc/schema/layoutManager.js create mode 100644 doc/source/docbkx/quantum-api-1.0/js/trc/schema/sampleManager.js create mode 100644 doc/source/docbkx/quantum-api-1.0/js/trc/util.js create mode 100644 doc/source/docbkx/quantum-api-1.0/quantum-api-guide.xml create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/att-get-res-none.json create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/att-get-res-none.xml create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/att-get-res.json create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/att-get-res.xml create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/att-put-req.json create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/att-put-req.xml create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/extensions.json create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/extensions.xml create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/fault.json create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/fault.xml create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/network-get-detail-res.json create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/network-get-detail-res.xml create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/network-get-res.json create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/network-get-res.xml create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/network-post-req.json create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/network-post-req.xml create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/network-post-res.json create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/network-post-res.xml create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/networks-get-detail-res.json create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/networks-get-detail-res.xml create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/networks-get-res.json create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/networks-get-res.xml create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/networks-post-req.json create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/networks-post-req.xml create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/networks-post-res.json create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/networks-post-res.xml create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/notfound.json create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/notfound.xml create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/notimplemented.json create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/notimplemented.xml create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/port-get-detail-res.json create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/port-get-detail-res.xml create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/port-get-res.json create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/port-get-res.xml create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/port-post-req.json create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/port-post-req.xml create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/port-post-res.json create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/port-post-res.xml create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/ports-get-detail-res.json create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/ports-get-detail-res.xml create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/ports-get-res.json create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/ports-get-res.xml create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/private.json create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/private.xml create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/public.json create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/public.xml create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/versions-atom.xml create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/versions.json create mode 100644 doc/source/docbkx/quantum-api-1.0/samples/versions.xml create mode 100644 doc/source/docbkx/quantum-api-1.0/style/schema.css create mode 100644 doc/source/docbkx/quantum-api-1.0/style/shjs/sh_acid.css create mode 100644 doc/source/docbkx/quantum-api-1.0/style/shjs/sh_darkblue.css create mode 100644 doc/source/docbkx/quantum-api-1.0/style/shjs/sh_emacs.css create mode 100644 doc/source/docbkx/quantum-api-1.0/style/shjs/sh_night.css create mode 100644 doc/source/docbkx/quantum-api-1.0/style/shjs/sh_pablo.css create mode 100644 doc/source/docbkx/quantum-api-1.0/style/shjs/sh_print.css create mode 100644 doc/source/docbkx/quantum-api-1.0/style/shjs/sh_style.css create mode 100644 doc/source/docbkx/quantum-api-1.0/style/shjs/sh_whitengrey.css create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/.htaccess create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/actions.xsd create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/affinity-id.xjb create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/affinity-id.xsd create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/api-common.xjb create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/api-common.xsd create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/api.xjb create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/api.xsd create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/atom.xjb create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/atom/atom.xsd create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/atom/xml.xsd create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/backup.xsd create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/common.xsd create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/ext/rax-dme/api.xsd create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/ext/rax-dme/rax-dme.xsd create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/extensions.xsd create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/faults.xsd create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/flavor.xsd create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/image.xsd create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/ipgroup.xsd create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/limits.xsd create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/metadata.xsd create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/server.xsd create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/shareip.xjb create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/shareip.xsd create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/txt.htaccess create mode 100644 doc/source/docbkx/quantum-api-1.0/xsd/version.xsd create mode 100644 doc/source/docbkx/quantum-api-1.0/xslt/schema.xsl create mode 100644 doc/source/index.rst create mode 100644 doc/source/man/neutron-server.rst create mode 100644 etc/api-paste.ini create mode 100644 etc/dhcp_agent.ini create mode 100644 etc/fwaas_driver.ini create mode 100755 etc/init.d/neutron-server create mode 100644 etc/l3_agent.ini create mode 100644 etc/lbaas_agent.ini create mode 100644 etc/metadata_agent.ini create mode 100644 etc/metering_agent.ini create mode 100644 etc/neutron.conf create mode 100644 etc/neutron/plugins/bigswitch/restproxy.ini create mode 100644 etc/neutron/plugins/bigswitch/ssl/ca_certs/README create mode 100644 etc/neutron/plugins/bigswitch/ssl/host_certs/README create mode 100644 etc/neutron/plugins/brocade/brocade.ini create mode 100644 etc/neutron/plugins/cisco/cisco_plugins.ini create mode 100644 etc/neutron/plugins/cisco/cisco_vpn_agent.ini create mode 100644 etc/neutron/plugins/embrane/heleos_conf.ini create mode 100644 etc/neutron/plugins/hyperv/hyperv_neutron_plugin.ini create mode 100644 etc/neutron/plugins/ibm/sdnve_neutron_plugin.ini create mode 100644 etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini create mode 100644 etc/neutron/plugins/metaplugin/metaplugin.ini create mode 100644 etc/neutron/plugins/midonet/midonet.ini create mode 100644 etc/neutron/plugins/ml2/ml2_conf.ini create mode 100644 etc/neutron/plugins/ml2/ml2_conf_arista.ini create mode 100644 etc/neutron/plugins/ml2/ml2_conf_brocade.ini create mode 100644 etc/neutron/plugins/ml2/ml2_conf_cisco.ini create mode 100644 etc/neutron/plugins/ml2/ml2_conf_fslsdn.ini create mode 100644 etc/neutron/plugins/ml2/ml2_conf_mlnx.ini create mode 100644 etc/neutron/plugins/ml2/ml2_conf_ncs.ini create mode 100644 etc/neutron/plugins/ml2/ml2_conf_odl.ini create mode 100644 etc/neutron/plugins/ml2/ml2_conf_ofa.ini create mode 100644 etc/neutron/plugins/mlnx/mlnx_conf.ini create mode 100644 etc/neutron/plugins/nec/nec.ini create mode 100644 etc/neutron/plugins/nuage/nuage_plugin.ini create mode 100644 etc/neutron/plugins/oneconvergence/nvsdplugin.ini create mode 100644 etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini create mode 100644 etc/neutron/plugins/plumgrid/plumgrid.ini create mode 100644 etc/neutron/plugins/ryu/ryu.ini create mode 100644 etc/neutron/plugins/vmware/nsx.ini create mode 100644 etc/neutron/rootwrap.d/debug.filters create mode 100644 etc/neutron/rootwrap.d/dhcp.filters create mode 100644 etc/neutron/rootwrap.d/iptables-firewall.filters create mode 100644 etc/neutron/rootwrap.d/l3.filters create mode 100644 etc/neutron/rootwrap.d/lbaas-haproxy.filters create mode 100644 etc/neutron/rootwrap.d/linuxbridge-plugin.filters create mode 100644 etc/neutron/rootwrap.d/nec-plugin.filters create mode 100644 etc/neutron/rootwrap.d/openvswitch-plugin.filters create mode 100644 etc/neutron/rootwrap.d/ryu-plugin.filters create mode 100644 etc/neutron/rootwrap.d/vpnaas.filters create mode 100644 etc/policy.json create mode 100644 etc/rootwrap.conf create mode 100644 etc/services.conf create mode 100644 etc/vpn_agent.ini create mode 100644 neutron/__init__.py create mode 100644 neutron/agent/__init__.py create mode 100644 neutron/agent/common/__init__.py create mode 100644 neutron/agent/common/config.py create mode 100644 neutron/agent/dhcp_agent.py create mode 100644 neutron/agent/firewall.py create mode 100644 neutron/agent/l2population_rpc.py create mode 100644 neutron/agent/l3_agent.py create mode 100644 neutron/agent/linux/__init__.py create mode 100644 neutron/agent/linux/async_process.py create mode 100644 neutron/agent/linux/daemon.py create mode 100644 neutron/agent/linux/dhcp.py create mode 100644 neutron/agent/linux/external_process.py create mode 100644 neutron/agent/linux/interface.py create mode 100644 neutron/agent/linux/ip_lib.py create mode 100644 neutron/agent/linux/iptables_firewall.py create mode 100644 neutron/agent/linux/iptables_manager.py create mode 100644 neutron/agent/linux/ovs_lib.py create mode 100644 neutron/agent/linux/ovsdb_monitor.py create mode 100644 neutron/agent/linux/polling.py create mode 100644 neutron/agent/linux/utils.py create mode 100644 neutron/agent/metadata/__init__.py create mode 100644 neutron/agent/metadata/agent.py create mode 100644 neutron/agent/metadata/namespace_proxy.py create mode 100644 neutron/agent/netns_cleanup_util.py create mode 100644 neutron/agent/ovs_cleanup_util.py create mode 100644 neutron/agent/rpc.py create mode 100644 neutron/agent/securitygroups_rpc.py create mode 100644 neutron/api/__init__.py create mode 100644 neutron/api/api_common.py create mode 100644 neutron/api/extensions.py create mode 100644 neutron/api/rpc/__init__.py create mode 100644 neutron/api/rpc/agentnotifiers/__init__.py create mode 100644 neutron/api/rpc/agentnotifiers/dhcp_rpc_agent_api.py create mode 100644 neutron/api/rpc/agentnotifiers/l3_rpc_agent_api.py create mode 100644 neutron/api/rpc/agentnotifiers/metering_rpc_agent_api.py create mode 100644 neutron/api/v2/__init__.py create mode 100644 neutron/api/v2/attributes.py create mode 100644 neutron/api/v2/base.py create mode 100644 neutron/api/v2/resource.py create mode 100644 neutron/api/v2/resource_helper.py create mode 100644 neutron/api/v2/router.py create mode 100644 neutron/api/versions.py create mode 100644 neutron/api/views/__init__.py create mode 100644 neutron/api/views/versions.py create mode 100644 neutron/auth.py create mode 100644 neutron/cmd/__init__.py create mode 100644 neutron/cmd/sanity/__init__.py create mode 100644 neutron/cmd/sanity/checks.py create mode 100644 neutron/cmd/sanity_check.py create mode 100644 neutron/cmd/usage_audit.py create mode 100644 neutron/common/__init__.py create mode 100644 neutron/common/config.py create mode 100644 neutron/common/constants.py create mode 100644 neutron/common/exceptions.py create mode 100644 neutron/common/ipv6_utils.py create mode 100644 neutron/common/log.py create mode 100644 neutron/common/rpc.py create mode 100644 neutron/common/rpc_compat.py create mode 100644 neutron/common/test_lib.py create mode 100644 neutron/common/topics.py create mode 100644 neutron/common/utils.py create mode 100644 neutron/context.py create mode 100644 neutron/db/__init__.py create mode 100644 neutron/db/agents_db.py create mode 100644 neutron/db/agentschedulers_db.py create mode 100644 neutron/db/allowedaddresspairs_db.py create mode 100644 neutron/db/api.py create mode 100644 neutron/db/db_base_plugin_v2.py create mode 100644 neutron/db/dhcp_rpc_base.py create mode 100644 neutron/db/external_net_db.py create mode 100644 neutron/db/extradhcpopt_db.py create mode 100644 neutron/db/extraroute_db.py create mode 100644 neutron/db/firewall/__init__.py create mode 100644 neutron/db/firewall/firewall_db.py create mode 100644 neutron/db/l3_agentschedulers_db.py create mode 100644 neutron/db/l3_db.py create mode 100644 neutron/db/l3_gwmode_db.py create mode 100644 neutron/db/l3_rpc_base.py create mode 100644 neutron/db/loadbalancer/__init__.py create mode 100644 neutron/db/loadbalancer/loadbalancer_db.py create mode 100644 neutron/db/metering/__init__.py create mode 100644 neutron/db/metering/metering_db.py create mode 100644 neutron/db/metering/metering_rpc.py create mode 100644 neutron/db/migration/README create mode 100644 neutron/db/migration/__init__.py create mode 100644 neutron/db/migration/alembic.ini create mode 100644 neutron/db/migration/alembic_migrations/__init__.py create mode 100644 neutron/db/migration/alembic_migrations/common_ext_ops.py create mode 100644 neutron/db/migration/alembic_migrations/env.py create mode 100644 neutron/db/migration/alembic_migrations/script.py.mako create mode 100644 neutron/db/migration/alembic_migrations/versions/1064e98b7917_nec_pf_port_del.py create mode 100644 neutron/db/migration/alembic_migrations/versions/10cd28e692e9_nuage_extraroute.py create mode 100644 neutron/db/migration/alembic_migrations/versions/1149d7de0cfa_port_security.py create mode 100644 neutron/db/migration/alembic_migrations/versions/117643811bca_nec_delete_ofc_mapping.py create mode 100644 neutron/db/migration/alembic_migrations/versions/11c6e18605c8_pool_monitor_status_.py create mode 100644 neutron/db/migration/alembic_migrations/versions/128e042a2b68_ext_gw_mode.py create mode 100644 neutron/db/migration/alembic_migrations/versions/1341ed32cc1e_nvp_netbinding_update.py create mode 100644 neutron/db/migration/alembic_migrations/versions/13de305df56e_add_nec_pf_name.py create mode 100644 neutron/db/migration/alembic_migrations/versions/1421183d533f_nsx_dhcp_metadata.py create mode 100644 neutron/db/migration/alembic_migrations/versions/14f24494ca31_arista_ml2.py create mode 100644 neutron/db/migration/alembic_migrations/versions/157a5d299379_ml2_binding_profile.py create mode 100644 neutron/db/migration/alembic_migrations/versions/176a85fc7d79_add_portbindings_db.py create mode 100644 neutron/db/migration/alembic_migrations/versions/19180cf98af6_nsx_gw_devices.py create mode 100644 neutron/db/migration/alembic_migrations/versions/1b2580001654_nsx_sec_group_mappin.py create mode 100644 neutron/db/migration/alembic_migrations/versions/1b693c095aa3_quota_ext_db_grizzly.py create mode 100644 neutron/db/migration/alembic_migrations/versions/1b837a7125a9_cisco_apic_driver.py create mode 100644 neutron/db/migration/alembic_migrations/versions/1c33fa3cd1a1_extra_route_config.py create mode 100644 neutron/db/migration/alembic_migrations/versions/1d76643bcec4_nvp_netbinding.py create mode 100644 neutron/db/migration/alembic_migrations/versions/1e5dd1d09b22_set_not_null_fields_lb_stats.py create mode 100644 neutron/db/migration/alembic_migrations/versions/1efb85914233_allowedaddresspairs.py create mode 100644 neutron/db/migration/alembic_migrations/versions/1fcfc149aca4_agents_unique_by_type_and_host.py create mode 100644 neutron/db/migration/alembic_migrations/versions/2032abe8edac_lbaas_add_status_des.py create mode 100644 neutron/db/migration/alembic_migrations/versions/20ae61555e95_ml2_gre_type_driver.py create mode 100644 neutron/db/migration/alembic_migrations/versions/2447ad0e9585_add_ipv6_mode_props.py create mode 100644 neutron/db/migration/alembic_migrations/versions/24c7ea5160d7_cisco_csr_vpnaas.py create mode 100644 neutron/db/migration/alembic_migrations/versions/2528ceb28230_nec_pf_netid_fix.py create mode 100644 neutron/db/migration/alembic_migrations/versions/263772d65691_cisco_db_cleanup_2.py create mode 100644 neutron/db/migration/alembic_migrations/versions/27cc183af192_ml2_vnic_type.py create mode 100644 neutron/db/migration/alembic_migrations/versions/27ef74513d33_quota_in_plumgrid_pl.py create mode 100644 neutron/db/migration/alembic_migrations/versions/2a3bae1ceb8_nec_port_binding.py create mode 100644 neutron/db/migration/alembic_migrations/versions/2a6d0b51f4bb_cisco_plugin_cleanup.py create mode 100644 neutron/db/migration/alembic_migrations/versions/2c4af419145b_l3_support.py create mode 100644 neutron/db/migration/alembic_migrations/versions/2db5203cb7a9_nuage_floatingip.py create mode 100644 neutron/db/migration/alembic_migrations/versions/2eeaf963a447_floatingip_status.py create mode 100644 neutron/db/migration/alembic_migrations/versions/32a65f71af51_ml2_portbinding.py create mode 100644 neutron/db/migration/alembic_migrations/versions/32b517556ec9_remove_tunnelip_mode.py create mode 100644 neutron/db/migration/alembic_migrations/versions/338d7508968c_vpnaas_peer_address_.py create mode 100644 neutron/db/migration/alembic_migrations/versions/33c3db036fe4_set_length_of_description_field_metering.py create mode 100644 neutron/db/migration/alembic_migrations/versions/33dd0a9fa487_embrane_lbaas_driver.py create mode 100644 neutron/db/migration/alembic_migrations/versions/35c7c198ddea_lbaas_healthmon_del_status.py create mode 100644 neutron/db/migration/alembic_migrations/versions/363468ac592c_nvp_network_gw.py create mode 100644 neutron/db/migration/alembic_migrations/versions/38335592a0dc_nvp_portmap.py create mode 100644 neutron/db/migration/alembic_migrations/versions/38fc1f6789f8_cisco_n1kv_overlay.py create mode 100644 neutron/db/migration/alembic_migrations/versions/39cf3f799352_fwaas_havana_2_model.py create mode 100644 neutron/db/migration/alembic_migrations/versions/3a520dd165d0_cisco_nexus_multi_switch.py create mode 100644 neutron/db/migration/alembic_migrations/versions/3b54bf9e29f7_nec_plugin_sharednet.py create mode 100644 neutron/db/migration/alembic_migrations/versions/3c6e57a23db4_add_multiprovider.py create mode 100644 neutron/db/migration/alembic_migrations/versions/3cabb850f4a5_table_to_track_port_.py create mode 100644 neutron/db/migration/alembic_migrations/versions/3cb5d900c5de_security_groups.py create mode 100644 neutron/db/migration/alembic_migrations/versions/3cbf70257c28_nvp_mac_learning.py create mode 100644 neutron/db/migration/alembic_migrations/versions/3d2585038b95_vmware_nsx.py create mode 100644 neutron/db/migration/alembic_migrations/versions/3d3cb89d84ee_nsx_switch_mappings.py create mode 100644 neutron/db/migration/alembic_migrations/versions/3d6fae8b70b0_nvp_lbaas_plugin.py create mode 100755 neutron/db/migration/alembic_migrations/versions/3ed8f075e38a_nvp_fwaas_plugin.py create mode 100644 neutron/db/migration/alembic_migrations/versions/40b0aff0302e_mlnx_initial.py create mode 100644 neutron/db/migration/alembic_migrations/versions/40dffbf4b549_nvp_dist_router.py create mode 100644 neutron/db/migration/alembic_migrations/versions/45680af419f9_nvp_qos.py create mode 100644 neutron/db/migration/alembic_migrations/versions/4692d074d587_agent_scheduler.py create mode 100644 neutron/db/migration/alembic_migrations/versions/46a0efbd8f0_cisco_n1kv_multisegm.py create mode 100644 neutron/db/migration/alembic_migrations/versions/477a4488d3f4_ml2_vxlan_type_driver.py create mode 100644 neutron/db/migration/alembic_migrations/versions/48b6f43f7471_service_type.py create mode 100644 neutron/db/migration/alembic_migrations/versions/492a106273f8_brocade_ml2_mech_dri.py create mode 100644 neutron/db/migration/alembic_migrations/versions/49332180ca96_ryu_plugin_update.py create mode 100644 neutron/db/migration/alembic_migrations/versions/49f5e553f61f_ml2_security_groups.py create mode 100644 neutron/db/migration/alembic_migrations/versions/4a666eb208c2_service_router.py create mode 100644 neutron/db/migration/alembic_migrations/versions/4ca36cfc898c_nsx_router_mappings.py create mode 100644 neutron/db/migration/alembic_migrations/versions/4eca4a84f08a_remove_ml2_cisco_cred_db.py create mode 100644 neutron/db/migration/alembic_migrations/versions/50d5ba354c23_ml2_binding_vif_details.py create mode 100644 neutron/db/migration/alembic_migrations/versions/50e86cb2637a_nsx_mappings.py create mode 100644 neutron/db/migration/alembic_migrations/versions/511471cc46b_agent_ext_model_supp.py create mode 100755 neutron/db/migration/alembic_migrations/versions/51b4de912379_cisco_nexus_ml2_mech.py create mode 100644 neutron/db/migration/alembic_migrations/versions/52c5e4a18807_lbaas_pool_scheduler.py create mode 100644 neutron/db/migration/alembic_migrations/versions/52ff27f7567a_support_for_vpnaas.py create mode 100644 neutron/db/migration/alembic_migrations/versions/538732fa21e1_nec_rename_quantum_id_to_neutron_id.py create mode 100644 neutron/db/migration/alembic_migrations/versions/53bbd27ec841_extra_dhcp_opts_supp.py create mode 100644 neutron/db/migration/alembic_migrations/versions/54c2c487e913_lbaas.py create mode 100644 neutron/db/migration/alembic_migrations/versions/54f7549a0e5f_set_not_null_peer_address.py create mode 100644 neutron/db/migration/alembic_migrations/versions/557edfc53098_new_service_types.py create mode 100644 neutron/db/migration/alembic_migrations/versions/569e98a8132b_metering.py create mode 100644 neutron/db/migration/alembic_migrations/versions/5918cbddab04_add_tables_for_route.py create mode 100644 neutron/db/migration/alembic_migrations/versions/5a875d0e5c_ryu.py create mode 100644 neutron/db/migration/alembic_migrations/versions/5ac1c354a051_n1kv_segment_alloc.py create mode 100644 neutron/db/migration/alembic_migrations/versions/5ac71e65402c_ml2_initial.py create mode 100644 neutron/db/migration/alembic_migrations/versions/63afba73813_ovs_tunnelendpoints_id_unique.py create mode 100644 neutron/db/migration/alembic_migrations/versions/66a59a7f516_nec_openflow_router.py create mode 100644 neutron/db/migration/alembic_migrations/versions/6be312499f9_set_not_null_vlan_id_cisco.py create mode 100644 neutron/db/migration/alembic_migrations/versions/81c553f3776c_bsn_consistencyhashes.py create mode 100644 neutron/db/migration/alembic_migrations/versions/86cf4d88bd3_remove_bigswitch_por.py create mode 100644 neutron/db/migration/alembic_migrations/versions/8f682276ee4_ryu_plugin_quota.py create mode 100644 neutron/db/migration/alembic_migrations/versions/HEAD create mode 100644 neutron/db/migration/alembic_migrations/versions/README create mode 100644 neutron/db/migration/alembic_migrations/versions/abc88c33f74f_lb_stats_needs_bigint.py create mode 100644 neutron/db/migration/alembic_migrations/versions/b65aa907aec_set_length_of_protocol_field.py create mode 100644 neutron/db/migration/alembic_migrations/versions/b7a8863760e_rm_cisco_vlan_bindin.py create mode 100644 neutron/db/migration/alembic_migrations/versions/c88b6b5fea3_cisco_n1kv_tables.py create mode 100644 neutron/db/migration/alembic_migrations/versions/d06e871c0d5_set_admin_state_up_not_null_ml2.py create mode 100644 neutron/db/migration/alembic_migrations/versions/e197124d4b9_add_unique_constrain.py create mode 100644 neutron/db/migration/alembic_migrations/versions/e6b16a30d97_cisco_provider_nets.py create mode 100644 neutron/db/migration/alembic_migrations/versions/e766b19a3bb_nuage_initial.py create mode 100644 neutron/db/migration/alembic_migrations/versions/ed93525fd003_bigswitch_quota.py create mode 100644 neutron/db/migration/alembic_migrations/versions/f44ab9871cd6_bsn_security_groups.py create mode 100644 neutron/db/migration/alembic_migrations/versions/f489cf14a79c_lbaas_havana.py create mode 100644 neutron/db/migration/alembic_migrations/versions/f9263d6df56_remove_dhcp_lease.py create mode 100644 neutron/db/migration/alembic_migrations/versions/fcac4c42e2cc_bsn_addresspairs.py create mode 100644 neutron/db/migration/alembic_migrations/versions/folsom_initial.py create mode 100644 neutron/db/migration/alembic_migrations/versions/grizzly_release.py create mode 100644 neutron/db/migration/alembic_migrations/versions/havana_release.py create mode 100644 neutron/db/migration/alembic_migrations/versions/icehouse_release.py create mode 100644 neutron/db/migration/cli.py create mode 100755 neutron/db/migration/migrate_to_ml2.py create mode 100644 neutron/db/model_base.py create mode 100644 neutron/db/models_v2.py create mode 100644 neutron/db/portbindings_base.py create mode 100644 neutron/db/portbindings_db.py create mode 100644 neutron/db/portsecurity_db.py create mode 100644 neutron/db/quota_db.py create mode 100644 neutron/db/routedserviceinsertion_db.py create mode 100644 neutron/db/routerservicetype_db.py create mode 100644 neutron/db/securitygroups_db.py create mode 100644 neutron/db/securitygroups_rpc_base.py create mode 100644 neutron/db/servicetype_db.py create mode 100644 neutron/db/sqlalchemyutils.py create mode 100644 neutron/db/vpn/__init__.py create mode 100644 neutron/db/vpn/vpn_db.py create mode 100644 neutron/debug/README create mode 100644 neutron/debug/__init__.py create mode 100644 neutron/debug/commands.py create mode 100644 neutron/debug/debug_agent.py create mode 100644 neutron/debug/shell.py create mode 100644 neutron/extensions/__init__.py create mode 100644 neutron/extensions/agent.py create mode 100644 neutron/extensions/allowedaddresspairs.py create mode 100644 neutron/extensions/dhcpagentscheduler.py create mode 100644 neutron/extensions/external_net.py create mode 100644 neutron/extensions/extra_dhcp_opt.py create mode 100644 neutron/extensions/extraroute.py create mode 100644 neutron/extensions/firewall.py create mode 100644 neutron/extensions/flavor.py create mode 100644 neutron/extensions/l3.py create mode 100644 neutron/extensions/l3_ext_gw_mode.py create mode 100644 neutron/extensions/l3agentscheduler.py create mode 100644 neutron/extensions/lbaas_agentscheduler.py create mode 100644 neutron/extensions/loadbalancer.py create mode 100644 neutron/extensions/metering.py create mode 100644 neutron/extensions/multiprovidernet.py create mode 100644 neutron/extensions/portbindings.py create mode 100644 neutron/extensions/portsecurity.py create mode 100644 neutron/extensions/providernet.py create mode 100644 neutron/extensions/quotasv2.py create mode 100644 neutron/extensions/routedserviceinsertion.py create mode 100644 neutron/extensions/routerservicetype.py create mode 100644 neutron/extensions/securitygroup.py create mode 100644 neutron/extensions/servicetype.py create mode 100644 neutron/extensions/vpnaas.py create mode 100644 neutron/hacking/__init__.py create mode 100644 neutron/hacking/checks.py create mode 100644 neutron/hooks.py create mode 100644 neutron/locale/de/LC_MESSAGES/neutron-log-error.po create mode 100644 neutron/locale/de/LC_MESSAGES/neutron-log-info.po create mode 100644 neutron/locale/de/LC_MESSAGES/neutron-log-warning.po create mode 100644 neutron/locale/en_AU/LC_MESSAGES/neutron-log-error.po create mode 100644 neutron/locale/en_AU/LC_MESSAGES/neutron-log-info.po create mode 100644 neutron/locale/en_GB/LC_MESSAGES/neutron-log-error.po create mode 100644 neutron/locale/en_GB/LC_MESSAGES/neutron-log-info.po create mode 100644 neutron/locale/en_US/LC_MESSAGES/neutron.po create mode 100644 neutron/locale/es/LC_MESSAGES/neutron-log-error.po create mode 100644 neutron/locale/es/LC_MESSAGES/neutron-log-info.po create mode 100644 neutron/locale/fr/LC_MESSAGES/neutron-log-critical.po create mode 100644 neutron/locale/fr/LC_MESSAGES/neutron-log-error.po create mode 100644 neutron/locale/fr/LC_MESSAGES/neutron-log-info.po create mode 100644 neutron/locale/it/LC_MESSAGES/neutron-log-info.po create mode 100644 neutron/locale/ja/LC_MESSAGES/neutron-log-error.po create mode 100644 neutron/locale/ja/LC_MESSAGES/neutron-log-info.po create mode 100644 neutron/locale/ko_KR/LC_MESSAGES/neutron-log-error.po create mode 100644 neutron/locale/ko_KR/LC_MESSAGES/neutron-log-info.po create mode 100644 neutron/locale/neutron-log-critical.pot create mode 100644 neutron/locale/neutron-log-error.pot create mode 100644 neutron/locale/neutron-log-info.pot create mode 100644 neutron/locale/neutron-log-warning.pot create mode 100644 neutron/locale/neutron.pot create mode 100644 neutron/locale/pt_BR/LC_MESSAGES/neutron-log-error.po create mode 100644 neutron/locale/pt_BR/LC_MESSAGES/neutron-log-info.po create mode 100644 neutron/locale/zh_CN/LC_MESSAGES/neutron-log-error.po create mode 100644 neutron/locale/zh_CN/LC_MESSAGES/neutron-log-info.po create mode 100644 neutron/locale/zh_TW/LC_MESSAGES/neutron-log-info.po create mode 100644 neutron/manager.py create mode 100644 neutron/neutron_plugin_base_v2.py create mode 100644 neutron/notifiers/__init__.py create mode 100644 neutron/notifiers/nova.py create mode 100644 neutron/openstack/__init__.py create mode 100644 neutron/openstack/common/__init__.py create mode 100644 neutron/openstack/common/cache/__init__.py create mode 100644 neutron/openstack/common/cache/_backends/__init__.py create mode 100644 neutron/openstack/common/cache/_backends/memory.py create mode 100644 neutron/openstack/common/cache/backends.py create mode 100644 neutron/openstack/common/cache/cache.py create mode 100644 neutron/openstack/common/context.py create mode 100644 neutron/openstack/common/db/__init__.py create mode 100644 neutron/openstack/common/db/api.py create mode 100644 neutron/openstack/common/db/exception.py create mode 100644 neutron/openstack/common/db/options.py create mode 100644 neutron/openstack/common/db/sqlalchemy/__init__.py create mode 100644 neutron/openstack/common/db/sqlalchemy/models.py create mode 100644 neutron/openstack/common/db/sqlalchemy/provision.py create mode 100644 neutron/openstack/common/db/sqlalchemy/session.py create mode 100644 neutron/openstack/common/db/sqlalchemy/test_base.py create mode 100644 neutron/openstack/common/db/sqlalchemy/utils.py create mode 100644 neutron/openstack/common/eventlet_backdoor.py create mode 100644 neutron/openstack/common/excutils.py create mode 100644 neutron/openstack/common/fileutils.py create mode 100644 neutron/openstack/common/fixture/__init__.py create mode 100644 neutron/openstack/common/fixture/config.py create mode 100644 neutron/openstack/common/fixture/lockutils.py create mode 100644 neutron/openstack/common/fixture/mockpatch.py create mode 100644 neutron/openstack/common/fixture/moxstubout.py create mode 100644 neutron/openstack/common/gettextutils.py create mode 100644 neutron/openstack/common/importutils.py create mode 100644 neutron/openstack/common/jsonutils.py create mode 100644 neutron/openstack/common/local.py create mode 100644 neutron/openstack/common/lockutils.py create mode 100644 neutron/openstack/common/log.py create mode 100644 neutron/openstack/common/log_handler.py create mode 100644 neutron/openstack/common/loopingcall.py create mode 100644 neutron/openstack/common/middleware/__init__.py create mode 100644 neutron/openstack/common/middleware/audit.py create mode 100644 neutron/openstack/common/middleware/base.py create mode 100644 neutron/openstack/common/middleware/catch_errors.py create mode 100644 neutron/openstack/common/middleware/correlation_id.py create mode 100644 neutron/openstack/common/middleware/debug.py create mode 100644 neutron/openstack/common/middleware/notifier.py create mode 100644 neutron/openstack/common/middleware/request_id.py create mode 100644 neutron/openstack/common/middleware/sizelimit.py create mode 100644 neutron/openstack/common/network_utils.py create mode 100644 neutron/openstack/common/periodic_task.py create mode 100644 neutron/openstack/common/policy.py create mode 100644 neutron/openstack/common/processutils.py create mode 100644 neutron/openstack/common/service.py create mode 100644 neutron/openstack/common/sslutils.py create mode 100644 neutron/openstack/common/strutils.py create mode 100644 neutron/openstack/common/systemd.py create mode 100644 neutron/openstack/common/threadgroup.py create mode 100644 neutron/openstack/common/timeutils.py create mode 100644 neutron/openstack/common/uuidutils.py create mode 100644 neutron/openstack/common/versionutils.py create mode 100644 neutron/plugins/__init__.py create mode 100644 neutron/plugins/bigswitch/README create mode 100644 neutron/plugins/bigswitch/__init__.py create mode 100644 neutron/plugins/bigswitch/agent/__init__.py create mode 100644 neutron/plugins/bigswitch/agent/restproxy_agent.py create mode 100644 neutron/plugins/bigswitch/config.py create mode 100644 neutron/plugins/bigswitch/db/__init__.py create mode 100644 neutron/plugins/bigswitch/db/consistency_db.py create mode 100644 neutron/plugins/bigswitch/db/porttracker_db.py create mode 100644 neutron/plugins/bigswitch/extensions/__init__.py create mode 100644 neutron/plugins/bigswitch/extensions/routerrule.py create mode 100644 neutron/plugins/bigswitch/plugin.py create mode 100644 neutron/plugins/bigswitch/routerrule_db.py create mode 100644 neutron/plugins/bigswitch/servermanager.py create mode 100644 neutron/plugins/bigswitch/tests/__init__.py create mode 100755 neutron/plugins/bigswitch/tests/test_server.py create mode 100644 neutron/plugins/bigswitch/vcsversion.py create mode 100755 neutron/plugins/bigswitch/version.py create mode 100644 neutron/plugins/brocade/NeutronPlugin.py create mode 100644 neutron/plugins/brocade/README.md create mode 100644 neutron/plugins/brocade/__init__.py create mode 100644 neutron/plugins/brocade/db/__init__.py create mode 100644 neutron/plugins/brocade/db/models.py create mode 100644 neutron/plugins/brocade/nos/__init__.py create mode 100644 neutron/plugins/brocade/nos/fake_nosdriver.py create mode 100644 neutron/plugins/brocade/nos/nctemplates.py create mode 100644 neutron/plugins/brocade/nos/nosdriver.py create mode 100644 neutron/plugins/brocade/tests/README create mode 100644 neutron/plugins/brocade/tests/noscli.py create mode 100644 neutron/plugins/brocade/tests/nostest.py create mode 100644 neutron/plugins/brocade/vlanbm.py create mode 100644 neutron/plugins/cisco/README create mode 100644 neutron/plugins/cisco/__init__.py create mode 100644 neutron/plugins/cisco/common/__init__.py create mode 100644 neutron/plugins/cisco/common/cisco_constants.py create mode 100644 neutron/plugins/cisco/common/cisco_credentials_v2.py create mode 100644 neutron/plugins/cisco/common/cisco_exceptions.py create mode 100644 neutron/plugins/cisco/common/cisco_faults.py create mode 100644 neutron/plugins/cisco/common/config.py create mode 100644 neutron/plugins/cisco/db/__init__.py create mode 100644 neutron/plugins/cisco/db/n1kv_db_v2.py create mode 100644 neutron/plugins/cisco/db/n1kv_models_v2.py create mode 100644 neutron/plugins/cisco/db/network_db_v2.py create mode 100644 neutron/plugins/cisco/db/network_models_v2.py create mode 100644 neutron/plugins/cisco/db/nexus_db_v2.py create mode 100644 neutron/plugins/cisco/db/nexus_models_v2.py create mode 100644 neutron/plugins/cisco/extensions/__init__.py create mode 100644 neutron/plugins/cisco/extensions/_credential_view.py create mode 100644 neutron/plugins/cisco/extensions/_qos_view.py create mode 100644 neutron/plugins/cisco/extensions/credential.py create mode 100644 neutron/plugins/cisco/extensions/n1kv.py create mode 100644 neutron/plugins/cisco/extensions/network_profile.py create mode 100644 neutron/plugins/cisco/extensions/policy_profile.py create mode 100644 neutron/plugins/cisco/extensions/qos.py create mode 100644 neutron/plugins/cisco/l2device_plugin_base.py create mode 100644 neutron/plugins/cisco/models/__init__.py create mode 100644 neutron/plugins/cisco/models/virt_phy_sw_v2.py create mode 100644 neutron/plugins/cisco/n1kv/__init__.py create mode 100644 neutron/plugins/cisco/n1kv/n1kv_client.py create mode 100644 neutron/plugins/cisco/n1kv/n1kv_neutron_plugin.py create mode 100644 neutron/plugins/cisco/network_plugin.py create mode 100644 neutron/plugins/cisco/nexus/__init__.py create mode 100644 neutron/plugins/cisco/nexus/cisco_nexus_network_driver_v2.py create mode 100644 neutron/plugins/cisco/nexus/cisco_nexus_plugin_v2.py create mode 100644 neutron/plugins/cisco/nexus/cisco_nexus_snippets.py create mode 100644 neutron/plugins/cisco/test/__init__.py create mode 100644 neutron/plugins/cisco/test/nexus/__init__.py create mode 100644 neutron/plugins/cisco/test/nexus/fake_nexus_driver.py create mode 100644 neutron/plugins/common/__init__.py create mode 100644 neutron/plugins/common/constants.py create mode 100644 neutron/plugins/common/utils.py create mode 100644 neutron/plugins/embrane/README create mode 100644 neutron/plugins/embrane/__init__.py create mode 100644 neutron/plugins/embrane/agent/__init__.py create mode 100644 neutron/plugins/embrane/agent/dispatcher.py create mode 100644 neutron/plugins/embrane/agent/operations/__init__.py create mode 100644 neutron/plugins/embrane/agent/operations/router_operations.py create mode 100644 neutron/plugins/embrane/base_plugin.py create mode 100644 neutron/plugins/embrane/common/__init__.py create mode 100644 neutron/plugins/embrane/common/config.py create mode 100644 neutron/plugins/embrane/common/constants.py create mode 100644 neutron/plugins/embrane/common/contexts.py create mode 100644 neutron/plugins/embrane/common/exceptions.py create mode 100644 neutron/plugins/embrane/common/operation.py create mode 100644 neutron/plugins/embrane/common/utils.py create mode 100644 neutron/plugins/embrane/l2base/__init__.py create mode 100644 neutron/plugins/embrane/l2base/fake/__init__.py create mode 100644 neutron/plugins/embrane/l2base/fake/fake_l2_plugin.py create mode 100644 neutron/plugins/embrane/l2base/fake/fakeplugin_support.py create mode 100644 neutron/plugins/embrane/l2base/openvswitch/__init__.py create mode 100644 neutron/plugins/embrane/l2base/openvswitch/openvswitch_support.py create mode 100644 neutron/plugins/embrane/l2base/support_base.py create mode 100644 neutron/plugins/embrane/l2base/support_exceptions.py create mode 100644 neutron/plugins/embrane/plugins/__init__.py create mode 100644 neutron/plugins/embrane/plugins/embrane_fake_plugin.py create mode 100644 neutron/plugins/embrane/plugins/embrane_ovs_plugin.py create mode 100644 neutron/plugins/hyperv/__init__.py create mode 100644 neutron/plugins/hyperv/agent/__init__.py create mode 100644 neutron/plugins/hyperv/agent/hyperv_neutron_agent.py create mode 100644 neutron/plugins/hyperv/agent/security_groups_driver.py create mode 100644 neutron/plugins/hyperv/agent/utils.py create mode 100644 neutron/plugins/hyperv/agent/utilsfactory.py create mode 100644 neutron/plugins/hyperv/agent/utilsv2.py create mode 100644 neutron/plugins/hyperv/agent_notifier_api.py create mode 100644 neutron/plugins/hyperv/common/__init__.py create mode 100644 neutron/plugins/hyperv/common/constants.py create mode 100644 neutron/plugins/hyperv/db.py create mode 100644 neutron/plugins/hyperv/hyperv_neutron_plugin.py create mode 100644 neutron/plugins/hyperv/model.py create mode 100644 neutron/plugins/hyperv/rpc_callbacks.py create mode 100644 neutron/plugins/ibm/README create mode 100644 neutron/plugins/ibm/__init__.py create mode 100644 neutron/plugins/ibm/agent/__init__.py create mode 100644 neutron/plugins/ibm/agent/sdnve_neutron_agent.py create mode 100644 neutron/plugins/ibm/common/__init__.py create mode 100644 neutron/plugins/ibm/common/config.py create mode 100644 neutron/plugins/ibm/common/constants.py create mode 100644 neutron/plugins/ibm/common/exceptions.py create mode 100644 neutron/plugins/ibm/sdnve_api.py create mode 100644 neutron/plugins/ibm/sdnve_api_fake.py create mode 100644 neutron/plugins/ibm/sdnve_neutron_plugin.py create mode 100644 neutron/plugins/linuxbridge/README create mode 100644 neutron/plugins/linuxbridge/__init__.py create mode 100644 neutron/plugins/linuxbridge/agent/__init__.py create mode 100755 neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py create mode 100644 neutron/plugins/linuxbridge/common/__init__.py create mode 100644 neutron/plugins/linuxbridge/common/config.py create mode 100644 neutron/plugins/linuxbridge/common/constants.py create mode 100644 neutron/plugins/linuxbridge/db/__init__.py create mode 100644 neutron/plugins/linuxbridge/db/l2network_db_v2.py create mode 100644 neutron/plugins/linuxbridge/db/l2network_models_v2.py create mode 100644 neutron/plugins/linuxbridge/lb_neutron_plugin.py create mode 100644 neutron/plugins/metaplugin/README create mode 100644 neutron/plugins/metaplugin/__init__.py create mode 100644 neutron/plugins/metaplugin/common/__init__.py create mode 100644 neutron/plugins/metaplugin/common/config.py create mode 100644 neutron/plugins/metaplugin/meta_db_v2.py create mode 100644 neutron/plugins/metaplugin/meta_models_v2.py create mode 100644 neutron/plugins/metaplugin/meta_neutron_plugin.py create mode 100644 neutron/plugins/metaplugin/proxy_neutron_plugin.py create mode 100644 neutron/plugins/midonet/__init__.py create mode 100644 neutron/plugins/midonet/agent/__init__.py create mode 100644 neutron/plugins/midonet/agent/midonet_driver.py create mode 100644 neutron/plugins/midonet/common/__init__.py create mode 100644 neutron/plugins/midonet/common/config.py create mode 100644 neutron/plugins/midonet/common/net_util.py create mode 100644 neutron/plugins/midonet/midonet_lib.py create mode 100644 neutron/plugins/midonet/plugin.py create mode 100644 neutron/plugins/ml2/README create mode 100644 neutron/plugins/ml2/__init__.py create mode 100644 neutron/plugins/ml2/common/__init__.py create mode 100644 neutron/plugins/ml2/common/exceptions.py create mode 100644 neutron/plugins/ml2/config.py create mode 100644 neutron/plugins/ml2/db.py create mode 100644 neutron/plugins/ml2/driver_api.py create mode 100644 neutron/plugins/ml2/driver_context.py create mode 100644 neutron/plugins/ml2/drivers/README.fslsdn create mode 100644 neutron/plugins/ml2/drivers/README.odl create mode 100644 neutron/plugins/ml2/drivers/__init__.py create mode 100644 neutron/plugins/ml2/drivers/brocade/README.md create mode 100644 neutron/plugins/ml2/drivers/brocade/__init__.py create mode 100644 neutron/plugins/ml2/drivers/brocade/db/__init__.py create mode 100644 neutron/plugins/ml2/drivers/brocade/db/models.py create mode 100644 neutron/plugins/ml2/drivers/brocade/mechanism_brocade.py create mode 100644 neutron/plugins/ml2/drivers/brocade/nos/__init__.py create mode 100644 neutron/plugins/ml2/drivers/brocade/nos/nctemplates.py create mode 100644 neutron/plugins/ml2/drivers/brocade/nos/nosdriver.py create mode 100644 neutron/plugins/ml2/drivers/cisco/__init__.py create mode 100644 neutron/plugins/ml2/drivers/cisco/apic/__init__.py create mode 100644 neutron/plugins/ml2/drivers/cisco/apic/apic_client.py create mode 100644 neutron/plugins/ml2/drivers/cisco/apic/apic_manager.py create mode 100644 neutron/plugins/ml2/drivers/cisco/apic/apic_model.py create mode 100644 neutron/plugins/ml2/drivers/cisco/apic/config.py create mode 100644 neutron/plugins/ml2/drivers/cisco/apic/exceptions.py create mode 100644 neutron/plugins/ml2/drivers/cisco/apic/mechanism_apic.py create mode 100644 neutron/plugins/ml2/drivers/cisco/nexus/README create mode 100644 neutron/plugins/ml2/drivers/cisco/nexus/__init__.py create mode 100644 neutron/plugins/ml2/drivers/cisco/nexus/config.py create mode 100644 neutron/plugins/ml2/drivers/cisco/nexus/constants.py create mode 100644 neutron/plugins/ml2/drivers/cisco/nexus/exceptions.py create mode 100644 neutron/plugins/ml2/drivers/cisco/nexus/mech_cisco_nexus.py create mode 100644 neutron/plugins/ml2/drivers/cisco/nexus/nexus_db_v2.py create mode 100644 neutron/plugins/ml2/drivers/cisco/nexus/nexus_models_v2.py create mode 100644 neutron/plugins/ml2/drivers/cisco/nexus/nexus_network_driver.py create mode 100644 neutron/plugins/ml2/drivers/cisco/nexus/nexus_snippets.py create mode 100644 neutron/plugins/ml2/drivers/l2pop/README create mode 100644 neutron/plugins/ml2/drivers/l2pop/__init__.py create mode 100644 neutron/plugins/ml2/drivers/l2pop/config.py create mode 100644 neutron/plugins/ml2/drivers/l2pop/constants.py create mode 100644 neutron/plugins/ml2/drivers/l2pop/db.py create mode 100644 neutron/plugins/ml2/drivers/l2pop/mech_driver.py create mode 100644 neutron/plugins/ml2/drivers/l2pop/rpc.py create mode 100644 neutron/plugins/ml2/drivers/mech_agent.py create mode 100644 neutron/plugins/ml2/drivers/mech_arista/README create mode 100644 neutron/plugins/ml2/drivers/mech_arista/__init__.py create mode 100644 neutron/plugins/ml2/drivers/mech_arista/config.py create mode 100644 neutron/plugins/ml2/drivers/mech_arista/db.py create mode 100644 neutron/plugins/ml2/drivers/mech_arista/exceptions.py create mode 100644 neutron/plugins/ml2/drivers/mech_arista/mechanism_arista.py create mode 100644 neutron/plugins/ml2/drivers/mech_bigswitch/__init__.py create mode 100644 neutron/plugins/ml2/drivers/mech_bigswitch/driver.py create mode 100644 neutron/plugins/ml2/drivers/mech_hyperv.py create mode 100644 neutron/plugins/ml2/drivers/mech_linuxbridge.py create mode 100644 neutron/plugins/ml2/drivers/mech_ofagent.py create mode 100644 neutron/plugins/ml2/drivers/mech_openvswitch.py create mode 100755 neutron/plugins/ml2/drivers/mechanism_fslsdn.py create mode 100644 neutron/plugins/ml2/drivers/mechanism_ncs.py create mode 100644 neutron/plugins/ml2/drivers/mechanism_odl.py create mode 100644 neutron/plugins/ml2/drivers/mlnx/__init__.py create mode 100644 neutron/plugins/ml2/drivers/mlnx/config.py create mode 100644 neutron/plugins/ml2/drivers/mlnx/mech_mlnx.py create mode 100644 neutron/plugins/ml2/drivers/type_flat.py create mode 100644 neutron/plugins/ml2/drivers/type_gre.py create mode 100644 neutron/plugins/ml2/drivers/type_local.py create mode 100644 neutron/plugins/ml2/drivers/type_tunnel.py create mode 100644 neutron/plugins/ml2/drivers/type_vlan.py create mode 100644 neutron/plugins/ml2/drivers/type_vxlan.py create mode 100644 neutron/plugins/ml2/managers.py create mode 100644 neutron/plugins/ml2/models.py create mode 100644 neutron/plugins/ml2/plugin.py create mode 100644 neutron/plugins/ml2/rpc.py create mode 100644 neutron/plugins/mlnx/README create mode 100644 neutron/plugins/mlnx/__init__.py create mode 100644 neutron/plugins/mlnx/agent/__init__.py create mode 100644 neutron/plugins/mlnx/agent/eswitch_neutron_agent.py create mode 100644 neutron/plugins/mlnx/agent/utils.py create mode 100644 neutron/plugins/mlnx/agent_notify_api.py create mode 100644 neutron/plugins/mlnx/common/__init__.py create mode 100644 neutron/plugins/mlnx/common/comm_utils.py create mode 100644 neutron/plugins/mlnx/common/config.py create mode 100644 neutron/plugins/mlnx/common/constants.py create mode 100644 neutron/plugins/mlnx/common/exceptions.py create mode 100644 neutron/plugins/mlnx/db/__init__.py create mode 100644 neutron/plugins/mlnx/db/mlnx_db_v2.py create mode 100644 neutron/plugins/mlnx/db/mlnx_models_v2.py create mode 100644 neutron/plugins/mlnx/mlnx_plugin.py create mode 100644 neutron/plugins/mlnx/rpc_callbacks.py create mode 100644 neutron/plugins/nec/README create mode 100644 neutron/plugins/nec/__init__.py create mode 100644 neutron/plugins/nec/agent/__init__.py create mode 100755 neutron/plugins/nec/agent/nec_neutron_agent.py create mode 100644 neutron/plugins/nec/common/__init__.py create mode 100644 neutron/plugins/nec/common/config.py create mode 100644 neutron/plugins/nec/common/constants.py create mode 100644 neutron/plugins/nec/common/exceptions.py create mode 100644 neutron/plugins/nec/common/ofc_client.py create mode 100644 neutron/plugins/nec/common/utils.py create mode 100644 neutron/plugins/nec/db/__init__.py create mode 100644 neutron/plugins/nec/db/api.py create mode 100644 neutron/plugins/nec/db/models.py create mode 100644 neutron/plugins/nec/db/packetfilter.py create mode 100644 neutron/plugins/nec/db/router.py create mode 100644 neutron/plugins/nec/drivers/__init__.py create mode 100644 neutron/plugins/nec/drivers/pfc.py create mode 100644 neutron/plugins/nec/drivers/trema.py create mode 100644 neutron/plugins/nec/extensions/__init__.py create mode 100644 neutron/plugins/nec/extensions/packetfilter.py create mode 100644 neutron/plugins/nec/extensions/router_provider.py create mode 100644 neutron/plugins/nec/nec_plugin.py create mode 100644 neutron/plugins/nec/nec_router.py create mode 100644 neutron/plugins/nec/ofc_driver_base.py create mode 100644 neutron/plugins/nec/ofc_manager.py create mode 100644 neutron/plugins/nec/packet_filter.py create mode 100644 neutron/plugins/nec/router_drivers.py create mode 100644 neutron/plugins/nuage/__init__.py create mode 100644 neutron/plugins/nuage/common/__init__.py create mode 100644 neutron/plugins/nuage/common/config.py create mode 100644 neutron/plugins/nuage/common/constants.py create mode 100644 neutron/plugins/nuage/common/exceptions.py create mode 100644 neutron/plugins/nuage/extensions/__init__.py create mode 100644 neutron/plugins/nuage/extensions/netpartition.py create mode 100644 neutron/plugins/nuage/extensions/nuage_router.py create mode 100644 neutron/plugins/nuage/extensions/nuage_subnet.py create mode 100644 neutron/plugins/nuage/nuage_models.py create mode 100644 neutron/plugins/nuage/nuagedb.py create mode 100644 neutron/plugins/nuage/plugin.py create mode 100644 neutron/plugins/ofagent/README create mode 100644 neutron/plugins/ofagent/__init__.py create mode 100644 neutron/plugins/ofagent/agent/__init__.py create mode 100644 neutron/plugins/ofagent/agent/ofa_neutron_agent.py create mode 100644 neutron/plugins/ofagent/common/__init__.py create mode 100644 neutron/plugins/ofagent/common/config.py create mode 100644 neutron/plugins/oneconvergence/README create mode 100644 neutron/plugins/oneconvergence/__init__.py create mode 100644 neutron/plugins/oneconvergence/agent/__init__.py create mode 100644 neutron/plugins/oneconvergence/agent/nvsd_neutron_agent.py create mode 100644 neutron/plugins/oneconvergence/lib/__init__.py create mode 100644 neutron/plugins/oneconvergence/lib/config.py create mode 100644 neutron/plugins/oneconvergence/lib/exception.py create mode 100644 neutron/plugins/oneconvergence/lib/nvsd_db.py create mode 100644 neutron/plugins/oneconvergence/lib/nvsdlib.py create mode 100644 neutron/plugins/oneconvergence/lib/plugin_helper.py create mode 100644 neutron/plugins/oneconvergence/plugin.py create mode 100644 neutron/plugins/openvswitch/README create mode 100644 neutron/plugins/openvswitch/__init__.py create mode 100644 neutron/plugins/openvswitch/agent/__init__.py create mode 100644 neutron/plugins/openvswitch/agent/ovs_neutron_agent.py create mode 100644 neutron/plugins/openvswitch/agent/xenapi/README create mode 100755 neutron/plugins/openvswitch/agent/xenapi/contrib/build-rpm.sh create mode 100644 neutron/plugins/openvswitch/agent/xenapi/contrib/rpmbuild/SPECS/openstack-quantum-xen-plugins.spec create mode 100644 neutron/plugins/openvswitch/agent/xenapi/etc/xapi.d/plugins/netwrap create mode 100644 neutron/plugins/openvswitch/common/__init__.py create mode 100644 neutron/plugins/openvswitch/common/config.py create mode 100644 neutron/plugins/openvswitch/common/constants.py create mode 100644 neutron/plugins/openvswitch/ovs_db_v2.py create mode 100644 neutron/plugins/openvswitch/ovs_models_v2.py create mode 100644 neutron/plugins/openvswitch/ovs_neutron_plugin.py create mode 100644 neutron/plugins/plumgrid/README create mode 100644 neutron/plugins/plumgrid/__init__.py create mode 100644 neutron/plugins/plumgrid/common/__init__.py create mode 100644 neutron/plugins/plumgrid/common/exceptions.py create mode 100644 neutron/plugins/plumgrid/drivers/__init__.py create mode 100644 neutron/plugins/plumgrid/drivers/fake_plumlib.py create mode 100644 neutron/plugins/plumgrid/drivers/plumlib.py create mode 100644 neutron/plugins/plumgrid/plumgrid_plugin/__init__.py create mode 100644 neutron/plugins/plumgrid/plumgrid_plugin/plugin_ver.py create mode 100644 neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py create mode 100644 neutron/plugins/ryu/README create mode 100644 neutron/plugins/ryu/__init__.py create mode 100644 neutron/plugins/ryu/agent/__init__.py create mode 100755 neutron/plugins/ryu/agent/ryu_neutron_agent.py create mode 100644 neutron/plugins/ryu/common/__init__.py create mode 100644 neutron/plugins/ryu/common/config.py create mode 100644 neutron/plugins/ryu/db/__init__.py create mode 100644 neutron/plugins/ryu/db/api_v2.py create mode 100644 neutron/plugins/ryu/db/models_v2.py create mode 100644 neutron/plugins/ryu/ryu_neutron_plugin.py create mode 100644 neutron/plugins/vmware/__init__.py create mode 100644 neutron/plugins/vmware/api_client/__init__.py create mode 100644 neutron/plugins/vmware/api_client/base.py create mode 100644 neutron/plugins/vmware/api_client/client.py create mode 100644 neutron/plugins/vmware/api_client/eventlet_client.py create mode 100644 neutron/plugins/vmware/api_client/eventlet_request.py create mode 100644 neutron/plugins/vmware/api_client/exception.py create mode 100644 neutron/plugins/vmware/api_client/request.py create mode 100644 neutron/plugins/vmware/api_client/version.py create mode 100644 neutron/plugins/vmware/check_nsx_config.py create mode 100644 neutron/plugins/vmware/common/__init__.py create mode 100644 neutron/plugins/vmware/common/config.py create mode 100644 neutron/plugins/vmware/common/exceptions.py create mode 100644 neutron/plugins/vmware/common/nsx_utils.py create mode 100644 neutron/plugins/vmware/common/securitygroups.py create mode 100644 neutron/plugins/vmware/common/sync.py create mode 100644 neutron/plugins/vmware/common/utils.py create mode 100644 neutron/plugins/vmware/dbexts/__init__.py create mode 100644 neutron/plugins/vmware/dbexts/db.py create mode 100644 neutron/plugins/vmware/dbexts/distributedrouter.py create mode 100644 neutron/plugins/vmware/dbexts/lsn_db.py create mode 100644 neutron/plugins/vmware/dbexts/maclearning.py create mode 100644 neutron/plugins/vmware/dbexts/models.py create mode 100644 neutron/plugins/vmware/dbexts/networkgw_db.py create mode 100644 neutron/plugins/vmware/dbexts/nsxrouter.py create mode 100644 neutron/plugins/vmware/dbexts/qos_db.py create mode 100644 neutron/plugins/vmware/dbexts/servicerouter.py create mode 100644 neutron/plugins/vmware/dbexts/vcns_db.py create mode 100644 neutron/plugins/vmware/dbexts/vcns_models.py create mode 100644 neutron/plugins/vmware/dhcp_meta/__init__.py create mode 100644 neutron/plugins/vmware/dhcp_meta/combined.py create mode 100644 neutron/plugins/vmware/dhcp_meta/constants.py create mode 100644 neutron/plugins/vmware/dhcp_meta/lsnmanager.py create mode 100644 neutron/plugins/vmware/dhcp_meta/migration.py create mode 100644 neutron/plugins/vmware/dhcp_meta/nsx.py create mode 100644 neutron/plugins/vmware/dhcp_meta/rpc.py create mode 100644 neutron/plugins/vmware/dhcpmeta_modes.py create mode 100644 neutron/plugins/vmware/extensions/__init__.py create mode 100644 neutron/plugins/vmware/extensions/distributedrouter.py create mode 100644 neutron/plugins/vmware/extensions/lsn.py create mode 100644 neutron/plugins/vmware/extensions/maclearning.py create mode 100644 neutron/plugins/vmware/extensions/networkgw.py create mode 100644 neutron/plugins/vmware/extensions/nvp_qos.py create mode 100644 neutron/plugins/vmware/extensions/qos.py create mode 100644 neutron/plugins/vmware/extensions/servicerouter.py create mode 100644 neutron/plugins/vmware/nsx_cluster.py create mode 100644 neutron/plugins/vmware/nsxlib/__init__.py create mode 100644 neutron/plugins/vmware/nsxlib/l2gateway.py create mode 100644 neutron/plugins/vmware/nsxlib/lsn.py create mode 100644 neutron/plugins/vmware/nsxlib/queue.py create mode 100644 neutron/plugins/vmware/nsxlib/router.py create mode 100644 neutron/plugins/vmware/nsxlib/secgroup.py create mode 100644 neutron/plugins/vmware/nsxlib/switch.py create mode 100644 neutron/plugins/vmware/nsxlib/versioning.py create mode 100644 neutron/plugins/vmware/plugin.py create mode 100644 neutron/plugins/vmware/plugins/__init__.py create mode 100644 neutron/plugins/vmware/plugins/base.py create mode 100644 neutron/plugins/vmware/plugins/service.py create mode 100644 neutron/plugins/vmware/shell/__init__.py create mode 100644 neutron/plugins/vmware/shell/commands.py create mode 100644 neutron/plugins/vmware/vshield/__init__.py create mode 100644 neutron/plugins/vmware/vshield/common/VcnsApiClient.py create mode 100644 neutron/plugins/vmware/vshield/common/__init__.py create mode 100644 neutron/plugins/vmware/vshield/common/constants.py create mode 100644 neutron/plugins/vmware/vshield/common/exceptions.py create mode 100644 neutron/plugins/vmware/vshield/edge_appliance_driver.py create mode 100644 neutron/plugins/vmware/vshield/edge_firewall_driver.py create mode 100644 neutron/plugins/vmware/vshield/edge_ipsecvpn_driver.py create mode 100644 neutron/plugins/vmware/vshield/edge_loadbalancer_driver.py create mode 100644 neutron/plugins/vmware/vshield/tasks/__init__.py create mode 100644 neutron/plugins/vmware/vshield/tasks/constants.py create mode 100644 neutron/plugins/vmware/vshield/tasks/tasks.py create mode 100644 neutron/plugins/vmware/vshield/vcns.py create mode 100644 neutron/plugins/vmware/vshield/vcns_driver.py create mode 100644 neutron/policy.py create mode 100644 neutron/quota.py create mode 100644 neutron/scheduler/__init__.py create mode 100644 neutron/scheduler/dhcp_agent_scheduler.py create mode 100644 neutron/scheduler/l3_agent_scheduler.py create mode 100755 neutron/server/__init__.py create mode 100644 neutron/service.py create mode 100644 neutron/services/__init__.py create mode 100644 neutron/services/firewall/__init__.py create mode 100644 neutron/services/firewall/agents/__init__.py create mode 100644 neutron/services/firewall/agents/firewall_agent_api.py create mode 100644 neutron/services/firewall/agents/l3reference/__init__.py create mode 100644 neutron/services/firewall/agents/l3reference/firewall_l3_agent.py create mode 100755 neutron/services/firewall/agents/varmour/__init__.py create mode 100755 neutron/services/firewall/agents/varmour/varmour_api.py create mode 100755 neutron/services/firewall/agents/varmour/varmour_router.py create mode 100755 neutron/services/firewall/agents/varmour/varmour_utils.py create mode 100644 neutron/services/firewall/drivers/__init__.py create mode 100644 neutron/services/firewall/drivers/fwaas_base.py create mode 100644 neutron/services/firewall/drivers/linux/__init__.py create mode 100644 neutron/services/firewall/drivers/linux/iptables_fwaas.py create mode 100755 neutron/services/firewall/drivers/varmour/__init__.py create mode 100755 neutron/services/firewall/drivers/varmour/varmour_fwaas.py create mode 100644 neutron/services/firewall/fwaas_plugin.py create mode 100644 neutron/services/l3_router/README create mode 100644 neutron/services/l3_router/__init__.py create mode 100644 neutron/services/l3_router/l3_apic.py create mode 100644 neutron/services/l3_router/l3_router_plugin.py create mode 100644 neutron/services/loadbalancer/__init__.py create mode 100644 neutron/services/loadbalancer/agent/__init__.py create mode 100644 neutron/services/loadbalancer/agent/agent.py create mode 100644 neutron/services/loadbalancer/agent/agent_api.py create mode 100644 neutron/services/loadbalancer/agent/agent_device_driver.py create mode 100644 neutron/services/loadbalancer/agent/agent_manager.py create mode 100644 neutron/services/loadbalancer/agent_scheduler.py create mode 100644 neutron/services/loadbalancer/constants.py create mode 100644 neutron/services/loadbalancer/drivers/__init__.py create mode 100644 neutron/services/loadbalancer/drivers/abstract_driver.py create mode 100644 neutron/services/loadbalancer/drivers/common/__init__.py create mode 100644 neutron/services/loadbalancer/drivers/common/agent_driver_base.py create mode 100644 neutron/services/loadbalancer/drivers/embrane/README create mode 100644 neutron/services/loadbalancer/drivers/embrane/__init__.py create mode 100644 neutron/services/loadbalancer/drivers/embrane/agent/__init__.py create mode 100644 neutron/services/loadbalancer/drivers/embrane/agent/dispatcher.py create mode 100644 neutron/services/loadbalancer/drivers/embrane/agent/lb_operations.py create mode 100644 neutron/services/loadbalancer/drivers/embrane/config.py create mode 100644 neutron/services/loadbalancer/drivers/embrane/constants.py create mode 100644 neutron/services/loadbalancer/drivers/embrane/db.py create mode 100644 neutron/services/loadbalancer/drivers/embrane/driver.py create mode 100644 neutron/services/loadbalancer/drivers/embrane/models.py create mode 100644 neutron/services/loadbalancer/drivers/embrane/poller.py create mode 100644 neutron/services/loadbalancer/drivers/haproxy/__init__.py create mode 100644 neutron/services/loadbalancer/drivers/haproxy/cfg.py create mode 100644 neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py create mode 100644 neutron/services/loadbalancer/drivers/haproxy/plugin_driver.py create mode 100644 neutron/services/loadbalancer/drivers/netscaler/__init__.py create mode 100644 neutron/services/loadbalancer/drivers/netscaler/ncc_client.py create mode 100644 neutron/services/loadbalancer/drivers/netscaler/netscaler_driver.py create mode 100644 neutron/services/loadbalancer/drivers/radware/__init__.py create mode 100644 neutron/services/loadbalancer/drivers/radware/driver.py create mode 100644 neutron/services/loadbalancer/drivers/radware/exceptions.py create mode 100644 neutron/services/loadbalancer/plugin.py create mode 100644 neutron/services/metering/__init__.py create mode 100644 neutron/services/metering/agents/__init__.py create mode 100644 neutron/services/metering/agents/metering_agent.py create mode 100644 neutron/services/metering/drivers/__init__.py create mode 100644 neutron/services/metering/drivers/abstract_driver.py create mode 100644 neutron/services/metering/drivers/iptables/__init__.py create mode 100644 neutron/services/metering/drivers/iptables/iptables_driver.py create mode 100644 neutron/services/metering/drivers/noop/__init__.py create mode 100644 neutron/services/metering/drivers/noop/noop_driver.py create mode 100644 neutron/services/metering/metering_plugin.py create mode 100644 neutron/services/provider_configuration.py create mode 100644 neutron/services/service_base.py create mode 100644 neutron/services/vpn/__init__.py create mode 100644 neutron/services/vpn/agent.py create mode 100644 neutron/services/vpn/common/__init__.py create mode 100644 neutron/services/vpn/common/topics.py create mode 100644 neutron/services/vpn/device_drivers/__init__.py create mode 100644 neutron/services/vpn/device_drivers/cisco_csr_rest_client.py create mode 100644 neutron/services/vpn/device_drivers/cisco_ipsec.py create mode 100644 neutron/services/vpn/device_drivers/ipsec.py create mode 100644 neutron/services/vpn/device_drivers/template/openswan/ipsec.conf.template create mode 100644 neutron/services/vpn/device_drivers/template/openswan/ipsec.secret.template create mode 100644 neutron/services/vpn/plugin.py create mode 100644 neutron/services/vpn/service_drivers/__init__.py create mode 100644 neutron/services/vpn/service_drivers/cisco_csr_db.py create mode 100644 neutron/services/vpn/service_drivers/cisco_ipsec.py create mode 100644 neutron/services/vpn/service_drivers/ipsec.py create mode 100644 neutron/tests/__init__.py create mode 100644 neutron/tests/base.py create mode 100644 neutron/tests/etc/api-paste.ini.test create mode 100644 neutron/tests/etc/neutron.conf.test create mode 100644 neutron/tests/etc/rootwrap.d/neutron.test.filters create mode 100644 neutron/tests/fake_notifier.py create mode 100644 neutron/tests/functional/__init__.py create mode 100644 neutron/tests/functional/agent/__init__.py create mode 100644 neutron/tests/functional/agent/linux/__init__.py create mode 100644 neutron/tests/functional/agent/linux/base.py create mode 100644 neutron/tests/functional/agent/linux/test_async_process.py create mode 100644 neutron/tests/functional/agent/linux/test_ovsdb_monitor.py create mode 100644 neutron/tests/functional/sanity/__init__.py create mode 100644 neutron/tests/functional/sanity/test_ovs_sanity.py create mode 100644 neutron/tests/post_mortem_debug.py create mode 100644 neutron/tests/tools.py create mode 100644 neutron/tests/unit/__init__.py create mode 100644 neutron/tests/unit/_test_extension_portbindings.py create mode 100644 neutron/tests/unit/_test_rootwrap_exec.py create mode 100644 neutron/tests/unit/agent/__init__.py create mode 100644 neutron/tests/unit/agent/linux/__init__.py create mode 100644 neutron/tests/unit/agent/linux/test_async_process.py create mode 100644 neutron/tests/unit/agent/linux/test_ovs_lib.py create mode 100644 neutron/tests/unit/agent/linux/test_ovsdb_monitor.py create mode 100644 neutron/tests/unit/agent/linux/test_polling.py create mode 100644 neutron/tests/unit/api/__init__.py create mode 100644 neutron/tests/unit/api/rpc/__init__.py create mode 100644 neutron/tests/unit/api/rpc/agentnotifiers/__init__.py create mode 100644 neutron/tests/unit/api/rpc/agentnotifiers/test_dhcp_rpc_agent_api.py create mode 100644 neutron/tests/unit/bigswitch/__init__.py create mode 100644 neutron/tests/unit/bigswitch/etc/restproxy.ini.test create mode 100644 neutron/tests/unit/bigswitch/etc/ssl/ca_certs/README create mode 100644 neutron/tests/unit/bigswitch/etc/ssl/combined/README create mode 100644 neutron/tests/unit/bigswitch/etc/ssl/host_certs/README create mode 100644 neutron/tests/unit/bigswitch/fake_server.py create mode 100644 neutron/tests/unit/bigswitch/test_agent_scheduler.py create mode 100644 neutron/tests/unit/bigswitch/test_base.py create mode 100644 neutron/tests/unit/bigswitch/test_capabilities.py create mode 100644 neutron/tests/unit/bigswitch/test_restproxy_agent.py create mode 100644 neutron/tests/unit/bigswitch/test_restproxy_plugin.py create mode 100644 neutron/tests/unit/bigswitch/test_router_db.py create mode 100644 neutron/tests/unit/bigswitch/test_security_groups.py create mode 100644 neutron/tests/unit/bigswitch/test_servermanager.py create mode 100644 neutron/tests/unit/bigswitch/test_ssl.py create mode 100644 neutron/tests/unit/brocade/__init__.py create mode 100644 neutron/tests/unit/brocade/test_brocade_db.py create mode 100644 neutron/tests/unit/brocade/test_brocade_plugin.py create mode 100644 neutron/tests/unit/brocade/test_brocade_vlan.py create mode 100644 neutron/tests/unit/cisco/__init__.py create mode 100644 neutron/tests/unit/cisco/n1kv/__init__.py create mode 100755 neutron/tests/unit/cisco/n1kv/fake_client.py create mode 100644 neutron/tests/unit/cisco/n1kv/test_n1kv_db.py create mode 100644 neutron/tests/unit/cisco/n1kv/test_n1kv_plugin.py create mode 100644 neutron/tests/unit/cisco/test_config.py create mode 100644 neutron/tests/unit/cisco/test_network_db.py create mode 100644 neutron/tests/unit/cisco/test_network_plugin.py create mode 100644 neutron/tests/unit/cisco/test_nexus_db.py create mode 100644 neutron/tests/unit/cisco/test_nexus_plugin.py create mode 100755 neutron/tests/unit/cisco/test_plugin_model.py create mode 100644 neutron/tests/unit/database_stubs.py create mode 100644 neutron/tests/unit/db/__init__.py create mode 100644 neutron/tests/unit/db/firewall/__init__.py create mode 100644 neutron/tests/unit/db/firewall/test_db_firewall.py create mode 100644 neutron/tests/unit/db/loadbalancer/__init__.py create mode 100644 neutron/tests/unit/db/loadbalancer/test_db_loadbalancer.py create mode 100644 neutron/tests/unit/db/metering/__init__.py create mode 100644 neutron/tests/unit/db/metering/test_db_metering.py create mode 100644 neutron/tests/unit/db/test_agent_db.py create mode 100644 neutron/tests/unit/db/test_quota_db.py create mode 100644 neutron/tests/unit/db/vpn/__init__.py create mode 100644 neutron/tests/unit/db/vpn/test_db_vpnaas.py create mode 100644 neutron/tests/unit/dummy_plugin.py create mode 100644 neutron/tests/unit/embrane/__init__.py create mode 100644 neutron/tests/unit/embrane/test_embrane_defaults.py create mode 100644 neutron/tests/unit/embrane/test_embrane_l3_plugin.py create mode 100644 neutron/tests/unit/embrane/test_embrane_neutron_plugin.py create mode 100644 neutron/tests/unit/extension_stubs.py create mode 100644 neutron/tests/unit/extensions/__init__.py create mode 100644 neutron/tests/unit/extensions/extendedattribute.py create mode 100644 neutron/tests/unit/extensions/extensionattribute.py create mode 100644 neutron/tests/unit/extensions/foxinsocks.py create mode 100644 neutron/tests/unit/extensions/v2attributes.py create mode 100644 neutron/tests/unit/hyperv/__init__.py create mode 100644 neutron/tests/unit/hyperv/test_hyperv_neutron_agent.py create mode 100644 neutron/tests/unit/hyperv/test_hyperv_neutron_plugin.py create mode 100644 neutron/tests/unit/hyperv/test_hyperv_rpcapi.py create mode 100644 neutron/tests/unit/hyperv/test_hyperv_security_groups_driver.py create mode 100644 neutron/tests/unit/hyperv/test_hyperv_utilsfactory.py create mode 100644 neutron/tests/unit/hyperv/test_hyperv_utilsv2.py create mode 100644 neutron/tests/unit/ibm/__init__.py create mode 100644 neutron/tests/unit/ibm/test_sdnve_agent.py create mode 100644 neutron/tests/unit/ibm/test_sdnve_api.py create mode 100644 neutron/tests/unit/ibm/test_sdnve_plugin.py create mode 100644 neutron/tests/unit/linuxbridge/__init__.py create mode 100644 neutron/tests/unit/linuxbridge/test_agent_scheduler.py create mode 100644 neutron/tests/unit/linuxbridge/test_defaults.py create mode 100644 neutron/tests/unit/linuxbridge/test_lb_db.py create mode 100644 neutron/tests/unit/linuxbridge/test_lb_neutron_agent.py create mode 100644 neutron/tests/unit/linuxbridge/test_lb_security_group.py create mode 100644 neutron/tests/unit/linuxbridge/test_linuxbridge_plugin.py create mode 100644 neutron/tests/unit/linuxbridge/test_rpcapi.py create mode 100644 neutron/tests/unit/metaplugin/__init__.py create mode 100644 neutron/tests/unit/metaplugin/fake_plugin.py create mode 100644 neutron/tests/unit/metaplugin/test_basic.py create mode 100644 neutron/tests/unit/metaplugin/test_metaplugin.py create mode 100644 neutron/tests/unit/midonet/__init__.py create mode 100644 neutron/tests/unit/midonet/etc/midonet.ini.test create mode 100644 neutron/tests/unit/midonet/mock_lib.py create mode 100644 neutron/tests/unit/midonet/test_midonet_driver.py create mode 100644 neutron/tests/unit/midonet/test_midonet_lib.py create mode 100644 neutron/tests/unit/midonet/test_midonet_plugin.py create mode 100644 neutron/tests/unit/ml2/__init__.py create mode 100644 neutron/tests/unit/ml2/_test_mech_agent.py create mode 100644 neutron/tests/unit/ml2/drivers/__init__.py create mode 100644 neutron/tests/unit/ml2/drivers/brocade/__init__.py create mode 100644 neutron/tests/unit/ml2/drivers/brocade/test_brocade_mechanism_driver.py create mode 100644 neutron/tests/unit/ml2/drivers/cisco/__init__.py create mode 100644 neutron/tests/unit/ml2/drivers/cisco/apic/__init__.py create mode 100644 neutron/tests/unit/ml2/drivers/cisco/apic/test_cisco_apic_client.py create mode 100644 neutron/tests/unit/ml2/drivers/cisco/apic/test_cisco_apic_common.py create mode 100644 neutron/tests/unit/ml2/drivers/cisco/apic/test_cisco_apic_manager.py create mode 100644 neutron/tests/unit/ml2/drivers/cisco/apic/test_cisco_apic_mechanism_driver.py create mode 100644 neutron/tests/unit/ml2/drivers/cisco/nexus/__init__.py create mode 100644 neutron/tests/unit/ml2/drivers/cisco/nexus/test_cisco_config.py create mode 100644 neutron/tests/unit/ml2/drivers/cisco/nexus/test_cisco_mech.py create mode 100644 neutron/tests/unit/ml2/drivers/cisco/nexus/test_cisco_nexus.py create mode 100644 neutron/tests/unit/ml2/drivers/cisco/nexus/test_cisco_nexus_db.py create mode 100644 neutron/tests/unit/ml2/drivers/mechanism_bulkless.py create mode 100644 neutron/tests/unit/ml2/drivers/mechanism_logger.py create mode 100644 neutron/tests/unit/ml2/drivers/mechanism_test.py create mode 100644 neutron/tests/unit/ml2/drivers/test_arista_mechanism_driver.py create mode 100644 neutron/tests/unit/ml2/drivers/test_bigswitch_mech.py create mode 100644 neutron/tests/unit/ml2/drivers/test_l2population.py create mode 100644 neutron/tests/unit/ml2/drivers/test_mech_mlnx.py create mode 100644 neutron/tests/unit/ml2/drivers/test_ofagent_mech.py create mode 100644 neutron/tests/unit/ml2/test_agent_scheduler.py create mode 100644 neutron/tests/unit/ml2/test_mech_hyperv.py create mode 100644 neutron/tests/unit/ml2/test_mech_linuxbridge.py create mode 100644 neutron/tests/unit/ml2/test_mech_openvswitch.py create mode 100644 neutron/tests/unit/ml2/test_mechanism_fslsdn.py create mode 100644 neutron/tests/unit/ml2/test_mechanism_ncs.py create mode 100644 neutron/tests/unit/ml2/test_mechanism_odl.py create mode 100644 neutron/tests/unit/ml2/test_ml2_plugin.py create mode 100644 neutron/tests/unit/ml2/test_port_binding.py create mode 100644 neutron/tests/unit/ml2/test_rpcapi.py create mode 100644 neutron/tests/unit/ml2/test_security_group.py create mode 100644 neutron/tests/unit/ml2/test_type_flat.py create mode 100644 neutron/tests/unit/ml2/test_type_gre.py create mode 100644 neutron/tests/unit/ml2/test_type_local.py create mode 100644 neutron/tests/unit/ml2/test_type_vlan.py create mode 100644 neutron/tests/unit/ml2/test_type_vxlan.py create mode 100644 neutron/tests/unit/mlnx/__init__.py create mode 100644 neutron/tests/unit/mlnx/test_agent_scheduler.py create mode 100644 neutron/tests/unit/mlnx/test_defaults.py create mode 100644 neutron/tests/unit/mlnx/test_mlnx_comm_utils.py create mode 100644 neutron/tests/unit/mlnx/test_mlnx_db.py create mode 100644 neutron/tests/unit/mlnx/test_mlnx_neutron_agent.py create mode 100644 neutron/tests/unit/mlnx/test_mlnx_plugin.py create mode 100644 neutron/tests/unit/mlnx/test_mlnx_plugin_config.py create mode 100644 neutron/tests/unit/mlnx/test_mlnx_security_group.py create mode 100644 neutron/tests/unit/mlnx/test_rpcapi.py create mode 100644 neutron/tests/unit/nec/__init__.py create mode 100644 neutron/tests/unit/nec/fake_ofc_manager.py create mode 100644 neutron/tests/unit/nec/stub_ofc_driver.py create mode 100644 neutron/tests/unit/nec/test_agent_scheduler.py create mode 100644 neutron/tests/unit/nec/test_config.py create mode 100644 neutron/tests/unit/nec/test_db.py create mode 100644 neutron/tests/unit/nec/test_nec_agent.py create mode 100644 neutron/tests/unit/nec/test_nec_plugin.py create mode 100644 neutron/tests/unit/nec/test_ofc_client.py create mode 100644 neutron/tests/unit/nec/test_ofc_manager.py create mode 100644 neutron/tests/unit/nec/test_packet_filter.py create mode 100644 neutron/tests/unit/nec/test_pfc_driver.py create mode 100644 neutron/tests/unit/nec/test_portbindings.py create mode 100644 neutron/tests/unit/nec/test_router.py create mode 100644 neutron/tests/unit/nec/test_security_group.py create mode 100644 neutron/tests/unit/nec/test_trema_driver.py create mode 100644 neutron/tests/unit/nec/test_utils.py create mode 100644 neutron/tests/unit/notifiers/__init__.py create mode 100644 neutron/tests/unit/notifiers/test_notifiers_nova.py create mode 100644 neutron/tests/unit/nuage/__init__.py create mode 100644 neutron/tests/unit/nuage/fake_nuageclient.py create mode 100644 neutron/tests/unit/nuage/test_netpartition.py create mode 100644 neutron/tests/unit/nuage/test_nuage_plugin.py create mode 100644 neutron/tests/unit/ofagent/__init__.py create mode 100644 neutron/tests/unit/ofagent/fake_oflib.py create mode 100644 neutron/tests/unit/ofagent/test_ofa_defaults.py create mode 100644 neutron/tests/unit/ofagent/test_ofa_neutron_agent.py create mode 100644 neutron/tests/unit/oneconvergence/__init__.py create mode 100644 neutron/tests/unit/oneconvergence/test_nvsd_agent.py create mode 100644 neutron/tests/unit/oneconvergence/test_nvsd_plugin.py create mode 100644 neutron/tests/unit/oneconvergence/test_nvsdlib.py create mode 100644 neutron/tests/unit/oneconvergence/test_plugin_helper.py create mode 100644 neutron/tests/unit/oneconvergence/test_security_group.py create mode 100644 neutron/tests/unit/openvswitch/__init__.py create mode 100644 neutron/tests/unit/openvswitch/test_agent_scheduler.py create mode 100644 neutron/tests/unit/openvswitch/test_openvswitch_plugin.py create mode 100644 neutron/tests/unit/openvswitch/test_ovs_db.py create mode 100644 neutron/tests/unit/openvswitch/test_ovs_defaults.py create mode 100644 neutron/tests/unit/openvswitch/test_ovs_neutron_agent.py create mode 100644 neutron/tests/unit/openvswitch/test_ovs_rpcapi.py create mode 100644 neutron/tests/unit/openvswitch/test_ovs_security_group.py create mode 100644 neutron/tests/unit/openvswitch/test_ovs_tunnel.py create mode 100644 neutron/tests/unit/plumgrid/__init__.py create mode 100644 neutron/tests/unit/plumgrid/test_plumgrid_plugin.py create mode 100644 neutron/tests/unit/ryu/__init__.py create mode 100644 neutron/tests/unit/ryu/fake_ryu.py create mode 100644 neutron/tests/unit/ryu/test_defaults.py create mode 100644 neutron/tests/unit/ryu/test_ryu_agent.py create mode 100644 neutron/tests/unit/ryu/test_ryu_db.py create mode 100644 neutron/tests/unit/ryu/test_ryu_plugin.py create mode 100644 neutron/tests/unit/ryu/test_ryu_security_group.py create mode 100644 neutron/tests/unit/services/__init__.py create mode 100644 neutron/tests/unit/services/firewall/__init__.py create mode 100644 neutron/tests/unit/services/firewall/agents/__init__.py create mode 100644 neutron/tests/unit/services/firewall/agents/l3reference/__init__.py create mode 100644 neutron/tests/unit/services/firewall/agents/l3reference/test_firewall_l3_agent.py create mode 100644 neutron/tests/unit/services/firewall/agents/test_firewall_agent_api.py create mode 100755 neutron/tests/unit/services/firewall/agents/varmour/__init__.py create mode 100644 neutron/tests/unit/services/firewall/agents/varmour/test_varmour_router.py create mode 100644 neutron/tests/unit/services/firewall/drivers/__init__.py create mode 100644 neutron/tests/unit/services/firewall/drivers/linux/__init__.py create mode 100644 neutron/tests/unit/services/firewall/drivers/linux/test_iptables_fwaas.py create mode 100755 neutron/tests/unit/services/firewall/drivers/varmour/__init__.py create mode 100644 neutron/tests/unit/services/firewall/drivers/varmour/test_varmour_fwaas.py create mode 100644 neutron/tests/unit/services/firewall/test_fwaas_plugin.py create mode 100644 neutron/tests/unit/services/l3_router/__init__.py create mode 100644 neutron/tests/unit/services/l3_router/test_l3_apic_plugin.py create mode 100644 neutron/tests/unit/services/loadbalancer/__init__.py create mode 100644 neutron/tests/unit/services/loadbalancer/agent/__init__.py create mode 100644 neutron/tests/unit/services/loadbalancer/agent/test_agent.py create mode 100644 neutron/tests/unit/services/loadbalancer/agent/test_agent_manager.py create mode 100644 neutron/tests/unit/services/loadbalancer/agent/test_api.py create mode 100644 neutron/tests/unit/services/loadbalancer/drivers/__init__.py create mode 100644 neutron/tests/unit/services/loadbalancer/drivers/embrane/__init__.py create mode 100644 neutron/tests/unit/services/loadbalancer/drivers/embrane/test_embrane_defaults.py create mode 100644 neutron/tests/unit/services/loadbalancer/drivers/embrane/test_plugin_driver.py create mode 100644 neutron/tests/unit/services/loadbalancer/drivers/haproxy/__init__.py create mode 100644 neutron/tests/unit/services/loadbalancer/drivers/haproxy/test_cfg.py create mode 100644 neutron/tests/unit/services/loadbalancer/drivers/haproxy/test_namespace_driver.py create mode 100644 neutron/tests/unit/services/loadbalancer/drivers/netscaler/__init__.py create mode 100644 neutron/tests/unit/services/loadbalancer/drivers/netscaler/test_ncc_client.py create mode 100644 neutron/tests/unit/services/loadbalancer/drivers/netscaler/test_netscaler_driver.py create mode 100644 neutron/tests/unit/services/loadbalancer/drivers/radware/__init__.py create mode 100644 neutron/tests/unit/services/loadbalancer/drivers/radware/test_plugin_driver.py create mode 100644 neutron/tests/unit/services/loadbalancer/drivers/test_agent_driver_base.py create mode 100644 neutron/tests/unit/services/loadbalancer/test_agent_scheduler.py create mode 100644 neutron/tests/unit/services/loadbalancer/test_loadbalancer_plugin.py create mode 100644 neutron/tests/unit/services/loadbalancer/test_loadbalancer_quota_ext.py create mode 100644 neutron/tests/unit/services/metering/__init__.py create mode 100644 neutron/tests/unit/services/metering/drivers/__init__.py create mode 100644 neutron/tests/unit/services/metering/drivers/test_iptables_driver.py create mode 100644 neutron/tests/unit/services/metering/test_metering_agent.py create mode 100644 neutron/tests/unit/services/metering/test_metering_plugin.py create mode 100644 neutron/tests/unit/services/vpn/__init__.py create mode 100644 neutron/tests/unit/services/vpn/device_drivers/__init__.py create mode 100644 neutron/tests/unit/services/vpn/device_drivers/cisco_csr_mock.py create mode 100644 neutron/tests/unit/services/vpn/device_drivers/notest_cisco_csr_rest.py create mode 100644 neutron/tests/unit/services/vpn/device_drivers/test_cisco_ipsec.py create mode 100644 neutron/tests/unit/services/vpn/device_drivers/test_ipsec.py create mode 100644 neutron/tests/unit/services/vpn/service_drivers/__init__.py create mode 100644 neutron/tests/unit/services/vpn/service_drivers/test_cisco_ipsec.py create mode 100644 neutron/tests/unit/services/vpn/service_drivers/test_ipsec.py create mode 100644 neutron/tests/unit/services/vpn/test_vpn_agent.py create mode 100644 neutron/tests/unit/services/vpn/test_vpnaas_driver_plugin.py create mode 100644 neutron/tests/unit/services/vpn/test_vpnaas_extension.py create mode 100644 neutron/tests/unit/test_agent_config.py create mode 100644 neutron/tests/unit/test_agent_ext_plugin.py create mode 100644 neutron/tests/unit/test_agent_linux_utils.py create mode 100644 neutron/tests/unit/test_agent_netns_cleanup.py create mode 100644 neutron/tests/unit/test_agent_ovs_cleanup.py create mode 100644 neutron/tests/unit/test_agent_rpc.py create mode 100644 neutron/tests/unit/test_api_api_common.py create mode 100644 neutron/tests/unit/test_api_v2.py create mode 100644 neutron/tests/unit/test_api_v2_extension.py create mode 100644 neutron/tests/unit/test_api_v2_resource.py create mode 100644 neutron/tests/unit/test_attributes.py create mode 100644 neutron/tests/unit/test_auth.py create mode 100644 neutron/tests/unit/test_common_log.py create mode 100644 neutron/tests/unit/test_common_utils.py create mode 100644 neutron/tests/unit/test_config.py create mode 100644 neutron/tests/unit/test_db_migration.py create mode 100644 neutron/tests/unit/test_db_plugin.py create mode 100644 neutron/tests/unit/test_db_rpc_base.py create mode 100644 neutron/tests/unit/test_debug_commands.py create mode 100644 neutron/tests/unit/test_dhcp_agent.py create mode 100644 neutron/tests/unit/test_dhcp_scheduler.py create mode 100644 neutron/tests/unit/test_extension_allowedaddresspairs.py create mode 100644 neutron/tests/unit/test_extension_ext_gw_mode.py create mode 100644 neutron/tests/unit/test_extension_ext_net.py create mode 100644 neutron/tests/unit/test_extension_extended_attribute.py create mode 100644 neutron/tests/unit/test_extension_extradhcpopts.py create mode 100644 neutron/tests/unit/test_extension_extraroute.py create mode 100644 neutron/tests/unit/test_extension_firewall.py create mode 100644 neutron/tests/unit/test_extension_pnet.py create mode 100644 neutron/tests/unit/test_extension_portsecurity.py create mode 100644 neutron/tests/unit/test_extension_security_group.py create mode 100644 neutron/tests/unit/test_extensions.py create mode 100644 neutron/tests/unit/test_hacking.py create mode 100644 neutron/tests/unit/test_iptables_firewall.py create mode 100644 neutron/tests/unit/test_iptables_manager.py create mode 100644 neutron/tests/unit/test_ipv6.py create mode 100644 neutron/tests/unit/test_l3_agent.py create mode 100644 neutron/tests/unit/test_l3_plugin.py create mode 100644 neutron/tests/unit/test_l3_schedulers.py create mode 100644 neutron/tests/unit/test_linux_daemon.py create mode 100644 neutron/tests/unit/test_linux_dhcp.py create mode 100644 neutron/tests/unit/test_linux_external_process.py create mode 100644 neutron/tests/unit/test_linux_interface.py create mode 100644 neutron/tests/unit/test_linux_ip_lib.py create mode 100644 neutron/tests/unit/test_metadata_agent.py create mode 100644 neutron/tests/unit/test_metadata_namespace_proxy.py create mode 100644 neutron/tests/unit/test_neutron_context.py create mode 100644 neutron/tests/unit/test_neutron_manager.py create mode 100644 neutron/tests/unit/test_policy.py create mode 100644 neutron/tests/unit/test_post_mortem_debug.py create mode 100644 neutron/tests/unit/test_provider_configuration.py create mode 100644 neutron/tests/unit/test_quota_ext.py create mode 100644 neutron/tests/unit/test_routerserviceinsertion.py create mode 100644 neutron/tests/unit/test_security_groups_rpc.py create mode 100644 neutron/tests/unit/test_servicetype.py create mode 100644 neutron/tests/unit/test_wsgi.py create mode 100644 neutron/tests/unit/testlib_api.py create mode 100644 neutron/tests/unit/vmware/__init__.py create mode 100644 neutron/tests/unit/vmware/apiclient/__init__.py create mode 100644 neutron/tests/unit/vmware/apiclient/fake.py create mode 100644 neutron/tests/unit/vmware/apiclient/test_api_common.py create mode 100644 neutron/tests/unit/vmware/apiclient/test_api_eventlet_request.py create mode 100644 neutron/tests/unit/vmware/db/__init__.py create mode 100644 neutron/tests/unit/vmware/db/test_lsn_db.py create mode 100644 neutron/tests/unit/vmware/db/test_nsx_db.py create mode 100644 neutron/tests/unit/vmware/etc/fake_get_gwservice.json create mode 100644 neutron/tests/unit/vmware/etc/fake_get_lqueue.json create mode 100644 neutron/tests/unit/vmware/etc/fake_get_lrouter.json create mode 100644 neutron/tests/unit/vmware/etc/fake_get_lrouter_lport.json create mode 100644 neutron/tests/unit/vmware/etc/fake_get_lrouter_lport_att.json create mode 100644 neutron/tests/unit/vmware/etc/fake_get_lrouter_nat.json create mode 100644 neutron/tests/unit/vmware/etc/fake_get_lswitch.json create mode 100644 neutron/tests/unit/vmware/etc/fake_get_lswitch_lport.json create mode 100644 neutron/tests/unit/vmware/etc/fake_get_lswitch_lport_att.json create mode 100644 neutron/tests/unit/vmware/etc/fake_get_lswitch_lport_status.json create mode 100644 neutron/tests/unit/vmware/etc/fake_get_security_profile.json create mode 100644 neutron/tests/unit/vmware/etc/fake_post_gwservice.json create mode 100644 neutron/tests/unit/vmware/etc/fake_post_lqueue.json create mode 100644 neutron/tests/unit/vmware/etc/fake_post_lrouter.json create mode 100644 neutron/tests/unit/vmware/etc/fake_post_lrouter_lport.json create mode 100644 neutron/tests/unit/vmware/etc/fake_post_lrouter_nat.json create mode 100644 neutron/tests/unit/vmware/etc/fake_post_lswitch.json create mode 100644 neutron/tests/unit/vmware/etc/fake_post_lswitch_lport.json create mode 100644 neutron/tests/unit/vmware/etc/fake_post_security_profile.json create mode 100644 neutron/tests/unit/vmware/etc/fake_put_lrouter_lport_att.json create mode 100644 neutron/tests/unit/vmware/etc/fake_put_lswitch_lport_att.json create mode 100644 neutron/tests/unit/vmware/etc/neutron.conf.test create mode 100644 neutron/tests/unit/vmware/etc/nsx.ini.agentless.test create mode 100644 neutron/tests/unit/vmware/etc/nsx.ini.basic.test create mode 100644 neutron/tests/unit/vmware/etc/nsx.ini.combined.test create mode 100644 neutron/tests/unit/vmware/etc/nsx.ini.full.test create mode 100644 neutron/tests/unit/vmware/etc/nsx.ini.test create mode 100644 neutron/tests/unit/vmware/etc/nvp.ini.full.test create mode 100644 neutron/tests/unit/vmware/etc/vcns.ini.test create mode 100644 neutron/tests/unit/vmware/extensions/__init__.py create mode 100644 neutron/tests/unit/vmware/extensions/test_addresspairs.py create mode 100644 neutron/tests/unit/vmware/extensions/test_maclearning.py create mode 100644 neutron/tests/unit/vmware/extensions/test_networkgw.py create mode 100644 neutron/tests/unit/vmware/extensions/test_portsecurity.py create mode 100644 neutron/tests/unit/vmware/extensions/test_providernet.py create mode 100644 neutron/tests/unit/vmware/extensions/test_qosqueues.py create mode 100644 neutron/tests/unit/vmware/nsxlib/__init__.py create mode 100644 neutron/tests/unit/vmware/nsxlib/base.py create mode 100644 neutron/tests/unit/vmware/nsxlib/test_l2gateway.py create mode 100644 neutron/tests/unit/vmware/nsxlib/test_lsn.py create mode 100644 neutron/tests/unit/vmware/nsxlib/test_queue.py create mode 100644 neutron/tests/unit/vmware/nsxlib/test_router.py create mode 100644 neutron/tests/unit/vmware/nsxlib/test_secgroup.py create mode 100644 neutron/tests/unit/vmware/nsxlib/test_switch.py create mode 100644 neutron/tests/unit/vmware/nsxlib/test_versioning.py create mode 100644 neutron/tests/unit/vmware/test_agent_scheduler.py create mode 100644 neutron/tests/unit/vmware/test_dhcpmeta.py create mode 100644 neutron/tests/unit/vmware/test_nsx_opts.py create mode 100644 neutron/tests/unit/vmware/test_nsx_plugin.py create mode 100644 neutron/tests/unit/vmware/test_nsx_sync.py create mode 100644 neutron/tests/unit/vmware/test_nsx_utils.py create mode 100644 neutron/tests/unit/vmware/vshield/__init__.py create mode 100644 neutron/tests/unit/vmware/vshield/fake_vcns.py create mode 100644 neutron/tests/unit/vmware/vshield/test_edge_router.py create mode 100644 neutron/tests/unit/vmware/vshield/test_firewall_driver.py create mode 100644 neutron/tests/unit/vmware/vshield/test_fwaas_plugin.py create mode 100644 neutron/tests/unit/vmware/vshield/test_lbaas_plugin.py create mode 100644 neutron/tests/unit/vmware/vshield/test_loadbalancer_driver.py create mode 100644 neutron/tests/unit/vmware/vshield/test_vcns_driver.py create mode 100644 neutron/tests/unit/vmware/vshield/test_vpnaas_plugin.py create mode 100644 neutron/tests/var/ca.crt create mode 100644 neutron/tests/var/certandkey.pem create mode 100644 neutron/tests/var/certificate.crt create mode 100644 neutron/tests/var/privatekey.key create mode 100644 neutron/version.py create mode 100644 neutron/wsgi.py create mode 100644 openstack-common.conf create mode 100644 requirements.txt create mode 100755 run_tests.sh create mode 100644 setup.cfg create mode 100644 setup.py create mode 100644 test-requirements.txt create mode 100644 tools/check_i18n.py create mode 100644 tools/check_i18n_test_case.txt create mode 100755 tools/clean.sh create mode 100644 tools/i18n_cfg.py create mode 100644 tools/install_venv.py create mode 100644 tools/install_venv_common.py create mode 100755 tools/with_venv.sh create mode 100644 tox.ini diff --git a/.coveragerc b/.coveragerc new file mode 100644 index 000000000..5b10a1115 --- /dev/null +++ b/.coveragerc @@ -0,0 +1,7 @@ +[run] +branch = True +source = neutron +omit = neutron/tests/*,neutron/plugins/cisco/test/*,neutron/openstack/* + +[report] +ignore-errors = True diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..19526c2b1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,28 @@ +AUTHORS +build/* +build-stamp +ChangeLog +cover/ +.coverage +covhtml/ +dist/ +doc/build +*.DS_Store +*.pyc +neutron.egg-info/ +neutron/vcsversion.py +neutron/versioninfo +pbr*.egg/ +quantum.egg-info/ +quantum/vcsversion.py +quantum/versioninfo +run_tests.err.log +run_tests.log +setuptools*.egg/ +subunit.log +.testrepository +.tox/ +.venv/ +*.mo +*.sw? +*~ diff --git a/.mailmap b/.mailmap new file mode 100644 index 000000000..f3e7e5e1a --- /dev/null +++ b/.mailmap @@ -0,0 +1,11 @@ +# Format is: +# +# +lawrancejing +Jiajun Liu +Zhongyue Luo +Kun Huang +Zhenguo Niu +Isaku Yamahata +Isaku Yamahata +Morgan Fainberg diff --git a/.pylintrc b/.pylintrc new file mode 100644 index 000000000..87fbcd3b3 --- /dev/null +++ b/.pylintrc @@ -0,0 +1,42 @@ +# The format of this file isn't really documented; just use --generate-rcfile +[MASTER] +# Add to the black list. It should be a base name, not a +# path. You may set this option multiple times. +ignore=test + +[Messages Control] +# NOTE(justinsb): We might want to have a 2nd strict pylintrc in future +# C0111: Don't require docstrings on every method +# W0511: TODOs in code comments are fine. +# W0142: *args and **kwargs are fine. +# W0622: Redefining id is fine. +disable=C0111,W0511,W0142,W0622 + +[Basic] +# Variable names can be 1 to 31 characters long, with lowercase and underscores +variable-rgx=[a-z_][a-z0-9_]{0,30}$ + +# Argument names can be 2 to 31 characters long, with lowercase and underscores +argument-rgx=[a-z_][a-z0-9_]{1,30}$ + +# Method names should be at least 3 characters long +# and be lowecased with underscores +method-rgx=([a-z_][a-z0-9_]{2,50}|setUp|tearDown)$ + +# Module names matching neutron-* are ok (files in bin/) +module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+)|(neutron-[a-z0-9_-]+))$ + +# Don't require docstrings on tests. +no-docstring-rgx=((__.*__)|([tT]est.*)|setUp|tearDown)$ + +[Design] +max-public-methods=100 +min-public-methods=0 +max-args=6 + +[Variables] + +# List of additional names supposed to be defined in builtins. Remember that +# you should avoid to define new builtins when possible. +# _ is used by our localization +additional-builtins=_ diff --git a/.testr.conf b/.testr.conf new file mode 100644 index 000000000..c180b0319 --- /dev/null +++ b/.testr.conf @@ -0,0 +1,4 @@ +[DEFAULT] +test_command=OS_STDOUT_CAPTURE=1 OS_STDERR_CAPTURE=1 OS_LOG_CAPTURE=1 ${PYTHON:-python} -m subunit.run discover -t ./ ${OS_TEST_PATH:-./neutron/tests/unit} $LISTOPT $IDOPTION +test_id_option=--load-list $IDFILE +test_list_option=--list diff --git a/HACKING.rst b/HACKING.rst new file mode 100644 index 000000000..84f6f3e1c --- /dev/null +++ b/HACKING.rst @@ -0,0 +1,28 @@ +Neutron Style Commandments +======================= + +- Step 1: Read the OpenStack Style Commandments + http://docs.openstack.org/developer/hacking/ +- Step 2: Read on + +Neutron Specific Commandments +-------------------------- + +- [N320] Validate that LOG messages, except debug ones, have translations + +Creating Unit Tests +------------------- +For every new feature, unit tests should be created that both test and +(implicitly) document the usage of said feature. If submitting a patch for a +bug that had no unit test, a new passing unit test should be added. If a +submitted bug fix does have a unit test, be sure to add a new one that fails +without the patch and passes with the patch. + +All unittest classes must ultimately inherit from testtools.TestCase. In the +Neutron test suite, this should be done by inheriting from +neutron.tests.base.BaseTestCase. + +All setUp and tearDown methods must upcall using the super() method. +tearDown methods should be avoided and addCleanup calls should be preferred. +Never manually create tempfiles. Always use the tempfile fixtures from +the fixture library to ensure that they are cleaned up. diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..68c771a09 --- /dev/null +++ b/LICENSE @@ -0,0 +1,176 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 000000000..4e527c7fa --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,14 @@ +include AUTHORS +include README.rst +include ChangeLog +include LICENSE +include neutron/db/migration/README +include neutron/db/migration/alembic.ini +include neutron/db/migration/alembic_migrations/script.py.mako +include neutron/db/migration/alembic_migrations/versions/README +recursive-include neutron/locale * + +exclude .gitignore +exclude .gitreview + +global-exclude *.pyc diff --git a/README.rst b/README.rst new file mode 100644 index 000000000..57a5930b0 --- /dev/null +++ b/README.rst @@ -0,0 +1,25 @@ +# -- Welcome! + + You have come across a cloud computing network fabric controller. It has + identified itself as "Neutron." It aims to tame your (cloud) networking! + +# -- External Resources: + + The homepage for Neutron is: http://launchpad.net/neutron . Use this + site for asking for help, and filing bugs. Code is available on github at + . + + The latest and most in-depth documentation on how to use Neutron is + available at: . This includes: + + Neutron Administrator Guide + http://docs.openstack.org/trunk/openstack-network/admin/content/ + + Neutron API Reference: + http://docs.openstack.org/api/openstack-network/2.0/content/ + + The start of some developer documentation is available at: + http://wiki.openstack.org/NeutronDevelopment + + For help using or hacking on Neutron, you can send mail to + . diff --git a/TESTING.rst b/TESTING.rst new file mode 100644 index 000000000..0d6814e8e --- /dev/null +++ b/TESTING.rst @@ -0,0 +1,180 @@ +Testing Neutron +============================================================= + +Overview +-------- + +The unit tests are meant to cover as much code as possible and should +be executed without the service running. They are designed to test +the various pieces of the neutron tree to make sure any new changes +don't break existing functionality. + +The functional tests are intended to validate actual system +interaction. Mocks should be used sparingly, if at all. Care +should be taken to ensure that existing system resources are not +modified and that resources created in tests are properly cleaned +up. + +Development process +------------------- + +It is expected that any new changes that are proposed for merge +come with tests for that feature or code area. Ideally any bugs +fixes that are submitted also have tests to prove that they stay +fixed! In addition, before proposing for merge, all of the +current tests should be passing. + +Virtual environments +~~~~~~~~~~~~~~~~~~~~ + +Testing OpenStack projects, including Neutron, is made easier with `DevStack `_. + +Create a machine (such as a VM or Vagrant box) running a distribution supported +by DevStack and install DevStack there. For example, there is a Vagrant script +for DevStack at https://github.com/bcwaldon/vagrant_devstack. + + .. note:: + + If you prefer not to use DevStack, you can still check out source code on your local + machine and develop from there. + + +Running unit tests +------------------ + +There are three mechanisms for running tests: run_tests.sh, tox, +and nose. Before submitting a patch for review you should always +ensure all test pass; a tox run is triggered by the jenkins gate +executed on gerrit for each patch pushed for review. + +With these mechanisms you can either run the tests in the standard +environment or create a virtual environment to run them in. + +By default after running all of the tests, any pep8 errors +found in the tree will be reported. + + +With `run_tests.sh` +~~~~~~~~~~~~~~~~~~~ + +You can use the `run_tests.sh` script in the root source directory to execute +tests in a virtualenv:: + + ./run_tests -V + + +With `nose` +~~~~~~~~~~~ + +You can use `nose`_ to run individual tests, as well as use for debugging +portions of your code:: + + source .venv/bin/activate + pip install nose + nosetests + +There are disadvantages to running Nose - the tests are run sequentially, so +race condition bugs will not be triggered, and the full test suite will +take significantly longer than tox & testr. The upside is that testr has +some rough edges when it comes to diagnosing errors and failures, and there is +no easy way to set a breakpoint in the Neutron code, and enter an +interactive debugging session while using testr. + +.. _nose: https://nose.readthedocs.org/en/latest/index.html + +With `tox` +~~~~~~~~~~ + +Neutron, like other OpenStack projects, uses `tox`_ for managing the virtual +environments for running test cases. It uses `Testr`_ for managing the running +of the test cases. + +Tox handles the creation of a series of `virtualenvs`_ that target specific +versions of Python (2.6, 2.7, 3.3, etc). + +Testr handles the parallel execution of series of test cases as well as +the tracking of long-running tests and other things. + +Running unit tests is as easy as executing this in the root directory of the +Neutron source code:: + + tox + +For more information on the standard Tox-based test infrastructure used by +OpenStack and how to do some common test/debugging procedures with Testr, +see this wiki page: + + https://wiki.openstack.org/wiki/Testr + +.. _Testr: https://wiki.openstack.org/wiki/Testr +.. _tox: http://tox.readthedocs.org/en/latest/ +.. _virtualenvs: https://pypi.python.org/pypi/virtualenv + + +Running individual tests +~~~~~~~~~~~~~~~~~~~~~~~~ + +For running individual test modules or cases, you just need to pass +the dot-separated path to the module you want as an argument to it. + +For executing a specific test case, specify the name of the test case +class separating it from the module path with a colon. + +For example, the following would run only the JSONV2TestCase tests from +neutron/tests/unit/test_api_v2.py:: + + $ ./run_tests.sh neutron.tests.unit.test_api_v2:JSONV2TestCase + +or:: + + $ ./tox neutron.tests.unit.test_api_v2:JSONV2TestCase + +Adding more tests +~~~~~~~~~~~~~~~~~ + +Neutron has a fast growing code base and there is plenty of areas that +need to be covered by unit and functional tests. + +To get a grasp of the areas where tests are needed, you can check +current coverage by running:: + + $ ./run_tests.sh -c + +Debugging +--------- + +By default, calls to pdb.set_trace() will be ignored when tests +are run. For pdb statements to work, invoke run_tests as follows:: + + $ ./run_tests.sh -d [test module path] + +It's possible to debug tests in a tox environment:: + + $ tox -e venv -- python -m testtools.run [test module path] + +Tox-created virtual environments (venv's) can also be activated +after a tox run and reused for debugging:: + + $ tox -e venv + $ . .tox/venv/bin/activate + $ python -m testtools.run [test module path] + +Tox packages and installs the neutron source tree in a given venv +on every invocation, but if modifications need to be made between +invocation (e.g. adding more pdb statements), it is recommended +that the source tree be installed in the venv in editable mode:: + + # run this only after activating the venv + $ pip install --editable . + +Editable mode ensures that changes made to the source tree are +automatically reflected in the venv, and that such changes are not +overwritten during the next tox run. + +Post-mortem debugging +~~~~~~~~~~~~~~~~~~~~~ + +Setting OS_POST_MORTEM_DEBUG=1 in the shell environment will ensure +that pdb.post_mortem() will be invoked on test failure:: + + $ OS_POST_MORTEM_DEBUG=1 ./run_tests.sh -d [test module path] diff --git a/babel.cfg b/babel.cfg new file mode 100644 index 000000000..15cd6cb76 --- /dev/null +++ b/babel.cfg @@ -0,0 +1,2 @@ +[python: **.py] + diff --git a/bin/neutron-rootwrap b/bin/neutron-rootwrap new file mode 100755 index 000000000..284037846 --- /dev/null +++ b/bin/neutron-rootwrap @@ -0,0 +1,21 @@ +#!/usr/bin/env python +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright (c) 2012 OpenStack Foundation. +# 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. + +from oslo.rootwrap import cmd + +cmd.main() diff --git a/bin/neutron-rootwrap-xen-dom0 b/bin/neutron-rootwrap-xen-dom0 new file mode 100755 index 000000000..3f4251a4e --- /dev/null +++ b/bin/neutron-rootwrap-xen-dom0 @@ -0,0 +1,141 @@ +#!/usr/bin/env python + +# Copyright (c) 2012 Openstack Foundation +# 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. + +"""Neutron root wrapper for dom0. + +Executes networking commands in dom0. The XenAPI plugin is +responsible determining whether a command is safe to execute. + +""" +from __future__ import print_function + +import ConfigParser +import json +import os +import select +import sys +import traceback + +import XenAPI + + +RC_UNAUTHORIZED = 99 +RC_NOCOMMAND = 98 +RC_BADCONFIG = 97 +RC_XENAPI_ERROR = 96 + + +def parse_args(): + # Split arguments, require at least a command + exec_name = sys.argv.pop(0) + # argv[0] required; path to conf file + if len(sys.argv) < 2: + print("%s: No command specified" % exec_name) + sys.exit(RC_NOCOMMAND) + + config_file = sys.argv.pop(0) + user_args = sys.argv[:] + + return exec_name, config_file, user_args + + +def _xenapi_section_name(config): + sections = [sect for sect in config.sections() if sect.lower() == "xenapi"] + if len(sections) == 1: + return sections[0] + + print("Multiple [xenapi] sections or no [xenapi] section found!") + sys.exit(RC_BADCONFIG) + + +def load_configuration(exec_name, config_file): + config = ConfigParser.RawConfigParser() + config.read(config_file) + try: + exec_dirs = config.get("DEFAULT", "exec_dirs").split(",") + filters_path = config.get("DEFAULT", "filters_path").split(",") + section = _xenapi_section_name(config) + url = config.get(section, "xenapi_connection_url") + username = config.get(section, "xenapi_connection_username") + password = config.get(section, "xenapi_connection_password") + except ConfigParser.Error: + print("%s: Incorrect configuration file: %s" % (exec_name, config_file)) + sys.exit(RC_BADCONFIG) + if not url or not password: + msg = ("%s: Must specify xenapi_connection_url, " + "xenapi_connection_username (optionally), and " + "xenapi_connection_password in %s") % (exec_name, config_file) + print(msg) + sys.exit(RC_BADCONFIG) + return dict( + filters_path=filters_path, + url=url, + username=username, + password=password, + exec_dirs=exec_dirs, + ) + + +def filter_command(exec_name, filters_path, user_args, exec_dirs): + # Add ../ to sys.path to allow running from branch + possible_topdir = os.path.normpath(os.path.join(os.path.abspath(exec_name), + os.pardir, os.pardir)) + if os.path.exists(os.path.join(possible_topdir, "neutron", "__init__.py")): + sys.path.insert(0, possible_topdir) + + from oslo.rootwrap import wrapper + + # Execute command if it matches any of the loaded filters + filters = wrapper.load_filters(filters_path) + filter_match = wrapper.match_filter( + filters, user_args, exec_dirs=exec_dirs) + if not filter_match: + print("Unauthorized command: %s" % ' '.join(user_args)) + sys.exit(RC_UNAUTHORIZED) + + +def run_command(url, username, password, user_args, cmd_input): + try: + session = XenAPI.Session(url) + session.login_with_password(username, password) + host = session.xenapi.session.get_this_host(session.handle) + result = session.xenapi.host.call_plugin( + host, 'netwrap', 'run_command', + {'cmd': json.dumps(user_args), 'cmd_input': json.dumps(cmd_input)}) + return json.loads(result) + except Exception as e: + traceback.print_exc() + sys.exit(RC_XENAPI_ERROR) + + +def main(): + exec_name, config_file, user_args = parse_args() + config = load_configuration(exec_name, config_file) + filter_command(exec_name, config['filters_path'], user_args, config['exec_dirs']) + + # If data is available on the standard input, we need to pass it to the + # command executed in dom0 + cmd_input = None + if select.select([sys.stdin,],[],[],0.0)[0]: + cmd_input = "".join(sys.stdin) + + return run_command(config['url'], config['username'], config['password'], + user_args, cmd_input) + + +if __name__ == '__main__': + print(main()) diff --git a/doc/Makefile b/doc/Makefile new file mode 100644 index 000000000..b63e30032 --- /dev/null +++ b/doc/Makefile @@ -0,0 +1,96 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +SPHINXSOURCE = source +PAPER = +BUILDDIR = build + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) $(SPHINXSOURCE) + +.PHONY: help clean html dirhtml pickle json htmlhelp qthelp latex changes linkcheck doctest + +.DEFAULT_GOAL = html + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +clean: + -rm -rf $(BUILDDIR)/* + if [ -f .autogenerated ] ; then \ + cat .autogenerated | xargs rm ; \ + rm .autogenerated ; \ + fi + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/nova.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/nova.qhc" + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \ + "run these through (pdf)latex." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." diff --git a/doc/pom.xml b/doc/pom.xml new file mode 100644 index 000000000..6fc579f80 --- /dev/null +++ b/doc/pom.xml @@ -0,0 +1,135 @@ + + + + 4.0.0 + + org.openstack.docs + openstack-guide + 1.0.0-SNAPSHOT + jar + OpenStack Guides + + + + + + Rackspace Research Repositories + + true + + + + rackspace-research + Rackspace Research Repository + http://maven.research.rackspacecloud.com/content/groups/public/ + + + + + rackspace-research + Rackspace Research Repository + http://maven.research.rackspacecloud.com/content/groups/public/ + + + + + + + + + target/docbkx/pdf + + **/*.fo + + + + + + + com.rackspace.cloud.api + clouddocs-maven-plugin + 1.0.5-SNAPSHOT + + + goal1 + + generate-pdf + + generate-sources + + false + + + + goal2 + + generate-webhelp + + generate-sources + + + 0 + openstackdocs + 1 + UA-17511903-6 + + appendix toc,title + article/appendix nop + article toc,title + book title,figure,table,example,equation + chapter toc,title + part toc,title + preface toc,title + qandadiv toc + qandaset toc + reference toc,title + set toc,title + + + 0 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + true + source/docbkx + + neutron-api-1.0/neutron-api-guide.xml + + reviewer + openstack + + + + + + diff --git a/doc/source/conf.py b/doc/source/conf.py new file mode 100644 index 000000000..b2f619a46 --- /dev/null +++ b/doc/source/conf.py @@ -0,0 +1,250 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2010 OpenStack Foundation. +# +# 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. + +# +# Keystone documentation build configuration file, created by +# sphinx-quickstart on Tue May 18 13:50:15 2010. +# +# This file is execfile()'d with the current directory set to it's containing +# dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import os +import sys + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +BASE_DIR = os.path.dirname(os.path.abspath(__file__)) +NEUTRON_DIR = os.path.abspath(os.path.join(BASE_DIR, "..", "..")) +sys.path.insert(0, NEUTRON_DIR) + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = ['sphinx.ext.autodoc', + 'sphinx.ext.coverage', + 'sphinx.ext.ifconfig', + 'sphinx.ext.intersphinx', + 'sphinx.ext.pngmath', + 'sphinx.ext.graphviz', + 'sphinx.ext.todo', + 'oslosphinx'] + +todo_include_todos = True + +# Add any paths that contain templates here, relative to this directory. +templates_path = [] +if os.getenv('HUDSON_PUBLISH_DOCS'): + templates_path = ['_ga', '_templates'] +else: + templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The encoding of source files. +#source_encoding = 'utf-8' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'Neutron' +copyright = u'2011-present, OpenStack Foundation.' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# Version info +from neutron.version import version_info as neutron_version +release = neutron_version.release_string() +# The short X.Y version. +version = neutron_version.version_string() + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +#language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of documents that shouldn't be included in the build. +# unused_docs = [] + +# List of directories, relative to source directory, that shouldn't be searched +# for source files. +exclude_trees = [] + +# The reST default role (for this markup: `text`) to use for all documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +show_authors = True + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +modindex_common_prefix = ['neutron.'] + +# -- Options for man page output -------------------------------------------- + +# Grouping the document tree for man pages. +# List of tuples 'sourcefile', 'target', u'title', u'Authors name', 'manual' + +man_pages = [ + ('man/neutron-server', 'neutron-server', u'Neutron Server', + [u'OpenStack'], 1) +] + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. Major themes that come with +# Sphinx are currently 'default' and 'sphinxdoc'. +# html_theme_path = ["."] +# html_theme = '_theme' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +#html_theme_options = {} + +# Add any paths that contain custom themes here, relative to this directory. +#html_theme_path = ['_theme'] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = None + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +# html_static_path = ['_static'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' +git_cmd = "git log --pretty=format:'%ad, commit %h' --date=local -n1" +html_last_updated_fmt = os.popen(git_cmd).read() + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_use_modindex = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +#html_show_sourcelink = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = '' + +# Output file base name for HTML help builder. +htmlhelp_basename = 'neutrondoc' + + +# -- Options for LaTeX output ------------------------------------------------ + +# The paper size ('letter' or 'a4'). +#latex_paper_size = 'letter' + +# The font size ('10pt', '11pt' or '12pt'). +#latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, +# documentclass [howto/manual]). +latex_documents = [ + ('index', 'Neutron.tex', u'Neutron Documentation', + u'Neutron development team', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# Additional stuff for the LaTeX preamble. +#latex_preamble = '' + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_use_modindex = True + +# Example configuration for intersphinx: refer to the Python standard library. +intersphinx_mapping = {'python': ('http://docs.python.org/', None), + 'nova': ('http://nova.openstack.org', None), + 'swift': ('http://swift.openstack.org', None), + 'glance': ('http://glance.openstack.org', None), + 'horizon': ('http://horizon.openstack.org', None), + 'keystone': ('http://keystone.openstack.org', None), + } diff --git a/doc/source/devref/advanced_services.rst b/doc/source/devref/advanced_services.rst new file mode 100644 index 000000000..2e877128a --- /dev/null +++ b/doc/source/devref/advanced_services.rst @@ -0,0 +1,7 @@ +Advanced Services +================= + +.. toctree:: + fwaas + lbaas + vpnaas diff --git a/doc/source/devref/api_extensions.rst b/doc/source/devref/api_extensions.rst new file mode 100644 index 000000000..2c8b3f64e --- /dev/null +++ b/doc/source/devref/api_extensions.rst @@ -0,0 +1,18 @@ +============== +API Extensions +============== + +API extensions is the standard way of introducing new functionality +to the Neutron project, it allows plugins to +determine if they wish to support the functionality or not. + +Examples +======== + +The easiest way to demonstrate how an API extension is written, is +by studying an existing API extension and explaining the different layers. + +.. toctree:: + :maxdepth: 1 + + security_group_api diff --git a/doc/source/devref/api_layer.rst b/doc/source/devref/api_layer.rst new file mode 100644 index 000000000..a3e5e7f69 --- /dev/null +++ b/doc/source/devref/api_layer.rst @@ -0,0 +1,57 @@ +Neutron WSGI/HTTP API layer +=========================== + +This section will cover the internals of Neutron's HTTP API, and the classes +in Neutron that can be used to create Extensions to the Neutron API. + +Python web applications interface with webservers through the Python Web +Server Gateway Interface (WSGI) - defined in `PEP 333 `_ + +Startup +------- + +Neutron's WSGI server is started from the `server module `_ +and the entry point `serve_wsgi` is called to build an instance of the +`NeutronApiService`_, which is then returned to the server module, +which spawns a `Eventlet`_ `GreenPool`_ that will run the WSGI +application and respond to requests from clients. + + +.. _NeutronApiService: http://git.openstack.org/cgit/openstack/neutron/tree/neutron/service.py + +.. _Eventlet: http://eventlet.net/ + +.. _GreenPool: http://eventlet.net/doc/modules/greenpool.html + +WSGI Application +---------------- + +During the building of the NeutronApiService, the `_run_wsgi` function +creates a WSGI application using the `load_paste_app` function inside +`config.py`_ - which parses `api-paste.ini`_ - in order to create a WSGI app +using `Paste`_'s `deploy`_. + +The api-paste.ini file defines the WSGI applications and routes - using the +`Paste INI file format`_. + +The INI file directs paste to instantiate the `APIRouter`_ class of +Neutron, which contains several methods that map Neutron resources (such as +Ports, Networks, Subnets) to URLs, and the controller for each resource. + + +.. _config.py: http://git.openstack.org/cgit/openstack/neutron/tree/neutron/common/config.py + +.. _api-paste.ini: http://git.openstack.org/cgit/openstack/neutron/tree/etc/api-paste.ini + +.. _APIRouter: http://git.openstack.org/cgit/openstack/neutron/tree/neutron/api/v2/router.py + +.. _Paste: http://pythonpaste.org/ + +.. _Deploy: http://pythonpaste.org/deploy/ + +.. _Paste INI file format: http://pythonpaste.org/deploy/#applications + +Further reading +--------------- + +`Yong Sheng Gong: Deep Dive into Neutron `_ diff --git a/doc/source/devref/common.rst b/doc/source/devref/common.rst new file mode 100644 index 000000000..537d4c291 --- /dev/null +++ b/doc/source/devref/common.rst @@ -0,0 +1,25 @@ +.. + Copyright 2010-2011 United States Government as represented by the + Administrator of the National Aeronautics and Space Administration. + 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. + +Open Stack Common +================= + +A number of modules used are from the openstack-common project. +The imported files are in 'neutron/openstack-common.conf'. +More information can be found at `OpenStack Common`_. + +.. _`OpenStack Common`: https://launchpad.net/openstack-common diff --git a/doc/source/devref/db_layer.rst b/doc/source/devref/db_layer.rst new file mode 100644 index 000000000..54eff65b7 --- /dev/null +++ b/doc/source/devref/db_layer.rst @@ -0,0 +1,2 @@ +Neutron Database Layer +====================== diff --git a/doc/source/devref/development.environment.rst b/doc/source/devref/development.environment.rst new file mode 100644 index 000000000..dc4be0838 --- /dev/null +++ b/doc/source/devref/development.environment.rst @@ -0,0 +1,49 @@ +.. + Copyright 2010-2013 United States Government as represented by the + Administrator of the National Aeronautics and Space Administration. + 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. + +Setting Up a Development Environment +==================================== + +This page describes how to setup a working Python development +environment that can be used in developing Neutron on Ubuntu, Fedora or +Mac OS X. These instructions assume you're already familiar with +Git and Gerrit, which is a code repository mirror and code review toolset +, however if you aren't please see `this Git tutorial`_ for an introduction +to using Git and `this wiki page`_ for a tutorial on using Gerrit and Git for +code contribution to Openstack projects. + +.. _this Git tutorial: http://git-scm.com/book/en/Getting-Started +.. _this wiki page: https://wiki.openstack.org/wiki/Gerrit_Workflow + +Following these instructions will allow you to run the Neutron unit +tests. If you want to be able to run Neutron in a full OpenStack environment, +you can use the excellent `DevStack`_ project to do so. There is a wiki page +that describes `setting up Neutron using DevStack`_. + +.. _DevStack: https://github.com/openstack-dev/devstack +.. _setting up Neutron using Devstack: https://wiki.openstack.org/wiki/NeutronDevstack + +Getting the code +---------------- + +Grab the code from GitHub:: + + git clone git://git.openstack.org/openstack/neutron.git + cd neutron + + +.. include:: ../../../TESTING.rst diff --git a/doc/source/devref/fwaas.rst b/doc/source/devref/fwaas.rst new file mode 100644 index 000000000..7b7680c6f --- /dev/null +++ b/doc/source/devref/fwaas.rst @@ -0,0 +1,30 @@ +Firewall as a Service +===================== + +`Design Document`_ + +.. _Design Document: https://docs.google.com/document/d/1PJaKvsX2MzMRlLGfR0fBkrMraHYF0flvl0sqyZ704tA/edit#heading=h.aed6tiupj0qk + +Plugin +------ +.. automodule:: neutron.services.firewall.fwaas_plugin + +.. autoclass:: FirewallPlugin + :members: + +Database layer +-------------- + +.. automodule:: neutron.db.firewall.firewall_db + +.. autoclass:: Firewall_db_mixin + :members: + + +Driver layer +------------ + +.. automodule:: neutron.services.firewall.drivers.fwaas_base + +.. autoclass:: FwaasDriverBase + :members: diff --git a/doc/source/devref/index.rst b/doc/source/devref/index.rst new file mode 100644 index 000000000..46d2edd0e --- /dev/null +++ b/doc/source/devref/index.rst @@ -0,0 +1,65 @@ +.. + Copyright 2010-2011 United States Government as represented by the + Administrator of the National Aeronautics and Space Administration. + 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. + +Developer Guide +=============== + +In the Developer Guide, you will find information on Neutron's lower level +programming APIs. There are sections that cover the core pieces of Neutron, +including its database, message queue, and scheduler components. There are +also subsections that describe specific plugins inside Neutron. + + +Programming HowTos and Tutorials +-------------------------------- +.. toctree:: + :maxdepth: 3 + + development.environment + + +Neutron Internals +----------------- +.. toctree:: + :maxdepth: 3 + + api_layer + api_extensions + plugin-api + db_layer + rpc_api + layer3 + l2_agents + advanced_services + + +Module Reference +---------------- +.. toctree:: + :maxdepth: 3 + +.. todo:: + + Add in all the big modules as automodule indexes. + + +Indices and tables +------------------ + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/doc/source/devref/l2_agents.rst b/doc/source/devref/l2_agents.rst new file mode 100644 index 000000000..83786dabe --- /dev/null +++ b/doc/source/devref/l2_agents.rst @@ -0,0 +1,7 @@ +L2 Agent Networking +------------------- +.. toctree:: + :maxdepth: 3 + + openvswitch_agent + linuxbridge_agent diff --git a/doc/source/devref/layer3.rst b/doc/source/devref/layer3.rst new file mode 100644 index 000000000..571f2a09a --- /dev/null +++ b/doc/source/devref/layer3.rst @@ -0,0 +1,199 @@ +Layer 3 Networking in Neutron - via Layer 3 agent & OpenVSwitch +=============================================================== + +This page discusses the usage of Neutron with Layer 3 functionality enabled. + +Neutron logical network setup +----------------------------- +:: + + vagrant@precise64:~/devstack$ neutron net-list + +--------------------------------------+---------+--------------------------------------------------+ + | id | name | subnets | + +--------------------------------------+---------+--------------------------------------------------+ + | 84b6b0cc-503d-448a-962f-43def05e85be | public | 3a56da7c-2f6e-41af-890a-b324d7bc374d | + | a4b4518c-800d-4357-9193-57dbb42ac5ee | private | 1a2d26fb-b733-4ab3-992e-88554a87afa6 10.0.0.0/24 | + +--------------------------------------+---------+--------------------------------------------------+ + vagrant@precise64:~/devstack$ neutron subnet-list + +--------------------------------------+------+-------------+--------------------------------------------+ + | id | name | cidr | allocation_pools | + +--------------------------------------+------+-------------+--------------------------------------------+ + | 1a2d26fb-b733-4ab3-992e-88554a87afa6 | | 10.0.0.0/24 | {"start": "10.0.0.2", "end": "10.0.0.254"} | + +--------------------------------------+------+-------------+--------------------------------------------+ + vagrant@precise64:~/devstack$ neutron port-list + +--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+ + | id | name | mac_address | fixed_ips | + +--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+ + | 0ba8700e-da06-4318-8fe9-00676dd994b8 | | fa:16:3e:78:43:5b | {"subnet_id": "1a2d26fb-b733-4ab3-992e-88554a87afa6", "ip_address": "10.0.0.1"} | + | b2044570-ad52-4f31-a2c3-5d767dc9a8a7 | | fa:16:3e:5b:cf:4c | {"subnet_id": "1a2d26fb-b733-4ab3-992e-88554a87afa6", "ip_address": "10.0.0.3"} | + | bb60d1bb-0cab-41cb-9678-30d2b2fdb169 | | fa:16:3e:af:a9:bd | {"subnet_id": "1a2d26fb-b733-4ab3-992e-88554a87afa6", "ip_address": "10.0.0.2"} | + +--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+ + + vagrant@precise64:~/devstack$ neutron subnet-show 1a2d26fb-b733-4ab3-992e-88554a87afa6 + +------------------+--------------------------------------------+ + | Field | Value | + +------------------+--------------------------------------------+ + | allocation_pools | {"start": "10.0.0.2", "end": "10.0.0.254"} | + | cidr | 10.0.0.0/24 | + | dns_nameservers | | + | enable_dhcp | True | + | gateway_ip | 10.0.0.1 | + | host_routes | | + | id | 1a2d26fb-b733-4ab3-992e-88554a87afa6 | + | ip_version | 4 | + | name | | + | network_id | a4b4518c-800d-4357-9193-57dbb42ac5ee | + | tenant_id | 3368290ab10f417390acbb754160dbb2 | + +------------------+--------------------------------------------+ + + +Neutron logical router setup +---------------------------- + +* http://docs.openstack.org/admin-guide-cloud/content/ch_networking.html#under_the_hood_openvswitch_scenario1_network + + +:: + + vagrant@precise64:~/devstack$ neutron router-list + +--------------------------------------+---------+--------------------------------------------------------+ + | id | name | external_gateway_info | + +--------------------------------------+---------+--------------------------------------------------------+ + | 569469c7-a2a5-4d32-9cdd-f0b18a13f45e | router1 | {"network_id": "84b6b0cc-503d-448a-962f-43def05e85be"} | + +--------------------------------------+---------+--------------------------------------------------------+ + vagrant@precise64:~/devstack$ neutron router-show router1 + +-----------------------+--------------------------------------------------------+ + | Field | Value | + +-----------------------+--------------------------------------------------------+ + | admin_state_up | True | + | external_gateway_info | {"network_id": "84b6b0cc-503d-448a-962f-43def05e85be"} | + | id | 569469c7-a2a5-4d32-9cdd-f0b18a13f45e | + | name | router1 | + | routes | | + | status | ACTIVE | + | tenant_id | 3368290ab10f417390acbb754160dbb2 | + +-----------------------+--------------------------------------------------------+ + vagrant@precise64:~/devstack$ neutron router-port-list router1 + +--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+ + | id | name | mac_address | fixed_ips | + +--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+ + | 0ba8700e-da06-4318-8fe9-00676dd994b8 | | fa:16:3e:78:43:5b | {"subnet_id": "1a2d26fb-b733-4ab3-992e-88554a87afa6", "ip_address": "10.0.0.1"} | + +--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+ + +Neutron Routers are realized in OpenVSwitch +------------------------------------------- + +.. image:: http://docs.openstack.org/admin-guide-cloud/content/figures/10/a/common/figures/under-the-hood-scenario-1-ovs-network.png + + +"router1" in the Neutron logical network is realized through a port ("qr-0ba8700e-da") in OpenVSwitch - attached to "br-int":: + + vagrant@precise64:~/devstack$ sudo ovs-vsctl show + b9b27fc3-5057-47e7-ba64-0b6afe70a398 + Bridge br-int + Port "qr-0ba8700e-da" + tag: 1 + Interface "qr-0ba8700e-da" + type: internal + Port br-int + Interface br-int + type: internal + Port int-br-ex + Interface int-br-ex + Port "tapbb60d1bb-0c" + tag: 1 + Interface "tapbb60d1bb-0c" + type: internal + Port "qvob2044570-ad" + tag: 1 + Interface "qvob2044570-ad" + Port "int-br-eth1" + Interface "int-br-eth1" + Bridge "br-eth1" + Port "phy-br-eth1" + Interface "phy-br-eth1" + Port "br-eth1" + Interface "br-eth1" + type: internal + Bridge br-ex + Port phy-br-ex + Interface phy-br-ex + Port "qg-0143bce1-08" + Interface "qg-0143bce1-08" + type: internal + Port br-ex + Interface br-ex + type: internal + ovs_version: "1.4.0+build0" + + + vagrant@precise64:~/devstack$ brctl show + bridge name bridge id STP enabled interfaces + br-eth1 0000.e2e7fc5ccb4d no + br-ex 0000.82ee46beaf4d no phy-br-ex + qg-39efb3f9-f0 + qg-77e0666b-cd + br-int 0000.5e46cb509849 no int-br-ex + qr-54c9cd83-43 + qvo199abeb2-63 + qvo1abbbb60-b8 + tap74b45335-cc + qbr199abeb2-63 8000.ba06e5f8675c no qvb199abeb2-63 + tap199abeb2-63 + qbr1abbbb60-b8 8000.46a87ed4fb66 no qvb1abbbb60-b8 + tap1abbbb60-b8 + virbr0 8000.000000000000 yes + +Finding the router in ip/ipconfig +--------------------------------- + +* http://docs.openstack.org/admin-guide-cloud/content/ch_networking.html + + The neutron-l3-agent uses the Linux IP stack and iptables to perform L3 forwarding and NAT. + In order to support multiple routers with potentially overlapping IP addresses, neutron-l3-agent + defaults to using Linux network namespaces to provide isolated forwarding contexts. As a result, + the IP addresses of routers will not be visible simply by running "ip addr list" or "ifconfig" on + the node. Similarly, you will not be able to directly ping fixed IPs. + + To do either of these things, you must run the command within a particular router's network + namespace. The namespace will have the name "qrouter-. + +.. image:: http://docs.openstack.org/admin-guide-cloud/content/figures/10/a/common/figures/under-the-hood-scenario-1-ovs-netns.png + +For example:: + + vagrant@precise64:~$ neutron router-list + +--------------------------------------+---------+--------------------------------------------------------+ + | id | name | external_gateway_info | + +--------------------------------------+---------+--------------------------------------------------------+ + | ad948c6e-afb6-422a-9a7b-0fc44cbb3910 | router1 | {"network_id": "e6634fef-03fa-482a-9fa7-e0304ce5c995"} | + +--------------------------------------+---------+--------------------------------------------------------+ + vagrant@precise64:~/devstack$ sudo ip netns exec qrouter-ad948c6e-afb6-422a-9a7b-0fc44cbb3910 ip addr list + 18: lo: mtu 16436 qdisc noqueue state UNKNOWN + link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 + inet 127.0.0.1/8 scope host lo + inet6 ::1/128 scope host + valid_lft forever preferred_lft forever + 19: qr-54c9cd83-43: mtu 1500 qdisc noqueue state UNKNOWN + link/ether fa:16:3e:dd:c1:8f brd ff:ff:ff:ff:ff:ff + inet 10.0.0.1/24 brd 10.0.0.255 scope global qr-54c9cd83-43 + inet6 fe80::f816:3eff:fedd:c18f/64 scope link + valid_lft forever preferred_lft forever + 20: qg-77e0666b-cd: mtu 1500 qdisc noqueue state UNKNOWN + link/ether fa:16:3e:1f:d3:ec brd ff:ff:ff:ff:ff:ff + inet 192.168.27.130/28 brd 192.168.27.143 scope global qg-77e0666b-cd + inet6 fe80::f816:3eff:fe1f:d3ec/64 scope link + valid_lft forever preferred_lft forever + + +Provider Networking +------------------- + +Neutron can also be configured to create `provider networks `_ + +Further Reading +--------------- +* `Packet Pushers - Neutron Network Implementation on Linux `_ +* `OpenStack Cloud Administrator Guide `_ +* `Neutron - Layer 3 API extension usage guide `_ +* `Darragh O'Reilly - The Quantum L3 router and floating IPs `_ diff --git a/doc/source/devref/lbaas.rst b/doc/source/devref/lbaas.rst new file mode 100644 index 000000000..86f408718 --- /dev/null +++ b/doc/source/devref/lbaas.rst @@ -0,0 +1,32 @@ +Loadbalancer as a Service +========================= + + +https://wiki.openstack.org/wiki/Neutron/LBaaS/Architecture + +https://wiki.openstack.org/wiki/Neutron/LBaaS/API_1.0 + + +Plugin +------ +.. automodule:: neutron.services.loadbalancer.plugin + +.. autoclass:: LoadBalancerPlugin + :members: + +Database layer +-------------- + +.. automodule:: neutron.db.loadbalancer.loadbalancer_db + +.. autoclass:: LoadBalancerPluginDb + :members: + + +Driver layer +------------ + +.. automodule:: neutron.services.loadbalancer.drivers.abstract_driver + +.. autoclass:: LoadBalancerAbstractDriver + :members: diff --git a/doc/source/devref/linuxbridge_agent.rst b/doc/source/devref/linuxbridge_agent.rst new file mode 100644 index 000000000..2c7b81d4f --- /dev/null +++ b/doc/source/devref/linuxbridge_agent.rst @@ -0,0 +1,2 @@ +L2 Networking with Linux Bridge +------------------------------- diff --git a/doc/source/devref/openvswitch_agent.rst b/doc/source/devref/openvswitch_agent.rst new file mode 100644 index 000000000..1c441e381 --- /dev/null +++ b/doc/source/devref/openvswitch_agent.rst @@ -0,0 +1,21 @@ +==================== +OpenVSwitch L2 Agent +==================== + +This Agent uses the `OpenVSwitch`_ virtual switch to create L2 +connectivity for instances, along with bridges created in conjunction +with OpenStack Nova for filtering. + +ovs-neutron-agent can be configured to use two different networking technologies to create tenant isolation, either GRE tunnels or VLAN tags. + +VLAN Tags +--------- + +.. image:: http://docs.openstack.org/admin-guide-cloud/content/figures/10/a/common/figures/under-the-hood-scenario-1-ovs-compute.png + +.. _OpenVSwitch: http://openvswitch.org + +Further Reading +--------------- + +* `Darragh O'Reilly - The Open vSwitch plugin with VLANs `_ diff --git a/doc/source/devref/plugin-api.rst b/doc/source/devref/plugin-api.rst new file mode 100644 index 000000000..bec544b0e --- /dev/null +++ b/doc/source/devref/plugin-api.rst @@ -0,0 +1,12 @@ +Neutron Plugin Architecture +=========================== + +`Salvatore Orlando: How to write a Neutron Plugin (if you really need to) `_ + +Plugin API +---------- + +.. automodule:: neutron.neutron_plugin_base_v2 + +.. autoclass:: NeutronPluginBaseV2 + :members: diff --git a/doc/source/devref/rpc_api.rst b/doc/source/devref/rpc_api.rst new file mode 100644 index 000000000..77c851103 --- /dev/null +++ b/doc/source/devref/rpc_api.rst @@ -0,0 +1,2 @@ +Neutron RCP API Layer +===================== diff --git a/doc/source/devref/security_group_api.rst b/doc/source/devref/security_group_api.rst new file mode 100644 index 000000000..ad990d9e4 --- /dev/null +++ b/doc/source/devref/security_group_api.rst @@ -0,0 +1,50 @@ +Guided Tour: The Neutron Security Group API +=========================================== + +https://wiki.openstack.org/wiki/Neutron/SecurityGroups + + +API Extension +------------- + +The API extension is the 'front' end portion of the code, which handles defining a `REST-ful API`_, which is used by tenants. + + +.. _`REST-ful API`: https://github.com/openstack/neutron/blob/master/neutron/extensions/securitygroup.py + + +Database API +------------ + +The Security Group API extension adds a number of `methods to the database layer`_ of Neutron + +.. _`methods to the database layer`: https://github.com/openstack/neutron/blob/master/neutron/db/securitygroups_db.py + +Agent RPC +--------- + +This portion of the code handles processing requests from tenants, after they have been stored in the database. It involves messaging all the L2 agents +running on the compute nodes, and modifying the IPTables rules on each hypervisor. + + +* `Plugin RPC classes `_ + + * `SecurityGroupServerRpcCallbackMixin `_ - defines the RPC API that the plugin uses to communicate with the agents running on the compute nodes + * SecurityGroupServerRpcMixin - Defines the API methods used to fetch data from the database, in order to return responses to agents via the RPC API + +* `Agent RPC classes `_ + + * The SecurityGroupServerRpcApiMixin defines the API methods that can be called by agents, back to the plugin that runs on the Neutron controller + * The SecurityGroupAgentRpcCallbackMixin defines methods that a plugin uses to call back to an agent after performing an action called by an agent. + + +IPTables Driver +--------------- + +* ``prepare_port_filter`` takes a ``port`` argument, which is a ``dictionary`` object that contains information about the port - including the ``security_group_rules`` + +* ``prepare_port_filter`` `appends the port to an internal dictionary `_, ``filtered_ports`` which is used to track the internal state. + +* Each security group has a `chain `_ in Iptables. + +* The ``IptablesFirewallDriver`` has a method to `convert security group rules into iptables statements `_ diff --git a/doc/source/devref/vpnaas.rst b/doc/source/devref/vpnaas.rst new file mode 100644 index 000000000..e2d2f1b6d --- /dev/null +++ b/doc/source/devref/vpnaas.rst @@ -0,0 +1,21 @@ +VPN as a Service +===================== + +`API Specification`_ + +.. _API Specification: http://docs.openstack.org/api/openstack-network/2.0/content/vpnaas_ext.html + +Plugin +------ +.. automodule:: neutron.services.vpn.plugin + +.. autoclass:: VPNPlugin + :members: + +Database layer +-------------- + +.. automodule:: neutron.db.vpn.vpn_db + +.. autoclass:: VPNPluginDb + :members: diff --git a/doc/source/docbkx/docbkx-example/README b/doc/source/docbkx/docbkx-example/README new file mode 100644 index 000000000..e1545671b --- /dev/null +++ b/doc/source/docbkx/docbkx-example/README @@ -0,0 +1,14 @@ +README + +This docbkx-example folder is provided for those who want to use the maven mojo supplied with the project to build their own documents to PDF and HTML (webhelp) format. It's intended to be a template and model. + +You can edit the src/docbkx/example.xml file using vi, emacs, or another DocBook editor. At Rackspace we use Oxygen. Both Oxygen and XML Mind offer free licenses to those working on open source project documentation. + +To build the output, install Apache Maven (https://maven.apache.org/) and then run: + +mvn clean generate-sources + +in the directory containing the pom.xml file. + +Feel free to ask questions of the openstack-docs team at https://launchpad.net/~openstack-doc. + diff --git a/doc/source/docbkx/docbkx-example/pom.xml b/doc/source/docbkx/docbkx-example/pom.xml new file mode 100644 index 000000000..f281971a5 --- /dev/null +++ b/doc/source/docbkx/docbkx-example/pom.xml @@ -0,0 +1,38 @@ + + 4.0.0 + my-groupid + my-guide + 1.0.0-SNAPSHOT + jar + OpenStack stand alone documentation examples + + + + + com.agilejava.docbkx + docbkx-maven-plugin + + + + generate-pdf + generate-webhelp + + generate-sources + + + + true + 100 + + + + + + + + + + + + + diff --git a/doc/source/docbkx/docbkx-example/src/docbkx/example.xml b/doc/source/docbkx/docbkx-example/src/docbkx/example.xml new file mode 100644 index 000000000..96f1c64c1 --- /dev/null +++ b/doc/source/docbkx/docbkx-example/src/docbkx/example.xml @@ -0,0 +1,318 @@ + + Maven Example Documentation + + + + + + + + Badges! We don't need any stinking badges! + + + + 2011 + Timothy D. Witham + + Example v0.1 + Product Name Doesn't Exist - it's an example!â„¢ + 2011-01-01 + + + Copyright details are filled in by the template. Change the value of the role + attribute on the legalnotice element to change the license. + + + + This document is intended for individuals who whish to produce documentation using Maven and having + the same "feel" as the documentation that is produced by the mainline OpenStack projects. + + + + this is a placeholder for the front cover + + + this is a placeholder for the back cover + + + + Overview + Welcome to the getting started with Maven documentation. Congratulations you have + successfully downloaded and built the example. + + For more details on the Product Name service, please refer to http://www.rackspacecloud.com/cloud_hosting_products/product name + + We welcome feedback, comments, and bug reports at support@rackspacecloud.com. +
+ Intended Audience + This guide is intended to individuals who want to develop standalone documentation + to use within an OpenStack deployment. Using this tool chain will give you the look and + feel of the mainline OpenStack documentation. + +
+
+ Document Change History + This version of the Maven Getting Started Guide replaces and obsoletes all previous versions. The + most recent changes are described in the table below: + + + + Revision Date + Summary of Changes + + + + + July. 14, 2011 + + + + Initial document creation. + + + + + + +
+
+ Additional Resources + + + + + Openstack - Cloud Software + + + + + + + Docbook Main Web Site + + + + + + + Docbook Quick Reference + + + + +
+
+ + Concepts + + Need to put something here. + + + + How do I? + +
+ Notes and including images + So I want an note and an image in this section ... + + This is an example of a note. + + + Here's a sample figure in svg and png formats: +
+ Sample Image + + + + + + + + +
+
+
+ Multiple Related Documents + + What you need to do in order to have multiple documents fit within the + build structure. + +
+
+ Using multiple files for a document + + What you need to do in order to have a single document that is made up of multiple + files. + +
+
+ Who, What, Where, When and Why of pom.xml + + You will of noticed the pom.xml file at the root directory. + This file is used to set the project parameters for the documentation. Including + what type of documentation to produce and any post processing that needs to happen. + If you want to know more about + + pom.xml - need a link + + then follow the link. + + For the pom.xmlfile that was included in this distribution we will + parse the individual lines and explaine the meaning. + + + + +
+ <project> + + What is all of this stuff and why is it important? + +
+
+ <modelVersion> + + What goes in here and why? + +
+
+ <groupId> + + What goes in here and why? + +
+
+ <artifactId> + + What goes in here and why? + +
+
+ <version> + + What goes in here and why? + +
+
+ <packaging> + + What goes in here and why? + +
+
+ <name> + + Name of your document. + +
+
+ <build> + + Make some documents. + +
+ <plugin(s)> + + What does this do and why? + +
+ <groupId> + + What goes in here and why? + +
+
+ <artifactId> + + What goes in here and why? + +
+
+ <execution(s)> + + What goes in here and why? + +
+ <goal(s)> + + Different types of goals and why you use them. + +
+
+ <phase> + + What does this section do? What phases can you specify. + +
+
+
+ <configuration> + + What does this section do? + +
+ <xincludeSupported> + + What does this do and why? + +
+
+ <chunkSectionDepth> + + What does this do and why? + +
+
+ <postprocess> + + What does this section do? What are possible pieces? + +
+ <copy> + + What does this section do? What are possible pieces? + +
+ <fileset> + + What does this section do? What are possible pieces? + +
+ <include> + + What does this section do? What are possible pieces? + +
+
+
+
+
+
+
+
+
+ Who, What, Where, When and Why of build.xml + + You will of noticed the build.xml file at the root directory. + This file is used to set the project parameters for the documentation. Including + what type of documentation to produce and any post processing that needs to happen. + If you want to know more about + + pom.xml - need a link + + then follow the link. + +
+
+ + Troubleshooting + Sometimes things go wrong... + +
diff --git a/doc/source/docbkx/docbkx-example/src/docbkx/figures/example.sdx b/doc/source/docbkx/docbkx-example/src/docbkx/figures/example.sdx new file mode 100644 index 000000000..3f2d86366 --- /dev/null +++ b/doc/source/docbkx/docbkx-example/src/docbkx/figures/example.sdx @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/source/docbkx/docbkx-example/src/docbkx/figures/example.svg b/doc/source/docbkx/docbkx-example/src/docbkx/figures/example.svg new file mode 100644 index 000000000..58b98232d --- /dev/null +++ b/doc/source/docbkx/docbkx-example/src/docbkx/figures/example.svg @@ -0,0 +1,523 @@ + + + + +Creator: Quick Sequence Diagram Editor Producer: org.freehep.graphicsio.svg.SVGGraphics2D Revision: 12753 Source: Date: Monday, May 2, 2011 2:44:33 PM CDT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/source/docbkx/quantum-api-1.0/common.ent b/doc/source/docbkx/quantum-api-1.0/common.ent new file mode 100644 index 000000000..19acc7e9f --- /dev/null +++ b/doc/source/docbkx/quantum-api-1.0/common.ent @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + '> + + + + + + '> + + + + + + '> + + + + + + '> + + + + + + '> + + + + + + + + +
+ ]]> + + + + + + + + +

+ Full file path. +

+
+
+
+ +
+
+ + + + + + + + + + + + + + + + +

+ A collection of addresses. +

+
+
+
+ + +
+ + + +

+ A id of an address list. This is typically a name + used to identify a network. +

+
+
+
+ +
+ + + + + + + +

+ An IP address. +

+
+
+
+ + + +

+ The IP Address version can be 4 or 6. The version + attribute is optional if it is left off, the type of + address will be determined by from its address + format. If it is specified it should + match the address format. +

+

+ The OpenStack compute API will always fill in the + version number as a convinence to the client. +

+
+
+
+ +
+ + + + + +

+ An extensible server status type allows all of the + strings defined in ServerStatus or an alias prefixed + status. +

+
+
+ +
+ + + + + + +

+ The server is ready to use. +

+
+
+
+ + + +

+ The server is in an inactive (suspended) state. +

+
+
+
+ + + +

+ The server has been deleted. +

+
+
+
+ + + +

+ The server is being resized. +

+
+
+
+ + + +

+ The server is waiting for the resize operation to be + confirmed so that the original server may be removed. +

+
+
+
+ + + +

+ The requested operation failed, the server is in an + error state. +

+
+
+
+ + + +

+ The server is being built. +

+
+
+
+ + + +

+ The server password is being changed. +

+
+
+
+ + + +

+ The server is being rebuilt. +

+
+
+
+ + + +

+ The server is going through a SOFT reboot. +

+
+
+
+ + + +

+ The server is going through a HARD reboot. +

+
+
+
+ + + +

+ The server is in an unknown state. +

+
+
+
+
+
+ + + + + + + + + + + + + + + + + + +

+ Denotes IPv4. +

+
+
+
+ + + +

+ Denotes IPv6. +

+
+
+
+
+
+ diff --git a/doc/source/docbkx/quantum-api-1.0/xsd/shareip.xjb b/doc/source/docbkx/quantum-api-1.0/xsd/shareip.xjb new file mode 100644 index 000000000..239caec7e --- /dev/null +++ b/doc/source/docbkx/quantum-api-1.0/xsd/shareip.xjb @@ -0,0 +1,11 @@ + + + + + + + diff --git a/doc/source/docbkx/quantum-api-1.0/xsd/shareip.xsd b/doc/source/docbkx/quantum-api-1.0/xsd/shareip.xsd new file mode 100644 index 000000000..b59836741 --- /dev/null +++ b/doc/source/docbkx/quantum-api-1.0/xsd/shareip.xsd @@ -0,0 +1,83 @@ + + + + + + + + +

+ The element defines request to share a public IP address. +

+
+ + + + + + + + + + +
+
+ + + + +

+ This type is used to represent a request to share an IP + address. +

+
+
+ + + + + + +

+ The + shared IP group + + use to + share the address. +

+
+
+
+ + + +

+ If true, the server is configured with the new address + though the address may not be enabled. +

+
+
+
+ +
+
\ No newline at end of file diff --git a/doc/source/docbkx/quantum-api-1.0/xsd/txt.htaccess b/doc/source/docbkx/quantum-api-1.0/xsd/txt.htaccess new file mode 100644 index 000000000..8aa2a2878 --- /dev/null +++ b/doc/source/docbkx/quantum-api-1.0/xsd/txt.htaccess @@ -0,0 +1,4 @@ +DirectoryIndex api.xsd +AddType application/xml wadl +AddType application/xml xsd +AddType application/xml xslt diff --git a/doc/source/docbkx/quantum-api-1.0/xsd/version.xsd b/doc/source/docbkx/quantum-api-1.0/xsd/version.xsd new file mode 100644 index 000000000..c89c2b2f5 --- /dev/null +++ b/doc/source/docbkx/quantum-api-1.0/xsd/version.xsd @@ -0,0 +1,355 @@ + + + + + + + + + + Version Types + + + +

+ This schema file defines all types related to versioning. +

+
+
+ + + + + + + + +

+ This element is returned when the version of the + resource cannot be determined. The element + provides a list of choices for the resource. +

+
+ + + + + + + + + + +
+
+ + + + + +

+ Provides a list of supported versions. +

+
+ + + + + + + + + + + + + +
+
+ + + +

+ This element provides detailed meta information + regarding the status of the current API version. + This is the XSD 1.0 compatible element definition. +

+
+
+
+ + + + +

+ This element provides detailed meta information + regarding the status of the current API + version. The description should include a pointer + to both a human readable and a machine processable + description of the API service. +

+
+ + + + + + + + + + + + + +
+
+ + + + + + + The VersionStatus type describes a service's operational status. + + + + + + + + + + This is a new service the API. Thi API + contract may be set, but the implementaiton + may not be 100% complient with it. Developers + are encouraged to begin testing aganst an + ALPHA version to provide feedback. + + + + + + + + + A status of BETA indicates that this + version is a candidate for the next major + release and may feature functionality not + available in the current + version. Developers are encouraged to test + and begin the migration processes to a + BETA version. Note that a BETA version is + undergoing testing, it has not been + officially released, and my not be stable. + + + + + + + + + The API version is stable and has been + tested. Developers are encouraged to + develop against this API version. The + current released version of the API will + always be marked as CURRENT. + + + + + + + + + A status of DEPRECATED indicates that a + newer version of the API is + available. Application developers are + discouraged from using this version and + should instead develop against the latest + current version of the API. + + + + + + + + + + + + A version choice list outlines a collection of + resources at various versions. + + + + + + + + + + + + + In version lists, every single version must + contain at least one self link. + + + + + + + + + + + + + + When used as a root element, a version choice + must contain at least one describedby link. + + + + + + + + + + + + + A version choice contains relevant information + about an available service that a user can then + use to target a specific version of the service. + + + + + + + + + + + + + + + The ID of a version choice represents the service version's unique + identifier. This ID is guaranteed to be unique only among the + service version choices outlined in the VersionChoiceList. + + + + + + + + + + A version choice's status describes the current operational state of + the given service version. The operational status is captured in a + simple type enumeration called VersionStatus. + + + + + + + + + + A version choice's updated attribute describes + the time when the version was updated. The + time should be updated anytime + anything in the + version has changed: documentation, + extensions, bug fixes. + + + + + + + + + + + + A MediaTypeList outlines a collection of valid media types for a given + service version. + + + + + + + + + + + + + + + + A MediaType describes what content types the service version understands. + + + + + + + + + + + The base of a given media type describes the + simple MIME type that then a more complicated + media type can be derived from. These types + are basic and provide no namespace or version + specific data are are only provided as a + convenience. + + + + + + + + + + The type attribute of a MediaType describes + the MIME specific identifier of the media type + in question. + + + + + + +
diff --git a/doc/source/docbkx/quantum-api-1.0/xslt/schema.xsl b/doc/source/docbkx/quantum-api-1.0/xslt/schema.xsl new file mode 100644 index 000000000..d8bc7fe16 --- /dev/null +++ b/doc/source/docbkx/quantum-api-1.0/xslt/schema.xsl @@ -0,0 +1,1342 @@ + + + + + + + + + + + + + + + + + .. + + + + + + XML Schema Documentation + application/xhtml+xml + http://www.w3.org/2001/XMLSchema + http://web4.w3.org/TR/2001/REC-xmlschema-2-20010502/# + + " + ' + + + + + + + + + + + + + + + + + + + + element_ + attrib_ + attgrp_ + grp_ + type_ + + + + http://yui.yahooapis.com/2.7.0/build/ + + + + + + + + + + + + + + + + + stylesheet + text/css + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <xslt:value-of select="xsd:annotation/xsd:appinfo/xsdxt:title"/> + + + <xslt:value-of select="$defaultTitle"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
Loading...
+
+
+
+ + + +

+
+ +

+
+
+ + + + + + + + + + + +
+ + + + + + + + + +

Namespaces

+ + + +
+

+ Your browser does not seem to have support for + namespace nodes in XPath. If you're a Firefox + user, please consider voting to get this issue + resolved: + + https://bugzilla.mozilla.org/show_bug.cgi?id=94270 + +

+
+
+ + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+ + + + + trc.schema.controller.links[' + + ']=[ + + + + + + + + + + + + + + + + + + + + + + + + + + , + + + ]; + + + + + + trc.schema.controller.index = + + + + + + index + + + Index Schema Document + + + ; + + + + + + + trc.schema.controller.links[' + + ']=[ + + + + # + + + + + + + + See definition of + + + + + , + + + ]; + + + + + + + + { href : + + + + + + , name : + + + + + + , title : + + + + + + } + + + + + + + + +

Imports

+ + + + + + + + + +
+ + +
+
+ + + Visit + + +
+
+ +
+
+
+
+ + +

Includes

+ + + + + + + + +
+
+
+ + + Visit + + +
+
+ +
+
+
+
+ + +

Elements

+ + + + + + + + +
+ + + + + + +
+
+ + + trc.schema.sampleManager.showSample( + + + + ); + + + + + + + + + + + + + + + + + + + + +
+
+ + + + Sample +
+ +
+ +
+
+
+ + + +
+ + + + + + + Loading... + + + + + + +
+
+ + + + + + +

Complex Types

+ + + + + + +
+ + +

Simple Types

+ + + + + + +
+ + + + + + # + + + + + + + + + + + + + + + + + + +

+ +

+ + + + + +
+ extends: + + + + , + + +
+
+ +
+ restricts: + + + + , + + +
+
+
+
+ + + +
+ + + + + + + + + + SubAttributes + + + Attributes + + + + + + + + + + + + + + + +
+
+
+
+ + + + + + + + + + SubDocumentation + + + Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Sequence + + +
+
+ + + +
+
+
+ +
+ + + +
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + <?> (Any Element) + + + + + + + + @? (Any Attribute) + + + + + +
+ restriction +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
enum values
+ + + + + + + + +
+ + + + + +
+
+ + + (id = + + ) + +
+ +
+ +
+
+
+ +
+ + + + + + + + (id = + + ) + + + (fixed) + + + + + + + + + + + + +
+ +
+ +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + < + + > + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/doc/source/index.rst b/doc/source/index.rst new file mode 100644 index 000000000..51c63d277 --- /dev/null +++ b/doc/source/index.rst @@ -0,0 +1,60 @@ +.. + Copyright 2011-2013 OpenStack Foundation + 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. + +Welcome to Neutron's developer documentation! +============================================= + +Neutron is an OpenStack project to provide "network connectivity as a service" +between interface devices (e.g., vNICs) managed by other OpenStack services +(e.g., nova). It implements the `Neutron API`_. + +.. _`Neutron API`: http://docs.openstack.org/api/openstack-network/2.0/content/ + +This document describes Neutron for contributors of the project, and assumes +that you are already familiar with Neutron from an `end-user perspective`_. + +.. _`end-user perspective`: http://docs.openstack.org/trunk/openstack-network/admin/content/index.html + +This documentation is generated by the Sphinx toolkit and lives in the source +tree. Additional documentation on Neutron and other components of OpenStack +can be found on the `OpenStack wiki`_ and the `Neutron section of the wiki`. +The `Neutron Development wiki`_ is also a good resource for new contributors. + +.. _`OpenStack wiki`: http://wiki.openstack.org +.. _`Neutron section of the wiki`: http://wiki.openstack.org/Neutron +.. _`Neutron Development wiki`: http://wiki.openstack.org/NeutronDevelopment + +Enjoy! + +Developer Docs +============== + +.. toctree:: + :maxdepth: 1 + + devref/index + +API Extensions +============== + +Go to http://api.openstack.org for information about OpenStack Network API extensions. + +Man Pages +--------- + +.. toctree:: + + man/neutron-server diff --git a/doc/source/man/neutron-server.rst b/doc/source/man/neutron-server.rst new file mode 100644 index 000000000..ea6c4cbbb --- /dev/null +++ b/doc/source/man/neutron-server.rst @@ -0,0 +1,75 @@ +============== +neutron-server +============== + +-------------- +Neutron Server +-------------- + +:Author: openstack@lists.openstack.org +:Date: 2012-04-05 +:Copyright: OpenStack Foundation +:Version: 2012.1 +:Manual section: 1 +:Manual group: cloud computing + +SYNOPSIS +======== + + neutron-server [options] + +DESCRIPTION +=========== + +neutron-server provides a webserver that exposes the Neutron API, and +passes all webservice calls to the Neutron plugin for processing. + +OPTIONS +======= + + --version show program's version number and exit + -h, --help show this help message and exit + -v, --verbose Print more verbose output + -d, --debug Print debugging output + --config-file=PATH Path to the config file to use, for example, + /etc/neutron/neutron.conf. When not specified + (the default), we generally look at the first argument + specified to be a config file, and if that is also + missing, we search standard directories for a config + file. (/etc/neutron/, + /usr/lib/pythonX/site-packages/neutron/) + + Logging Options: + The following configuration options are specific to logging + functionality for this program. + + --log-config=PATH If this option is specified, the logging configuration + file specified is used and overrides any other logging + options specified. Please see the Python logging + module documentation for details on logging + configuration files. + --log-date-format=FORMAT + Format string for %(asctime)s in log records. Default: + %Y-%m-%d %H:%M:%S + --use-syslog Output logs to syslog. + --log-file=PATH (Optional) Name of log file to output to. If not set, + logging will go to stdout. + --log-dir=LOG_DIR (Optional) The directory to keep log files in (will be + prepended to --logfile) + +FILES +======== + +plugins.ini file contains the plugin information +neutron.conf file contains configuration information in the form of python-gflags. + +SEE ALSO +======== + +* `OpenStack Neutron `__ + +BUGS +==== + +* Neutron is sourced in Launchpad so you can view current bugs at `OpenStack Bugs `__ + diff --git a/etc/api-paste.ini b/etc/api-paste.ini new file mode 100644 index 000000000..be8aae17f --- /dev/null +++ b/etc/api-paste.ini @@ -0,0 +1,30 @@ +[composite:neutron] +use = egg:Paste#urlmap +/: neutronversions +/v2.0: neutronapi_v2_0 + +[composite:neutronapi_v2_0] +use = call:neutron.auth:pipeline_factory +noauth = request_id catch_errors extensions neutronapiapp_v2_0 +keystone = request_id catch_errors authtoken keystonecontext extensions neutronapiapp_v2_0 + +[filter:request_id] +paste.filter_factory = neutron.openstack.common.middleware.request_id:RequestIdMiddleware.factory + +[filter:catch_errors] +paste.filter_factory = neutron.openstack.common.middleware.catch_errors:CatchErrorsMiddleware.factory + +[filter:keystonecontext] +paste.filter_factory = neutron.auth:NeutronKeystoneContext.factory + +[filter:authtoken] +paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory + +[filter:extensions] +paste.filter_factory = neutron.api.extensions:plugin_aware_extension_middleware_factory + +[app:neutronversions] +paste.app_factory = neutron.api.versions:Versions.factory + +[app:neutronapiapp_v2_0] +paste.app_factory = neutron.api.v2.router:APIRouter.factory diff --git a/etc/dhcp_agent.ini b/etc/dhcp_agent.ini new file mode 100644 index 000000000..9836d3500 --- /dev/null +++ b/etc/dhcp_agent.ini @@ -0,0 +1,88 @@ +[DEFAULT] +# Show debugging output in log (sets DEBUG log level output) +# debug = False + +# The DHCP agent will resync its state with Neutron to recover from any +# transient notification or rpc errors. The interval is number of +# seconds between attempts. +# resync_interval = 5 + +# The DHCP agent requires an interface driver be set. Choose the one that best +# matches your plugin. +# interface_driver = + +# Example of interface_driver option for OVS based plugins(OVS, Ryu, NEC, NVP, +# BigSwitch/Floodlight) +# interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver + +# Name of Open vSwitch bridge to use +# ovs_integration_bridge = br-int + +# Use veth for an OVS interface or not. +# Support kernels with limited namespace support +# (e.g. RHEL 6.5) so long as ovs_use_veth is set to True. +# ovs_use_veth = False + +# Example of interface_driver option for LinuxBridge +# interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver + +# The agent can use other DHCP drivers. Dnsmasq is the simplest and requires +# no additional setup of the DHCP server. +# dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq + +# Allow overlapping IP (Must have kernel build with CONFIG_NET_NS=y and +# iproute2 package that supports namespaces). +# use_namespaces = True + +# The DHCP server can assist with providing metadata support on isolated +# networks. Setting this value to True will cause the DHCP server to append +# specific host routes to the DHCP request. The metadata service will only +# be activated when the subnet does not contain any router port. The guest +# instance must be configured to request host routes via DHCP (Option 121). +# enable_isolated_metadata = False + +# Allows for serving metadata requests coming from a dedicated metadata +# access network whose cidr is 169.254.169.254/16 (or larger prefix), and +# is connected to a Neutron router from which the VMs send metadata +# request. In this case DHCP Option 121 will not be injected in VMs, as +# they will be able to reach 169.254.169.254 through a router. +# This option requires enable_isolated_metadata = True +# enable_metadata_network = False + +# Number of threads to use during sync process. Should not exceed connection +# pool size configured on server. +# num_sync_threads = 4 + +# Location to store DHCP server config files +# dhcp_confs = $state_path/dhcp + +# Domain to use for building the hostnames +# dhcp_domain = openstacklocal + +# Override the default dnsmasq settings with this file +# dnsmasq_config_file = + +# Comma-separated list of DNS servers which will be used by dnsmasq +# as forwarders. +# dnsmasq_dns_servers = + +# Limit number of leases to prevent a denial-of-service. +# dnsmasq_lease_max = 16777216 + +# Location to DHCP lease relay UNIX domain socket +# dhcp_lease_relay_socket = $state_path/dhcp/lease_relay + +# Location of Metadata Proxy UNIX domain socket +# metadata_proxy_socket = $state_path/metadata_proxy + +# dhcp_delete_namespaces, which is false by default, can be set to True if +# namespaces can be deleted cleanly on the host running the dhcp agent. +# Do not enable this until you understand the problem with the Linux iproute +# utility mentioned in https://bugs.launchpad.net/neutron/+bug/1052535 and +# you are sure that your version of iproute does not suffer from the problem. +# If True, namespaces will be deleted when a dhcp server is disabled. +# dhcp_delete_namespaces = False + +# Timeout for ovs-vsctl commands. +# If the timeout expires, ovs commands will fail with ALARMCLOCK error. +# ovs_vsctl_timeout = 10 diff --git a/etc/fwaas_driver.ini b/etc/fwaas_driver.ini new file mode 100644 index 000000000..41f761abf --- /dev/null +++ b/etc/fwaas_driver.ini @@ -0,0 +1,3 @@ +[fwaas] +#driver = neutron.services.firewall.drivers.linux.iptables_fwaas.IptablesFwaasDriver +#enabled = True diff --git a/etc/init.d/neutron-server b/etc/init.d/neutron-server new file mode 100755 index 000000000..98e5da610 --- /dev/null +++ b/etc/init.d/neutron-server @@ -0,0 +1,68 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: neutron-server +# Required-Start: $remote_fs $syslog +# Required-Stop: $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: neutron-server +# Description: Provides the Neutron networking service +### END INIT INFO + +set -e + +PIDFILE=/var/run/neutron/neutron-server.pid +LOGFILE=/var/log/neutron/neutron-server.log + +DAEMON=/usr/bin/neutron-server +DAEMON_ARGS="--log-file=$LOGFILE" +DAEMON_DIR=/var/run + +ENABLED=true + +if test -f /etc/default/neutron-server; then + . /etc/default/neutron-server +fi + +mkdir -p /var/run/neutron +mkdir -p /var/log/neutron + +. /lib/lsb/init-functions + +export PATH="${PATH:+$PATH:}/usr/sbin:/sbin" +export TMPDIR=/var/lib/neutron/tmp + +if [ ! -x ${DAEMON} ] ; then + exit 0 +fi + +case "$1" in + start) + test "$ENABLED" = "true" || exit 0 + log_daemon_msg "Starting neutron server" "neutron-server" + start-stop-daemon -Sbmv --pidfile $PIDFILE --chdir $DAEMON_DIR --exec $DAEMON -- $DAEMON_ARGS + log_end_msg $? + ;; + stop) + test "$ENABLED" = "true" || exit 0 + log_daemon_msg "Stopping neutron server" "neutron-server" + start-stop-daemon --stop --oknodo --pidfile ${PIDFILE} + log_end_msg $? + ;; + restart|force-reload) + test "$ENABLED" = "true" || exit 1 + $0 stop + sleep 1 + $0 start + ;; + status) + test "$ENABLED" = "true" || exit 0 + status_of_proc -p $PIDFILE $DAEMON neutron-server && exit 0 || exit $? + ;; + *) + log_action_msg "Usage: /etc/init.d/neutron-server {start|stop|restart|force-reload|status}" + exit 1 + ;; +esac + +exit 0 diff --git a/etc/l3_agent.ini b/etc/l3_agent.ini new file mode 100644 index 000000000..e6903988d --- /dev/null +++ b/etc/l3_agent.ini @@ -0,0 +1,79 @@ +[DEFAULT] +# Show debugging output in log (sets DEBUG log level output) +# debug = False + +# L3 requires that an interface driver be set. Choose the one that best +# matches your plugin. +# interface_driver = + +# Example of interface_driver option for OVS based plugins (OVS, Ryu, NEC) +# that supports L3 agent +# interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver + +# Use veth for an OVS interface or not. +# Support kernels with limited namespace support +# (e.g. RHEL 6.5) so long as ovs_use_veth is set to True. +# ovs_use_veth = False + +# Example of interface_driver option for LinuxBridge +# interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver + +# Allow overlapping IP (Must have kernel build with CONFIG_NET_NS=y and +# iproute2 package that supports namespaces). +# use_namespaces = True + +# If use_namespaces is set as False then the agent can only configure one router. + +# This is done by setting the specific router_id. +# router_id = + +# When external_network_bridge is set, each L3 agent can be associated +# with no more than one external network. This value should be set to the UUID +# of that external network. To allow L3 agent support multiple external +# networks, both the external_network_bridge and gateway_external_network_id +# must be left empty. +# gateway_external_network_id = + +# Indicates that this L3 agent should also handle routers that do not have +# an external network gateway configured. This option should be True only +# for a single agent in a Neutron deployment, and may be False for all agents +# if all routers must have an external network gateway +# handle_internal_only_routers = True + +# Name of bridge used for external network traffic. This should be set to +# empty value for the linux bridge. when this parameter is set, each L3 agent +# can be associated with no more than one external network. +# external_network_bridge = br-ex + +# TCP Port used by Neutron metadata server +# metadata_port = 9697 + +# Send this many gratuitous ARPs for HA setup. Set it below or equal to 0 +# to disable this feature. +# send_arp_for_ha = 3 + +# seconds between re-sync routers' data if needed +# periodic_interval = 40 + +# seconds to start to sync routers' data after +# starting agent +# periodic_fuzzy_delay = 5 + +# enable_metadata_proxy, which is true by default, can be set to False +# if the Nova metadata server is not available +# enable_metadata_proxy = True + +# Location of Metadata Proxy UNIX domain socket +# metadata_proxy_socket = $state_path/metadata_proxy + +# router_delete_namespaces, which is false by default, can be set to True if +# namespaces can be deleted cleanly on the host running the L3 agent. +# Do not enable this until you understand the problem with the Linux iproute +# utility mentioned in https://bugs.launchpad.net/neutron/+bug/1052535 and +# you are sure that your version of iproute does not suffer from the problem. +# If True, namespaces will be deleted when a router is destroyed. +# router_delete_namespaces = False + +# Timeout for ovs-vsctl commands. +# If the timeout expires, ovs commands will fail with ALARMCLOCK error. +# ovs_vsctl_timeout = 10 diff --git a/etc/lbaas_agent.ini b/etc/lbaas_agent.ini new file mode 100644 index 000000000..68a2759e6 --- /dev/null +++ b/etc/lbaas_agent.ini @@ -0,0 +1,42 @@ +[DEFAULT] +# Show debugging output in log (sets DEBUG log level output). +# debug = False + +# The LBaaS agent will resync its state with Neutron to recover from any +# transient notification or rpc errors. The interval is number of +# seconds between attempts. +# periodic_interval = 10 + +# LBaas requires an interface driver be set. Choose the one that best +# matches your plugin. +# interface_driver = + +# Example of interface_driver option for OVS based plugins (OVS, Ryu, NEC, NVP, +# BigSwitch/Floodlight) +# interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver + +# Use veth for an OVS interface or not. +# Support kernels with limited namespace support +# (e.g. RHEL 6.5) so long as ovs_use_veth is set to True. +# ovs_use_veth = False + +# Example of interface_driver option for LinuxBridge +# interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver + +# The agent requires drivers to manage the loadbalancer. HAProxy is the opensource version. +# Multiple device drivers reflecting different service providers could be specified: +# device_driver = path.to.provider1.driver.Driver +# device_driver = path.to.provider2.driver.Driver +# Default is: +# device_driver = neutron.services.loadbalancer.drivers.haproxy.namespace_driver.HaproxyNSDriver + +[haproxy] +# Location to store config and state files +# loadbalancer_state_path = $state_path/lbaas + +# The user group +# user_group = nogroup + +# When delete and re-add the same vip, send this many gratuitous ARPs to flush +# the ARP cache in the Router. Set it below or equal to 0 to disable this feature. +# send_gratuitous_arp = 3 diff --git a/etc/metadata_agent.ini b/etc/metadata_agent.ini new file mode 100644 index 000000000..84442ea1a --- /dev/null +++ b/etc/metadata_agent.ini @@ -0,0 +1,59 @@ +[DEFAULT] +# Show debugging output in log (sets DEBUG log level output) +# debug = True + +# The Neutron user information for accessing the Neutron API. +auth_url = http://localhost:5000/v2.0 +auth_region = RegionOne +# Turn off verification of the certificate for ssl +# auth_insecure = False +# Certificate Authority public key (CA cert) file for ssl +# auth_ca_cert = +admin_tenant_name = %SERVICE_TENANT_NAME% +admin_user = %SERVICE_USER% +admin_password = %SERVICE_PASSWORD% + +# Network service endpoint type to pull from the keystone catalog +# endpoint_type = adminURL + +# IP address used by Nova metadata server +# nova_metadata_ip = 127.0.0.1 + +# TCP Port used by Nova metadata server +# nova_metadata_port = 8775 + +# Which protocol to use for requests to Nova metadata server, http or https +# nova_metadata_protocol = http + +# Whether insecure SSL connection should be accepted for Nova metadata server +# requests +# nova_metadata_insecure = False + +# Client certificate for nova api, needed when nova api requires client +# certificates +# nova_client_cert = + +# Private key for nova client certificate +# nova_client_priv_key = + +# When proxying metadata requests, Neutron signs the Instance-ID header with a +# shared secret to prevent spoofing. You may select any string for a secret, +# but it must match here and in the configuration used by the Nova Metadata +# Server. NOTE: Nova uses a different key: neutron_metadata_proxy_shared_secret +# metadata_proxy_shared_secret = + +# Location of Metadata Proxy UNIX domain socket +# metadata_proxy_socket = $state_path/metadata_proxy + +# Number of separate worker processes for metadata server. Defaults to +# half the number of CPU cores +# metadata_workers = + +# Number of backlog requests to configure the metadata server socket with +# metadata_backlog = 4096 + +# URL to connect to the cache backend. +# default_ttl=0 parameter will cause cache entries to never expire. +# Otherwise default_ttl specifies time in seconds a cache entry is valid for. +# No cache is used in case no value is passed. +# cache_url = memory://?default_ttl=5 diff --git a/etc/metering_agent.ini b/etc/metering_agent.ini new file mode 100644 index 000000000..e6ab52209 --- /dev/null +++ b/etc/metering_agent.ini @@ -0,0 +1,15 @@ +[DEFAULT] +# Show debugging output in log (sets DEBUG log level output) +# debug = True + +# driver = neutron.services.metering.drivers.iptables.iptables_driver.IptablesMeteringDriver + +# Interval between two metering measures +# measure_interval = 30 + +# Interval between two metering reports +# report_interval = 300 + +# interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver + +# use_namespaces = True diff --git a/etc/neutron.conf b/etc/neutron.conf new file mode 100644 index 000000000..31977a874 --- /dev/null +++ b/etc/neutron.conf @@ -0,0 +1,479 @@ +[DEFAULT] +# 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). Use -1 to +# tell dnsmasq to use infinite lease times. +# 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 = + +# CA file for novaclient to verify server certificates +# nova_ca_certificates_file = + +# Boolean to control ignoring SSL errors on the nova url +# nova_api_insecure = False + +# 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_monitor = -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] +# 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 = 127.0.0.1 +auth_port = 35357 +auth_protocol = http +admin_tenant_name = %SERVICE_TENANT_NAME% +admin_user = %SERVICE_USER% +admin_password = %SERVICE_PASSWORD% + +[database] +# This line MUST be changed to actually run the plugin. +# Example: +# connection = mysql://root:pass@127.0.0.1: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:// +# NOTE: In deployment the [database] section and its connection attribute may +# be set in the corresponding core plugin '.ini' file. However, it is suggested +# to put the [database] section and its connection attribute in this +# configuration file. + +# Database engine for which script will be generated when using offline +# migration +# engine = + +# 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=::[:default] +# List of allowed service types includes LOADBALANCER, FIREWALL, VPN +# Combination of and must be unique; 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 diff --git a/etc/neutron/plugins/bigswitch/restproxy.ini b/etc/neutron/plugins/bigswitch/restproxy.ini new file mode 100644 index 000000000..256f7855b --- /dev/null +++ b/etc/neutron/plugins/bigswitch/restproxy.ini @@ -0,0 +1,114 @@ +# Config file for neutron-proxy-plugin. + +[restproxy] +# All configuration for this plugin is in section '[restproxy]' +# +# The following parameters are supported: +# servers : [,]* (Error if not set) +# server_auth : (default: no auth) +# server_ssl : True | False (default: True) +# ssl_cert_directory : (default: /etc/neutron/plugins/bigswitch/ssl) +# no_ssl_validation : True | False (default: False) +# ssl_sticky : True | False (default: True) +# sync_data : True | False (default: False) +# auto_sync_on_failure : True | False (default: True) +# consistency_interval : (default: 60 seconds) +# server_timeout : (default: 10 seconds) +# neutron_id : (default: neutron-) +# add_meta_server_route : True | False (default: True) +# thread_pool_size : (default: 4) + +# A comma separated list of BigSwitch or Floodlight servers and port numbers. The plugin proxies the requests to the BigSwitch/Floodlight server, which performs the networking configuration. Note that only one server is needed per deployment, but you may wish to deploy multiple servers to support failover. +servers=localhost:8080 + +# The username and password for authenticating against the BigSwitch or Floodlight controller. +# server_auth=username:password + +# Use SSL when connecting to the BigSwitch or Floodlight controller. +# server_ssl=True + +# Directory which contains the ca_certs and host_certs to be used to validate +# controller certificates. +# ssl_cert_directory=/etc/neutron/plugins/bigswitch/ssl/ + +# If a certificate does not exist for a controller, trust and store the first +# certificate received for that controller and use it to validate future +# connections to that controller. +# ssl_sticky=True + +# Do not validate the controller certificates for SSL +# Warning: This will not provide protection against man-in-the-middle attacks +# no_ssl_validation=False + +# Sync data on connect +# sync_data=False + +# If neutron fails to create a resource because the backend controller +# doesn't know of a dependency, automatically trigger a full data +# synchronization to the controller. +# auto_sync_on_failure=True + +# Time between verifications that the backend controller +# database is consistent with Neutron. (0 to disable) +# consistency_interval = 60 + +# Maximum number of seconds to wait for proxy request to connect and complete. +# server_timeout=10 + +# User defined identifier for this Neutron deployment +# neutron_id = + +# Flag to decide if a route to the metadata server should be injected into the VM +# add_meta_server_route = True + +# Number of threads to use to handle large volumes of port creation requests +# thread_pool_size = 4 + +[nova] +# Specify the VIF_TYPE that will be controlled on the Nova compute instances +# options: ivs or ovs +# default: ovs +# vif_type = ovs + +# Overrides for vif types based on nova compute node host IDs +# Comma separated list of host IDs to fix to a specific VIF type +# The VIF type is taken from the end of the configuration item +# node_override_vif_ +# For example, the following would set the VIF type to IVS for +# host-id1 and host-id2 +# node_overrride_vif_ivs=host-id1,host-id2 + +[router] +# Specify the default router rules installed in newly created tenant routers +# Specify multiple times for multiple rules +# Format is ::: +# Optionally, a comma-separated list of nexthops may be included after +# Use an * to specify default for all tenants +# Default is any any allow for all tenants +# tenant_default_router_rule=*:any:any:permit + +# Maximum number of rules that a single router may have +# Default is 200 +# max_router_rules=200 + +[restproxyagent] + +# Specify the name of the bridge used on compute nodes +# for attachment. +# Default: br-int +# integration_bridge=br-int + +# Change the frequency of polling by the restproxy agent. +# Value is seconds +# Default: 5 +# polling_interval=5 + +# Virtual switch type on the compute node. +# Options: ovs or ivs +# Default: ovs +# virtual_switch_type = ovs + +[securitygroup] +# Controls if neutron security group is enabled or not. +# It should be false when you use nova security group. +# enable_security_group = True diff --git a/etc/neutron/plugins/bigswitch/ssl/ca_certs/README b/etc/neutron/plugins/bigswitch/ssl/ca_certs/README new file mode 100644 index 000000000..e7e47a27c --- /dev/null +++ b/etc/neutron/plugins/bigswitch/ssl/ca_certs/README @@ -0,0 +1,3 @@ +Certificates in this folder will be used to +verify signatures for any controllers the plugin +connects to. diff --git a/etc/neutron/plugins/bigswitch/ssl/host_certs/README b/etc/neutron/plugins/bigswitch/ssl/host_certs/README new file mode 100644 index 000000000..8f5f5e77c --- /dev/null +++ b/etc/neutron/plugins/bigswitch/ssl/host_certs/README @@ -0,0 +1,6 @@ +Certificates in this folder must match the name +of the controller they should be used to authenticate +with a .pem extension. + +For example, the certificate for the controller +"192.168.0.1" should be named "192.168.0.1.pem". diff --git a/etc/neutron/plugins/brocade/brocade.ini b/etc/neutron/plugins/brocade/brocade.ini new file mode 100644 index 000000000..916e9e5d2 --- /dev/null +++ b/etc/neutron/plugins/brocade/brocade.ini @@ -0,0 +1,29 @@ +[switch] +# username = The SSH username to use +# password = The SSH password to use +# address = The address of the host to SSH to +# ostype = Should be NOS, but is unused otherwise +# +# Example: +# username = admin +# password = password +# address = 10.24.84.38 +# ostype = NOS + +[physical_interface] +# physical_interface = The network interface to use when creating a port +# +# Example: +# physical_interface = physnet1 + +[vlans] +# network_vlan_ranges = :nnnn:mmmm +# +# Example: +# network_vlan_ranges = physnet1:1000:2999 + +[linux_bridge] +# physical_interface_mappings = : +# +# Example: +# physical_interface_mappings = physnet1:em1 diff --git a/etc/neutron/plugins/cisco/cisco_plugins.ini b/etc/neutron/plugins/cisco/cisco_plugins.ini new file mode 100644 index 000000000..13d81f182 --- /dev/null +++ b/etc/neutron/plugins/cisco/cisco_plugins.ini @@ -0,0 +1,138 @@ +[cisco_plugins] + +# (StrOpt) Period-separated module path to the plugin class to use for +# the Cisco Nexus switches. +# +# nexus_plugin = neutron.plugins.cisco.nexus.cisco_nexus_plugin_v2.NexusPlugin + +# (StrOpt) Period-separated module path to the plugin class to use for +# the virtual switches on compute nodes. +# +# vswitch_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2 + + +[cisco] + +# (StrOpt) A short prefix to prepend to the VLAN number when creating a +# VLAN interface. For example, if an interface is being created for +# VLAN 2001 it will be named 'q-2001' using the default prefix. +# +# vlan_name_prefix = q- +# Example: vlan_name_prefix = vnet- + +# (StrOpt) A short prefix to prepend to the VLAN number when creating a +# provider VLAN interface. For example, if an interface is being created +# for provider VLAN 3003 it will be named 'p-3003' using the default prefix. +# +# provider_vlan_name_prefix = p- +# Example: provider_vlan_name_prefix = PV- + +# (BoolOpt) A flag indicating whether Openstack networking should manage the +# creation and removal of VLAN interfaces for provider networks on the Nexus +# switches. If the flag is set to False then Openstack will not create or +# remove VLAN interfaces for provider networks, and the administrator needs +# to manage these interfaces manually or by external orchestration. +# +# provider_vlan_auto_create = True + +# (BoolOpt) A flag indicating whether Openstack networking should manage +# the adding and removing of provider VLANs from trunk ports on the Nexus +# switches. If the flag is set to False then Openstack will not add or +# remove provider VLANs from trunk ports, and the administrator needs to +# manage these operations manually or by external orchestration. +# +# provider_vlan_auto_trunk = True + +# (StrOpt) Period-separated module path to the model class to use for +# the Cisco neutron plugin. +# +# model_class = neutron.plugins.cisco.models.virt_phy_sw_v2.VirtualPhysicalSwitchModelV2 + +# (StrOpt) Period-separated module path to the driver class to use for +# the Cisco Nexus switches. +# +# If no value is configured, a fake driver will be used. +# nexus_driver = neutron.plugins.cisco.test.nexus.fake_nexus_driver.CiscoNEXUSFakeDriver +# With real hardware, use the CiscoNEXUSDriver class: +# nexus_driver = neutron.plugins.cisco.nexus.cisco_nexus_network_driver_v2.CiscoNEXUSDriver + +# (BoolOpt) A flag to enable Layer 3 support on the Nexus switches. +# Note: This feature is not supported on all models/versions of Cisco +# Nexus switches. To use this feature, all of the Nexus switches in the +# deployment must support it. +# nexus_l3_enable = False + +# (BoolOpt) A flag to enable round robin scheduling of routers for SVI. +# svi_round_robin = False + +# Cisco Nexus Switch configurations. +# Each switch to be managed by Openstack Neutron must be configured here. +# +# Cisco Nexus Switch Format. +# [NEXUS_SWITCH:] +# = (1) +# ssh_port= (2) +# username= (3) +# password= (4) +# +# (1) For each host connected to a port on the switch, specify the hostname +# and the Nexus physical port (interface) it is connected to. +# (2) The TCP port for connecting via SSH to manage the switch. This is +# port number 22 unless the switch has been configured otherwise. +# (3) The username for logging into the switch to manage it. +# (4) The password for logging into the switch to manage it. +# +# Example: +# [NEXUS_SWITCH:1.1.1.1] +# compute1=1/1 +# compute2=1/2 +# ssh_port=22 +# username=admin +# password=mySecretPassword + +# +# N1KV Format. +# [N1KV:] +# username= +# password= +# +# Example: +# [N1KV:2.2.2.2] +# username=admin +# password=mySecretPassword + +[cisco_n1k] + +# (StrOpt) Specify the name of the integration bridge to which the VIFs are +# attached. +# +# integration_bridge = br-int + +# (StrOpt) Name of the policy profile to be associated with a port when no +# policy profile is specified during port creates. +# +# default_policy_profile = +# Example: default_policy_profile = service_profile + +# (StrOpt) Name of the policy profile to be associated with a port owned by +# network node (dhcp, router). +# +# network_node_policy_profile = +# Example: network_node_policy_profile = dhcp_pp + +# (StrOpt) Name of the network profile to be associated with a network when no +# network profile is specified during network creates. Admin should pre-create +# a network profile with this name. +# +# default_network_profile = +# Example: default_network_profile = network_pool + +# (IntOpt) Time in seconds for which the plugin polls the VSM for updates in +# policy profiles. +# +# poll_duration = +# Example: poll_duration = 180 + +# (IntOpt) Number of threads to use to make HTTP requests to the VSM. +# +# http_pool_size = 4 diff --git a/etc/neutron/plugins/cisco/cisco_vpn_agent.ini b/etc/neutron/plugins/cisco/cisco_vpn_agent.ini new file mode 100644 index 000000000..d15069b7c --- /dev/null +++ b/etc/neutron/plugins/cisco/cisco_vpn_agent.ini @@ -0,0 +1,22 @@ +[cisco_csr_ipsec] +# Status check interval in seconds, for VPNaaS IPSec connections used on CSR +# status_check_interval = 60 + +# Cisco CSR management port information for REST access used by VPNaaS +# TODO(pcm): Remove once CSR is integrated in as a Neutron router. +# +# Format is: +# [cisco_csr_rest:] +# rest_mgmt = +# tunnel_ip = +# username = +# password = +# timeout = +# +# where: +# public IP ----- Public IP address of router used with a VPN service (1:1 with CSR) +# tunnel IP ----- Public IP address of the CSR used for the IPSec tunnel +# mgmt port IP -- IP address of CSR for REST API access (not console port) +# user ---------- Username for REST management port access to Cisco CSR +# password ------ Password for REST management port access to Cisco CSR +# timeout ------- REST request timeout to Cisco CSR (optional) diff --git a/etc/neutron/plugins/embrane/heleos_conf.ini b/etc/neutron/plugins/embrane/heleos_conf.ini new file mode 100644 index 000000000..0ca9b46f8 --- /dev/null +++ b/etc/neutron/plugins/embrane/heleos_conf.ini @@ -0,0 +1,41 @@ +[heleos] +#configure the ESM management address +#in the first version of this plugin, only one ESM can be specified +#Example: +#esm_mgmt= + +#configure admin username and password +#admin_username= +#admin_password= + +#router image id +#Example: +#router_image=932ce713-e210-3d54-a0a5-518b0b5ee1b0 + +#mgmt shared security zone id +#defines the shared management security zone. Each tenant can have a private one configured through the ESM +#Example: +#mgmt_id=c0bc9b6c-f110-46cf-bb01-733bfe4b5a1a + +#in-band shared security zone id +#defines the shared in-band security zone. Each tenant can have a private one configured through the ESM +#Example: +#inband_id=a6b7999d-3806-4b04-81f6-e0c5c8271afc + +#oob-band shared security zone id +#defines the shared out-of-band security zone. Each tenant can have a private one configured through the ESM +#Example: +#oob_id=e7eda5cc-b977-46cb-9c14-cab43c1b7871 + +#dummy security zone id +#defines the dummy security zone ID. this security zone will be used by the DVAs with no neutron interfaces +#Example: +#dummy_utif_id=d9911310-25fc-4733-a2e0-c0eda024ef08 + +#resource pool id +#define the shared resource pool. Each tenant can have a private one configured through the ESM +#Example +#resource_pool_id= + +#define if the requests have to be executed asynchronously by the plugin or not +#async_requests= diff --git a/etc/neutron/plugins/hyperv/hyperv_neutron_plugin.ini b/etc/neutron/plugins/hyperv/hyperv_neutron_plugin.ini new file mode 100644 index 000000000..5eeec5706 --- /dev/null +++ b/etc/neutron/plugins/hyperv/hyperv_neutron_plugin.ini @@ -0,0 +1,63 @@ +[hyperv] +# (StrOpt) Type of network to allocate for tenant networks. The +# default value 'local' is useful only for single-box testing and +# provides no connectivity between hosts. You MUST either change this +# to 'vlan' and configure network_vlan_ranges below or to 'flat'. +# Set to 'none' to disable creation of tenant networks. +# +# tenant_network_type = local +# Example: tenant_network_type = vlan + +# (ListOpt) Comma-separated list of +# [::] tuples enumerating ranges +# of VLAN IDs on named physical networks that are available for +# allocation. All physical networks listed are available for flat and +# VLAN provider network creation. Specified ranges of VLAN IDs are +# available for tenant network allocation if tenant_network_type is +# 'vlan'. If empty, only gre and local networks may be created. +# +# network_vlan_ranges = +# Example: network_vlan_ranges = physnet1:1000:2999 + +[agent] +# Agent's polling interval in seconds +# polling_interval = 2 + +# (ListOpt) Comma separated list of : +# where the physical networks can be expressed with wildcards, +# e.g.: ."*:external". +# The referred external virtual switches need to be already present on +# the Hyper-V server. +# If a given physical network name will not match any value in the list +# the plugin will look for a virtual switch with the same name. +# +# physical_network_vswitch_mappings = *:external +# Example: physical_network_vswitch_mappings = net1:external1,net2:external2 + +# (StrOpt) Private virtual switch name used for local networking. +# +# local_network_vswitch = private +# Example: local_network_vswitch = custom_vswitch + +# (BoolOpt) Enables metrics collections for switch ports by using Hyper-V's +# metric APIs. Collected data can by retrieved by other apps and services, +# e.g.: Ceilometer. Requires Hyper-V / Windows Server 2012 and above. +# +# enable_metrics_collection = False + +#----------------------------------------------------------------------------- +# Sample Configurations. +#----------------------------------------------------------------------------- +# +# Neutron server: +# +# [HYPERV] +# tenant_network_type = vlan +# network_vlan_ranges = default:2000:3999 +# +# Agent running on Hyper-V node: +# +# [AGENT] +# polling_interval = 2 +# physical_network_vswitch_mappings = *:external +# local_network_vswitch = private diff --git a/etc/neutron/plugins/ibm/sdnve_neutron_plugin.ini b/etc/neutron/plugins/ibm/sdnve_neutron_plugin.ini new file mode 100644 index 000000000..0fab50706 --- /dev/null +++ b/etc/neutron/plugins/ibm/sdnve_neutron_plugin.ini @@ -0,0 +1,50 @@ +[sdnve] +# (ListOpt) The IP address of one (or more) SDN-VE controllers +# Default value is: controller_ips = 127.0.0.1 +# Example: controller_ips = 127.0.0.1,127.0.0.2 +# (StrOpt) The integration bridge for OF based implementation +# The default value for integration_bridge is None +# Example: integration_bridge = br-int +# (ListOpt) The interface mapping connecting the integration +# bridge to external network as a list of physical network names and +# interfaces: : +# Example: interface_mappings = default:eth2 +# (BoolOpt) Used to reset the integration bridge, if exists +# The default value for reset_bridge is True +# Example: reset_bridge = False +# (BoolOpt) Used to set the OVS controller as out-of-band +# The default value for out_of_band is True +# Example: out_of_band = False +# +# (BoolOpt) The fake controller for testing purposes +# Default value is: use_fake_controller = False +# (StrOpt) The port number for use with controller +# The default value for the port is 8443 +# Example: port = 8443 +# (StrOpt) The userid for use with controller +# The default value for the userid is admin +# Example: userid = sdnve_user +# (StrOpt) The password for use with controller +# The default value for the password is admin +# Example: password = sdnve_password +# +# (StrOpt) The default type of tenants (and associated resources) +# Available choices are: OVERLAY or OF +# The default value for tenant type is OVERLAY +# Example: default_tenant_type = OVERLAY +# (StrOpt) The string in tenant description that indicates +# Default value for OF tenants: of_signature = SDNVE-OF +# (StrOpt) The string in tenant description that indicates +# Default value for OVERLAY tenants: overlay_signature = SDNVE-OVERLAY + +[sdnve_agent] +# (IntOpt) Agent's polling interval in seconds +# polling_interval = 2 +# (StrOpt) What to use for root helper +# The default value: root_helper = 'sudo' +# (BoolOpt) Whether to use rpc or not +# The default value: rpc = True + +[securitygroup] +# The security group is not supported: +# firewall_driver = neutron.agent.firewall.NoopFirewallDriver diff --git a/etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini b/etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini new file mode 100644 index 000000000..94fe98036 --- /dev/null +++ b/etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini @@ -0,0 +1,78 @@ +[vlans] +# (StrOpt) Type of network to allocate for tenant networks. The +# default value 'local' is useful only for single-box testing and +# provides no connectivity between hosts. You MUST change this to +# 'vlan' and configure network_vlan_ranges below in order for tenant +# networks to provide connectivity between hosts. Set to 'none' to +# disable creation of tenant networks. +# +# tenant_network_type = local +# Example: tenant_network_type = vlan + +# (ListOpt) Comma-separated list of +# [::] tuples enumerating ranges +# of VLAN IDs on named physical networks that are available for +# allocation. All physical networks listed are available for flat and +# VLAN provider network creation. Specified ranges of VLAN IDs are +# available for tenant network allocation if tenant_network_type is +# 'vlan'. If empty, only local networks may be created. +# +# network_vlan_ranges = +# Example: network_vlan_ranges = physnet1:1000:2999 + +[linux_bridge] +# (ListOpt) Comma-separated list of +# : tuples mapping physical +# network names to the agent's node-specific physical network +# interfaces to be used for flat and VLAN networks. All physical +# networks listed in network_vlan_ranges on the server should have +# mappings to appropriate interfaces on each agent. +# +# physical_interface_mappings = +# Example: physical_interface_mappings = physnet1:eth1 + +[vxlan] +# (BoolOpt) enable VXLAN on the agent +# VXLAN support can be enabled when agent is managed by ml2 plugin using +# linuxbridge mechanism driver. Useless if set while using linuxbridge plugin. +# enable_vxlan = False +# +# (IntOpt) use specific TTL for vxlan interface protocol packets +# ttl = +# +# (IntOpt) use specific TOS for vxlan interface protocol packets +# tos = +# +# (StrOpt) multicast group to use for broadcast emulation. +# This group must be the same on all the agents. +# vxlan_group = 224.0.0.1 +# +# (StrOpt) Local IP address to use for VXLAN endpoints (required) +# local_ip = +# +# (BoolOpt) Flag to enable l2population extension. This option should be used +# in conjunction with ml2 plugin l2population mechanism driver (in that case, +# both linuxbridge and l2population mechanism drivers should be loaded). +# It enables plugin to populate VXLAN forwarding table, in order to limit +# the use of broadcast emulation (multicast will be turned off if kernel and +# iproute2 supports unicast flooding - requires 3.11 kernel and iproute2 3.10) +# l2_population = False + +[agent] +# Agent's polling interval in seconds +# polling_interval = 2 + +# (BoolOpt) Enable server RPC compatibility with old (pre-havana) +# agents. +# +# rpc_support_old_agents = False +# Example: rpc_support_old_agents = True + +[securitygroup] +# Firewall driver for realizing neutron security group function +# firewall_driver = neutron.agent.firewall.NoopFirewallDriver +# Example: firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver + +# Controls if neutron security group is enabled or not. +# It should be false when you use nova security group. +# enable_security_group = True diff --git a/etc/neutron/plugins/metaplugin/metaplugin.ini b/etc/neutron/plugins/metaplugin/metaplugin.ini new file mode 100644 index 000000000..2b9bfa5ea --- /dev/null +++ b/etc/neutron/plugins/metaplugin/metaplugin.ini @@ -0,0 +1,31 @@ +# Config file for Metaplugin + +[meta] +# Comma separated list of flavor:neutron_plugin for plugins to load. +# Extension method is searched in the list order and the first one is used. +plugin_list = 'ml2:neutron.plugins.ml2.plugin.Ml2Plugin,nvp:neutron.plugins.vmware.plugin.NsxPluginV2' + +# Comma separated list of flavor:neutron_plugin for L3 service plugins +# to load. +# This is intended for specifying L2 plugins which support L3 functions. +# If you use a router service plugin, set this blank. +l3_plugin_list = + +# Default flavor to use, when flavor:network is not specified at network +# creation. +default_flavor = 'nvp' + +# Default L3 flavor to use, when flavor:router is not specified at router +# creation. +# Ignored if 'l3_plugin_list' is blank. +default_l3_flavor = + +# Comma separated list of supported extension aliases. +supported_extension_aliases = 'provider,binding,agent,dhcp_agent_scheduler' + +# Comma separated list of method:flavor to select specific plugin for a method. +# This has priority over method search order based on 'plugin_list'. +extension_map = 'get_port_stats:nvp' + +# Specifies flavor for plugin to handle 'q-plugin' RPC requests. +rpc_flavor = 'ml2' diff --git a/etc/neutron/plugins/midonet/midonet.ini b/etc/neutron/plugins/midonet/midonet.ini new file mode 100644 index 000000000..f2e940529 --- /dev/null +++ b/etc/neutron/plugins/midonet/midonet.ini @@ -0,0 +1,19 @@ + +[midonet] +# MidoNet API server URI +# midonet_uri = http://localhost:8080/midonet-api + +# MidoNet admin username +# username = admin + +# MidoNet admin password +# password = passw0rd + +# ID of the project that MidoNet admin user belongs to +# project_id = 77777777-7777-7777-7777-777777777777 + +# Virtual provider router ID +# provider_router_id = 00112233-0011-0011-0011-001122334455 + +# Path to midonet host uuid file +# midonet_host_uuid_path = /etc/midolman/host_uuid.properties diff --git a/etc/neutron/plugins/ml2/ml2_conf.ini b/etc/neutron/plugins/ml2/ml2_conf.ini new file mode 100644 index 000000000..54722df91 --- /dev/null +++ b/etc/neutron/plugins/ml2/ml2_conf.ini @@ -0,0 +1,62 @@ +[ml2] +# (ListOpt) List of network type driver entrypoints to be loaded from +# the neutron.ml2.type_drivers namespace. +# +# type_drivers = local,flat,vlan,gre,vxlan +# Example: type_drivers = flat,vlan,gre,vxlan + +# (ListOpt) Ordered list of network_types to allocate as tenant +# networks. The default value 'local' is useful for single-box testing +# but provides no connectivity between hosts. +# +# tenant_network_types = local +# Example: tenant_network_types = vlan,gre,vxlan + +# (ListOpt) Ordered list of networking mechanism driver entrypoints +# to be loaded from the neutron.ml2.mechanism_drivers namespace. +# mechanism_drivers = +# Example: mechanism_drivers = openvswitch,mlnx +# Example: mechanism_drivers = arista +# Example: mechanism_drivers = cisco,logger +# Example: mechanism_drivers = openvswitch,brocade +# Example: mechanism_drivers = linuxbridge,brocade + +[ml2_type_flat] +# (ListOpt) List of physical_network names with which flat networks +# can be created. Use * to allow flat networks with arbitrary +# physical_network names. +# +# flat_networks = +# Example:flat_networks = physnet1,physnet2 +# Example:flat_networks = * + +[ml2_type_vlan] +# (ListOpt) List of [::] tuples +# specifying physical_network names usable for VLAN provider and +# tenant networks, as well as ranges of VLAN tags on each +# physical_network available for allocation as tenant networks. +# +# network_vlan_ranges = +# Example: network_vlan_ranges = physnet1:1000:2999,physnet2 + +[ml2_type_gre] +# (ListOpt) Comma-separated list of : tuples enumerating ranges of GRE tunnel IDs that are available for tenant network allocation +# tunnel_id_ranges = + +[ml2_type_vxlan] +# (ListOpt) Comma-separated list of : tuples enumerating +# ranges of VXLAN VNI IDs that are available for tenant network allocation. +# +# vni_ranges = + +# (StrOpt) Multicast group for the VXLAN interface. When configured, will +# enable sending all broadcast traffic to this multicast group. When left +# unconfigured, will disable multicast VXLAN mode. +# +# vxlan_group = +# Example: vxlan_group = 239.1.1.1 + +[securitygroup] +# Controls if neutron security group is enabled or not. +# It should be false when you use nova security group. +# enable_security_group = True diff --git a/etc/neutron/plugins/ml2/ml2_conf_arista.ini b/etc/neutron/plugins/ml2/ml2_conf_arista.ini new file mode 100644 index 000000000..a4cfee0cd --- /dev/null +++ b/etc/neutron/plugins/ml2/ml2_conf_arista.ini @@ -0,0 +1,45 @@ +# Defines configuration options specific for Arista ML2 Mechanism driver + +[ml2_arista] +# (StrOpt) EOS IP address. This is required field. If not set, all +# communications to Arista EOS will fail +# +# eapi_host = +# Example: eapi_host = 192.168.0.1 +# +# (StrOpt) EOS command API username. This is required field. +# if not set, all communications to Arista EOS will fail. +# +# eapi_username = +# Example: arista_eapi_username = admin +# +# (StrOpt) EOS command API password. This is required field. +# if not set, all communications to Arista EOS will fail. +# +# eapi_password = +# Example: eapi_password = my_password +# +# (StrOpt) Defines if hostnames are sent to Arista EOS as FQDNs +# ("node1.domain.com") or as short names ("node1"). This is +# optional. If not set, a value of "True" is assumed. +# +# use_fqdn = +# Example: use_fqdn = True +# +# (IntOpt) Sync interval in seconds between Neutron plugin and EOS. +# This field defines how often the synchronization is performed. +# This is an optional field. If not set, a value of 180 seconds +# is assumed. +# +# sync_interval = +# Example: sync_interval = 60 +# +# (StrOpt) Defines Region Name that is assigned to this OpenStack Controller. +# This is useful when multiple OpenStack/Neutron controllers are +# managing the same Arista HW clusters. Note that this name must +# match with the region name registered (or known) to keystone +# service. Authentication with Keysotne is performed by EOS. +# This is optional. If not set, a value of "RegionOne" is assumed. +# +# region_name = +# Example: region_name = RegionOne diff --git a/etc/neutron/plugins/ml2/ml2_conf_brocade.ini b/etc/neutron/plugins/ml2/ml2_conf_brocade.ini new file mode 100644 index 000000000..66987e991 --- /dev/null +++ b/etc/neutron/plugins/ml2/ml2_conf_brocade.ini @@ -0,0 +1,13 @@ +[ml2_brocade] +# username = +# password = +# address = +# ostype = NOS +# physical_networks = physnet1,physnet2 +# +# Example: +# username = admin +# password = password +# address = 10.24.84.38 +# ostype = NOS +# physical_networks = physnet1,physnet2 diff --git a/etc/neutron/plugins/ml2/ml2_conf_cisco.ini b/etc/neutron/plugins/ml2/ml2_conf_cisco.ini new file mode 100644 index 000000000..95f963f83 --- /dev/null +++ b/etc/neutron/plugins/ml2/ml2_conf_cisco.ini @@ -0,0 +1,94 @@ +[ml2_cisco] + +# (StrOpt) A short prefix to prepend to the VLAN number when creating a +# VLAN interface. For example, if an interface is being created for +# VLAN 2001 it will be named 'q-2001' using the default prefix. +# +# vlan_name_prefix = q- +# Example: vlan_name_prefix = vnet- + +# (BoolOpt) A flag to enable round robin scheduling of routers for SVI. +# svi_round_robin = False + +# +# (StrOpt) The name of the physical_network managed via the Cisco Nexus Switch. +# This string value must be present in the ml2_conf.ini network_vlan_ranges +# variable. +# +# managed_physical_network = +# Example: managed_physical_network = physnet1 + +# Cisco Nexus Switch configurations. +# Each switch to be managed by Openstack Neutron must be configured here. +# +# Cisco Nexus Switch Format. +# [ml2_mech_cisco_nexus:] +# = (1) +# ssh_port= (2) +# username= (3) +# password= (4) +# +# (1) For each host connected to a port on the switch, specify the hostname +# and the Nexus physical port (interface) it is connected to. +# Valid intf_type's are 'ethernet' and 'port-channel'. +# The default setting for is 'ethernet' and need not be +# added to this setting. +# (2) The TCP port for connecting via SSH to manage the switch. This is +# port number 22 unless the switch has been configured otherwise. +# (3) The username for logging into the switch to manage it. +# (4) The password for logging into the switch to manage it. +# +# Example: +# [ml2_mech_cisco_nexus:1.1.1.1] +# compute1=1/1 +# compute2=ethernet:1/2 +# compute3=port-channel:1 +# ssh_port=22 +# username=admin +# password=mySecretPassword + +[ml2_cisco_apic] + +# Hostname for the APIC controller +# apic_host=1.1.1.1 + +# Username for the APIC controller +# apic_username=user + +# Password for the APIC controller +# apic_password=password + +# Port for the APIC Controller +# apic_port=80 + +# Names for APIC objects used by Neutron +# Note: When deploying multiple clouds against one APIC, +# these names must be unique between the clouds. +# apic_vmm_domain=openstack +# apic_vlan_ns_name=openstack_ns +# apic_node_profile=openstack_profile +# apic_entity_profile=openstack_entity +# apic_function_profile=openstack_function + +# The following flag will cause all the node profiles on the APIC to +# be cleared when neutron-server starts. This is typically used only +# for test environments that require clean-slate startup conditions. +# apic_clear_node_profiles=False + +# Specify your network topology. +# This section indicates how your compute nodes are connected to the fabric's +# switches and ports. The format is as follows: +# +# [switch:] +# ,= +# +# You can have multiple sections, one for each switch in your fabric that is +# participating in Openstack. e.g. +# +# [switch:17] +# ubuntu,ubuntu1=1/10 +# ubuntu2,ubuntu3=1/11 +# +# [switch:18] +# ubuntu5,ubuntu6=1/1 +# ubuntu7,ubuntu8=1/2 diff --git a/etc/neutron/plugins/ml2/ml2_conf_fslsdn.ini b/etc/neutron/plugins/ml2/ml2_conf_fslsdn.ini new file mode 100644 index 000000000..6ee4a4e00 --- /dev/null +++ b/etc/neutron/plugins/ml2/ml2_conf_fslsdn.ini @@ -0,0 +1,52 @@ +# Defines Configuration options for FSL SDN OS Mechanism Driver +# Cloud Resource Discovery (CRD) authorization credentials +[ml2_fslsdn] +#(StrOpt) User name for authentication to CRD. +# e.g.: user12 +# +# crd_user_name = + +#(StrOpt) Password for authentication to CRD. +# e.g.: secret +# +# crd_password = + +#(StrOpt) Tenant name for CRD service. +# e.g.: service +# +# crd_tenant_name = + +#(StrOpt) CRD auth URL. +# e.g.: http://127.0.0.1:5000/v2.0/ +# +# crd_auth_url = + +#(StrOpt) URL for connecting to CRD Service. +# e.g.: http://127.0.0.1:9797 +# +# crd_url= + +#(IntOpt) Timeout value for connecting to CRD service +# in seconds, e.g.: 30 +# +# crd_url_timeout= + +#(StrOpt) Region name for connecting to CRD in +# admin context, e.g.: RegionOne +# +# crd_region_name= + +#(BoolOpt)If set, ignore any SSL validation issues (boolean value) +# e.g.: False +# +# crd_api_insecure= + +#(StrOpt)Authorization strategy for connecting to CRD in admin +# context, e.g.: keystone +# +# crd_auth_strategy= + +#(StrOpt)Location of CA certificates file to use for CRD client +# requests. +# +# crd_ca_certificates_file= diff --git a/etc/neutron/plugins/ml2/ml2_conf_mlnx.ini b/etc/neutron/plugins/ml2/ml2_conf_mlnx.ini new file mode 100644 index 000000000..01b0797cf --- /dev/null +++ b/etc/neutron/plugins/ml2/ml2_conf_mlnx.ini @@ -0,0 +1,6 @@ +[eswitch] +# (StrOpt) Type of Network Interface to allocate for VM: +# mlnx_direct or hostdev according to libvirt terminology +# vnic_type = mlnx_direct +# (BoolOpt) Enable server compatibility with old nova +# apply_profile_patch = False diff --git a/etc/neutron/plugins/ml2/ml2_conf_ncs.ini b/etc/neutron/plugins/ml2/ml2_conf_ncs.ini new file mode 100644 index 000000000..dbbfcbd28 --- /dev/null +++ b/etc/neutron/plugins/ml2/ml2_conf_ncs.ini @@ -0,0 +1,28 @@ +# Defines configuration options specific to the Tail-f NCS Mechanism Driver + +[ml2_ncs] +# (StrOpt) Tail-f NCS HTTP endpoint for REST access to the OpenStack +# subtree. +# If this is not set then no HTTP requests will be made. +# +# url = +# Example: url = http://ncs/api/running/services/openstack + +# (StrOpt) Username for HTTP basic authentication to NCS. +# This is an optional parameter. If unspecified then no authentication is used. +# +# username = +# Example: username = admin + +# (StrOpt) Password for HTTP basic authentication to NCS. +# This is an optional parameter. If unspecified then no authentication is used. +# +# password = +# Example: password = admin + +# (IntOpt) Timeout in seconds to wait for NCS HTTP request completion. +# This is an optional parameter, default value is 10 seconds. +# +# timeout = +# Example: timeout = 15 + diff --git a/etc/neutron/plugins/ml2/ml2_conf_odl.ini b/etc/neutron/plugins/ml2/ml2_conf_odl.ini new file mode 100644 index 000000000..9e88c1bbf --- /dev/null +++ b/etc/neutron/plugins/ml2/ml2_conf_odl.ini @@ -0,0 +1,30 @@ +# Configuration for the OpenDaylight MechanismDriver + +[ml2_odl] +# (StrOpt) OpenDaylight REST URL +# If this is not set then no HTTP requests will be made. +# +# url = +# Example: url = http://192.168.56.1:8080/controller/nb/v2/neutron + +# (StrOpt) Username for HTTP basic authentication to ODL. +# +# username = +# Example: username = admin + +# (StrOpt) Password for HTTP basic authentication to ODL. +# +# password = +# Example: password = admin + +# (IntOpt) Timeout in seconds to wait for ODL HTTP request completion. +# This is an optional parameter, default value is 10 seconds. +# +# timeout = 10 +# Example: timeout = 15 + +# (IntOpt) Timeout in minutes to wait for a Tomcat session timeout. +# This is an optional parameter, default value is 30 minutes. +# +# session_timeout = 30 +# Example: session_timeout = 60 diff --git a/etc/neutron/plugins/ml2/ml2_conf_ofa.ini b/etc/neutron/plugins/ml2/ml2_conf_ofa.ini new file mode 100644 index 000000000..4a94b9870 --- /dev/null +++ b/etc/neutron/plugins/ml2/ml2_conf_ofa.ini @@ -0,0 +1,13 @@ +# Defines configuration options specific to the OpenFlow Agent Mechanism Driver + +[ovs] +# Please refer to configuration options to the OpenvSwitch + +[agent] +# (IntOpt) Number of seconds to retry acquiring an Open vSwitch datapath. +# This is an optional parameter, default value is 60 seconds. +# +# get_datapath_retry_times = +# Example: get_datapath_retry_times = 30 + +# Please refer to configuration options to the OpenvSwitch else the above. diff --git a/etc/neutron/plugins/mlnx/mlnx_conf.ini b/etc/neutron/plugins/mlnx/mlnx_conf.ini new file mode 100644 index 000000000..b12251116 --- /dev/null +++ b/etc/neutron/plugins/mlnx/mlnx_conf.ini @@ -0,0 +1,79 @@ +[mlnx] +# (StrOpt) Type of network to allocate for tenant networks. The +# default value is 'vlan' You MUST configure network_vlan_ranges below +# in order for tenant networks to provide connectivity between hosts. +# Set to 'none' to disable creation of tenant networks. +# +# tenant_network_type = vlan +# Example: tenant_network_type = vlan + +# (ListOpt) Comma-separated list of +# [::] tuples enumerating ranges +# of VLAN IDs on named physical networks that are available for +# allocation. All physical networks listed are available for flat and +# VLAN provider network creation. Specified ranges of VLAN IDs are +# available for tenant network allocation if tenant_network_type is +# 'vlan'. If empty, only local networks may be created. +# +# network_vlan_ranges = +# Example: network_vlan_ranges = default:1:100 + +# (ListOpt) Comma-separated list of +# : tuples mapping physical +# network names to physical network types. All physical +# networks listed in network_vlan_ranges should have +# mappings to appropriate physical network type. +# Type of the physical network can be either eth (Ethernet) or +# ib (InfiniBand). If empty, physical network eth type is assumed. +# +# physical_network_type_mappings = +# Example: physical_network_type_mappings = default:eth + +# (StrOpt) Type of the physical network, can be either 'eth' or 'ib' +# The default value is 'eth' +# physical_network_type = eth + +[eswitch] +# (ListOpt) Comma-separated list of +# : tuples mapping physical +# network names to the agent's node-specific physical network +# interfaces to be used for flat and VLAN networks. All physical +# networks listed in network_vlan_ranges on the server should have +# mappings to appropriate interfaces on each agent. +# +# physical_interface_mappings = +# Example: physical_interface_mappings = default:eth2 + +# (StrOpt) Type of Network Interface to allocate for VM: +# direct or hosdev according to libvirt terminology +# vnic_type = mlnx_direct + +# (StrOpt) Eswitch daemon end point connection url +# daemon_endpoint = 'tcp://127.0.0.1:60001' + +# The number of milliseconds the agent will wait for +# response on request to daemon +# request_timeout = 3000 + +# The number of retries the agent will send request +# to daemon before giving up +# retries = 3 + +# The backoff rate multiplier for waiting period between retries +# on request to daemon, i.e. value of 2 will double +# the request timeout each retry +# backoff_rate = 2 + +[agent] +# Agent's polling interval in seconds +# polling_interval = 2 + +# (BoolOpt) Enable server RPC compatibility with old (pre-havana) +# agents. +# +# rpc_support_old_agents = False + +[securitygroup] +# Controls if neutron security group is enabled or not. +# It should be false when you use nova security group. +# enable_security_group = True diff --git a/etc/neutron/plugins/nec/nec.ini b/etc/neutron/plugins/nec/nec.ini new file mode 100644 index 000000000..aa4171da7 --- /dev/null +++ b/etc/neutron/plugins/nec/nec.ini @@ -0,0 +1,60 @@ +# Sample Configurations + +[ovs] +# Do not change this parameter unless you have a good reason to. +# This is the name of the OVS integration bridge. There is one per hypervisor. +# The integration bridge acts as a virtual "patch port". All VM VIFs are +# attached to this bridge and then "patched" according to their network +# connectivity. +# integration_bridge = br-int + +[agent] +# Agent's polling interval in seconds +# polling_interval = 2 + +[securitygroup] +# Firewall driver for realizing neutron security group function +firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver + +# Controls if neutron security group is enabled or not. +# It should be false when you use nova security group. +# enable_security_group = True + +[ofc] +# Specify OpenFlow Controller Host, Port and Driver to connect. +# host = 127.0.0.1 +# port = 8888 + +# Base URL of OpenFlow Controller REST API. +# It is prepended to a path of each API request. +# path_prefix = + +# Drivers are in neutron/plugins/nec/drivers/ . +# driver = trema + +# PacketFilter is available when it's enabled in this configuration +# and supported by the driver. +# enable_packet_filter = true + +# Use SSL to connect +# use_ssl = false + +# Key file +# key_file = + +# Certificate file +# cert_file = + +# Disable SSL certificate verification +# insecure_ssl = false + +# Maximum attempts per OFC API request. NEC plugin retries +# API request to OFC when OFC returns ServiceUnavailable (503). +# The value must be greater than 0. +# api_max_attempts = 3 + +[provider] +# Default router provider to use. +# default_router_provider = l3-agent +# List of enabled router providers. +# router_providers = l3-agent,openflow diff --git a/etc/neutron/plugins/nuage/nuage_plugin.ini b/etc/neutron/plugins/nuage/nuage_plugin.ini new file mode 100644 index 000000000..994d1206c --- /dev/null +++ b/etc/neutron/plugins/nuage/nuage_plugin.ini @@ -0,0 +1,10 @@ +# Please fill in the correct data for all the keys below and uncomment key-value pairs +[restproxy] +#default_net_partition_name = +#auth_resource = /auth +#server = ip:port +#organization = org +#serverauth = uname:pass +#serverssl = True +#base_uri = /base + diff --git a/etc/neutron/plugins/oneconvergence/nvsdplugin.ini b/etc/neutron/plugins/oneconvergence/nvsdplugin.ini new file mode 100644 index 000000000..a1c05d971 --- /dev/null +++ b/etc/neutron/plugins/oneconvergence/nvsdplugin.ini @@ -0,0 +1,35 @@ +[nvsd] +# Configure the NVSD controller. The plugin proxies the api calls using +# to NVSD controller which implements the required functionality. + +# IP address of NVSD controller api server +# nvsd_ip = + +# Port number of NVSD controller api server +# nvsd_port = 8082 + +# Authentication credentials to access the api server +# nvsd_user = +# nvsd_passwd = + +# API request timeout in seconds +# request_timeout = + +# Maximum number of retry attempts to login to the NVSD controller +# Specify 0 to retry until success (default) +# nvsd_retries = 0 + +[securitygroup] +# Specify firewall_driver option, if neutron security groups are disabled, +# then NoopFirewallDriver otherwise OVSHybridIptablesFirewallDriver. +# firewall_driver = neutron.agent.firewall.NoopFirewallDriver + +# Controls if neutron security group is enabled or not. +# It should be false when you use nova security group. +# enable_security_group = True + +[agent] +# root_helper = sudo /usr/local/bin/neutron-rootwrap /etc/neutron/rootwrap.conf + +[database] +# connection = mysql://root:@127.0.0.1/?charset=utf8 diff --git a/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini b/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini new file mode 100644 index 000000000..4beee58fa --- /dev/null +++ b/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini @@ -0,0 +1,179 @@ +[ovs] +# (StrOpt) Type of network to allocate for tenant networks. The +# default value 'local' is useful only for single-box testing and +# provides no connectivity between hosts. You MUST either change this +# to 'vlan' and configure network_vlan_ranges below or change this to +# 'gre' or 'vxlan' and configure tunnel_id_ranges below in order for +# tenant networks to provide connectivity between hosts. Set to 'none' +# to disable creation of tenant networks. +# +# tenant_network_type = local +# Example: tenant_network_type = gre +# Example: tenant_network_type = vxlan + +# (ListOpt) Comma-separated list of +# [::] tuples enumerating ranges +# of VLAN IDs on named physical networks that are available for +# allocation. All physical networks listed are available for flat and +# VLAN provider network creation. Specified ranges of VLAN IDs are +# available for tenant network allocation if tenant_network_type is +# 'vlan'. If empty, only gre, vxlan and local networks may be created. +# +# network_vlan_ranges = +# Example: network_vlan_ranges = physnet1:1000:2999 + +# (BoolOpt) Set to True in the server and the agents to enable support +# for GRE or VXLAN networks. Requires kernel support for OVS patch ports and +# GRE or VXLAN tunneling. +# +# WARNING: This option will be deprecated in the Icehouse release, at which +# point setting tunnel_type below will be required to enable +# tunneling. +# +# enable_tunneling = False + +# (StrOpt) The type of tunnel network, if any, supported by the plugin. If +# this is set, it will cause tunneling to be enabled. If this is not set and +# the option enable_tunneling is set, this will default to 'gre'. +# +# tunnel_type = +# Example: tunnel_type = gre +# Example: tunnel_type = vxlan + +# (ListOpt) Comma-separated list of : tuples +# enumerating ranges of GRE or VXLAN tunnel IDs that are available for +# tenant network allocation if tenant_network_type is 'gre' or 'vxlan'. +# +# tunnel_id_ranges = +# Example: tunnel_id_ranges = 1:1000 + +# Do not change this parameter unless you have a good reason to. +# This is the name of the OVS integration bridge. There is one per hypervisor. +# The integration bridge acts as a virtual "patch bay". All VM VIFs are +# attached to this bridge and then "patched" according to their network +# connectivity. +# +# integration_bridge = br-int + +# Only used for the agent if tunnel_id_ranges (above) is not empty for +# the server. In most cases, the default value should be fine. +# +# tunnel_bridge = br-tun + +# Peer patch port in integration bridge for tunnel bridge +# int_peer_patch_port = patch-tun + +# Peer patch port in tunnel bridge for integration bridge +# tun_peer_patch_port = patch-int + +# Uncomment this line for the agent if tunnel_id_ranges (above) is not +# empty for the server. Set local-ip to be the local IP address of +# this hypervisor. +# +# local_ip = + +# (ListOpt) Comma-separated list of : tuples +# mapping physical network names to the agent's node-specific OVS +# bridge names to be used for flat and VLAN networks. The length of +# bridge names should be no more than 11. Each bridge must +# exist, and should have a physical network interface configured as a +# port. All physical networks listed in network_vlan_ranges on the +# server should have mappings to appropriate bridges on each agent. +# +# bridge_mappings = +# Example: bridge_mappings = physnet1:br-eth1 + +[agent] +# Agent's polling interval in seconds +# polling_interval = 2 + +# Minimize polling by monitoring ovsdb for interface changes +# minimize_polling = True + +# When minimize_polling = True, the number of seconds to wait before +# respawning the ovsdb monitor after losing communication with it +# ovsdb_monitor_respawn_interval = 30 + +# (ListOpt) The types of tenant network tunnels supported by the agent. +# Setting this will enable tunneling support in the agent. This can be set to +# either 'gre' or 'vxlan'. If this is unset, it will default to [] and +# disable tunneling support in the agent. When running the agent with the OVS +# plugin, this value must be the same as "tunnel_type" in the "[ovs]" section. +# When running the agent with ML2, you can specify as many values here as +# your compute hosts supports. +# +# tunnel_types = +# Example: tunnel_types = gre +# Example: tunnel_types = vxlan +# Example: tunnel_types = vxlan, gre + +# (IntOpt) The port number to utilize if tunnel_types includes 'vxlan'. By +# default, this will make use of the Open vSwitch default value of '4789' if +# not specified. +# +# vxlan_udp_port = +# Example: vxlan_udp_port = 8472 + +# (IntOpt) This is the MTU size of veth interfaces. +# Do not change unless you have a good reason to. +# The default MTU size of veth interfaces is 1500. +# veth_mtu = +# Example: veth_mtu = 1504 + +# (BoolOpt) Flag to enable l2-population extension. This option should only be +# used in conjunction with ml2 plugin and l2population mechanism driver. It'll +# enable plugin to populate remote ports macs and IPs (using fdb_add/remove +# RPC calbbacks instead of tunnel_sync/update) on OVS agents in order to +# optimize tunnel management. +# +# l2_population = False + +# Enable local ARP responder. Requires OVS 2.1. This is only used by the l2 +# population ML2 MechanismDriver. +# +# arp_responder = False + +# (BoolOpt) Set or un-set the don't fragment (DF) bit on outgoing IP packet +# carrying GRE/VXLAN tunnel. The default value is True. +# +# d