Add command to list pod managers
'openstack valence podmanager list' is added to list the podmanagers created by valence. Change-Id: Ifc9df95c525383abfcc85deaaf6b275ed82faa86
This commit is contained in:
parent
d30e6fae55
commit
7f84237263
@ -23,6 +23,13 @@ classifier =
|
||||
packages =
|
||||
valenceclient
|
||||
|
||||
[entry_points]
|
||||
openstack.cli.extension =
|
||||
valence = valenceclient.osc.plugin
|
||||
|
||||
openstack.valence.v1 =
|
||||
valence_podmanager_list = valenceclient.osc.v1.podmanager:ListPodManagers
|
||||
|
||||
[build_sphinx]
|
||||
source-dir = doc/source
|
||||
build-dir = doc/build
|
||||
@ -48,4 +55,4 @@ output_file = valenceclient/locale/valenceclient.pot
|
||||
[build_releasenotes]
|
||||
all_files = 1
|
||||
build-dir = releasenotes/build
|
||||
source-dir = releasenotes/source
|
||||
source-dir = releasenotes/source
|
||||
|
@ -1,19 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import pbr.version
|
||||
|
||||
|
||||
__version__ = pbr.version.VersionInfo(
|
||||
'valenceclient').version_string()
|
0
valenceclient/osc/__init__.py
Normal file
0
valenceclient/osc/__init__.py
Normal file
70
valenceclient/osc/plugin.py
Normal file
70
valenceclient/osc/plugin.py
Normal file
@ -0,0 +1,70 @@
|
||||
# Copyright 2017 NEC, Corp.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
|
||||
"""OpenStackClient plugin for Valence Client."""
|
||||
|
||||
import logging
|
||||
|
||||
from osc_lib import utils
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
DEFAULT_API_VERSION = '1'
|
||||
API_VERSION_OPTION = 'os_valence_api_version'
|
||||
API_NAME = 'valence'
|
||||
API_VERSIONS = {
|
||||
'1': 'valenceclient.v1.client.Client',
|
||||
}
|
||||
|
||||
|
||||
def make_client(instance):
|
||||
"""Returns a valence v1 client."""
|
||||
valence_client = utils.get_client_class(API_NAME,
|
||||
instance._api_version[API_NAME],
|
||||
API_VERSIONS)
|
||||
|
||||
LOG.debug('Instantiating Valence client: %s', valence_client)
|
||||
|
||||
client = valence_client(
|
||||
valence_api_version=instance._cli_options.valence_api_version,
|
||||
valence_url=instance._cli_options.valence_api_url,
|
||||
auth_type=instance._cli_options.valence_auth_type,
|
||||
os_cloud='openstack')
|
||||
return client
|
||||
|
||||
|
||||
def build_option_parser(parser):
|
||||
"""Hook to add global options"""
|
||||
|
||||
parser.add_argument(
|
||||
'--valence-api-version',
|
||||
metavar='<valence-api-version>',
|
||||
default=utils.env(
|
||||
'VALENCE_API_VERSION',
|
||||
default=DEFAULT_API_VERSION),
|
||||
help='VALENCE API version, default=' +
|
||||
DEFAULT_API_VERSION +
|
||||
' (Env: VALENCE_API_VERSION)')
|
||||
parser.add_argument(
|
||||
'--valence-api-url',
|
||||
metavar='<valence-api-url>',
|
||||
default='http://localhost:8181/',
|
||||
help='The base URL to Valence Server')
|
||||
parser.add_argument(
|
||||
'--valence-auth-type',
|
||||
metavar='<auth-type>',
|
||||
default='none',
|
||||
help='Authentication type, default is none')
|
||||
return parser
|
0
valenceclient/osc/v1/__init__.py
Normal file
0
valenceclient/osc/v1/__init__.py
Normal file
34
valenceclient/osc/v1/podmanager.py
Normal file
34
valenceclient/osc/v1/podmanager.py
Normal file
@ -0,0 +1,34 @@
|
||||
# Copyright 2017 Intel, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
|
||||
from osc_lib.command import command
|
||||
from osc_lib import utils
|
||||
|
||||
|
||||
class ListPodManagers(command.Lister):
|
||||
_description = "Lists all registered podmanagers"
|
||||
auth_required = False
|
||||
|
||||
def get_parser(self, prog_name):
|
||||
parser = super(ListPodManagers, self).get_parser(prog_name)
|
||||
return parser
|
||||
|
||||
def take_action(self, parsed_args):
|
||||
self.log.debug("take_action(%s)", parsed_args)
|
||||
client = self.app.client_manager.valence
|
||||
obj = client.list_podmanagers()
|
||||
columns = ['uuid', 'name', 'url', 'driver', 'status', 'created_at',
|
||||
'updated_at']
|
||||
return (columns, (utils.get_dict_properties(s, columns) for s in obj))
|
0
valenceclient/v1/__init__.py
Normal file
0
valenceclient/v1/__init__.py
Normal file
28
valenceclient/v1/client.py
Normal file
28
valenceclient/v1/client.py
Normal file
@ -0,0 +1,28 @@
|
||||
# Copyright 2017 Intel, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
|
||||
from valenceclient.common import http
|
||||
|
||||
|
||||
class Client(object):
|
||||
|
||||
podmanager_path = "/v1/pod_managers"
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
self.http_client = http.HTTPClient(**kwargs)
|
||||
|
||||
def list_podmanagers(self):
|
||||
resp, body = self.http_client.json_request('get', self.podmanager_path)
|
||||
return body
|
Loading…
Reference in New Issue
Block a user