Add support for showing account details
add the command `openstack account show` that lists details about the object store account that the user authenticated against. Partial-Bug: #1501943 Change-Id: I1246dafee812b63a41d43be4e3598224364a2c11
This commit is contained in:
parent
a4483a0513
commit
4733fd0d3c
@ -19,6 +19,16 @@ Set account properties
|
|||||||
|
|
||||||
Set a property on this account (repeat option to set multiple properties)
|
Set a property on this account (repeat option to set multiple properties)
|
||||||
|
|
||||||
|
account show
|
||||||
|
------------
|
||||||
|
|
||||||
|
Display account details
|
||||||
|
|
||||||
|
.. program:: account show
|
||||||
|
.. code:: bash
|
||||||
|
|
||||||
|
os account show
|
||||||
|
|
||||||
account unset
|
account unset
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
|
@ -411,6 +411,23 @@ class APIv1(api.BaseAPI):
|
|||||||
# registered in the catalog
|
# registered in the catalog
|
||||||
self.create("", headers=headers)
|
self.create("", headers=headers)
|
||||||
|
|
||||||
|
def account_show(self):
|
||||||
|
"""Show account details"""
|
||||||
|
|
||||||
|
# NOTE(stevemar): Just a HEAD request to the endpoint already in the
|
||||||
|
# catalog should be enough.
|
||||||
|
response = self._request("HEAD", "")
|
||||||
|
data = {}
|
||||||
|
for k, v in response.headers.iteritems():
|
||||||
|
data[k] = v
|
||||||
|
# Map containers, bytes and objects a bit nicer
|
||||||
|
data['Containers'] = data.pop('x-account-container-count', None)
|
||||||
|
data['Objects'] = data.pop('x-account-object-count', None)
|
||||||
|
data['Bytes'] = data.pop('x-account-bytes-used', None)
|
||||||
|
# Add in Account info too
|
||||||
|
data['Account'] = self._find_account_id()
|
||||||
|
return data
|
||||||
|
|
||||||
def account_unset(
|
def account_unset(
|
||||||
self,
|
self,
|
||||||
properties,
|
properties,
|
||||||
@ -433,3 +450,7 @@ class APIv1(api.BaseAPI):
|
|||||||
|
|
||||||
if headers:
|
if headers:
|
||||||
self.create("", headers=headers)
|
self.create("", headers=headers)
|
||||||
|
|
||||||
|
def _find_account_id(self):
|
||||||
|
url_parts = urlparse(self.endpoint)
|
||||||
|
return url_parts.path.split('/')[-1]
|
||||||
|
@ -13,10 +13,11 @@
|
|||||||
|
|
||||||
"""Account v1 action implementations"""
|
"""Account v1 action implementations"""
|
||||||
|
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from cliff import command
|
from cliff import command
|
||||||
|
from cliff import show
|
||||||
|
import six
|
||||||
|
|
||||||
from openstackclient.common import parseractions
|
from openstackclient.common import parseractions
|
||||||
from openstackclient.common import utils
|
from openstackclient.common import utils
|
||||||
@ -46,6 +47,17 @@ class SetAccount(command.Command):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class ShowAccount(show.ShowOne):
|
||||||
|
"""Display account details"""
|
||||||
|
|
||||||
|
log = logging.getLogger(__name__ + '.ShowAccount')
|
||||||
|
|
||||||
|
@utils.log_method(log)
|
||||||
|
def take_action(self, parsed_args):
|
||||||
|
data = self.app.client_manager.object_store.account_show()
|
||||||
|
return zip(*sorted(six.iteritems(data)))
|
||||||
|
|
||||||
|
|
||||||
class UnsetAccount(command.Command):
|
class UnsetAccount(command.Command):
|
||||||
"""Unset account properties"""
|
"""Unset account properties"""
|
||||||
|
|
||||||
|
@ -332,6 +332,7 @@ openstack.network.v2 =
|
|||||||
|
|
||||||
openstack.object_store.v1 =
|
openstack.object_store.v1 =
|
||||||
account_set = openstackclient.object.v1.account:SetAccount
|
account_set = openstackclient.object.v1.account:SetAccount
|
||||||
|
account_show = openstackclient.object.v1.account:ShowAccount
|
||||||
account_unset = openstackclient.object.v1.account:UnsetAccount
|
account_unset = openstackclient.object.v1.account:UnsetAccount
|
||||||
container_create = openstackclient.object.v1.container:CreateContainer
|
container_create = openstackclient.object.v1.container:CreateContainer
|
||||||
container_delete = openstackclient.object.v1.container:DeleteContainer
|
container_delete = openstackclient.object.v1.container:DeleteContainer
|
||||||
|
Loading…
x
Reference in New Issue
Block a user