Updates the tools/conf/extract_opts.py module so it
imports cfg again.
Fixes "global name 'cfg' is not defined" errors which occur
without it.
Change-Id: Idf7c2c5201c79e7aa359bc555306caadebcc18ce
Fixtures 0.3.12 adds StringStream as a successor to DetailStream (this
change was made for compatibility with python 3). Update Nova's tests to
use StringStream instead of DetailStream.
Change-Id: If697859a52f3a7db9dab38bd080b779bb3270287
Convert nova from using nosetests to testr for its test runner. Some
tests had to be modified to get them to run properly under testr.
run_tests.sh has been updated to run testr instead of nosetests.
Coverage is collected by running subunit.run under coverage.py when the
coverage environment is selected.
Note that you will need to rebuild your virtualenvs as nose is being
removed from the dependency lists and is being replaced by testr. Tests
will run in different processes once this test is merged so you cannot
use test classes to pass information between tests. Each test should be
a proper independent unit. Additionally the -x and -d flags to
run_tests.sh have been removed as there are currently no decent
approximations for those functions.
Change-Id: I019ca098972ca749b195f59968cf21edd5ba9109
The zombie_instance_updated_at_window option is only used in
vm_vdi_cleaner so declare it there.
blueprint: scope-config-opts
Change-Id: I8d95fbd858f8afe855c2b559dea6995497d8f682
Import latest cfg from oslo-incubator with these changes:
Add deprecated --logdir common opt
Add deprecated --logfile common opt.
Allow nova and others to override some logging defaults
Fixing the trim for ListOp when reading from config file
Fix set_default() with boolean CLI options
Improve cfg's argparse sub-parsers support
Hide the GroupAttr conf and group attributes
Fix regression with cfg CLI arguments
Fix broken --help with CommonConfigOpts
Fix ListOpt to trim whitespace
updating sphinx documentation
Don't reference argparse._StoreAction
Fix minor coding style issue
Remove ConfigCliParser class
Add support for positional arguments
Use stock argparse behaviour for optional args
Use stock argparse --usage behaviour
Use stock argparse --version behaviour
Remove add_option() method
Completely remove cfg's disable_interspersed_args()
argparse support for cfg
The main cfg API change is that CONF() no longer returns the un-parsed
CLI arguments. To handle these args, you need to use the support for
positional arguments or sub-parsers.
Switching nova-manage to use sub-parser based CLI arguments means the
following changes in behaviour:
- no more lazy matching of commands - e.g. 'nova-manage proj q' will
no longer work. If we find out about common abbreviations used in
peoples' scripts, we can easily add those.
- the help output displayed if you run nova-manage without any args
(or just a category) has changed
- 'nova-manage version list' is no longer equivalent to
'nova-manage version'
Change-Id: I19ef3a1c00e97af64d199e27cb1cdc5c63b46a82
Provide i18n to some exceptions that were not
provided before.
Change-Id: Ia320ba5f12e82686c8ee7973a77f152eb4b02bd4
Signed-off-by: Chuck Short <chuck.short@canonical.com>
Ubuntu is using a much newer version of lxml so
we shouldn't lock the versions in our infrasctructure.
Change-Id: I688c0be196db526f220262e25afa79d84fcae632
Signed-off-by: Chuck Short <chuck.short@canonical.com>
* With pep8 1.3.3 the exclude logic monkey patch broke causing
tools/hacking to run on openstack/common code
* Also add .git to exclude list
Fix bug 1086410
Change-Id: Ifc50ac1963c50c338432bbb4b1e15cdf58ed2128
Change the boto dependency specification in pip-requires to just 'boto'
without version restriction, as it was before the build issue.
Change-Id: If6c317ffce867f9e544e47c5b0e4b1f2fe9f082f
Hooks add the ability to insert custom code around operations that
declare a named hook:
e.g.
@hooks.add_hooks('create_instance')
def create_instance(....):
....
The above hook allows Hook objects to be run 'pre' and 'post' the
execution of create_instance()
Hook objects are discovered via the setuptools entry point group
'nova.hooks'.
Change-Id: I3961df12ef415085de7459438967edacc34500c2
Apart of making pep8 version standard across all openstack
projects.
With this change we ignore E712 since it is normal to use
"column == True" in sqlalchemy.
Change-Id: I73a162847a79558cb158112878033edf18039805
Signed-off-by: Chuck Short <chuck.short@canonical.com>
The only reason for importing nova.config now is where one of the
options defined in that file is needed. Rather than importing
nova.config using an import statement, use CONF.import_opt() so
that it is clear which option we actually require.
In future, we will move many options out of nova.config so many
of these import_opt() calls will either go away or cause a module
other than nova.config to be imported.
Change-Id: I0646efddecdf2530903afd50c1f4364cb1d5dce1
Modules import nova.config for two reasons right now - firstly, to
reference nova.config.CONF and, secondly, if they use one of the
options defined in nova.config.
Often modules import nova.openstack.common.cfg and nova.config
which is a bit pointless since they could just use cfg.CONF if
they just want to nova.config in order to reference CONF.
Let's just use cfg.CONF everywhere and we can explicitly state
where we actually require options defined in nova.config.
Change-Id: Ie4184a74e3e78c99658becb18dce1c2087e450bb
As of I788300449e37ba1732f6482ebce5f480a2c14a41, we pull the auth_token
middleware from keystoneclient. (added to keystoneclient in version 0.2.0)
Change-Id: Ide0d562d96e5e426f9c7e532251efd57a0964f11
Now that options have all moved from nova.flags to nova.config, we can
safely remove the nova.flags imports and replace them with nova.config
imports.
Change-Id: Ic077a72dd6419bbf1e1babe71acfa43c4e8b55c8
Ubuntu is using a much newer version of these libraries so we
shouldn't lock the versions in our infrasctructure. Using a > 1.0
of amqplib is particularly useful as it turns on keepalives by
default.
Change-Id: I956e70e0c39c76d1632fb708cd78aeb51adbd250
This fixes bug 1078548.
This is done by adding a dependency on the fixtures library, which has
dedicated code for just this sort of thing, and using it in the base class.
Change-Id: I841fbf912b1a3ab43ca8c52c779d930aaf4a0e96
This makes hacking.py complain if someone adds something like:
from nova import db
into any of the files in nova/virt/* (aside from the fake.py file).
It also removes the rest of the dangling db imports that are no
longer needed.
Yay!
Change-Id: Iba3d53b87e65e33a55f8e5033b5d1d33b28d12f7
Use the global CONF variable instead of FLAGS. This is purely a cleanup
since FLAGS is already just another reference to CONF.
We leave the nova.flags imports until a later cleanup commit since
removing them may cause unpredictable problems due to config options not
being registered.
Change-Id: Ib110ba8d1837780e90b0d3fe13f8e6b68ed15f65
python-cinderclient is now actually a requirement, move
this from test-requires to pip-requires to reflect that.
Fixes bug #1074085
Change-Id: Iea6c58faab2462d137049d690d58d951bd4e2c9e
Set the version of sqlalchemy to be earlier than the 0.8 beta as it
is incompatible with the latest available sqlalchemy-migrate and as
a result run_tests.sh does not run any tests.
Change-Id: I9c5515b76d35e4999f81d71e82f818685efe54ea
As a step towards parallelizing the test runs, use testtools as the
base unittest test case class. In this patch, it has caused us to catch
places where setUp and tearDown were not being chained properly.
Additionally, we get to remove our custom skip decorators and a few
backported assert calls.
Part of blueprint grizzly-testtools
Change-Id: Ia2025e1b7191b65130b85b30ce6239d5c431c8ba
Only logical lines (does not include comments) should be checked for
alphabetical import order. This patch changes N306
(imports not in alphabetical order) to run on logical lines not physical lines.
Fixes bug 1071849
Change-Id: Ib2cb92f9eb82aeed1ff5879d3e38c8961b4f06cc
Right now, any line that starts with "from" (after whitespace
removal) is considered an import line. That assumption leads to
some unsavory parsing and crashing if the line doesn't match
the expected format.
This patch checks to make sure that the word "import" is in the line
as well as starting with "from", which at least gets us a bit closer
to a reasonable assumption.
Fixes bug 1071849
Change-Id: Iab666fcd04a9aaa3a490737a173ee3189b9b8329
With the potential use of entry points, code from the current tree needs to
be installed into a venv created by install_venv.py via setup.py develop.
This will ensure that the appropriate meta-data and paths are set in the
virtualenv.
Change-Id: I1ca15959c98a24629d2f5b2c385296c4e2fe770c
Fixes bug 1023169. Also fixes bug 1031119.
In Folsom, floating IP support is moved to Quantum. By this commit floating IP
calls to nova are proxied to Quantum and nova command can be used to manage
floating IPs.
pip-requires is also updated and now requires python-quantumclient >=2.1 which
supports floating IP feature in Quantum.
Change-Id: I2c32948a8fe291601216dc62d546da64a8fb8428
We have a fake ldap implementation for testing, but the tests still
fail if ldap isn't installed. This modifies the usage of ldap in
the LdapDNS tests to stub the module before attempting to import
it. This allows us to test without having python-ldap installed.
It removes the unneccessary FakeLdapDNS in favor of using the real
LdapDNS with the module stubbed out. It also removes the dependency
on python-ldap from test-requires.
Change-Id: Ifbe09e16436afa6999dcb7385763492b0026556c