)]}'
{"bin/glance-cache-manage":[{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"cde3a92e3f3fd5372ad8b612d9bfd9753f5949a1","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        if image[\u0027last_accessed\u0027] \u003d\u003d 0.0:"},{"line_number":117,"context_line":"            last_accessed \u003d \"Not Accessed yet\""},{"line_number":118,"context_line":"        else:"},{"line_number":119,"context_line":"            last_accessed \u003d utcfromts(image[\u0027last_accessed\u0027]).isoformat()"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        print pretty_table.make_row("},{"line_number":122,"context_line":"            image[\u0027image_id\u0027],"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAAM3%2F%2Fd2Y%3D","line":119,"updated":"2013-01-21 14:24:02.000000000","message":"Are the existing openstack.common.timeutils.parse_*() functions useful here?","commit_id":"5072558254548f98d0ad5427a7430545562f13c4"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"01c69ceb4adc50b6b9c88edfd51198f8391ca69d","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        if image[\u0027last_accessed\u0027] \u003d\u003d 0.0:"},{"line_number":117,"context_line":"            last_accessed \u003d \"Not Accessed yet\""},{"line_number":118,"context_line":"        else:"},{"line_number":119,"context_line":"            last_accessed \u003d utcfromts(image[\u0027last_accessed\u0027]).isoformat()"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        print pretty_table.make_row("},{"line_number":122,"context_line":"            image[\u0027image_id\u0027],"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAAM3%2F%2Fd2E%3D","line":119,"in_reply_to":"AAAAM3%2F%2Fd2Y%3D","updated":"2013-01-21 14:27:17.000000000","message":"not right now, I double checked. I also added a fixme in line 105 that says we should add a function like this to oslo (didn\u0027t want to use the same commit)","commit_id":"5072558254548f98d0ad5427a7430545562f13c4"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"9b4526ebe61e77a51161e3e6187b51a5f78f4b95","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    for image in images:"},{"line_number":106,"context_line":"        last_modified \u003d iso8601_from_timestamp(image[\u0027last_modified\u0027])"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        # If the image hasn\u0027t been accessed"},{"line_number":109,"context_line":"        # it\u0027ll print epoch as last_accessed"},{"line_number":110,"context_line":"        # date. Printing \u0027Not Accessed yet\u0027"},{"line_number":111,"context_line":"        # instead"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"AAAAM3%2F%2FYJI%3D","line":108,"updated":"2013-01-24 21:04:54.000000000","message":"This comment isn\u0027t really necessary - you can get this information by reading the code below. I also want to prevent it geting out of sync with the implementation.","commit_id":"4496af38e587ee9225344c8cbd5cbf7357b9e569"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"71cc84d49426ce9d52ec88a6685c5b586501ce69","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    for image in images:"},{"line_number":106,"context_line":"        last_modified \u003d iso8601_from_timestamp(image[\u0027last_modified\u0027])"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        # If the image hasn\u0027t been accessed"},{"line_number":109,"context_line":"        # it\u0027ll print epoch as last_accessed"},{"line_number":110,"context_line":"        # date. Printing \u0027Not Accessed yet\u0027"},{"line_number":111,"context_line":"        # instead"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"AAAAM3%2F%2FYCE%3D","line":108,"in_reply_to":"AAAAM3%2F%2FYJI%3D","updated":"2013-01-24 21:50:29.000000000","message":"Agreed","commit_id":"4496af38e587ee9225344c8cbd5cbf7357b9e569"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"9b4526ebe61e77a51161e3e6187b51a5f78f4b95","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        # it\u0027ll print epoch as last_accessed"},{"line_number":110,"context_line":"        # date. Printing \u0027Not Accessed yet\u0027"},{"line_number":111,"context_line":"        # instead"},{"line_number":112,"context_line":"        if image[\u0027last_accessed\u0027] \u003d\u003d 0.0:"},{"line_number":113,"context_line":"            last_accessed \u003d \"Not Accessed yet\""},{"line_number":114,"context_line":"        else:"},{"line_number":115,"context_line":"            last_accessed \u003d iso8601_from_timestamp(image[\u0027last_accessed\u0027])"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"AAAAM3%2F%2FYJE%3D","line":112,"updated":"2013-01-24 21:04:54.000000000","message":"Why are you explicitly checking for 0.0? Typically you would just check for \u0027\u003d\u003d 0\u0027, unless there\u0027s a reason I\u0027m missing.","commit_id":"4496af38e587ee9225344c8cbd5cbf7357b9e569"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"71cc84d49426ce9d52ec88a6685c5b586501ce69","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        # it\u0027ll print epoch as last_accessed"},{"line_number":110,"context_line":"        # date. Printing \u0027Not Accessed yet\u0027"},{"line_number":111,"context_line":"        # instead"},{"line_number":112,"context_line":"        if image[\u0027last_accessed\u0027] \u003d\u003d 0.0:"},{"line_number":113,"context_line":"            last_accessed \u003d \"Not Accessed yet\""},{"line_number":114,"context_line":"        else:"},{"line_number":115,"context_line":"            last_accessed \u003d iso8601_from_timestamp(image[\u0027last_accessed\u0027])"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"AAAAM3%2F%2FYCM%3D","line":112,"in_reply_to":"AAAAM3%2F%2FYJE%3D","updated":"2013-01-24 21:50:29.000000000","message":"Just being paranoid, since it is a float I wanted to make it explicit as well","commit_id":"4496af38e587ee9225344c8cbd5cbf7357b9e569"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"9b4526ebe61e77a51161e3e6187b51a5f78f4b95","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        # date. Printing \u0027Not Accessed yet\u0027"},{"line_number":111,"context_line":"        # instead"},{"line_number":112,"context_line":"        if image[\u0027last_accessed\u0027] \u003d\u003d 0.0:"},{"line_number":113,"context_line":"            last_accessed \u003d \"Not Accessed yet\""},{"line_number":114,"context_line":"        else:"},{"line_number":115,"context_line":"            last_accessed \u003d iso8601_from_timestamp(image[\u0027last_accessed\u0027])"},{"line_number":116,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":5,"id":"AAAAM3%2F%2FYI8%3D","line":113,"updated":"2013-01-24 21:04:54.000000000","message":"The formatting of this is a little odd. How about we just use \u0027N/A\u0027 ?","commit_id":"4496af38e587ee9225344c8cbd5cbf7357b9e569"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"71cc84d49426ce9d52ec88a6685c5b586501ce69","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        # date. Printing \u0027Not Accessed yet\u0027"},{"line_number":111,"context_line":"        # instead"},{"line_number":112,"context_line":"        if image[\u0027last_accessed\u0027] \u003d\u003d 0.0:"},{"line_number":113,"context_line":"            last_accessed \u003d \"Not Accessed yet\""},{"line_number":114,"context_line":"        else:"},{"line_number":115,"context_line":"            last_accessed \u003d iso8601_from_timestamp(image[\u0027last_accessed\u0027])"},{"line_number":116,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":5,"id":"AAAAM3%2F%2FYCI%3D","line":113,"in_reply_to":"AAAAM3%2F%2FYI8%3D","updated":"2013-01-24 21:50:29.000000000","message":"agreed","commit_id":"4496af38e587ee9225344c8cbd5cbf7357b9e569"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"7906b74223066f793c811e727bedb81a3f248544","unresolved":false,"context_lines":[{"line_number":41,"context_line":"from glance.common import exception"},{"line_number":42,"context_line":"from glance.common import utils"},{"line_number":43,"context_line":"from glance.version import version_info as version"},{"line_number":44,"context_line":"from glance.openstack.common.timeutils import iso8601_from_timestamp"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"SUCCESS \u003d 0"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAAM3%2F%2FTm0%3D","line":44,"updated":"2013-01-29 17:03:08.000000000","message":"Only import modules, not functions. Also, this import should be swapped with the one above it for proper ordering.","commit_id":"8e2501e20db503bedc56fc40cf44800b6b43f3ee"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"1034ccb8b5520224477f49c7e2e437b731529970","unresolved":false,"context_lines":[{"line_number":41,"context_line":"from glance.common import exception"},{"line_number":42,"context_line":"from glance.common import utils"},{"line_number":43,"context_line":"from glance.version import version_info as version"},{"line_number":44,"context_line":"from glance.openstack.common.timeutils import iso8601_from_timestamp"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"SUCCESS \u003d 0"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAAM3%2F%2FTkQ%3D","line":44,"in_reply_to":"AAAAM3%2F%2FTm0%3D","updated":"2013-01-29 17:19:11.000000000","message":"will do! Out of curiosity, What\u0027s the ordering rule here?","commit_id":"8e2501e20db503bedc56fc40cf44800b6b43f3ee"}],"glance/openstack/common/timeutils.py":[{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"a7cb9f0b83d44ef69f46cf4fa97620f8d9869784","unresolved":false,"context_lines":[{"line_number":169,"context_line":"                float(delta.microseconds) / (10 ** 6))"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"def is_soon(dt, window):"},{"line_number":173,"context_line":"    \"\"\""},{"line_number":174,"context_line":"    Determines if time is going to happen in the next window seconds."},{"line_number":175,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FXso%3D","line":172,"updated":"2013-01-25 03:21:00.000000000","message":"I can\u0027t find where this new util function is used. Am I just being dense?","commit_id":"8e2501e20db503bedc56fc40cf44800b6b43f3ee"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"e90074bf0854334f1872a17bfa2a7f3d40fc376b","unresolved":false,"context_lines":[{"line_number":169,"context_line":"                float(delta.microseconds) / (10 ** 6))"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"def is_soon(dt, window):"},{"line_number":173,"context_line":"    \"\"\""},{"line_number":174,"context_line":"    Determines if time is going to happen in the next window seconds."},{"line_number":175,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FXhY%3D","line":172,"in_reply_to":"AAAAM3%2F%2FXso%3D","updated":"2013-01-25 08:36:33.000000000","message":"You\u0027re right, it isn\u0027t being used, this is an update from oslo\u0027s timeutils and I didn\u0027t want to exclude this function to make it easier for future merges.","commit_id":"8e2501e20db503bedc56fc40cf44800b6b43f3ee"}],"glance/tests/functional/test_bin_glance_cache_manage.py":[{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"7906b74223066f793c811e727bedb81a3f248544","unresolved":false,"context_lines":[{"line_number":21,"context_line":"import httplib2"},{"line_number":22,"context_line":"import json"},{"line_number":23,"context_line":"import os"},{"line_number":24,"context_line":"from datetime import date"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from glance.tests import functional"},{"line_number":27,"context_line":"from glance.tests.utils import execute, minimal_headers"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FTmw%3D","line":24,"updated":"2013-01-29 17:03:08.000000000","message":"Only import modules, and please put this import at the top of this block.","commit_id":"8e2501e20db503bedc56fc40cf44800b6b43f3ee"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"1034ccb8b5520224477f49c7e2e437b731529970","unresolved":false,"context_lines":[{"line_number":21,"context_line":"import httplib2"},{"line_number":22,"context_line":"import json"},{"line_number":23,"context_line":"import os"},{"line_number":24,"context_line":"from datetime import date"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from glance.tests import functional"},{"line_number":27,"context_line":"from glance.tests.utils import execute, minimal_headers"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FTkI%3D","line":24,"in_reply_to":"AAAAM3%2F%2FTmw%3D","updated":"2013-01-29 17:19:11.000000000","message":"will do! Out of curiosity, Why at the top?","commit_id":"8e2501e20db503bedc56fc40cf44800b6b43f3ee"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"9ef068101b1dca7c3be3fbd59b30afc7a6ca3b1e","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        \"\"\""},{"line_number":82,"context_line":"        Return True if supplied image ID is cached, False otherwise"},{"line_number":83,"context_line":"        \"\"\""},{"line_number":84,"context_line":"        cmd \u003d \"bin/glance-cache-manage --port\u003d%d list-cached\" % self.api_port"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        exitcode, out, err \u003d execute(cmd)"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FXGU%3D","line":84,"updated":"2013-01-25 16:25:04.000000000","message":"Is this additional use of glance-cache-manage really necessary?\n\ne.g. could the same assertion just be applied to the output of glance-cache-manage in is_image_cached()?","commit_id":"8e2501e20db503bedc56fc40cf44800b6b43f3ee"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"8caa7b5430cdf87653fd47d2d778e521f303a409","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        \"\"\""},{"line_number":82,"context_line":"        Return True if supplied image ID is cached, False otherwise"},{"line_number":83,"context_line":"        \"\"\""},{"line_number":84,"context_line":"        cmd \u003d \"bin/glance-cache-manage --port\u003d%d list-cached\" % self.api_port"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        exitcode, out, err \u003d execute(cmd)"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FXFk%3D","line":84,"in_reply_to":"AAAAM3%2F%2FXFs%3D","updated":"2013-01-25 16:28:56.000000000","message":"Fair enough.","commit_id":"8e2501e20db503bedc56fc40cf44800b6b43f3ee"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"82a21fb483a0d9c6a395b03e34db534a115de53a","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        \"\"\""},{"line_number":82,"context_line":"        Return True if supplied image ID is cached, False otherwise"},{"line_number":83,"context_line":"        \"\"\""},{"line_number":84,"context_line":"        cmd \u003d \"bin/glance-cache-manage --port\u003d%d list-cached\" % self.api_port"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        exitcode, out, err \u003d execute(cmd)"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FXFs%3D","line":84,"in_reply_to":"AAAAM3%2F%2FXGU%3D","updated":"2013-01-25 16:27:47.000000000","message":"It could be applied there, I preferred to keep them separated because they\u0027re already part of a single test_function and they both test different things","commit_id":"8e2501e20db503bedc56fc40cf44800b6b43f3ee"}]}
