Commit Graph

418 Commits

Author SHA1 Message Date
Chris Yeoh e3d7f1edf9 Port rescue API to v3 Part 2
This patch contains the changes required to adapt the rescue
extension and the corresponding unittest to the v3 framework

Partially implements blueprint nova-v3-api

Change-Id: Iaa6d0cf7708b0887512db952b1e26ccde75d24ef
2013-06-07 10:34:14 +09:30
Chris Yeoh 7e2fe389f4 Alphabetize v3 API extension entry point list
Alphabetize the v3 API extension point list in setup.cfg. With lots
of extensions being ported to V3 and an entry needed in setup.cfg for
each one and multiple people working on the ports if we always just
add an entry to the end of the list we are going to get a lot of merge
conflicts. To minimise the number of conflicts we'll try keeping the
list in alphabetical order and the number of conflicts should drop
as the list gets longer.

Change-Id: I386ec9bdb99660861d80f47923855e73f474a15f
2013-06-06 21:58:43 +09:30
Chris Yeoh 1a3e02f1cd Ports consoles API to v3 API
Ports the core consoles API functionality to the V3 API as a
plugin along with the corresponding tests

Partially implements blueprint v3-api-core-as-extensions

Change-Id: Iada86afbfeed055942fef554d12cd36385aa2e1f
2013-06-01 12:08:08 +09:30
Chris Yeoh 39b8641fc4 Ports ips api to v3 API
Port the core ips api to the V3 API as plugins along
with the corresponding tests for the ips and servers API.

Partially implements blueprint v3-api-core-as-extensions

Change-Id: I6e9f8ab71745791e6bc18999810f39764cd40116
2013-05-31 12:29:30 +09:30
Chris Yeoh d7da449eef API Extensions framework for v3 API Part 2
This is the second patch for the new extension framework
which is only to be used by the Nova v3 API.

- Adds tracking of extensions loaded and allows
  extensions access to this information
- Adds core API functionality as extensions
  - 'server'
    - Adds an entry point that other extensions can
      use to modify the server create arguments without
      having to modify the server extension itself
    - TODO: Will have to add more entry points as other
      extensions are ported. Delaying adding entry points
      now so they can be tested as they are added.
- Adds port of os-keypairs extension
  - This is an example of a controller extension in the new
    framework
  - This is an example of using the server extension entry
    point to add functionality without modify the core API code
  - Ports tests for the os-keypairs extensions
    - Adds v3 API fake specific code for tests

This completes the bulk of the new extension framework. Porting
of the server tests will be done in future changesets as more
of the core API is ported across as the tests are dependent
on multiple core APIs.

Partially implements blueprint v3-api-extension-framework

Change-Id: Ibadb5bbe808c27d2f4afebe65c06a92576397085
2013-05-28 01:21:36 +09:30
Chris Yeoh 0c7237efd9 API extensions framework for v3 API
This is the initial patch for the new extension framework to be used
by the Nova v3 API. It will only be used by v3 API extensions
and not v2 API extensions. v3 API extensions will only use this plugin
framework and will not be compatible with the old one.

- Sets up a /v3 url prefix
- Looks in an entry point namespace of nova.api.extensions
- The fixed_ips extensions is ported to /v3 as an example of
  a resource extensions. Required changes are very minor.
- All extensions must derive from the V3APIExtensionBase class
- Drops updated field from extensions, replaced with version field
- Ports tests for fixed_ips extension
- None of the core has been ported in this patch, though
  the example extension works without it. The intent is
  to port the core code over as plugins as well. There will still
  be a conceptual core however I don't think we need a separate directory
  for core.

This is the first of a series of patches to add support for the
new extension framework. Future direction including support
for controller extensions, removal of extension code in core
code etc can be seen here:

https://github.com/cyeoh/nova/tree/v3_api_extension_framework

Partially implements blueprint v3-api-extension-framework

