)]}'
{"shade/openstackcloud.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"d85a221389cf9aa33bb0225131e116080c10293c","unresolved":false,"context_lines":[{"line_number":3019,"context_line":"                if md5 and md5_key \u003d\u003d md5:"},{"line_number":3020,"context_line":"                    up_to_date \u003d True"},{"line_number":3021,"context_line":"                if sha256 and sha256_key \u003d\u003d sha256:"},{"line_number":3022,"context_line":"                    up_to_date \u003d True"},{"line_number":3023,"context_line":"                if up_to_date:"},{"line_number":3024,"context_line":"                    self.log.debug("},{"line_number":3025,"context_line":"                        \"image %(name)s exists and is up to date\","}],"source_content_type":"text/x-python","patch_set":1,"id":"9a629dbe_4d28a2e2","line":3022,"updated":"2016-11-10 17:17:03.000000000","message":"You might also consider the third (fourth?) case where md5 is valid and sha256 is not (and sha256 is valid and md5 is not).","commit_id":"92150206f32f0eaae6ea0cfae60c06fc6c03f3b6"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"a0c4b839f7683a02fc82b386a6384ab2a14b8509","unresolved":false,"context_lines":[{"line_number":3019,"context_line":"                if md5 and md5_key \u003d\u003d md5:"},{"line_number":3020,"context_line":"                    up_to_date \u003d True"},{"line_number":3021,"context_line":"                if sha256 and sha256_key \u003d\u003d sha256:"},{"line_number":3022,"context_line":"                    up_to_date \u003d True"},{"line_number":3023,"context_line":"                if up_to_date:"},{"line_number":3024,"context_line":"                    self.log.debug("},{"line_number":3025,"context_line":"                        \"image %(name)s exists and is up to date\","}],"source_content_type":"text/x-python","patch_set":1,"id":"9a629dbe_c85f40e3","line":3022,"in_reply_to":"9a629dbe_4d28a2e2","updated":"2016-11-10 17:30:08.000000000","message":"Done in a follow up patch!","commit_id":"92150206f32f0eaae6ea0cfae60c06fc6c03f3b6"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"d85a221389cf9aa33bb0225131e116080c10293c","unresolved":false,"context_lines":[{"line_number":5411,"context_line":"            self.log.debug("},{"line_number":5412,"context_line":"                \"swift sha256 mismatch: %(filename)s!\u003d%(container)s/%(name)s\","},{"line_number":5413,"context_line":"                {\u0027filename\u0027: filename, \u0027container\u0027: container, \u0027name\u0027: name})"},{"line_number":5414,"context_line":"            return True"},{"line_number":5415,"context_line":""},{"line_number":5416,"context_line":"        self.log.debug("},{"line_number":5417,"context_line":"            \"swift object up to date: %(container)s/%(name)s\","}],"source_content_type":"text/x-python","patch_set":1,"id":"9a629dbe_0d814ac3","line":5414,"updated":"2016-11-10 17:17:03.000000000","message":"See above comment.","commit_id":"92150206f32f0eaae6ea0cfae60c06fc6c03f3b6"}]}
