Prints list-cached dates in isoformat
Converts dates printed by list-cached to a human readable format (isoformat). It now checks whether the image last_access time is == 0.0 and prints "Not Accessed Yet" if so. * Updates openstack.common.timeutils * Fixes bug 1102334 Change-Id: I46f023471ec87fdf74c18f33309279a2f39a4e2a
This commit is contained in:
parent
43f8697696
commit
35be498112
@ -40,6 +40,7 @@ gettext.install('glance', unicode=1)
|
||||
import glance.image_cache.client
|
||||
from glance.common import exception
|
||||
from glance.common import utils
|
||||
from glance.openstack.common import timeutils
|
||||
from glance.version import version_info as version
|
||||
|
||||
|
||||
@ -102,10 +103,19 @@ List all images currently cached"""
|
||||
print pretty_table.make_header()
|
||||
|
||||
for image in images:
|
||||
last_modified = image['last_modified']
|
||||
last_modified = timeutils.iso8601_from_timestamp(last_modified)
|
||||
|
||||
last_accessed = image['last_accessed']
|
||||
if last_accessed == 0:
|
||||
last_accessed = "N/A"
|
||||
else:
|
||||
last_accessed = timeutils.iso8601_from_timestamp(last_accessed)
|
||||
|
||||
print pretty_table.make_row(
|
||||
image['image_id'],
|
||||
image['last_accessed'],
|
||||
image['last_modified'],
|
||||
last_accessed,
|
||||
last_modified,
|
||||
image['size'],
|
||||
image['hits'])
|
||||
|
||||
|
@ -98,6 +98,11 @@ def utcnow():
|
||||
return datetime.datetime.utcnow()
|
||||
|
||||
|
||||
def iso8601_from_timestamp(timestamp):
|
||||
"""Returns a iso8601 formated date from timestamp"""
|
||||
return isotime(datetime.datetime.utcfromtimestamp(timestamp))
|
||||
|
||||
|
||||
utcnow.override_time = None
|
||||
|
||||
|
||||
@ -162,3 +167,16 @@ def delta_seconds(before, after):
|
||||
except AttributeError:
|
||||
return ((delta.days * 24 * 3600) + delta.seconds +
|
||||
float(delta.microseconds) / (10 ** 6))
|
||||
|
||||
|
||||
def is_soon(dt, window):
|
||||
"""
|
||||
Determines if time is going to happen in the next window seconds.
|
||||
|
||||
:params dt: the time
|
||||
:params window: minimum seconds to remain to consider the time not soon
|
||||
|
||||
:return: True if expiration is within the given duration
|
||||
"""
|
||||
soon = (utcnow() + datetime.timedelta(seconds=window))
|
||||
return normalize_time(dt) < soon
|
||||
|
@ -17,6 +17,7 @@
|
||||
|
||||
"""Functional test case that utilizes the bin/glance-cache-manage CLI tool"""
|
||||
|
||||
import datetime
|
||||
import hashlib
|
||||
import httplib2
|
||||
import json
|
||||
@ -76,6 +77,16 @@ class TestBinGlanceCacheManage(functional.FunctionalTest):
|
||||
self.assertEqual(0, exitcode)
|
||||
return image_id in out
|
||||
|
||||
def iso_date(self, image_id):
|
||||
"""
|
||||
Return True if supplied image ID is cached, False otherwise
|
||||
"""
|
||||
cmd = "bin/glance-cache-manage --port=%d list-cached" % self.api_port
|
||||
|
||||
exitcode, out, err = execute(cmd)
|
||||
|
||||
return datetime.date.today().isoformat() in out
|
||||
|
||||
def test_no_cache_enabled(self):
|
||||
"""
|
||||
Test that cache index command works
|
||||
@ -132,6 +143,8 @@ class TestBinGlanceCacheManage(functional.FunctionalTest):
|
||||
self.assertTrue(self.is_image_cached(ids[1]),
|
||||
"%s is not cached." % ids[1])
|
||||
|
||||
self.assertTrue(self.iso_date(ids[1]))
|
||||
|
||||
self.stop_servers()
|
||||
|
||||
def test_queue(self):
|
||||
|
Loading…
Reference in New Issue
Block a user