)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"cddd7d08941d49421f642897469afc4bd35b80da","unresolved":false,"context_lines":[{"line_number":10,"context_line":"location-update is totally broken now. This patch removes the updating"},{"line_number":11,"context_line":"for an image from non-empty to empty since it\u0027s not supported now."},{"line_number":12,"context_line":"And also removing the default value of metadata for location-update"},{"line_number":13,"context_line":"cli command because now the only purpose of location-update is updating"},{"line_number":14,"context_line":"the location\u0027s metadata, so it doesn\u0027t make sense to give it a default"},{"line_number":15,"context_line":"value which may update existing metadata by mistake."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5aef4532_fb036640","line":13,"updated":"2016-03-08 22:35:51.000000000","message":"Just curious, wasn\u0027t this always the case ? location-update always did update only the metadata of a specific location url from a user\u0027s point of view.\n\nBut I am fine with removing the default for the reason you mentioned.","commit_id":"15f67217293c8cae1cd1f6f04ff968c546d8e725"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"4687034b1a9646b363c330290f069038657e116f","unresolved":false,"context_lines":[{"line_number":10,"context_line":"location-update is totally broken now. This patch removes the updating"},{"line_number":11,"context_line":"for an image from non-empty to empty since it\u0027s not supported now."},{"line_number":12,"context_line":"And also removing the default value of metadata for location-update"},{"line_number":13,"context_line":"cli command because now the only purpose of location-update is updating"},{"line_number":14,"context_line":"the location\u0027s metadata, so it doesn\u0027t make sense to give it a default"},{"line_number":15,"context_line":"value which may update existing metadata by mistake."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5aef4532_919cc3c1","line":13,"in_reply_to":"5aef4532_16042948","updated":"2016-03-08 23:11:50.000000000","message":"Thanks, yeah, I understand that from the server side. I mentioned it from the CLI\u0027s aspect as \"glance location-update\" was always only meant to update metadata for a given URL.","commit_id":"15f67217293c8cae1cd1f6f04ff968c546d8e725"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"83827d9b0c27e94b85ede0e0d6528a7a25f5c748","unresolved":false,"context_lines":[{"line_number":10,"context_line":"location-update is totally broken now. This patch removes the updating"},{"line_number":11,"context_line":"for an image from non-empty to empty since it\u0027s not supported now."},{"line_number":12,"context_line":"And also removing the default value of metadata for location-update"},{"line_number":13,"context_line":"cli command because now the only purpose of location-update is updating"},{"line_number":14,"context_line":"the location\u0027s metadata, so it doesn\u0027t make sense to give it a default"},{"line_number":15,"context_line":"value which may update existing metadata by mistake."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5aef4532_16042948","line":13,"in_reply_to":"5aef4532_fb036640","updated":"2016-03-08 22:59:34.000000000","message":"Now Glance doesn\u0027t support update image locations from non-empty to empty and also doesn\u0027t support update locations from an non-empty to another non-empty with different URLs.","commit_id":"15f67217293c8cae1cd1f6f04ff968c546d8e725"}],"glanceclient/v2/images.py":[{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"cddd7d08941d49421f642897469afc4bd35b80da","unresolved":false,"context_lines":[{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        # NOTE: The server (as of now) doesn\u0027t support modifying individual"},{"line_number":359,"context_line":"        # location entries. So we must:"},{"line_number":360,"context_line":"        #   1. Empty existing list of locations."},{"line_number":361,"context_line":"        #   2. Send another request to set \u0027locations\u0027 to the new list"},{"line_number":362,"context_line":"        #      of locations."},{"line_number":363,"context_line":"        url_map[url][\u0027metadata\u0027] \u003d metadata"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_9816a853","line":360,"updated":"2016-03-08 22:35:51.000000000","message":"Nit: We are now not emptying the list. You can remove this line.","commit_id":"15f67217293c8cae1cd1f6f04ff968c546d8e725"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"83827d9b0c27e94b85ede0e0d6528a7a25f5c748","unresolved":false,"context_lines":[{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        # NOTE: The server (as of now) doesn\u0027t support modifying individual"},{"line_number":359,"context_line":"        # location entries. So we must:"},{"line_number":360,"context_line":"        #   1. Empty existing list of locations."},{"line_number":361,"context_line":"        #   2. Send another request to set \u0027locations\u0027 to the new list"},{"line_number":362,"context_line":"        #      of locations."},{"line_number":363,"context_line":"        url_map[url][\u0027metadata\u0027] \u003d metadata"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_56feb137","line":360,"in_reply_to":"5aef4532_9816a853","updated":"2016-03-08 22:59:34.000000000","message":"Done","commit_id":"15f67217293c8cae1cd1f6f04ff968c546d8e725"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"5b62ba42ca8f05040812acb14d2e235d38bd396a","unresolved":false,"context_lines":[{"line_number":348,"context_line":"        image \u003d self._get_image_with_locations_or_fail(image_id)"},{"line_number":349,"context_line":"        url_map \u003d dict([(l[\u0027url\u0027], l) for l in image.locations])"},{"line_number":350,"context_line":"        if url not in url_map:"},{"line_number":351,"context_line":"            raise exc.HTTPNotFound(\u0027Unknown URL: %s, the URL must be one of\u0027"},{"line_number":352,"context_line":"                                   \u0027 existing locations of current image\u0027 %"},{"line_number":353,"context_line":"                                   url)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"        if url_map[url][\u0027metadata\u0027] \u003d\u003d metadata:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3afc51ec_1cf30a0c","line":352,"range":{"start_line":351,"start_character":35,"end_line":352,"end_character":73},"updated":"2016-03-11 14:08:42.000000000","message":"this needs to i18n compliant.","commit_id":"8b6dbb2065c5e12d150f15572df3dc0e269e7a81"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"951469918165c045cd55f248b077698c41501bda","unresolved":false,"context_lines":[{"line_number":348,"context_line":"        image \u003d self._get_image_with_locations_or_fail(image_id)"},{"line_number":349,"context_line":"        url_map \u003d dict([(l[\u0027url\u0027], l) for l in image.locations])"},{"line_number":350,"context_line":"        if url not in url_map:"},{"line_number":351,"context_line":"            raise exc.HTTPNotFound(\u0027Unknown URL: %s, the URL must be one of\u0027"},{"line_number":352,"context_line":"                                   \u0027 existing locations of current image\u0027 %"},{"line_number":353,"context_line":"                                   url)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"        if url_map[url][\u0027metadata\u0027] \u003d\u003d metadata:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3afc51ec_b7f14fd0","line":352,"range":{"start_line":351,"start_character":35,"end_line":352,"end_character":73},"in_reply_to":"3afc51ec_1cf30a0c","updated":"2016-03-11 14:31:15.000000000","message":"Our client is not translated. This is consistent with the rest of the code.","commit_id":"8b6dbb2065c5e12d150f15572df3dc0e269e7a81"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"6c87b7560ec2bae048ac74b413280f54f7c61ca5","unresolved":false,"context_lines":[{"line_number":348,"context_line":"        image \u003d self._get_image_with_locations_or_fail(image_id)"},{"line_number":349,"context_line":"        url_map \u003d dict([(l[\u0027url\u0027], l) for l in image.locations])"},{"line_number":350,"context_line":"        if url not in url_map:"},{"line_number":351,"context_line":"            raise exc.HTTPNotFound(\u0027Unknown URL: %s, the URL must be one of\u0027"},{"line_number":352,"context_line":"                                   \u0027 existing locations of current image\u0027 %"},{"line_number":353,"context_line":"                                   url)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"        if url_map[url][\u0027metadata\u0027] \u003d\u003d metadata:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3afc51ec_746a1e1c","line":352,"range":{"start_line":351,"start_character":35,"end_line":352,"end_character":73},"in_reply_to":"3afc51ec_b7f14fd0","updated":"2016-03-11 16:27:28.000000000","message":"oh interesting! I didn\u0027t know that.","commit_id":"8b6dbb2065c5e12d150f15572df3dc0e269e7a81"}],"glanceclient/v2/shell.py":[{"author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"change_message_id":"12551c1c4f26fbe601f6a85c2c4cf281173b2c22","unresolved":false,"context_lines":[{"line_number":412,"context_line":""},{"line_number":413,"context_line":"@utils.arg(\u0027--url\u0027, metavar\u003d\u0027\u003cURL\u003e\u0027, required\u003dTrue,"},{"line_number":414,"context_line":"           help\u003d_(\u0027URL of location to update.\u0027))"},{"line_number":415,"context_line":"@utils.arg(\u0027--metadata\u0027, metavar\u003d\u0027\u003cSTRING\u003e\u0027, required\u003dTrue,"},{"line_number":416,"context_line":"           help\u003d_(\u0027Metadata associated with the location. \u0027"},{"line_number":417,"context_line":"                  \u0027Must be a valid JSON object (default: %(default)s)\u0027))"},{"line_number":418,"context_line":"@utils.arg(\u0027id\u0027, metavar\u003d\u0027\u003cIMAGE_ID\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aed3d3a_9db4ae82","line":415,"updated":"2016-02-29 10:29:50.000000000","message":"Could  you please explain why should we change default value in commit message or in comment?\nIt would confuse users and breaks backward-compatibility.","commit_id":"dc3a59a8b1c4d3e1705348f95c5bf6e006859d04"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"3c55ce476013e6c200db6e3c93d6aac2f9a8e175","unresolved":false,"context_lines":[{"line_number":412,"context_line":""},{"line_number":413,"context_line":"@utils.arg(\u0027--url\u0027, metavar\u003d\u0027\u003cURL\u003e\u0027, required\u003dTrue,"},{"line_number":414,"context_line":"           help\u003d_(\u0027URL of location to update.\u0027))"},{"line_number":415,"context_line":"@utils.arg(\u0027--metadata\u0027, metavar\u003d\u0027\u003cSTRING\u003e\u0027, required\u003dTrue,"},{"line_number":416,"context_line":"           help\u003d_(\u0027Metadata associated with the location. \u0027"},{"line_number":417,"context_line":"                  \u0027Must be a valid JSON object (default: %(default)s)\u0027))"},{"line_number":418,"context_line":"@utils.arg(\u0027id\u0027, metavar\u003d\u0027\u003cIMAGE_ID\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aed3d3a_37d47abb","line":415,"in_reply_to":"9aed3d3a_9db4ae82","updated":"2016-02-29 20:38:37.000000000","message":"That\u0027s because the only purpose of location-update is updating the metadata of location, so it doesn\u0027t make any sense to give a default value for the metadata parameter since user may update the it by mistake.","commit_id":"dc3a59a8b1c4d3e1705348f95c5bf6e006859d04"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"e02213bb0b6cf706d71c70d0bc29ee3b0b357a96","unresolved":false,"context_lines":[{"line_number":412,"context_line":""},{"line_number":413,"context_line":"@utils.arg(\u0027--url\u0027, metavar\u003d\u0027\u003cURL\u003e\u0027, required\u003dTrue,"},{"line_number":414,"context_line":"           help\u003d_(\u0027URL of location to update.\u0027))"},{"line_number":415,"context_line":"@utils.arg(\u0027--metadata\u0027, metavar\u003d\u0027\u003cSTRING\u003e\u0027, required\u003dTrue,"},{"line_number":416,"context_line":"           help\u003d_(\u0027Metadata associated with the location. \u0027"},{"line_number":417,"context_line":"                  \u0027Must be a valid JSON object (default: %(default)s)\u0027))"},{"line_number":418,"context_line":"@utils.arg(\u0027id\u0027, metavar\u003d\u0027\u003cIMAGE_ID\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_3960fc00","line":415,"updated":"2016-03-03 12:21:33.000000000","message":"Why do we require the --metadata?","commit_id":"2303c2b21f503acad35ab83635bb52fb30b24292"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"c19513365f1d6291f702e0cf4896dbdf8c77b7fe","unresolved":false,"context_lines":[{"line_number":412,"context_line":""},{"line_number":413,"context_line":"@utils.arg(\u0027--url\u0027, metavar\u003d\u0027\u003cURL\u003e\u0027, required\u003dTrue,"},{"line_number":414,"context_line":"           help\u003d_(\u0027URL of location to update.\u0027))"},{"line_number":415,"context_line":"@utils.arg(\u0027--metadata\u0027, metavar\u003d\u0027\u003cSTRING\u003e\u0027, required\u003dTrue,"},{"line_number":416,"context_line":"           help\u003d_(\u0027Metadata associated with the location. \u0027"},{"line_number":417,"context_line":"                  \u0027Must be a valid JSON object (default: %(default)s)\u0027))"},{"line_number":418,"context_line":"@utils.arg(\u0027id\u0027, metavar\u003d\u0027\u003cIMAGE_ID\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_72f4355a","line":415,"in_reply_to":"7af24918_3960fc00","updated":"2016-03-06 21:24:10.000000000","message":"I have explained it in commit message :)","commit_id":"2303c2b21f503acad35ab83635bb52fb30b24292"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"fddcc5587f1ae9e99c2db679eb0529c3d1583541","unresolved":false,"context_lines":[{"line_number":414,"context_line":"           help\u003d_(\u0027URL of location to update.\u0027))"},{"line_number":415,"context_line":"@utils.arg(\u0027--metadata\u0027, metavar\u003d\u0027\u003cSTRING\u003e\u0027, required\u003dTrue,"},{"line_number":416,"context_line":"           help\u003d_(\u0027Metadata associated with the location. \u0027"},{"line_number":417,"context_line":"                  \u0027Must be a valid JSON object (default: %(default)s)\u0027))"},{"line_number":418,"context_line":"@utils.arg(\u0027id\u0027, metavar\u003d\u0027\u003cIMAGE_ID\u003e\u0027,"},{"line_number":419,"context_line":"           help\u003d_(\u0027ID of image whose location is to be updated.\u0027))"},{"line_number":420,"context_line":"def do_location_update(gc, args):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_1c1c27c0","line":417,"updated":"2016-03-03 03:58:54.000000000","message":"I may be confused about how the decorator works, but since you removed the default value, don\u0027t you also want to remove the reference from the format string?","commit_id":"2303c2b21f503acad35ab83635bb52fb30b24292"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"e02213bb0b6cf706d71c70d0bc29ee3b0b357a96","unresolved":false,"context_lines":[{"line_number":414,"context_line":"           help\u003d_(\u0027URL of location to update.\u0027))"},{"line_number":415,"context_line":"@utils.arg(\u0027--metadata\u0027, metavar\u003d\u0027\u003cSTRING\u003e\u0027, required\u003dTrue,"},{"line_number":416,"context_line":"           help\u003d_(\u0027Metadata associated with the location. \u0027"},{"line_number":417,"context_line":"                  \u0027Must be a valid JSON object (default: %(default)s)\u0027))"},{"line_number":418,"context_line":"@utils.arg(\u0027id\u0027, metavar\u003d\u0027\u003cIMAGE_ID\u003e\u0027,"},{"line_number":419,"context_line":"           help\u003d_(\u0027ID of image whose location is to be updated.\u0027))"},{"line_number":420,"context_line":"def do_location_update(gc, args):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_39275ccb","line":417,"in_reply_to":"7af24918_1c1c27c0","updated":"2016-03-03 12:21:33.000000000","message":"indeed","commit_id":"2303c2b21f503acad35ab83635bb52fb30b24292"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"c19513365f1d6291f702e0cf4896dbdf8c77b7fe","unresolved":false,"context_lines":[{"line_number":414,"context_line":"           help\u003d_(\u0027URL of location to update.\u0027))"},{"line_number":415,"context_line":"@utils.arg(\u0027--metadata\u0027, metavar\u003d\u0027\u003cSTRING\u003e\u0027, required\u003dTrue,"},{"line_number":416,"context_line":"           help\u003d_(\u0027Metadata associated with the location. \u0027"},{"line_number":417,"context_line":"                  \u0027Must be a valid JSON object (default: %(default)s)\u0027))"},{"line_number":418,"context_line":"@utils.arg(\u0027id\u0027, metavar\u003d\u0027\u003cIMAGE_ID\u003e\u0027,"},{"line_number":419,"context_line":"           help\u003d_(\u0027ID of image whose location is to be updated.\u0027))"},{"line_number":420,"context_line":"def do_location_update(gc, args):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_b2ea3d72","line":417,"in_reply_to":"7af24918_39275ccb","updated":"2016-03-06 21:24:10.000000000","message":"Good catch.","commit_id":"2303c2b21f503acad35ab83635bb52fb30b24292"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"bd51eec03a16c92dfa6b20b832909111619e40c2","unresolved":false,"context_lines":[{"line_number":412,"context_line":""},{"line_number":413,"context_line":"@utils.arg(\u0027--url\u0027, metavar\u003d\u0027\u003cURL\u003e\u0027, required\u003dTrue,"},{"line_number":414,"context_line":"           help\u003d_(\u0027URL of location to update.\u0027))"},{"line_number":415,"context_line":"@utils.arg(\u0027--metadata\u0027, metavar\u003d\u0027\u003cSTRING\u003e\u0027, required\u003dTrue,"},{"line_number":416,"context_line":"           help\u003d_(\u0027Metadata associated with the location. \u0027"},{"line_number":417,"context_line":"                  \u0027Must be a valid JSON object.\u0027))"},{"line_number":418,"context_line":"@utils.arg(\u0027id\u0027, metavar\u003d\u0027\u003cIMAGE_ID\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5aef4532_d371ce0d","line":415,"updated":"2016-03-10 11:24:40.000000000","message":"This will break scripts that didn\u0027t use to pass any metadata. \n\nI understand we can\u0027t update the image location without passing a valid metadata but this change needs to be done gradually.\n\nCan we just make it a no-op (and log a warning/error) when the default value is used? I believe that\u0027s better than suddenly all the scripts failing because we now require the metadata, which is effectively changing the CLI contract.","commit_id":"360665d8a8868182d100dea6892e7f86a3d61f50"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"6944956595adeb28e48da52a3c76450419df05d0","unresolved":false,"context_lines":[{"line_number":420,"context_line":"def do_location_update(gc, args):"},{"line_number":421,"context_line":"    \"\"\"Update metadata of an image\u0027s location.\"\"\""},{"line_number":422,"context_line":"    try:"},{"line_number":423,"context_line":"        if args.metadata \u003d\u003d {}:"},{"line_number":424,"context_line":"            print(\"WARNING -- The location\u0027s metadata will be updated to \""},{"line_number":425,"context_line":"                  \"an empty JSON object.\")"},{"line_number":426,"context_line":"        metadata \u003d json.loads(args.metadata)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afc51ec_9190a697","line":423,"updated":"2016-03-11 12:50:17.000000000","message":"metadata is \u0027{}\u0027 not {}.\n\nYou should un-serialize it before doing this check :)","commit_id":"343b7bd8ee2c7434c937a605df323d5ee86ae8b4"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"925a0f30ed01aa8c67e002a0b086e37ea7d5e076","unresolved":false,"context_lines":[{"line_number":420,"context_line":"def do_location_update(gc, args):"},{"line_number":421,"context_line":"    \"\"\"Update metadata of an image\u0027s location.\"\"\""},{"line_number":422,"context_line":"    try:"},{"line_number":423,"context_line":"        if args.metadata \u003d\u003d {}:"},{"line_number":424,"context_line":"            print(\"WARNING -- The location\u0027s metadata will be updated to \""},{"line_number":425,"context_line":"                  \"an empty JSON object.\")"},{"line_number":426,"context_line":"        metadata \u003d json.loads(args.metadata)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afc51ec_6999a06e","line":423,"in_reply_to":"3afc51ec_9190a697","updated":"2016-03-11 19:43:53.000000000","message":"good catch!","commit_id":"343b7bd8ee2c7434c937a605df323d5ee86ae8b4"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"5b62ba42ca8f05040812acb14d2e235d38bd396a","unresolved":false,"context_lines":[{"line_number":422,"context_line":"    try:"},{"line_number":423,"context_line":"        metadata \u003d json.loads(args.metadata)"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"        if metadata \u003d\u003d {}:"},{"line_number":426,"context_line":"            print(\"WARNING -- The location\u0027s metadata will be updated to \""},{"line_number":427,"context_line":"                  \"an empty JSON object.\")"},{"line_number":428,"context_line":"    except ValueError:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3afc51ec_bc3bf69b","line":425,"range":{"start_line":425,"start_character":11,"end_line":425,"end_character":25},"updated":"2016-03-11 14:08:42.000000000","message":"No test for this?","commit_id":"8b6dbb2065c5e12d150f15572df3dc0e269e7a81"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"5b62ba42ca8f05040812acb14d2e235d38bd396a","unresolved":false,"context_lines":[{"line_number":423,"context_line":"        metadata \u003d json.loads(args.metadata)"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"        if metadata \u003d\u003d {}:"},{"line_number":426,"context_line":"            print(\"WARNING -- The location\u0027s metadata will be updated to \""},{"line_number":427,"context_line":"                  \"an empty JSON object.\")"},{"line_number":428,"context_line":"    except ValueError:"},{"line_number":429,"context_line":"        utils.exit(\u0027Metadata is not a valid JSON object.\u0027)"},{"line_number":430,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3afc51ec_5cc47291","line":427,"range":{"start_line":426,"start_character":17,"end_line":427,"end_character":42},"updated":"2016-03-11 14:08:42.000000000","message":"i18n compliant?","commit_id":"8b6dbb2065c5e12d150f15572df3dc0e269e7a81"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"6c87b7560ec2bae048ac74b413280f54f7c61ca5","unresolved":false,"context_lines":[{"line_number":423,"context_line":"        metadata \u003d json.loads(args.metadata)"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"        if metadata \u003d\u003d {}:"},{"line_number":426,"context_line":"            print(\"WARNING -- The location\u0027s metadata will be updated to \""},{"line_number":427,"context_line":"                  \"an empty JSON object.\")"},{"line_number":428,"context_line":"    except ValueError:"},{"line_number":429,"context_line":"        utils.exit(\u0027Metadata is not a valid JSON object.\u0027)"},{"line_number":430,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3afc51ec_545a8284","line":427,"range":{"start_line":426,"start_character":17,"end_line":427,"end_character":42},"in_reply_to":"3afc51ec_57cbab72","updated":"2016-03-11 16:27:28.000000000","message":"thanks!","commit_id":"8b6dbb2065c5e12d150f15572df3dc0e269e7a81"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"951469918165c045cd55f248b077698c41501bda","unresolved":false,"context_lines":[{"line_number":423,"context_line":"        metadata \u003d json.loads(args.metadata)"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"        if metadata \u003d\u003d {}:"},{"line_number":426,"context_line":"            print(\"WARNING -- The location\u0027s metadata will be updated to \""},{"line_number":427,"context_line":"                  \"an empty JSON object.\")"},{"line_number":428,"context_line":"    except ValueError:"},{"line_number":429,"context_line":"        utils.exit(\u0027Metadata is not a valid JSON object.\u0027)"},{"line_number":430,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3afc51ec_57cbab72","line":427,"range":{"start_line":426,"start_character":17,"end_line":427,"end_character":42},"in_reply_to":"3afc51ec_5cc47291","updated":"2016-03-11 14:31:15.000000000","message":"DITTO: translation","commit_id":"8b6dbb2065c5e12d150f15572df3dc0e269e7a81"}]}
