diff --git a/swiftclient/command_helpers.py b/swiftclient/command_helpers.py index 9a78b9bd..08226995 100644 --- a/swiftclient/command_helpers.py +++ b/swiftclient/command_helpers.py @@ -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( diff --git a/tests/unit/test_command_helpers.py b/tests/unit/test_command_helpers.py index ad8012eb..67e9ac28 100644 --- a/tests/unit/test_command_helpers.py +++ b/tests/unit/test_command_helpers.py @@ -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