)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"0628dcd9f529ff7684ff5e5e5966fc086d25224e","unresolved":false,"context_lines":[{"line_number":11,"context_line":"This check should on server side and it should be managed by"},{"line_number":12,"context_line":"policy rules when do location-add action."},{"line_number":13,"context_line":"That also allows to increase possibility of migrating Heat"},{"line_number":14,"context_line":"to v2[1]."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"[1]: https://review.openstack.org/#/c/240450/"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"fa69d971_9e671fea","line":14,"updated":"2016-01-07 16:45:46.000000000","message":"I agree with the above! However, before going forward with this patch, can we double check that the server is actually verifying this already?","commit_id":"0d0fca7cb57d28895eae94a436513f2b56658702"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"b84635815c897ab7d1d393744d8e98f538ad58a4","unresolved":false,"context_lines":[{"line_number":12,"context_line":"policy rules when do location-add action."},{"line_number":13,"context_line":"That also allows to increase possibility of migrating Heat"},{"line_number":14,"context_line":"to v2[1]."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"[1]: https://review.openstack.org/#/c/240450/"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Co-Authored-By: wangxiyuan \u003cwangxiyuan@huawei.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"da6ed579_618008f8","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":0},"updated":"2016-01-14 08:05:48.000000000","message":"Can we also add a line saying that we may raise a HTTPBadRequest instead of HTTPConflict when a user adds a dup location ? That  will make it easier to release note.","commit_id":"0d0fca7cb57d28895eae94a436513f2b56658702"}],"glanceclient/v2/images.py":[{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"473ddbdfa75dab586fe0b1a1cf44c058aeea24c6","unresolved":false,"context_lines":[{"line_number":301,"context_line":"        url_list \u003d [l[\u0027url\u0027] for l in self._get_locations(image_id)]"},{"line_number":302,"context_line":"        if url in url_list:"},{"line_number":303,"context_line":"            err_str \u003d \u0027A location entry at %s already exists\u0027 % url"},{"line_number":304,"context_line":"            raise exc.HTTPConflict(err_str)"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"        add_patch \u003d [{\u0027op\u0027: \u0027add\u0027, \u0027path\u0027: \u0027/locations/-\u0027,"},{"line_number":307,"context_line":"                      \u0027value\u0027: {\u0027url\u0027: url, \u0027metadata\u0027: metadata}}]"}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_309f2a05","line":304,"updated":"2015-11-09 07:00:02.000000000","message":"Now when the show_multiple_locations is False in Glance and users add the same location, it will raise 400 error.\nI think we should keep the same here.\n\nlike:\nexc.HTTPBadRequest\n\"The location %s already exists\" % url","commit_id":"8ffd5cbb6c1de2415bdfeaeb08648bdb445668ea"},{"author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"change_message_id":"c5aaccd9cbccae7cdf23931fea682e5499b3ba65","unresolved":false,"context_lines":[{"line_number":301,"context_line":"        url_list \u003d [l[\u0027url\u0027] for l in self._get_locations(image_id)]"},{"line_number":302,"context_line":"        if url in url_list:"},{"line_number":303,"context_line":"            err_str \u003d \u0027A location entry at %s already exists\u0027 % url"},{"line_number":304,"context_line":"            raise exc.HTTPConflict(err_str)"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"        add_patch \u003d [{\u0027op\u0027: \u0027add\u0027, \u0027path\u0027: \u0027/locations/-\u0027,"},{"line_number":307,"context_line":"                      \u0027value\u0027: {\u0027url\u0027: url, \u0027metadata\u0027: metadata}}]"}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_bc4e91bf","line":304,"in_reply_to":"da85f559_309f2a05","updated":"2015-11-09 09:25:18.000000000","message":"Thanks for raising this case.\nI think we need to fix this on server side and glance must raise Conflict for client in this case.","commit_id":"8ffd5cbb6c1de2415bdfeaeb08648bdb445668ea"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"be8997a325277fbd8209e1611f4a885846466538","unresolved":false,"context_lines":[{"line_number":301,"context_line":"        url_list \u003d [l[\u0027url\u0027] for l in self._get_locations(image_id)]"},{"line_number":302,"context_line":"        if url in url_list:"},{"line_number":303,"context_line":"            err_str \u003d \u0027A location entry at %s already exists\u0027 % url"},{"line_number":304,"context_line":"            raise exc.HTTPConflict(err_str)"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"        add_patch \u003d [{\u0027op\u0027: \u0027add\u0027, \u0027path\u0027: \u0027/locations/-\u0027,"},{"line_number":307,"context_line":"                      \u0027value\u0027: {\u0027url\u0027: url, \u0027metadata\u0027: metadata}}]"}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_ec79c230","line":304,"in_reply_to":"da85f559_bc4e91bf","updated":"2015-11-09 10:35:00.000000000","message":"Right, 409 looks better.","commit_id":"8ffd5cbb6c1de2415bdfeaeb08648bdb445668ea"},{"author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"change_message_id":"efe3be68f79f1f256bca520ed9d0c838d1fa5217","unresolved":false,"context_lines":[{"line_number":305,"context_line":"        url_list \u003d [l[\u0027url\u0027] for l in self._get_locations(image_id)]"},{"line_number":306,"context_line":"        if url in url_list:"},{"line_number":307,"context_line":"            err_str \u003d \u0027A location entry at %s already exists\u0027 % url"},{"line_number":308,"context_line":"            raise exc.HTTPBadRequest(err_str)"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"        add_patch \u003d [{\u0027op\u0027: \u0027add\u0027, \u0027path\u0027: \u0027/locations/-\u0027,"},{"line_number":311,"context_line":"                      \u0027value\u0027: {\u0027url\u0027: url, \u0027metadata\u0027: metadata}}]"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_1c467dbf","line":308,"range":{"start_line":308,"start_character":22,"end_line":308,"end_character":36},"updated":"2015-12-25 09:59:17.000000000","message":"It may break compatibility because it changes exception type for one of the cases. Can we delete this? What server respond in this case?","commit_id":"0978b685fc85705d365c48ebb303ba071fdd3d56"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"ef730560f27992c871c78589762fee2e82d97e3c","unresolved":false,"context_lines":[{"line_number":305,"context_line":"        url_list \u003d [l[\u0027url\u0027] for l in self._get_locations(image_id)]"},{"line_number":306,"context_line":"        if url in url_list:"},{"line_number":307,"context_line":"            err_str \u003d \u0027A location entry at %s already exists\u0027 % url"},{"line_number":308,"context_line":"            raise exc.HTTPBadRequest(err_str)"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"        add_patch \u003d [{\u0027op\u0027: \u0027add\u0027, \u0027path\u0027: \u0027/locations/-\u0027,"},{"line_number":311,"context_line":"                      \u0027value\u0027: {\u0027url\u0027: url, \u0027metadata\u0027: metadata}}]"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_eede496c","line":308,"range":{"start_line":308,"start_character":22,"end_line":308,"end_character":36},"in_reply_to":"1a7b0d38_1c467dbf","updated":"2015-12-26 08:32:15.000000000","message":"Server responds HTTPBadRequest when the location is duplicated.\nhttps://review.openstack.org/#/c/250134/\n\nI fixed here because flaper87 think it\u0027s will break API if fixed in server side.\n\nRemove this check looks ok. Because server will check duplicate as well.","commit_id":"0978b685fc85705d365c48ebb303ba071fdd3d56"},{"author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"change_message_id":"efe3be68f79f1f256bca520ed9d0c838d1fa5217","unresolved":false,"context_lines":[{"line_number":319,"context_line":"        :param url_set: set of URLs of location entries to remove."},{"line_number":320,"context_line":"        :returns: None"},{"line_number":321,"context_line":"        \"\"\""},{"line_number":322,"context_line":"        current_urls \u003d [l[\u0027url\u0027] for l in self._get_locations(image_id)]"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"        missing_locs \u003d url_set.difference(set(current_urls))"},{"line_number":325,"context_line":"        if missing_locs:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_1ce2fd9f","line":322,"updated":"2015-12-25 09:59:17.000000000","message":"Same. This needs to be managed by server side.\nWhat will happen if we delete this check at all?","commit_id":"0978b685fc85705d365c48ebb303ba071fdd3d56"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"ef730560f27992c871c78589762fee2e82d97e3c","unresolved":false,"context_lines":[{"line_number":319,"context_line":"        :param url_set: set of URLs of location entries to remove."},{"line_number":320,"context_line":"        :returns: None"},{"line_number":321,"context_line":"        \"\"\""},{"line_number":322,"context_line":"        current_urls \u003d [l[\u0027url\u0027] for l in self._get_locations(image_id)]"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"        missing_locs \u003d url_set.difference(set(current_urls))"},{"line_number":325,"context_line":"        if missing_locs:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_5ba2b8af","line":322,"in_reply_to":"1a7b0d38_1ce2fd9f","updated":"2015-12-26 08:32:15.000000000","message":"server accept the message which format like:\n{\n    \"op\":\"replace\",\n    \"path\":\"/locations/0\"  # 0 is the location\u0027s index. \n}\n\nBut client here accept image\u0027 location. The client should first find out the location\u0027index. So I think we should not remove this check here.","commit_id":"0978b685fc85705d365c48ebb303ba071fdd3d56"},{"author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"change_message_id":"efe3be68f79f1f256bca520ed9d0c838d1fa5217","unresolved":false,"context_lines":[{"line_number":347,"context_line":"        \"\"\""},{"line_number":348,"context_line":"        url_map \u003d dict([(l[\u0027url\u0027], l) for l in self._get_locations(image_id)])"},{"line_number":349,"context_line":"        if url not in url_map:"},{"line_number":350,"context_line":"            raise exc.HTTPNotFound(\u0027Unknown URL: %s\u0027 % url)"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"        if url_map[url][\u0027metadata\u0027] \u003d\u003d metadata:"},{"line_number":353,"context_line":"            return self.get(image_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_dc7d55e8","line":350,"range":{"start_line":350,"start_character":22,"end_line":350,"end_character":34},"updated":"2015-12-25 09:59:17.000000000","message":"Now we will generate not found error each we are trying to update location instead of bad request. Is there a way to prevent this? What will happen if we delete this check at all?","commit_id":"0978b685fc85705d365c48ebb303ba071fdd3d56"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"ef730560f27992c871c78589762fee2e82d97e3c","unresolved":false,"context_lines":[{"line_number":347,"context_line":"        \"\"\""},{"line_number":348,"context_line":"        url_map \u003d dict([(l[\u0027url\u0027], l) for l in self._get_locations(image_id)])"},{"line_number":349,"context_line":"        if url not in url_map:"},{"line_number":350,"context_line":"            raise exc.HTTPNotFound(\u0027Unknown URL: %s\u0027 % url)"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"        if url_map[url][\u0027metadata\u0027] \u003d\u003d metadata:"},{"line_number":353,"context_line":"            return self.get(image_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_3b86cc13","line":350,"range":{"start_line":350,"start_character":22,"end_line":350,"end_character":34},"in_reply_to":"1a7b0d38_550a9322","updated":"2015-12-26 08:32:15.000000000","message":"Not sure we should fix HTTPNotFound here. Or you could update a new patch set to see what others think.","commit_id":"0978b685fc85705d365c48ebb303ba071fdd3d56"},{"author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"change_message_id":"ed816204be7a17a382ff5ba9e254c1165e08b662","unresolved":false,"context_lines":[{"line_number":347,"context_line":"        \"\"\""},{"line_number":348,"context_line":"        url_map \u003d dict([(l[\u0027url\u0027], l) for l in self._get_locations(image_id)])"},{"line_number":349,"context_line":"        if url not in url_map:"},{"line_number":350,"context_line":"            raise exc.HTTPNotFound(\u0027Unknown URL: %s\u0027 % url)"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"        if url_map[url][\u0027metadata\u0027] \u003d\u003d metadata:"},{"line_number":353,"context_line":"            return self.get(image_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_550a9322","line":350,"range":{"start_line":350,"start_character":22,"end_line":350,"end_character":34},"in_reply_to":"1a7b0d38_dc7d55e8","updated":"2015-12-25 13:56:36.000000000","message":"Looks like we cannot delete this because of:\n# NOTE: The server (as of now) doesn\u0027t support modifying individual\n        # location entries. So we must:\n        #   1. Empty existing list of locations.\n        #   2. Send another request to set \u0027locations\u0027 to the new list\n        #      of locations.","commit_id":"0978b685fc85705d365c48ebb303ba071fdd3d56"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"d9e1cd542860638073a8c2a3269a98a0511dcf16","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        url_list \u003d [l[\u0027url\u0027] for l in image.locations]"},{"line_number":310,"context_line":"        if url in url_list:"},{"line_number":311,"context_line":"            err_str \u003d \u0027A location entry at %s already exists\u0027 % url"},{"line_number":312,"context_line":"            raise exc.HTTPConflict(err_str)"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"        add_patch \u003d [{\u0027op\u0027: \u0027add\u0027, \u0027path\u0027: \u0027/locations/-\u0027,"},{"line_number":315,"context_line":"                      \u0027value\u0027: {\u0027url\u0027: url, \u0027metadata\u0027: metadata}}]"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa69d971_9276c73c","side":"PARENT","line":312,"updated":"2016-01-08 23:31:57.000000000","message":"Doesn\u0027t this change the exception type to exc.HTTPBadRequest when there is a duplicate specified ? I understand this is what the server returns but I am concerned with the library changing its behavior.\n\nCan we just fix the part where we fail when there are no locations and leave the rest as-is ?","commit_id":"29734896220bf0b209618e3d711c97beaf05aadf"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"b84635815c897ab7d1d393744d8e98f538ad58a4","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        url_list \u003d [l[\u0027url\u0027] for l in image.locations]"},{"line_number":310,"context_line":"        if url in url_list:"},{"line_number":311,"context_line":"            err_str \u003d \u0027A location entry at %s already exists\u0027 % url"},{"line_number":312,"context_line":"            raise exc.HTTPConflict(err_str)"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"        add_patch \u003d [{\u0027op\u0027: \u0027add\u0027, \u0027path\u0027: \u0027/locations/-\u0027,"},{"line_number":315,"context_line":"                      \u0027value\u0027: {\u0027url\u0027: url, \u0027metadata\u0027: metadata}}]"}],"source_content_type":"text/x-python","patch_set":6,"id":"da6ed579_55e87d7c","side":"PARENT","line":312,"in_reply_to":"da6ed579_8348322f","updated":"2016-01-14 08:05:48.000000000","message":"I don\u0027t think you can change the API response code in minor version update. You can try and restore the patch :)","commit_id":"29734896220bf0b209618e3d711c97beaf05aadf"},{"author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"change_message_id":"6f2153b6554f0d488945b5860cb06f7456bec954","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        url_list \u003d [l[\u0027url\u0027] for l in image.locations]"},{"line_number":310,"context_line":"        if url in url_list:"},{"line_number":311,"context_line":"            err_str \u003d \u0027A location entry at %s already exists\u0027 % url"},{"line_number":312,"context_line":"            raise exc.HTTPConflict(err_str)"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"        add_patch \u003d [{\u0027op\u0027: \u0027add\u0027, \u0027path\u0027: \u0027/locations/-\u0027,"},{"line_number":315,"context_line":"                      \u0027value\u0027: {\u0027url\u0027: url, \u0027metadata\u0027: metadata}}]"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa69d971_3dc22454","side":"PARENT","line":312,"in_reply_to":"fa69d971_0eedbdb6","updated":"2016-01-11 13:10:19.000000000","message":"IMO, the fix is acceptable only in case if this bug will be fixed: https://bugs.launchpad.net/glance/+bug/1520053.\nServer should generate Conflict when the location exists or\nBadRequest if there are duplicated locations.\nUnfortunately, the fix has been abandoned: https://review.openstack.org/#/c/250134/.\nSo it raises 400 in both cases which also breaks the compatibility and may confuse users in future.","commit_id":"29734896220bf0b209618e3d711c97beaf05aadf"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"b84635815c897ab7d1d393744d8e98f538ad58a4","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        url_list \u003d [l[\u0027url\u0027] for l in image.locations]"},{"line_number":310,"context_line":"        if url in url_list:"},{"line_number":311,"context_line":"            err_str \u003d \u0027A location entry at %s already exists\u0027 % url"},{"line_number":312,"context_line":"            raise exc.HTTPConflict(err_str)"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"        add_patch \u003d [{\u0027op\u0027: \u0027add\u0027, \u0027path\u0027: \u0027/locations/-\u0027,"},{"line_number":315,"context_line":"                      \u0027value\u0027: {\u0027url\u0027: url, \u0027metadata\u0027: metadata}}]"}],"source_content_type":"text/x-python","patch_set":6,"id":"da6ed579_a1f3b772","side":"PARENT","line":312,"in_reply_to":"fa69d971_0eedbdb6","updated":"2016-01-14 08:05:48.000000000","message":"That behavior is the existing behavior :) which we will be changing with this patch. I am fine with this but we need to release note it. Too bad the libraries don\u0027t have reno yet :(.","commit_id":"29734896220bf0b209618e3d711c97beaf05aadf"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"41c898464cdd01c551a6dac8b021918449f31525","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        url_list \u003d [l[\u0027url\u0027] for l in image.locations]"},{"line_number":310,"context_line":"        if url in url_list:"},{"line_number":311,"context_line":"            err_str \u003d \u0027A location entry at %s already exists\u0027 % url"},{"line_number":312,"context_line":"            raise exc.HTTPConflict(err_str)"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"        add_patch \u003d [{\u0027op\u0027: \u0027add\u0027, \u0027path\u0027: \u0027/locations/-\u0027,"},{"line_number":315,"context_line":"                      \u0027value\u0027: {\u0027url\u0027: url, \u0027metadata\u0027: metadata}}]"}],"source_content_type":"text/x-python","patch_set":6,"id":"da6ed579_8348322f","side":"PARENT","line":312,"in_reply_to":"fa69d971_3dc22454","updated":"2016-01-12 01:14:41.000000000","message":"I agree with Kairat TBH. But it\u0027s hard for me to fix it without API change. So I abandoned it.\n\nThere will be a version bump to 2.4. https://review.openstack.org/#/c/259590/ \n\nSo maybe it\u0027s ok to change the API\u0027s response code now?","commit_id":"29734896220bf0b209618e3d711c97beaf05aadf"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"1f9c69547c667f7fff3eebc964d126bc00583e22","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        url_list \u003d [l[\u0027url\u0027] for l in image.locations]"},{"line_number":310,"context_line":"        if url in url_list:"},{"line_number":311,"context_line":"            err_str \u003d \u0027A location entry at %s already exists\u0027 % url"},{"line_number":312,"context_line":"            raise exc.HTTPConflict(err_str)"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"        add_patch \u003d [{\u0027op\u0027: \u0027add\u0027, \u0027path\u0027: \u0027/locations/-\u0027,"},{"line_number":315,"context_line":"                      \u0027value\u0027: {\u0027url\u0027: url, \u0027metadata\u0027: metadata}}]"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa69d971_0eedbdb6","side":"PARENT","line":312,"in_reply_to":"fa69d971_9276c73c","updated":"2016-01-11 01:29:50.000000000","message":"Of cause we can do a simple fix like you said. Bug if we leave the HTTPConflict here, we will meet a situation:\n\nshow_multiple_locations \u003d True , client will raise 409 if duplicate location.\nshow_multiple_locations \u003d False, client will raise 400 if duplicate location.\n\nCan we accept this behavior?","commit_id":"29734896220bf0b209618e3d711c97beaf05aadf"}]}
