Allow for controllers to be loaded dynamically.
Change-Id: If85de4c02406e8ffd49da3c04c23db58ad2df119
This commit is contained in:
parent
63c3a1a785
commit
84d326920f
@ -27,7 +27,7 @@ class MonikerShell(App):
|
||||
super(MonikerShell, self).__init__(
|
||||
description='Moniker Client',
|
||||
version=version.version_string(),
|
||||
command_manager=CommandManager('moniker.cli'),
|
||||
command_manager=CommandManager('monikerclient.cli'),
|
||||
)
|
||||
|
||||
self.log = logging.getLogger(__name__)
|
||||
|
@ -14,12 +14,9 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
import requests
|
||||
from stevedore import extension
|
||||
from monikerclient import exceptions
|
||||
from monikerclient.auth import KeystoneAuth
|
||||
from monikerclient.v1 import diagnostics
|
||||
from monikerclient.v1 import domains
|
||||
from monikerclient.v1 import records
|
||||
from monikerclient.v1 import servers
|
||||
|
||||
|
||||
class Client(object):
|
||||
@ -56,10 +53,13 @@ class Client(object):
|
||||
self.requests.auth = auth
|
||||
self.requests.headers.update(headers)
|
||||
|
||||
self.diagnostics = diagnostics.DiagnosticsController(client=self)
|
||||
self.domains = domains.DomainsController(client=self)
|
||||
self.records = records.RecordsController(client=self)
|
||||
self.servers = servers.ServersController(client=self)
|
||||
def _load_controller(ext):
|
||||
controller = ext.plugin(client=self)
|
||||
setattr(self, ext.name, controller)
|
||||
|
||||
# Load all controllers
|
||||
mgr = extension.ExtensionManager('monikerclient.v1.controllers')
|
||||
mgr.map(_load_controller)
|
||||
|
||||
def wrap_api_call(self, func, *args, **kw):
|
||||
"""
|
||||
|
8
setup.py
8
setup.py
@ -47,7 +47,13 @@ setup(
|
||||
],
|
||||
cmdclass=common_setup.get_cmdclass(),
|
||||
entry_points=textwrap.dedent("""
|
||||
[moniker.cli]
|
||||
[monikerclient.v1.controllers]
|
||||
diagnostics = monikerclient.v1.diagnostics:DiagnosticsController
|
||||
domains = monikerclient.v1.domains:DomainsController
|
||||
records = monikerclient.v1.records:RecordsController
|
||||
servers = monikerclient.v1.servers:ServersController
|
||||
|
||||
[monikerclient.cli]
|
||||
domain-list = monikerclient.cli.domains:ListDomainsCommand
|
||||
domain-get = monikerclient.cli.domains:GetDomainCommand
|
||||
domain-create = monikerclient.cli.domains:CreateDomainCommand
|
||||
|
@ -1,5 +1,6 @@
|
||||
cliff>=1.2.1
|
||||
jsonschema>=0.8,<1
|
||||
stevedore
|
||||
requests>=0.8.3,<1.0
|
||||
python-keystoneclient>=0.2.0
|
||||
keyring
|
||||
|
Loading…
x
Reference in New Issue
Block a user