Merge "Call out transient sysmeta in swift-object-info"

This commit is contained in:
Jenkins 2016-12-08 19:42:04 +00:00 committed by Gerrit Code Review
commit bdac96e10d
2 changed files with 53 additions and 4 deletions

View File

@ -22,7 +22,8 @@ from swift.common.utils import hash_path, storage_directory, \
Timestamp, is_valid_ipv6 Timestamp, is_valid_ipv6
from swift.common.ring import Ring from swift.common.ring import Ring
from swift.common.request_helpers import is_sys_meta, is_user_meta, \ from swift.common.request_helpers import is_sys_meta, is_user_meta, \
strip_sys_meta_prefix, strip_user_meta_prefix strip_sys_meta_prefix, strip_user_meta_prefix, \
is_object_transient_sysmeta
from swift.account.backend import AccountBroker, DATADIR as ABDATADIR from swift.account.backend import AccountBroker, DATADIR as ABDATADIR
from swift.container.backend import ContainerBroker, DATADIR as CBDATADIR from swift.container.backend import ContainerBroker, DATADIR as CBDATADIR
from swift.obj.diskfile import get_data_dir, read_metadata, DATADIR_BASE, \ from swift.obj.diskfile import get_data_dir, read_metadata, DATADIR_BASE, \
@ -274,6 +275,7 @@ def print_obj_metadata(metadata):
""" """
user_metadata = {} user_metadata = {}
sys_metadata = {} sys_metadata = {}
transient_sys_metadata = {}
other_metadata = {} other_metadata = {}
if not metadata: if not metadata:
@ -310,6 +312,8 @@ def print_obj_metadata(metadata):
user_metadata[key] = value user_metadata[key] = value
elif is_sys_meta('Object', key): elif is_sys_meta('Object', key):
sys_metadata[key] = value sys_metadata[key] = value
elif is_object_transient_sysmeta(key):
transient_sys_metadata[key] = value
else: else:
other_metadata[key] = value other_metadata[key] = value
@ -322,6 +326,7 @@ def print_obj_metadata(metadata):
print(' No metadata found') print(' No metadata found')
print_metadata('System Metadata:', sys_metadata) print_metadata('System Metadata:', sys_metadata)
print_metadata('Transient System Metadata:', transient_sys_metadata)
print_metadata('User Metadata:', user_metadata) print_metadata('User Metadata:', user_metadata)
print_metadata('Other Metadata:', other_metadata) print_metadata('Other Metadata:', other_metadata)

View File

