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