)]}'
{"swift/common/storage_policy.py":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"0824d2b6af5290154caa2da61768cb3f40112843","unresolved":false,"context_lines":[{"line_number":214,"context_line":"            \u0027Content-Length\u0027: \u0027Content-Length\u0027,"},{"line_number":215,"context_line":"        }"},{"line_number":216,"context_line":"        repl_custom_meta \u003d {}"},{"line_number":217,"context_line":"        return repl_etag_len_map, repl_custom_meta"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"class ECStoragePolicy(StoragePolicy):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_3e5b6af7","line":217,"updated":"2015-01-05 00:08:11.000000000","message":"Seeing as this is the default values, I think this should be moved into the parent StoragePolicy class and then overridden in the EC SP class.","commit_id":"311d984435a4fc86a52bd866e60f4d5aa86205ab"}],"swift/obj/server.py":[{"author":{"_account_id":5189,"name":"Yuan Zhou","email":"dunk007@gmail.com","username":"yuan-zhou"},"change_message_id":"49636a596d0c5965d398a537dd1f1a6a94946a16","unresolved":false,"context_lines":[{"line_number":474,"context_line":"        if request.if_none_match is not None and orig_metadata:"},{"line_number":475,"context_line":"            if \u0027*\u0027 in request.if_none_match:"},{"line_number":476,"context_line":"                # File exists already so return 412"},{"line_number":477,"context_line":"                return HTTPPreconditionFailed(request\u003drequest)"},{"line_number":478,"context_line":"            if orig_metadata.get(\u0027ETag\u0027) in request.if_none_match:"},{"line_number":479,"context_line":"                # The current ETag matches, so return 412"},{"line_number":480,"context_line":"                return HTTPPreconditionFailed(request\u003drequest)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_8edd3745","line":477,"updated":"2014-12-17 02:53:46.000000000","message":"If-None-Match also checks the whole object etag, so this line should be the \u0027X-Object-Sysmeta-EC-Etag\u0027?","commit_id":"fa8931766c3a660d6a2072169c3a9304f0701c42"},{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"c2e258ab7dd7b079cf3c933d1921616a88bbb7fd","unresolved":false,"context_lines":[{"line_number":596,"context_line":"                    request, device, policy_idx)"},{"line_number":597,"context_line":"        policy \u003d POLICIES.get_by_index(policy_idx)"},{"line_number":598,"context_line":"        etag_len_map, custom_meta_names \u003d policy.response_metadata_items()"},{"line_number":599,"context_line":"        object_etag \u003d metadata.get(etag_len_map[\u0027ETag\u0027], 0)"},{"line_number":600,"context_line":"        object_size \u003d int(metadata.get(etag_len_map[\u0027Content-Length\u0027], 0))"},{"line_number":601,"context_line":"        self.container_update("},{"line_number":602,"context_line":"            \u0027PUT\u0027, account, container, obj, request,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_a39e6561","line":599,"updated":"2015-01-04 19:48:54.000000000","message":"did you mean to set default values of 0 here?  Before this change an error would be raised below if one of these keys didn\u0027t exist however with the change you\u0027re masking that error and setting a value of 0.  Maybe would be \u0027safer\u0027 to do object_etag \u003d [etag_len_map[\u0027ETag\u0027]]?  BTW, I think I recall seeing some validation on these headers somewhere earlier so I don\u0027t think its possible to get this far w/o having them but...","commit_id":"311d984435a4fc86a52bd866e60f4d5aa86205ab"},{"author":{"_account_id":7485,"name":"Tushar Gohad","email":"tushar.gohad@intel.com","username":"tsg"},"change_message_id":"6421ab42bb5e2d13538b8b17d88fae3fc11318bb","unresolved":false,"context_lines":[{"line_number":596,"context_line":"                    request, device, policy_idx)"},{"line_number":597,"context_line":"        policy \u003d POLICIES.get_by_index(policy_idx)"},{"line_number":598,"context_line":"        etag_len_map, custom_meta_names \u003d policy.response_metadata_items()"},{"line_number":599,"context_line":"        object_etag \u003d metadata.get(etag_len_map[\u0027ETag\u0027], 0)"},{"line_number":600,"context_line":"        object_size \u003d int(metadata.get(etag_len_map[\u0027Content-Length\u0027], 0))"},{"line_number":601,"context_line":"        self.container_update("},{"line_number":602,"context_line":"            \u0027PUT\u0027, account, container, obj, request,"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_b9b35409","line":599,"in_reply_to":"3a961159_a39e6561","updated":"2015-02-08 09:41:57.000000000","message":"Thanks for pointing out.  Still WIP - I added just to get around an issue I ran into.  Let me take another close look at this patch, now that we have the 1st cut .durable patch up.","commit_id":"311d984435a4fc86a52bd866e60f4d5aa86205ab"},{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"c2e258ab7dd7b079cf3c933d1921616a88bbb7fd","unresolved":false,"context_lines":[{"line_number":700,"context_line":"        # need to respond with other policy-specific metadata"},{"line_number":701,"context_line":"        policy \u003d POLICIES.get_by_index(policy_idx)"},{"line_number":702,"context_line":"        etag_len_map, custom_meta_names \u003d policy.response_metadata_items()"},{"line_number":703,"context_line":"        response.etag \u003d metadata.get(etag_len_map[\u0027ETag\u0027])"},{"line_number":704,"context_line":"        response.content_length \u003d int(metadata.get("},{"line_number":705,"context_line":"                                      etag_len_map[\u0027Content-Length\u0027]))"},{"line_number":706,"context_line":"        # Add custom policy metadata to response headers"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_c399b17a","line":703,"updated":"2015-01-04 19:48:54.000000000","message":"same sorta thing here, the get() method won\u0027t raise an error if the key is missing however above you set to 0 and here they would get set to None.  Intentional?","commit_id":"311d984435a4fc86a52bd866e60f4d5aa86205ab"}]}
