OpenStack Networking (Neutron) Client
Go to file
Justin Hammond 779b02e480 Client command extension support
Adds extension support with emphasis on ease of extension creation. Extensions
strongly conform to preexisting neutron commands (/neutron/v2_0/*). A sample
extension has been included (/neutron/v2_0/contrib/_fox_sockets.py). As it is
assumed that the sample extension will be packaged with the client, small
changes were required to include it with the unit tests.

It is also possible to install a module with a 'neutronclient.extension' entry-
point defined. More information on this can be found in the stevedore docs
under the section "Loading the Plugins". Extension discovery is modeled after
nova's module discovery but deviates strongly beyond that.

A conforming module, at a minimum:
* Will have a class that subclasses NeutronClientExtension to provide the
  requisite version support, paths, and variable names for the client.
  Example: neutronclient.neutron.v2_0.contrib._fox_sockets.FoxInSocket
* Will have at least one class that subclasses from the ClientExtension*
  classes to provide the new functionality to the client
  Example: neutronclient.neutron.v2_0.contrib._fox_sockets.FoxInSocketsList
* ClientExtension* subclasses must have a shell_command class variable if the
  command is to be available to the CLI (shell.py)
  Example: neutronclient.neutron.v2_0.contrib._fox_sockets.FoxInSocketsList

Provides client command extensions through new classes: NeutronClientExtension,
and ClientExtension<Action>.
The precedence of command loading are as follows:
* hard coded commands are loaded first
* contribued commands (those in /contrib)
* external commands (installed in the environment) are loaded last

Commands that have the same name will be overwritten by commands that are
loaded later. To greatly change the execution of a command for your particular
extension you only need to override the execute method.

Currently this extension support is limited to top-level resources. Parent/
child relationships may be added if desired.

Change-Id: I5b2fe530c90b5ce1243fc10341d6d434a1ecea7a
Implements: blueprint extensible-neutronclient
2015-02-24 14:57:10 -06:00
doc/source Stop using intersphinx 2014-09-13 09:44:00 +02:00
neutronclient Client command extension support 2015-02-24 14:57:10 -06:00
tools Rename quantumclient to neutronclient 2013-07-03 11:56:44 -04:00
.coveragerc update coveragerc file 2014-01-27 16:56:49 +02:00
.gitignore Updates .gitignore 2013-11-28 22:31:43 +08:00
.gitreview Renamed quantum to neutron in .gitreview 2013-07-06 12:29:37 -04:00
.pylintrc Split quantumclient out. 2012-01-18 09:39:25 +11:00
.testr.conf Move tests back to neutronclient package 2013-08-22 09:10:36 -04:00
CONTRIBUTING.rst Workflow documentation is now in infra-manual 2014-12-05 03:30:40 +00:00
HACKING.rst Make HACKING.rst DRYer 2013-11-11 11:29:58 -08:00
LICENSE Split quantumclient out. 2012-01-18 09:39:25 +11:00
MANIFEST.in Rename README to README.rst 2013-06-01 10:08:50 +02:00
neutron_test.sh Improvements in neutron_test sanity tests script 2014-03-31 17:02:36 -03:00
README.rst Rename quantumclient to neutronclient 2013-07-03 11:56:44 -04:00
requirements.txt Updated from global requirements 2015-02-20 13:59:35 +00:00
setup.cfg Add Python 3 classifiers 2015-01-07 09:47:21 +01:00
setup.py Updated from global requirements 2014-04-30 02:46:40 +00:00
test-requirements.txt Client command extension support 2015-02-24 14:57:10 -06:00
tox.ini Reverse order of tests to avoid incompatibility 2015-01-28 12:50:35 +00:00

This is the client API library for Neutron.