)]}'
{"nova/virt/libvirt/imagecache.py":[{"author":{"_account_id":16318,"name":"Vincent Legoll","email":"vincent.legoll@iphc.cnrs.fr","username":"vincentleg"},"change_message_id":"6e59d3da499d81a39b7b42880c34808f44b8312c","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"            elif len(ent) \u003d\u003d digest_size:"},{"line_number":137,"context_line":"                self._store_image(base_dir, ent, original\u003dTrue)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"            elif (len(ent) \u003e digest_size + 2 and"},{"line_number":140,"context_line":"                  ent[digest_size] \u003d\u003d \u0027_\u0027):"},{"line_number":141,"context_line":"                self._store_image(base_dir, ent, original\u003dFalse)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_ed21e9fd","line":140,"range":{"start_line":138,"start_character":0,"end_line":140,"end_character":43},"updated":"2016-05-25 11:49:36.000000000","message":"This could be on a single line","commit_id":"67c1601db4dc12cf46f7357ddce4f0348978e582"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"9479e21334d8d1d266be9573e71d638b9c0bc433","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"            elif len(ent) \u003d\u003d digest_size:"},{"line_number":137,"context_line":"                self._store_image(base_dir, ent, original\u003dTrue)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"            elif (len(ent) \u003e digest_size + 2 and"},{"line_number":140,"context_line":"                  ent[digest_size] \u003d\u003d \u0027_\u0027):"},{"line_number":141,"context_line":"                self._store_image(base_dir, ent, original\u003dFalse)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_815d817b","line":140,"range":{"start_line":138,"start_character":0,"end_line":140,"end_character":43},"in_reply_to":"bab6814e_ed21e9fd","updated":"2016-05-25 13:29:14.000000000","message":"Done","commit_id":"67c1601db4dc12cf46f7357ddce4f0348978e582"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"92eccf6d296322099e6616ab48000cfad8134c42","unresolved":false,"context_lines":[{"line_number":131,"context_line":"                # TODO(mdbooth): In Ocata, update this code to delete the"},{"line_number":132,"context_line":"                # info file. We can\u0027t do this in Newton as the image cache"},{"line_number":133,"context_line":"                # may be on shared storage with Mitaka computes."},{"line_number":134,"context_line":"                pass"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"            elif len(ent) \u003d\u003d digest_size:"},{"line_number":137,"context_line":"                self._store_image(base_dir, ent, original\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_25bdb6d7","line":134,"updated":"2016-05-25 15:51:10.000000000","message":"I\u0027m not sure I get this.. This skips info files, but didn\u0027t we need to skip them before? What does this catch exactly that doesn\u0027t fall into either of the conditions below?","commit_id":"aea9129188bace340ee6aa9ac6503cf517ecf919"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"dfca9a085abd263bc1261b09af5fb042396f4101","unresolved":false,"context_lines":[{"line_number":131,"context_line":"                # TODO(mdbooth): In Ocata, update this code to delete the"},{"line_number":132,"context_line":"                # info file. We can\u0027t do this in Newton as the image cache"},{"line_number":133,"context_line":"                # may be on shared storage with Mitaka computes."},{"line_number":134,"context_line":"                pass"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"            elif len(ent) \u003d\u003d digest_size:"},{"line_number":137,"context_line":"                self._store_image(base_dir, ent, original\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_d270c7a6","line":134,"in_reply_to":"bab6814e_19cd5a85","updated":"2016-05-26 09:54:48.000000000","message":"@Vincent, I\u0027m pretty sure there\u0027s a lot of things which break if you don\u0027t install every release. We assume this in lots of places. Sounds like you\u0027ve been lucky so far, or worked round them.","commit_id":"aea9129188bace340ee6aa9ac6503cf517ecf919"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"28daa1d79c623aeba0c443df18d1f37cd26bbd86","unresolved":false,"context_lines":[{"line_number":131,"context_line":"                # TODO(mdbooth): In Ocata, update this code to delete the"},{"line_number":132,"context_line":"                # info file. We can\u0027t do this in Newton as the image cache"},{"line_number":133,"context_line":"                # may be on shared storage with Mitaka computes."},{"line_number":134,"context_line":"                pass"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"            elif len(ent) \u003d\u003d digest_size:"},{"line_number":137,"context_line":"                self._store_image(base_dir, ent, original\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_cc96753d","line":134,"in_reply_to":"bab6814e_25bdb6d7","updated":"2016-05-26 08:32:21.000000000","message":"I\u0027ll expand the comment, but basically the idea is that by the time we get to Ocata we don\u0027t need this files at all for anything, so we can just blow them away immediately. This means that in P we can delete this block too, and there\u0027s nothing left of it whatsoever.","commit_id":"aea9129188bace340ee6aa9ac6503cf517ecf919"},{"author":{"_account_id":16318,"name":"Vincent Legoll","email":"vincent.legoll@iphc.cnrs.fr","username":"vincentleg"},"change_message_id":"66870484c5722332f2c424f070f27d3537b3f425","unresolved":false,"context_lines":[{"line_number":131,"context_line":"                # TODO(mdbooth): In Ocata, update this code to delete the"},{"line_number":132,"context_line":"                # info file. We can\u0027t do this in Newton as the image cache"},{"line_number":133,"context_line":"                # may be on shared storage with Mitaka computes."},{"line_number":134,"context_line":"                pass"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"            elif len(ent) \u003d\u003d digest_size:"},{"line_number":137,"context_line":"                self._store_image(base_dir, ent, original\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_19cd5a85","line":134,"in_reply_to":"bab6814e_cc96753d","updated":"2016-05-26 08:58:46.000000000","message":"That is assuming people install each release, at least this is not the case for us.","commit_id":"aea9129188bace340ee6aa9ac6503cf517ecf919"},{"author":{"_account_id":16318,"name":"Vincent Legoll","email":"vincent.legoll@iphc.cnrs.fr","username":"vincentleg"},"change_message_id":"1ee5254dfa720f85a420ebc568c724303b2f2dd2","unresolved":false,"context_lines":[{"line_number":131,"context_line":"                # TODO(mdbooth): In Ocata, update this code to delete the"},{"line_number":132,"context_line":"                # info file. We can\u0027t do this in Newton as the image cache"},{"line_number":133,"context_line":"                # may be on shared storage with Mitaka computes."},{"line_number":134,"context_line":"                pass"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"            elif len(ent) \u003d\u003d digest_size:"},{"line_number":137,"context_line":"                self._store_image(base_dir, ent, original\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_e379bf83","line":134,"in_reply_to":"bab6814e_d270c7a6","updated":"2016-05-26 10:42:21.000000000","message":"Yep, we went: I -\u003e K, some pain was felt. :-)","commit_id":"aea9129188bace340ee6aa9ac6503cf517ecf919"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"50691b9ef0a9cf5757c79d5a228108c036203bc8","unresolved":false,"context_lines":[{"line_number":131,"context_line":"                # TODO(mdbooth): In Ocata, update this code to delete the"},{"line_number":132,"context_line":"                # info file. We can\u0027t do this in Newton as the image cache"},{"line_number":133,"context_line":"                # may be on shared storage with Mitaka computes."},{"line_number":134,"context_line":"                pass"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"            elif len(ent) \u003d\u003d digest_size:"},{"line_number":137,"context_line":"                self._store_image(base_dir, ent, original\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_98d2c4fe","line":134,"in_reply_to":"bab6814e_e379bf83","updated":"2016-05-26 17:58:26.000000000","message":"Yeah, skipping releases is not a thing. If you do it, you\u0027re signing up for the pain :)","commit_id":"aea9129188bace340ee6aa9ac6503cf517ecf919"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"92eccf6d296322099e6616ab48000cfad8134c42","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"            elif len(ent) \u003e digest_size + 2 and ent[digest_size] \u003d\u003d \u0027_\u0027:"},{"line_number":140,"context_line":"                self._store_image(base_dir, ent, original\u003dFalse)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"            else:"},{"line_number":143,"context_line":"                self._store_swap_image(ent)"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_2af1056b","line":141,"updated":"2016-05-25 15:51:10.000000000","message":"Unrelated whitespace damage.","commit_id":"aea9129188bace340ee6aa9ac6503cf517ecf919"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"28daa1d79c623aeba0c443df18d1f37cd26bbd86","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"            elif len(ent) \u003e digest_size + 2 and ent[digest_size] \u003d\u003d \u0027_\u0027:"},{"line_number":140,"context_line":"                self._store_image(base_dir, ent, original\u003dFalse)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"            else:"},{"line_number":143,"context_line":"                self._store_swap_image(ent)"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_acb85176","line":141,"in_reply_to":"bab6814e_2af1056b","updated":"2016-05-26 08:32:21.000000000","message":"So, there\u0027s a blank line (138) above, and I added a blank line (135) to be consistent with that when adding a new block above. But there was no blank line here, which was inconsistent with the line I added and the one which already existed, so I added it. Alternatively I could remove the existing blank line (138), but that would be an unrelated whitespace change too. Or I could leave it alone, but then I\u0027d be like the donkey in the Buridan\u0027s ass paradox trying to decide what to do with line 135, and I\u0027d die sad and alone.\n\nI know, I know, but please let this one pass or my OCD may go critical ;)","commit_id":"aea9129188bace340ee6aa9ac6503cf517ecf919"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"92eccf6d296322099e6616ab48000cfad8134c42","unresolved":false,"context_lines":[{"line_number":249,"context_line":"            try:"},{"line_number":250,"context_line":"                os.remove(base_file)"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"                # TODO(mdbooth): Delete the block below in Ocata."},{"line_number":253,"context_line":"                if remove_sig:"},{"line_number":254,"context_line":"                    signature \u003d get_info_filename(base_file)"},{"line_number":255,"context_line":"                    if os.path.exists(signature):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_8583c2cb","line":252,"updated":"2016-05-25 15:51:10.000000000","message":"Why? It looks like we default to removing signatures when we remove the base file (I don\u0027t even know why we\u0027d ever keep them). Can\u0027t we just remove the default case, always remove the signature file now and then later drop that after we\u0027re reasonably sure everyone will have clean cache directories?","commit_id":"aea9129188bace340ee6aa9ac6503cf517ecf919"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"28daa1d79c623aeba0c443df18d1f37cd26bbd86","unresolved":false,"context_lines":[{"line_number":249,"context_line":"            try:"},{"line_number":250,"context_line":"                os.remove(base_file)"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"                # TODO(mdbooth): Delete the block below in Ocata."},{"line_number":253,"context_line":"                if remove_sig:"},{"line_number":254,"context_line":"                    signature \u003d get_info_filename(base_file)"},{"line_number":255,"context_line":"                    if os.path.exists(signature):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_c7548eff","line":252,"in_reply_to":"bab6814e_8583c2cb","updated":"2016-05-26 08:32:21.000000000","message":"I\u0027ll expand the comment, and as you point out I should also make this unconditional and deprecate any associated config option. We can delete this in Ocata when we\u0027ve made the corresponding change above to unconditionally delete all files.","commit_id":"aea9129188bace340ee6aa9ac6503cf517ecf919"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"dfca9a085abd263bc1261b09af5fb042396f4101","unresolved":false,"context_lines":[{"line_number":249,"context_line":"            try:"},{"line_number":250,"context_line":"                os.remove(base_file)"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"                # TODO(mdbooth): Delete the block below in Ocata."},{"line_number":253,"context_line":"                if remove_sig:"},{"line_number":254,"context_line":"                    signature \u003d get_info_filename(base_file)"},{"line_number":255,"context_line":"                    if os.path.exists(signature):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_32df936a","line":252,"in_reply_to":"bab6814e_c7548eff","updated":"2016-05-26 09:54:48.000000000","message":"Looks like this was just an optimisation to void checking for a signature in some cases. I\u0027ll remove it any for clarity.","commit_id":"aea9129188bace340ee6aa9ac6503cf517ecf919"}]}
