summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/api/image_v1.py9
-rw-r--r--openstackclient/api/image_v2.py7
-rw-r--r--openstackclient/common/clientmanager.py2
-rw-r--r--openstackclient/compute/v2/hypervisor.py27
-rw-r--r--openstackclient/compute/v2/security_group.py4
-rw-r--r--openstackclient/compute/v2/server.py6
-rw-r--r--openstackclient/identity/client.py1
-rw-r--r--openstackclient/tests/compute/v2/test_server.py10
8 files changed, 44 insertions, 22 deletions
diff --git a/openstackclient/api/image_v1.py b/openstackclient/api/image_v1.py
index c363ce49..534c7750 100644
--- a/openstackclient/api/image_v1.py
+++ b/openstackclient/api/image_v1.py
@@ -19,11 +19,18 @@ from openstackclient.api import api
class APIv1(api.BaseAPI):
"""Image v1 API"""
+ _endpoint_suffix = 'v1'
+
def __init__(self, endpoint=None, **kwargs):
super(APIv1, self).__init__(endpoint=endpoint, **kwargs)
+ self.endpoint = self.endpoint.rstrip('/')
+ self._munge_url()
+
+ def _munge_url(self):
# Hack this until discovery is up
- self.endpoint = '/'.join([self.endpoint.rstrip('/'), 'v1'])
+ if self._endpoint_suffix not in self.endpoint.split('/')[-1]:
+ self.endpoint = '/'.join([self.endpoint, self._endpoint_suffix])
def image_list(
self,
diff --git a/openstackclient/api/image_v2.py b/openstackclient/api/image_v2.py
index 37c2ed83..d8bb2801 100644
--- a/openstackclient/api/image_v2.py
+++ b/openstackclient/api/image_v2.py
@@ -19,11 +19,12 @@ from openstackclient.api import image_v1
class APIv2(image_v1.APIv1):
"""Image v2 API"""
- def __init__(self, endpoint=None, **kwargs):
- super(APIv2, self).__init__(endpoint=endpoint, **kwargs)
+ _endpoint_suffix = 'v2'
+ def _munge_url(self):
# Hack this until discovery is up, and ignore parent endpoint setting
- self.endpoint = '/'.join([endpoint.rstrip('/'), 'v2'])
+ if 'v2' not in self.endpoint.split('/')[-1]:
+ self.endpoint = '/'.join([self.endpoint, 'v2'])
def image_list(
self,
diff --git a/openstackclient/common/clientmanager.py b/openstackclient/common/clientmanager.py
index c4307919..748894a9 100644
--- a/openstackclient/common/clientmanager.py
+++ b/openstackclient/common/clientmanager.py
@@ -54,6 +54,8 @@ class ClientManager(object):
for o in auth.OPTIONS_LIST]:
return self._auth_params[name[1:]]
+ raise AttributeError(name)
+
def __init__(
self,
cli_options,
diff --git a/openstackclient/compute/v2/hypervisor.py b/openstackclient/compute/v2/hypervisor.py
index e01258d1..65035d04 100644
--- a/openstackclient/compute/v2/hypervisor.py
+++ b/openstackclient/compute/v2/hypervisor.py
@@ -16,6 +16,7 @@
"""Hypervisor action implementations"""
import logging
+import re
import six
from cliff import lister
@@ -33,8 +34,8 @@ class ListHypervisor(lister.Lister):
parser = super(ListHypervisor, self).get_parser(prog_name)
parser.add_argument(
"--matching",
- metavar="<hostname-str>",
- help="Filter hypervisors using <hostname-str> substring",
+ metavar="<hostname>",
+ help="Filter hypervisors using <hostname> substring",
)
return parser
@@ -58,23 +59,35 @@ class ListHypervisor(lister.Lister):
class ShowHypervisor(show.ShowOne):
- """Show hypervisor details"""
+ """Display hypervisor details"""
log = logging.getLogger(__name__ + ".ShowHypervisor")
def get_parser(self, prog_name):
parser = super(ShowHypervisor, self).get_parser(prog_name)
parser.add_argument(
- "id",
- metavar="<id>",
- help="ID of the hypervisor to display")
+ "hypervisor",
+ metavar="<hypervisor>",
+ help="Hypervisor to display (name or ID)")
return parser
def take_action(self, parsed_args):
self.log.debug("take_action(%s)", parsed_args)
compute_client = self.app.client_manager.compute
hypervisor = utils.find_resource(compute_client.hypervisors,
- parsed_args.id)._info.copy()
+ parsed_args.hypervisor)._info.copy()
+
+ uptime = compute_client.hypervisors.uptime(hypervisor['id'])._info
+ # Extract data from uptime value
+ # format: 0 up 0, 0 users, load average: 0, 0, 0
+ # example: 17:37:14 up 2:33, 3 users, load average: 0.33, 0.36, 0.34
+ m = re.match("(.+)\sup\s+(.+),\s+(.+)\susers,\s+load average:\s(.+)",
+ uptime['uptime'])
+ if m:
+ hypervisor["host_time"] = m.group(1)
+ hypervisor["uptime"] = m.group(2)
+ hypervisor["users"] = m.group(3)
+ hypervisor["load_average"] = m.group(4)
hypervisor["service_id"] = hypervisor["service"]["id"]
hypervisor["service_host"] = hypervisor["service"]["host"]
diff --git a/openstackclient/compute/v2/security_group.py b/openstackclient/compute/v2/security_group.py
index 13a2103f..d4643438 100644
--- a/openstackclient/compute/v2/security_group.py
+++ b/openstackclient/compute/v2/security_group.py
@@ -327,7 +327,7 @@ class DeleteSecurityGroupRule(command.Command):
parser.add_argument(
'group',
metavar='<group>',
- help='Create rule in this security group',
+ help='Security group rule to delete (name or ID)',
)
parser.add_argument(
"--proto",
@@ -380,7 +380,7 @@ class ListSecurityGroupRule(lister.Lister):
parser.add_argument(
'group',
metavar='<group>',
- help='Create rule in this security group',
+ help='List all rules in this security group',
)
return parser
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index 3d28cc15..49ef18b2 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -1073,9 +1073,9 @@ class ResizeServer(command.Command):
help=_('Resize server to specified flavor'),
)
phase_group.add_argument(
- '--verify',
+ '--confirm',
action="store_true",
- help=_('Verify server resize is complete'),
+ help=_('Confirm server resize is complete'),
)
phase_group.add_argument(
'--revert',
@@ -1114,7 +1114,7 @@ class ResizeServer(command.Command):
else:
sys.stdout.write(_('\nError resizing server'))
raise SystemExit
- elif parsed_args.verify:
+ elif parsed_args.confirm:
compute_client.servers.confirm_resize(server)
elif parsed_args.revert:
compute_client.servers.revert_resize(server)
diff --git a/openstackclient/identity/client.py b/openstackclient/identity/client.py
index d10d046d..4127a451 100644
--- a/openstackclient/identity/client.py
+++ b/openstackclient/identity/client.py
@@ -46,7 +46,6 @@ def make_client(instance):
API_VERSIONS)
LOG.debug('Instantiating identity client: %s', identity_client)
- LOG.debug('Using auth plugin: %s' % instance._auth_plugin)
client = identity_client(
session=instance.session,
region_name=instance._region_name,
diff --git a/openstackclient/tests/compute/v2/test_server.py b/openstackclient/tests/compute/v2/test_server.py
index 5a126697..079f301e 100644
--- a/openstackclient/tests/compute/v2/test_server.py
+++ b/openstackclient/tests/compute/v2/test_server.py
@@ -437,7 +437,7 @@ class TestServerResize(TestServer):
compute_fakes.server_id,
]
verifylist = [
- ('verify', False),
+ ('confirm', False),
('revert', False),
('server', compute_fakes.server_id),
]
@@ -461,7 +461,7 @@ class TestServerResize(TestServer):
]
verifylist = [
('flavor', compute_fakes.flavor_id),
- ('verify', False),
+ ('confirm', False),
('revert', False),
('server', compute_fakes.server_id),
]
@@ -486,11 +486,11 @@ class TestServerResize(TestServer):
def test_server_resize_confirm(self):
arglist = [
- '--verify',
+ '--confirm',
compute_fakes.server_id,
]
verifylist = [
- ('verify', True),
+ ('confirm', True),
('revert', False),
('server', compute_fakes.server_id),
]
@@ -515,7 +515,7 @@ class TestServerResize(TestServer):
compute_fakes.server_id,
]
verifylist = [
- ('verify', False),
+ ('confirm', False),
('revert', True),
('server', compute_fakes.server_id),
]