Change-Id: I88aa6353ad1d74cac51abbb6aac7274b1567485a
2013-05-13 10:31:22 +09:30
Monty Taylor 9c5890cb78 Update rootwrap with code from oslo.
Change-Id: I30f1b8773840c098f1e38d09bf13f0863035289e
2013-05-09 10:54:01 -04:00
Monty Taylor cbe862603e Transition from openstack.common.setup to pbr.
Declarative approach to packaging, obviates the need for copying files.
Also, removes the need for setup.py to import files from the nova
module.

./run_tests.sh now ensure's that nova.egg-info/entry_points.txt is up to
date before running tests.

Change-Id: I7b7a18e065a62491ade54fbed5d8400db1d4e6c7
2013-05-07 18:38:53 +10:00
Clark Boylan 4abc8cc64f Use testr to run nova unittests.
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
2012-12-14 14:22:20 -08:00
Clark Boylan f203dee81a Remove nose detailed error reporting.
Nosetests' detailed error reporting breaks when running testtools tests.
Disable this plugin to get proper error reporting.

Change-Id: I4898f567e8588e1dd61940486dfc515e459adc34
2012-10-30 12:55:57 -07:00
Monty Taylor cf34a60157 Finalize tox config.
Shrink tox.ini to the new short version.
Fix the test cases to be able to be run in nosetets plus the
openstack.nose_plugin, which finally removes the need for
nova/testing/runner.py
Also, now we'll just output directly to stdout, which will
make nose collect the trace logging directly and either output
it at the end of the run, or inject it into the xunit output
appropriately.

Change-Id: I1456e18a11a840145492038108bdfe812c8230d1
2012-06-07 12:15:42 -04:00
Monty Taylor b54179438e Move translations to babel locations.
If we structure things like this, we can get things
actually, you know, installed.

Locales ast and oc aren't supported by babel. We'll re-import them
from Launchpad once we get babel updated.

If you want translations installed, run:

  python setup.py compile_catalog

Before you run either setup.py sdist or setup.py install

More work is needed to actually properly use the installed translations, but
we're closer.

Change-Id: I4a4bedd982c89063aa09688c9cbcf97054bcb34b
2012-02-08 19:30:39 -08:00
Monty Taylor 4a4c274c83 Get rid of distutils.extra.
We moved to DistUtilsExtra because it promised a more automatic workflow
from setup.py. It doesn't actually deliver though, and it also vomits
warnings during setup.py usage, and also breaks pip integration.

So this is going back to babel. Mostly folks shouldn't need to know
anything about this. We'll need to update the translations import
jobs in Jenkins, and we might need to add a corresponding translations
upload job that runs post-merge.

Translations installation doesn't fully work - but it actually wasn't fully
working before. Getting this part of the project done now though is a
pre-requisite for using tox for multi-python testing (tox starts by
creating an sdist tarball and then installing it into the venv, which
is just 100% broken with DistUtilsExtra)

Change-Id: I126e1bcfab0656eab6ca10de67d3d2aaa8b844f3
2012-02-08 19:30:39 -08:00
Mark McLoughlin 3de787b58c Remove remnants of babel i18n infrastructure
We use distutils-extra now instead of babel.

Change-Id: I10625cc4ef2ac8eefd46ee09e36f8cfaef85061f
2011-12-06 11:31:02 +00:00
Monty Taylor 00808c08c6 Added babel/gettext build support. 2011-01-10 11:26:38 -08:00
Monty Taylor ea89153b93 Updated setup.py file to install stuff on a python setup.py install command. 2010-07-27 21:41:07 -07:00
Monty Taylor 87e27afec0 Updated sphinx layout to a two-dir layout like swift.
Updated a doc string to get rid of a Sphinx warning.
2010-07-24 18:06:22 -07:00
Monty Taylor c510e7e830 Added a config file to let setup.py drive building the sphinx docs. 2010-07-16 15:33:24 -05:00