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
This reverts commit 30e513309f.
The python mysql module was removed from test-requires in favor
of test-options, but the work to actually use that was never
completed. Revert the change so that mysql testing is actually
performed again.
Change-Id: Iaf35811cc748272229260f2dab95520995a69b44
Ceilometer depends on anyjson 0.3.1, whereas nova requires
exacly 0.2.4.
The net effect is a devstack with ceilometer installed will
appear to work initially, as ceilometer is sparked up after
nova. However, if any of the nova services are subsequently
restarted, they fail with:
pkg_resources.DistributionNotFound: anyjson==0.2.4
By simply allowing the nova anyjson dependency version to
be greater than as opposed to an exact match, we can avoid
the clash.
Change-Id: I21737a2504705f15dd16e6762b44624678177442
Fixes bug 1055503
The standard behaviour of the 'gethostname' function in Python differs from
Linux to Windows. A common Linux configuration returns the FQDN, while a
Windows one returns only the host name.
To resolve inconsistent node naming in deployments that mix windows and
Linux, it is proposed to use 'getfqdn' as default function instead of
'gethostname'. This is function is more predictable in all cases.
Change-Id: I3164d9a36df2b8484bbf9a57879c31fa0e342503
The script analyze_opts.py is added to identify unused options
and options which are set to default values in the nova.conf file.
Change-Id: Iec42781a56f73b7d0960bdd569f5dd06edbb88df
Add optional flag to allow cinder endpoint to be defined by flag rather
than extracted from the request context's service catalog. No change to
default behavior.
This flag allows deployers to use a seperate management endpoint for
cinder which compute can use exclusively to send messages to cinder, or
just use an auth system that doesn't add/forward the catalog along with
the request (e.g. noauth).
Add python-cinderclient to tools/test-requires
fix lp bug #1048798
Change-Id: Icb416bf4df2a6e37024f1fbc866006d46d30bcf2
Changed lxml version in tools/pip-requires from >=2.3,<3 to
>=2.3,<2.3.5. pip was apparently accepting 3.0alpha as a <3 requirement
but the ordering of elements changes in that version. Some of the
libvirt tests would pass with lxml 3.0alpha but fail with any 2.3.x
version. The tests now pass with any version of lxml within the range
specified.
Change-Id: I2d84d32f1bf6fba2c6dbe05799a284a44d4c39d8
Updates setup.py to set install_requires using parse_requirements from
openstack-common. This allows DevStack to install nova requirements, as
currently they are not handled.
Also relaxes the version requirement for lxml to >=2.3,<3. This allows
DevStack to install nova requirements without needing to install lxml
over the installed python-xml system package, currently 2.3.2.
Change-Id: Iccebf9604ba5c6fcacb4c5fa5004f9fcb08944f3
The most recent version of pip (1.2.1 as of a couple days ago) fails
to install the required Nova .venv packages. Nailing the installed
pip version when using run_tests.sh seems like a reasonable solution
to this issue.
Fixes LP Bug #1047120.
Change-Id: Ic947c04603cf9423c0cf2835351785d4fe795c4b
Add a new silent test target lintstack based on pylint in Jenkins.
lintstack will compare the pylint errors between HEAD and HEAD~1,
filter out known false positives and report violations in pylint
original parseable format for Jenkins to consume.
Change-Id: Ic2962cb42a174bfe9535aea88475ff4ede3bf9ff
Options defined by CommonConfigOpts are declared within the class rather
than at module level, so they weren't being included in the sample conf.
Also, in essex (and up until commit 991614add8), the sample conf file
didn't contain these options but they included the hyphen in the name.
The hyphen is only used on the command line, it is converted to an
underscore automatically in the config file. Use opt.dest rather than
opt.name as the config file key. Fixes bug #1034970.
DocImpact: update nova.conf docs
Change-Id: Ia7f3dded9148deedeb198c19a8d343db6dd93f99
I hit an issue where extract_opts.py couldn't import importutils
since it's not in my sys.path, so it's clear we need to set
PYTHONPATH before running.
The whole business of running the tool from the tools/conf dir
is fairly awkward, so change it to run from the top-level dir
instead.
Change-Id: I89b4d874a6ee3732234a9704a8ee6001a293ed71
Adding nosehtmloutput as a test dependency allows nose to output its
results to an html file. This will be used by Jenkins to save logs on
a different server.
Change-Id: I45191e872a41eed8e6a9e14757675ee7a28b3836
Nova should depend on a version of quantum client that includes
API v2.0 support. That means the client version should be 2.0+ .
This was just pushed to PyPi today:
http://pypi.python.org/pypi/python-quantumclient/2.0
Change-Id: Ib9d997ceff92f2da6986d184b7b0da9e564800aa
This patch rewrites the Glance-specific code within Nova to use
the new python-glanceclient library. The old client is deprecated
in Folsom and should not be used in conjunction with
python-glanceclient.
This removes the dependency on installing 'glance' through pip.
Implements bp integrate-python-glanceclient
Fixes bug 880964
Change-Id: Ifb9e75593abd36a2d1c08773d02f192e5e5627fc
At some point IV parameter has been removed making these functions
dangerous to use unless keys are unique on every message. Since the
functions were added the original consumer has disappeared too. With
no more users it's better to get rid of the incomplete encryption system
entirely.
These were the only functions using pycrypto module directly, so it was
also removed from the dependency list.
Change-Id: I57b0a0a42dac455d5baae3d726aea1507121aa4d
Remove a number of limitations from the external locks.
- They can be nested now
- They do not need external cleanup in case of failures
- They do not rely on lockfile or greenlet internal implementation
New implementation is based on fcntl locks and any crashing process
will drop the lock. It does not have to rely on any cleanup code or
handling exceptions. Because no cleanup is needed, a number of tests
have been removed.
This implementation is not portable outside of POSIX/BSD/SVR4 systems.
Fcntl locks should work correctly with NFS mounts.
Locks are cleaned up after the tests finish running via run_tests.sh,
even though it's not strictly needed.
This change requires eventlet >= 0.9.17.
bp improve-external-locking
Change-Id: Idf5424c04645f25097733848a007b150145b0b27
First of all, our pep8 exclude was excluding openstack, to trap
for not doing pep8 checks on openstack/common, which comes from elsewhere.
But, pep8 strips filenames down to basename when doing exclude checks on
them, which makes no sense. To fix this, grab the two functions from pep8,
fix them, and monkeypatch them from within hacking.py.
Patch has been submitted upstream as:
https://github.com/jcrocholl/pep8/pull/111
Also, changed the exclude to catch just openstack/common.
Change-Id: If0b18ae828e74203f84a8b6f8b4ba0100b3bbc59