@ -719,9 +719,11 @@ class TestPrintObjFullMeta(TestCliInfoBase):
print_obj_metadata, []) print_obj_metadata, [])
def get_metadata(items): def get_metadata(items):
md = dict(name='/AUTH_admin/c/dummy') md = {
md['Content-Type'] = 'application/octet-stream' 'name': '/AUTH_admin/c/dummy',
md['X-Timestamp'] = 106.3 'Content-Type': 'application/octet-stream',
'X-Timestamp': 106.3,
}
md.update(items) md.update(items)
return md return md
@ -738,6 +740,8 @@ Content-Type: application/octet-stream
Timestamp: 1970-01-01T00:01:46.300000 (%s) Timestamp: 1970-01-01T00:01:46.300000 (%s)
System Metadata: System Metadata:
No metadata found No metadata found
Transient System Metadata:
No metadata found
User Metadata: User Metadata:
X-Object-Meta-Mtime: 107.3 X-Object-Meta-Mtime: 107.3
Other Metadata: Other Metadata:
@ -763,6 +767,8 @@ Timestamp: 1970-01-01T00:01:46.300000 (%s)
System Metadata: System Metadata:
X-Object-Sysmeta-Mtime: 107.3 X-Object-Sysmeta-Mtime: 107.3
X-Object-Sysmeta-Name: Obj name X-Object-Sysmeta-Name: Obj name
Transient System Metadata:
No metadata found
User Metadata: User Metadata:
No metadata found No metadata found
Other Metadata: Other Metadata:
@ -788,6 +794,8 @@ Content-Type: application/octet-stream
Timestamp: 1970-01-01T00:01:46.300000 (%s) Timestamp: 1970-01-01T00:01:46.300000 (%s)
System Metadata: System Metadata:
X-Object-Sysmeta-Mtime: 107.3 X-Object-Sysmeta-Mtime: 107.3
Transient System Metadata:
No metadata found
User Metadata: User Metadata:
X-Object-Meta-Mtime: 107.3 X-Object-Meta-Mtime: 107.3
Other Metadata: Other Metadata:
@ -809,6 +817,8 @@ Content-Type: application/octet-stream
Timestamp: 1970-01-01T00:01:46.300000 (%s) Timestamp: 1970-01-01T00:01:46.300000 (%s)
System Metadata: System Metadata:
No metadata found No metadata found
Transient System Metadata:
No metadata found
User Metadata: User Metadata:
No metadata found No metadata found
Other Metadata: Other Metadata:
@ -832,6 +842,8 @@ Content-Type: application/octet-stream
Timestamp: 1970-01-01T00:01:46.300000 (%s) Timestamp: 1970-01-01T00:01:46.300000 (%s)
System Metadata: System Metadata:
No metadata found No metadata found
Transient System Metadata:
No metadata found
User Metadata: User Metadata:
X-Object-Meta-Mtime: 107.3 X-Object-Meta-Mtime: 107.3
Other Metadata: Other Metadata:
@ -854,6 +866,8 @@ Content-Type: Not found in metadata
Timestamp: 1970-01-01T00:01:46.300000 (%s) Timestamp: 1970-01-01T00:01:46.300000 (%s)
System Metadata: System Metadata:
No metadata found No metadata found
Transient System Metadata:
No metadata found
User Metadata: User Metadata:
X-Object-Meta-Mtime: 107.3 X-Object-Meta-Mtime: 107.3
Other Metadata: Other Metadata:
@ -876,6 +890,8 @@ Content-Type: application/octet-stream
Timestamp: Not found in metadata Timestamp: Not found in metadata
System Metadata: System Metadata:
No metadata found No metadata found
Transient System Metadata:
No metadata found
User Metadata: User Metadata:
X-Object-Meta-Mtime: 107.3 X-Object-Meta-Mtime: 107.3
Other Metadata: Other Metadata:
@ -883,6 +899,34 @@ Other Metadata:
self.assertEqual(out.getvalue().strip(), exp_out) self.assertEqual(out.getvalue().strip(), exp_out)
metadata = get_metadata({
'X-Object-Meta-Mtime': '107.3',
'X-Object-Sysmeta-Mtime': '106.3',
'X-Object-Transient-Sysmeta-Mtime': '105.3',
'X-Object-Mtime': '104.3',
})
out = StringIO()
with mock.patch('sys.stdout', out):
print_obj_metadata(metadata)
exp_out = '''Path: /AUTH_admin/c/dummy
Account: AUTH_admin
Container: c
Object: dummy
Object hash: 128fdf98bddd1b1e8695f4340e67a67a
Content-Type: application/octet-stream
Timestamp: 1970-01-01T00:01:46.300000 (%s)
System Metadata:
X-Object-Sysmeta-Mtime: 106.3
Transient System Metadata:
X-Object-Transient-Sysmeta-Mtime: 105.3
User Metadata:
X-Object-Meta-Mtime: 107.3
Other Metadata:
X-Object-Mtime: 104.3''' % (
utils.Timestamp(106.3).internal)
self.assertEqual(out.getvalue().strip(), exp_out)
class TestPrintObjWeirdPath(TestPrintObjFullMeta): class TestPrintObjWeirdPath(TestPrintObjFullMeta):
def setUp(self): def setUp(self):