Add per policy container count to account stat output

When the account response includes 'X-Storage-Policy-X-Container-Count' the
command helpers will stick a helpful extra line in the output.

If the swift response doesn't include the information the behavior is
unchanged.

Change-Id: Iaaa55d207ebe6a9c16e52adb56eb858c57cfb26a
This commit is contained in:
Clay Gerrard 2014-09-19 17:07:48 -07:00
parent 8f1b394325
commit 40857cfe4c
2 changed files with 34 additions and 0 deletions

@ -45,6 +45,14 @@ def stat_account(conn, options):
policies.add(policy_name)
for policy in policies:
container_count_header = (POLICY_HEADER_PREFIX + policy +
'-container-count')
if container_count_header in headers:
items.append(
('Containers in policy "' + policy + '"',
prt_bytes(headers[container_count_header],
options['human']).lstrip())
)
items.extend((
('Objects in policy "' + policy + '"',
prt_bytes(

@ -124,6 +124,32 @@ Objects in policy "nada": 1000000
"""
self.assertOut(expected)
def test_stat_account_policy_stat_with_container_counts(self):
# stub head_account
stub_headers = {
'x-account-container-count': 42,
'x-account-object-count': 1000000,
'x-account-bytes-used': 2 ** 30,
'x-account-storage-policy-nada-container-count': 10,
'x-account-storage-policy-nada-object-count': 1000000,
'x-account-storage-policy-nada-bytes-used': 2 ** 30,
}
self.conn.head_account.return_value = stub_headers
with self.output_manager as output_manager:
items, headers = h.stat_account(self.conn, self.options)
h.print_account_stats(items, headers, output_manager)
expected = """
Account: a
Containers: 42
Objects: 1000000
Bytes: 1073741824
Containers in policy "nada": 10
Objects in policy "nada": 1000000
Bytes in policy "nada": 1073741824
"""
self.assertOut(expected)
def test_stat_container_human(self):
self.options['human'] = True
# stub head container request