In python 3 print statement is not supported, so we should use
only print() functions.
This patch also removes print in unit test, left by accident
Fixes bug 1226943
Change-Id: I5ace50cb9e149682344b4c986ef9318f8dc50f72
bp: remove-bin-directory
There are some binaries which are expected to run in branch, so
we have to keep them there now.
Change-Id: I5134d975cbd69f929a325ab80a6d19ce1f122656
In d9832282cf656b162c51afdefb830dacab72defe we dropped
the DHCP lease logic from neutron... including
the neutron-dhcp-agent-dnsmasq-lease-update.
Both the neutron and quantum bins were removed from setup.cfg
so we should also drop the quantum-dhcp-agent-dnsmasq-lease-update
as well.
Change-Id: I568845dc28aa4dc9012435de2f0689aafa00a43c
Previously neutron was keeping track of dhcp lease time in order
to ensure it didn't hand out an ip address that was already leased.
This patch removes that logic and instead leverages the dhcp_release
utility. This allows us to reuse ip addresses immediately after a port
is deleted. This patch also bumps the lease time to 24 hours instead
of 2 minutes with reduces the amount of dhcp traffic.
DocImpact
There is a DocImpact for this bug related to the upgrade path. One should
first upgrade their dhcp-agents. Then wait till the dhcp_lease time has
expired. Lastly, update neutron-server in order to avoid the case where
an instance is deleted and the dnsmasq process has not released the lease
and neturon allocates that ip to a new port.
Fixes bug: 1202392
Implements blueprint: remove-dhcp-lease
Change-Id: Ifcb4f093c92904ceb896438987d53e692eb7fb26
Some changes were missing from the previous rename patch, so it broke
XenServer support. This patch contains the missing adjustments.
related to blueprint remove-use-of-quantum
Change-Id: I1ee5cc38d555bd5c26edf00a456ec71919604d79
Use the common oslo-incubator rootwrap rather than maintain a
specific fork within Neutron.
- Migrated DnsmasqFilter use in dhcp.filters to the new EnvFilter
- Changed environment passing in ip_lib's netns.execute so that
it can be properly matched using IpNetNsExecFilter + EnvFilter.
It now calls "ip netns exec ns env A=B C=D command" instead of
"A=B C=D ip netns exec ns command". Adjusted tests accordingly.
All the other changes are coming directly from the Oslo "rootwrap"
module sync.
Notes:
- Neutron locates its rootwrap.conf in etc/ rather than in etc/neutron
- Neutron maintains a specific bin/quantum-rootwrap-xen-dom0 which
requires additional config in rootwrap.conf
Both behaviors were preserved in this commit, but this may need to be
addressed in the future to simplify future oslo-rootwrap updates.
Implements bp: quantum-common-rootwrap
Change-Id: I02879942a9d1169a71aa4d684c1b9ec109a6de32
This change renames everything to Neutron while providing backwards
compatible adjustments for Grizzly configuration files.
implements blueprint: remove-use-of-quantum
Change-Id: Ie7d07ba7c89857e13d4ddc8f0e9b68de020a3d19
As per change https://review.openstack.org/33429 the config sections
became lowercase. This patch makes the quantum-rootwrap-xen-dom0
rootwrap to be case insensitive for the xenapi section.
This patch also changes the default config file to use a lowercase
xenapi section.
Fixes bug 1195781
Change-Id: Ic24feb1a9ad6f8823745b1febd4a0edd54e73498
implements blueprint multi-vendor-support-for-lbaas-step1
This patch implements the following changes:
* merge lbaas_plugin.py and plugin.py into 'plugin.py'
After that the default 'reference' implementation is available again.
* move all code related to reference implementation from plugin.py to
drivers/haproxy/plugin_driver.py
* Inherit HaproxyOnHostPluginDriver from abstract driver and implement
its interface.
* modify tests accordingly
Change-Id: Ib4bfe286826acdedeadbeeff4713448c073378d2
The xenapi root wrapper did not parse the "exec_dirs" parameter, so it
failed to execute the commands. This patch works around this problem by
parsing the "exec_dirs".
Fixes bug 1185872
Change-Id: I10175c7df5d34e47eb6044711ffbe4fe4cee3ce2
Implements Mellanox Quantum plugin.
This plugin implements Quantum v2 APIs with support for Mellanox embedded
switch functionality as part of the VPI (Ethernet/InfiniBand) HCA.
Change-Id: I22907dfec5b6cb8f6ad8c3b6e390abc4f8e0ac10
Import features developed in oslo-rootwrap during the Grizzly cycle (and
recently in havana) into quantum-rootwrap. This is the first step toward
using the common oslo-rootwrap into Quantum: the goal being to make both
implementations converge, we should avoid making local changes (and push
any required change into oslo-rootwrap instead from now on).
New features include:
- Optional logging (use_syslog)
- Searching for executables in a specified binary path (exec_dirs)
- New path-based PathFilter
Those features required a refactoring in the way executables are matched
and in configuration loading.
Implements bp quantum-rootwrap-new-features
Change-Id: Ia6a2e91c297ade471448dae0964adfd001a46086
* Config doc: http://wiki.openstack.org/QuantumDevstackOvsXcp
* The Open vSwitch agent needs to be deployed on domU but
interact with a dom0 bridge.
* Add a root wrapper and associated XenAPI plugin to allow the
agent to execute networking commands against dom0 from domU.
* Update ovs_lib mac address discovery to use ip_lib to
ensure that discovery works even for bridges not local to
the agent (i.e. dom0 bridges). A bridge configured with
a dom0 root wrapper will execute ip link on dom0.
* Update ip_lib to use a root helper by default to ensure that
the 'ip' command will execute on dom0.
* Remove obselete rpm spec and installer for dom0 agent.
* Credit where credit is due - the XenAPI plugin and its
packaging were largely copied from nova.
* Supports blueprint xenapi-ovs
Change-Id: I7795446ee1267712c896f5cb3401f84fb1763ce7
* s+[/.]nicira_nvp_plugin++
* Backwards compatibility is maintained by importing the
nicira package as nicira_nvp_plugin in the plugins package.
* It may be necessary to remove stale .pyc/.pyo files under the
nicira path after applying this patch.
* DocImpact
* Addresses bug 1166307
Change-Id: I241a2a75106398506b01bcb7a6ddbaafa1b7bd30
Update oslo rpc libraries to capture changes, primarly motivated
by secret=True flag on password config options.
Added bin/quantum-rpc-zmq-receiver
Change-Id: I40d3ef1a85901e5b9eab803cc67cdad3cbb0719a
implements blueprint lbaas-namespace-agent
This a reference implemention of the Quantum load balancing service
using HAProxy. The implemention is designed for vendors, developers,
and deployers to become familiar with the API and service workflow.
This change also adds some constraint checks for data integrity.
Change-Id: I10a67da11840477ccf063b98149f4f77248802a1
The cfg API is now available via the oslo-config library, so switch to
it and remove the copied-and-pasted version.
Add the 2013.1b3 tarball to tools/pip-requires - this will be changed
to 'oslo-config>=2013.1' when oslo-config is published to pypi. This
will happen in time for grizzly final.
Remove the 'deps = pep8' from tox.ini as it means all the other deps
get installed with easy_install which can't install oslo-config from
the URL.
Retain dummy cfg.py file until keystoneclient middleware has been
updated (I18c450174277c8e2d15ed93879da6cd92074c27a).
Change-Id: I4815aeb8a9341a31a250e920157f15ee15cfc5bc
Some changes in setup.py are required to properly handle dependencies
and data files on WIndows (including Hyper-V server).
A console script called "quantum-hyperv-agent" has also been added to
start the Hyper-V agent
Change-Id: Ifac2d33afabac242d9dab87b0bc1764421efc16f
Implements blueprint argparse-based-cfg
Sync the following changes from oslo-incubator:
479f19c Add deprecated --logdir common opt
27b2ff4 Add deprecated --logfile common opt.
9b81289 Allow nova and others to override some logging defaults
3557d84 Fix ListOpt to trim whitespace
01ab910 Fix set_default() with boolean CLI options
af18eaa Improve cfg's argparse sub-parsers support
f21e1d9 Fix regression with cfg CLI arguments
ceb4aa7 Fix broken --help with CommonConfigOpts
5e9503b Hide the GroupAttr conf and group attributes
b6d24bb updating sphinx documentation
403509e Don't reference argparse._StoreAction
e17deb8 Fix minor coding style issue
0c29e1d Remove ConfigCliParser class
5b9cb41 Add support for positional arguments
dbc72a6 Use stock argparse behaviour for optional args
768a147 Use stock argparse --usage behaviour
ac180b9 Use stock argparse --version behaviour
0787e38 Remove add_option() method
5afead0 Completely remove cfg's disable_interspersed_args()
5f564b2 argparse support for cfg
d7b6397 Add a missing comma in a docstring.
aca1805 cfg: fix required if option has a dash
Note: various utilities/services with command line parameters needed to be
updated due to the changes mentioned above. The downside is that these are
not backward compatible. Unknown arguments are no ignored. Only bound
arguments will be treated.
Thanks to Mark McLoughlin for migration cli code changes.
Change-Id: Ia776e78cc55f4ed33ace5efa8d726b70e3fa4131
implements blueprint quantum-db-upgrades
This changeset provide database migration capabilities to Quantum by
wrapping the Alembic library.
Change-Id: I8ba3a07f5a65e0fda9c0e85ed9c07c5978c53bc7
Fixes bug 1091605
The utility should be called after rebooting an appliance. This
will purge the openvswicth of configured tap devices.
A configuration variable quantum_ports has been added. This is
by default True which indicates that only Quantum ports will be
deleted from the OVS. If this is set as False then all ports on the
bridge will be deleted.
Change-Id: I442f64cf82f95bfa99d7765eb09db1ce2ecf602e
To avoid installation into .../site-packages/quantum via
packages=setuptools.find_packages('.') in setup.py. Both directories
are not Python modules.
Change-Id: I794ad047a5ed52cb040490eb1be54c513c9d1e7c
blueprint metadata-overlapping-networks
Adds Metadata for guest VMs running on Qunatum networks. This requires
a companion patchset for Nova to test.
Change-Id: I524c6fdcd6a44e46da08395fd84c1288052a69ea
This adds a program aiming to send "$resource.exists" notifications regularly
via a cronjob. We will use this in Ceilometer to meter resources usage.
Change-Id: I718c67bfb54b74afb3af262bb08cbfd71531188a
Signed-off-by: Julien Danjou <julien@danjou.info>
Python ignores SIGPIPE on startup, because it prefers to check every
write and raise an IOError exception rather than taking the signal. Most
Unix subprocesses don't expect to work this way. This patch (adapted
from Colin Watson's post at http://tinyurl.com/2a7mzh5) sets SIGPIPE
back to the default action for quantum.agent.linux.utils.execute,
quantum.common.utils.execute and quantum-rootwrap created subprocesses.
Fixes bug 1053364
Change-Id: Ib805f1f8846c245b75a5ea64278c840b823c1fb2
This agent client plugs itself into each network.
Then tries to ping each fixed_ips.
Implements blueprint test-agent
Change-Id: I3908e37401272e9e091ceae66e72cfcdd13b7898
Fixes bug 1035366
Adds namespace clean up utility called quantum-netns-cleanup which can be used
to remove old namespaces.
The --force option can be used to remove all Quantum namespaces and any
remaining devices. The force option is should not be run on a live Quantum
systems. It is intended for cleaning up devstack a after running
unstack.sh (ideally this will be added to unstack.sh in the future).
Example cmd line when cleaning up a devstack install:
quantum-netns-cleanup --config-file /etc/quantum/quantum.conf \
--config-file /etc/quantum/dhcp_agent.ini --force
Change-Id: I6cf153df21e83bff2cde816db12b22102d1ba698
Fix bug 1037815
Summary: Copy/paste the essential parts of the rootwrap
mechanism from nova/cinder into quantum. This includes
the core changes to filter.py and wrapper.py which deal
with loading filters from files pointed to by
rootwrap.conf
Detailed changes:
Transliterate the old rootwrap/*-agent.py files to
new format, and put the results in etc/quantum/rootwrap.d
Delete the *-agent.py files.
Add conf to point to etc/quantum/rootwrap.d
Add a unit test cribbed from nova to exercise the filter
mechanism
Add a unit test to exercise the actual filtered execution
Note that as written, this patch does not set the default
execute mechanism (in the agent .ini files) to rootwrap,
leaves it as sudo. That can be done in a followon
change, or in distro specific packaging.
Note also that there is still work to do around finishing
and testing the filter specs themselves. We've decided
that that is out of scope for this patch.
Change-Id: I9aba6adc5ba40b6145be5fa38c5ece3b666ae5ca
Fixes bug 1022804
This is phase 2 of the bug fix. This changeset adds support for dnsmasq
--dhcp-script to notify Quantum of lease renewals. Communication between
dnsmasq and the Quantum DHCP agent occurs via UNIX domain socket since dnsmasq
may run in a network namespace. The DHCP agent is responsible for
relaying the updated lease expiration back the Quantum server.
Change-Id: If42b76bbb9ec7543e681e26b9add8eb1d7054eeb
bp quantum-l3-fw-nat
router & floating IP API calls, plugin db, and agent implemented
and unit tested
Change-Id: I6ee61396d22e2fd7840aa2ff7d1f6f4a2c6e54d4
When running commands that require root privileges, the linuxbridge,
openvswitch, and ryu agent now prepend the commands with the value of
the root_helper config variable. This is set to "sudo" in the plugins'
.ini files, allowing the agent to run as a non-root user with
appropriate sudo privilidges.
If root_helper is changed to "sudo quantum-rootwrap",
then the command being run will be filtered against lists of each
agent's valid commands in quantum/rootwrap. See
http://wiki.openstack.org/Packager/Rootwrap for details.
Fixes bug 948467.
Change-Id: I549515068a4ce8ae480905ec5eaab6257445d0c3
Signed-off-by: Bob Kukura <rkukura@redhat.com>
blueprint ovs-driver-extention
This patch implements the blueprint ovs-driver-extention
https://blueprints.launchpad.net/quantum/+spec/ovs-driver-extension
This patch factors out ovs common logic from ovs plugin into ovscommon
and adds Ryu NOS plugin.
This patch enhances ovs plugin for generic OVS controller support and
This patch is to add ofp controller support to OVS.
Store ofp controller address in ovs quantum data base.
- nova firewall_driver
- nova linuxnet_interface_driver
There may be ports unmanaged by nova/quantum. Those ports are used
to connect vm to outside of physical machine. They needs special care.
---
Changes 12 -> 13:
- rebased to 543e150d6dc9144ebcc588b7d2bd66374a107730
changed files are only MANIFEST.in, setup.py, tools/pip-requres
Changes 11 -> 12:
- ryu agent
eliminated from quantum.common import exceptions as exc
- ryu.db.api
eliminated ofp_has_servers
- ryu.nova
eliminated from quantum.plugins.ryu.nova import ovs_utils
and eliminate ovs_utils
Chnages 10 -> 11:
- rebased to a945d1a30478c644d307c77a8a85f3a08e5a834e
- more Maru's review
- setup.py: fix setup() argument
This isn't directly related to ryu plugin though
- improve fake ini file when unit test
remove fake ini file after unit tests.
use StringIO when no file is required.
- LOG: don't use %
Chnages 8 -> 9 -> 10:
- minor fixes: forgot to commit some hunks
Chnages 7 -> 8:
- rebased to d6bf2b76162ba806b2ad1f636f6273e47e03a117
- catch up d6bf2b76162ba806b2ad1f636f6273e47e03a117 change
introduced bin/quantum_ryu_agent
- addressed Maru's review
- avoid custom patching, use mock for test
and added mox and mock to pip-requires
- more pep8
- avoid \ for line continuation
- avoid single char variables
- db.api: first() -> one()
- utilize implicit conversion
var is not None -> var
- and more...
Changes 6 -> 7:
- update comment in ryu/run_tests.py
- make unit tests pass without ryu installed
i.e.
PLUGIN_DIR=quantum/plugins/ryu/ ./run_tests.sh
works now
Chages 5 -> 6:
- remove comment
Change 4 -> 5:
- eliminate relative imports
- copyright
- doc string
- naming (s/CONF_FILE/conf_file/g)
- add " check to ryu/nova/ovs_utils
- ryu/nova/linux_net: comment
- ryu agent: eliminated unused methods
- updated ryu/README: add http://www.osrg.net/ryu/using_with_openstack.html
- added unit tests
Changes 3 -> 4:
- reflected Dan's review
- on-OVS in ryu.ini
- update @author
- some naming
Changes 2 -> 3:
- rebased to 04d144ae0b2ad5618847d1784cea48a08d53a46a
- abandoned to share code and duplicated codes from openvswitch plugin
for ovs plugin stability.
- dropped setup_ryu.sh and added README
- update nova driver to catch up upstream change (gflags -> cfg)
Changes 1 -> 2:
- unbreak openvswtich unit test
- MANIFEST.in
Changes 3 -> new 1:
- rebased to 1eb3c693b5f6f3f301047100c36c7915434f8be7
- factor out common loginc from openvswitch plugin into ovscommon
- Introduced a new independent ryu plugin
- try new review due to the previous effort was marked abandoned.
> https://review.openstack.org/#change,3055
> Change-Id: I17801a7a74d4087838a8a26c1b1f97f28c2dcef3
Changes:
- rebased to 9c5c2caef13fa58234987527ab6caff829a37050
- some clean ups
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Change-Id: Ia9fe87525cebccc87b7c18a533f48607272cd97f