)]}'
{"tempest/api/image/base.py":[{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"d3239e876c54bc3005f0621e34f6c1fcf04b74bb","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    @classmethod"},{"line_number":63,"context_line":"    def create_image(cls, **kwargs):"},{"line_number":64,"context_line":"        \"\"\"Wrapper that returns a test image.\"\"\""},{"line_number":65,"context_line":"        name \u003d data_utils.rand_name(cls.__name__ + \"-instance\")"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        if \u0027name\u0027 not in kwargs:"},{"line_number":68,"context_line":"            kwargs.update({\u0027name\u0027: name})"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_257bbdbf","line":65,"updated":"2015-12-03 13:39:54.000000000","message":"We can optimize it a little by putting this line under \"if\" to generate name only when name is not present in kwargs.","commit_id":"d016b5ac4f03508c7c4d6fc2b0a8e0853d2fac92"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"208a16fadff2a55d66a914b37ea4618a494f94c9","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    @classmethod"},{"line_number":63,"context_line":"    def create_image(cls, **kwargs):"},{"line_number":64,"context_line":"        \"\"\"Wrapper that returns a test image.\"\"\""},{"line_number":65,"context_line":"        name \u003d data_utils.rand_name(cls.__name__ + \"-instance\")"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        if \u0027name\u0027 not in kwargs:"},{"line_number":68,"context_line":"            kwargs.update({\u0027name\u0027: name})"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_28e7b0e5","line":65,"in_reply_to":"9a8ffd7b_257bbdbf","updated":"2015-12-04 09:12:42.000000000","message":"ok.","commit_id":"d016b5ac4f03508c7c4d6fc2b0a8e0853d2fac92"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"0ae47d9b32591c0b88fa78b689f92446e7f2a792","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        if \u0027name\u0027 not in kwargs:"},{"line_number":67,"context_line":"            name \u003d data_utils.rand_name(cls.__name__ + \"-instance\")"},{"line_number":68,"context_line":"            kwargs.update({\u0027name\u0027: name})"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        image \u003d cls.client.create_image(**kwargs)"},{"line_number":71,"context_line":"        # Image objects returned by the v1 client have the image"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa69d971_7410bf59","line":68,"updated":"2016-01-05 14:06:26.000000000","message":"Could you please do it like this:\n  kwargs[\u0027name\u0027] \u003d name","commit_id":"570fd09ae2722c7b79545d287627b613d2e7d289"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"eaa8afc8e4158ac035bfb93acd3984c2f90f4789","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        if \u0027name\u0027 not in kwargs:"},{"line_number":67,"context_line":"            name \u003d data_utils.rand_name(cls.__name__ + \"-instance\")"},{"line_number":68,"context_line":"            kwargs.update({\u0027name\u0027: name})"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        image \u003d cls.client.create_image(**kwargs)"},{"line_number":71,"context_line":"        # Image objects returned by the v1 client have the image"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa69d971_8a6b6bf1","line":68,"updated":"2016-01-07 10:19:46.000000000","message":"But why not kwargs[\u0027name\u0027] \u003d name ?","commit_id":"805c0913ccd88dd21111f411f97949fd3119ae2f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2f83707fd90b8158b7bf3fa666ac779f4930ec92","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        if \u0027name\u0027 not in kwargs:"},{"line_number":67,"context_line":"            name \u003d data_utils.rand_name(cls.__name__ + \"-instance\")"},{"line_number":68,"context_line":"            kwargs.update({\u0027name\u0027: name})"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        image \u003d cls.client.create_image(**kwargs)"},{"line_number":71,"context_line":"        # Image objects returned by the v1 client have the image"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa69d971_4dc34d8b","line":68,"in_reply_to":"fa69d971_8a6b6bf1","updated":"2016-01-07 10:27:30.000000000","message":"ops, I forgot to update this.","commit_id":"805c0913ccd88dd21111f411f97949fd3119ae2f"}],"tempest/services/image/v1/json/images_client.py":[{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"d3239e876c54bc3005f0621e34f6c1fcf04b74bb","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        return self._http"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def create_image(self, **kwargs):"},{"line_number":151,"context_line":"        headers \u003d {}"},{"line_number":152,"context_line":"        data_present \u003d False"},{"line_number":153,"context_line":"        if \u0027data\u0027 in kwargs:"},{"line_number":154,"context_line":"            data_present \u003d True"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_89e2c3d3","line":151,"updated":"2015-12-03 13:39:54.000000000","message":"What about\n\n    headers \u003d {}\n    data \u003d kwargs.pop(\u0027data\u0027, None)\n    headers.update(self._image_meta_to_headers(kwargs))\n    if data:\n        return self._create_with_data(headers, data)","commit_id":"d016b5ac4f03508c7c4d6fc2b0a8e0853d2fac92"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"894e6b14f1f95460261e9ce7b2e5c9a0092862ca","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        return self._http"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def create_image(self, **kwargs):"},{"line_number":151,"context_line":"        headers \u003d {}"},{"line_number":152,"context_line":"        data_present \u003d False"},{"line_number":153,"context_line":"        if \u0027data\u0027 in kwargs:"},{"line_number":154,"context_line":"            data_present \u003d True"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_26e35ca5","line":151,"in_reply_to":"7a740942_08c8b454","updated":"2015-12-04 10:53:30.000000000","message":"Got it. Thanks.","commit_id":"d016b5ac4f03508c7c4d6fc2b0a8e0853d2fac92"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"208a16fadff2a55d66a914b37ea4618a494f94c9","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        return self._http"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def create_image(self, **kwargs):"},{"line_number":151,"context_line":"        headers \u003d {}"},{"line_number":152,"context_line":"        data_present \u003d False"},{"line_number":153,"context_line":"        if \u0027data\u0027 in kwargs:"},{"line_number":154,"context_line":"            data_present \u003d True"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_08c8b454","line":151,"in_reply_to":"9a8ffd7b_89e2c3d3","updated":"2015-12-04 09:12:42.000000000","message":"Yea but it would not handle the case of data\u003dNone if that is passed in kwargs. mainly for negative/fuzzy testing etc.\nthat\u0027s why i check data_present","commit_id":"d016b5ac4f03508c7c4d6fc2b0a8e0853d2fac92"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"0303f1f647ba785aa785a0e2de24b1c4f50e1279","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        return self._http"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def create_image(self, **kwargs):"},{"line_number":151,"context_line":"        headers \u003d {}"},{"line_number":152,"context_line":"        params \u003d {}"},{"line_number":153,"context_line":"        for option in [\u0027is_public\u0027, \u0027location\u0027, \u0027properties\u0027, \u0027copy_from\u0027,"},{"line_number":154,"context_line":"                       \u0027min_ram\u0027, \u0027name\u0027, \u0027container_format\u0027, \u0027disk_format\u0027]:"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a710552_8ef34e73","line":151,"updated":"2015-12-15 11:10:42.000000000","message":"What about \n\ndef create_image(self, **kwargs):\n    headers \u003d {}\n    data_kwargs \u003d {}\n    \n    if \u0027data\u0027 in kwargs:\n        data_kwargs[\u0027data\u0027] \u003d kwargs.pop(\u0027data\u0027)\n    \n    headers.update(self._image_meta_to_headers(kwargs))\n    \n    if \u0027data\u0027 in data_kwargs:\n        return self._create_with_data(headers, data_kwargs[\u0027data\u0027])\n\n    ...","commit_id":"31d661f4245e681b338327b7cb62ddd40114cd27"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"ffc6b78eaf21788dc56753ddc94a2fdfcf784b50","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        return self._http"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def create_image(self, **kwargs):"},{"line_number":151,"context_line":"        headers \u003d {}"},{"line_number":152,"context_line":"        params \u003d {}"},{"line_number":153,"context_line":"        for option in [\u0027is_public\u0027, \u0027location\u0027, \u0027properties\u0027, \u0027copy_from\u0027,"},{"line_number":154,"context_line":"                       \u0027min_ram\u0027, \u0027name\u0027, \u0027container_format\u0027, \u0027disk_format\u0027]:"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a710552_def22d6f","line":151,"in_reply_to":"5a710552_5272bf4a","updated":"2015-12-16 09:05:29.000000000","message":"I thought that only data should not be present in kwargs. Isn\u0027t it?","commit_id":"31d661f4245e681b338327b7cb62ddd40114cd27"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"519c130ce23a6454fce3b088374e9fcd82b66225","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        return self._http"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def create_image(self, **kwargs):"},{"line_number":151,"context_line":"        headers \u003d {}"},{"line_number":152,"context_line":"        params \u003d {}"},{"line_number":153,"context_line":"        for option in [\u0027is_public\u0027, \u0027location\u0027, \u0027properties\u0027, \u0027copy_from\u0027,"},{"line_number":154,"context_line":"                       \u0027min_ram\u0027, \u0027name\u0027, \u0027container_format\u0027, \u0027disk_format\u0027]:"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a710552_5272bf4a","line":151,"in_reply_to":"5a710552_8ef34e73","updated":"2015-12-16 02:32:38.000000000","message":"This would not work if you see the previous PS failure. There are only set of arg which needs to be set in header. Updating hesder with all kwargs will not work.","commit_id":"31d661f4245e681b338327b7cb62ddd40114cd27"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"0303f1f647ba785aa785a0e2de24b1c4f50e1279","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def update_image(self, image_id, **kwargs):"},{"line_number":169,"context_line":"        headers \u003d {}"},{"line_number":170,"context_line":"        data \u003d None"},{"line_number":171,"context_line":"        if \u0027data\u0027 in kwargs:"},{"line_number":172,"context_line":"            data \u003d kwargs.pop(\u0027data\u0027)"},{"line_number":173,"context_line":"        headers.update(self._image_meta_to_headers(kwargs))"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a710552_73092f95","line":170,"updated":"2015-12-15 11:10:42.000000000","message":"data \u003d kwargs.pop(\u0027data\u0027, None)","commit_id":"31d661f4245e681b338327b7cb62ddd40114cd27"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"519c130ce23a6454fce3b088374e9fcd82b66225","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def update_image(self, image_id, **kwargs):"},{"line_number":169,"context_line":"        headers \u003d {}"},{"line_number":170,"context_line":"        data \u003d None"},{"line_number":171,"context_line":"        if \u0027data\u0027 in kwargs:"},{"line_number":172,"context_line":"            data \u003d kwargs.pop(\u0027data\u0027)"},{"line_number":173,"context_line":"        headers.update(self._image_meta_to_headers(kwargs))"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a710552_521cffc0","line":170,"in_reply_to":"5a710552_73092f95","updated":"2015-12-16 02:32:38.000000000","message":"Actually i want to make it to pass data as None. But I have to change L175.","commit_id":"31d661f4245e681b338327b7cb62ddd40114cd27"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"6a7eabfe119272a04f7cbcada1d4fb6f4ea7cb4a","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        return meta"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def _image_meta_to_headers(self, fields):"},{"line_number":79,"context_line":"        headers \u003d {}"},{"line_number":80,"context_line":"        fields_copy \u003d copy.deepcopy(fields)"},{"line_number":81,"context_line":"        copy_from \u003d fields_copy.pop(\u0027copy_from\u0027, None)"},{"line_number":82,"context_line":"        if \u0027data\u0027 in fields_copy:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a710552_72a32d50","line":79,"updated":"2015-12-16 09:20:48.000000000","message":"I suggest that you put \u0027if\u0027 in L82 here. I think it helps us fix test failures.\n\n    if \u0027data\u0027 in fields:\n        del fields[\u0027data\u0027]\n    fields_copy \u003d copy.deepcopy(fields)\n    copy_from \u003d fields_copy.pop(\u0027copy_from\u0027, None)\n    ...","commit_id":"e21e1d677759d1bfeaa063fae4be92bc3dba3e1f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a701c6fdb6e4f6aa85c712a3cdafc2104c14fcf6","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        return meta"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def _image_meta_to_headers(self, fields):"},{"line_number":79,"context_line":"        headers \u003d {}"},{"line_number":80,"context_line":"        fields_copy \u003d copy.deepcopy(fields)"},{"line_number":81,"context_line":"        copy_from \u003d fields_copy.pop(\u0027copy_from\u0027, None)"},{"line_number":82,"context_line":"        if \u0027data\u0027 in fields_copy:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a7e1126_a57e70e2","line":79,"in_reply_to":"5a710552_72a32d50","updated":"2015-12-17 09:24:05.000000000","message":"Actually we cannot delete from fields as it will be used further","commit_id":"e21e1d677759d1bfeaa063fae4be92bc3dba3e1f"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"6a7eabfe119272a04f7cbcada1d4fb6f4ea7cb4a","unresolved":false,"context_lines":[{"line_number":164,"context_line":"        headers \u003d {}"},{"line_number":165,"context_line":"        headers.update(self._image_meta_to_headers(kwargs))"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"        if \u0027data\u0027 in kwargs:"},{"line_number":168,"context_line":"            return self._update_with_data(image_id, headers,"},{"line_number":169,"context_line":"                                          kwargs.get(\u0027data\u0027))"},{"line_number":170,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"5a710552_72724daf","line":167,"updated":"2015-12-16 09:20:48.000000000","message":"I think it should be\n\n    data \u003d None\n    if \u0027data\u0027 in kwargs:\n        data \u003d kwargs[\u0027data\u0027]\n        return self._update_with_data(image_id, headers, data)","commit_id":"e21e1d677759d1bfeaa063fae4be92bc3dba3e1f"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"6a7eabfe119272a04f7cbcada1d4fb6f4ea7cb4a","unresolved":false,"context_lines":[{"line_number":169,"context_line":"                                          kwargs.get(\u0027data\u0027))"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        url \u003d \u0027v1/images/%s\u0027 % image_id"},{"line_number":172,"context_line":"        resp, body \u003d self.put(url, None, headers)"},{"line_number":173,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":174,"context_line":"        body \u003d json.loads(body)"},{"line_number":175,"context_line":"        return service_client.ResponseBody(resp, body)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a710552_525951fd","line":172,"updated":"2015-12-16 09:20:48.000000000","message":"resp, body \u003d self.put(url, data, headers)","commit_id":"e21e1d677759d1bfeaa063fae4be92bc3dba3e1f"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"0ae47d9b32591c0b88fa78b689f92446e7f2a792","unresolved":false,"context_lines":[{"line_number":75,"context_line":"                    pass"},{"line_number":76,"context_line":"        return meta"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def _image_meta_to_headers(self, fields):"},{"line_number":79,"context_line":"        headers \u003d {}"},{"line_number":80,"context_line":"        fields_copy \u003d copy.deepcopy(fields)"},{"line_number":81,"context_line":"        copy_from \u003d fields_copy.pop(\u0027copy_from\u0027, None)"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa69d971_368ecc79","line":78,"updated":"2016-01-05 14:06:26.000000000","message":"This method should be changed to not consider \u0027data\u0027 as a HTTP header. This way we won\u0027t have to do \"weird\" stuff in create_image() and update_image()","commit_id":"570fd09ae2722c7b79545d287627b613d2e7d289"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"82151da3e0a13941cd43af1ae29d188e52607aa7","unresolved":false,"context_lines":[{"line_number":75,"context_line":"                    pass"},{"line_number":76,"context_line":"        return meta"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def _image_meta_to_headers(self, fields):"},{"line_number":79,"context_line":"        headers \u003d {}"},{"line_number":80,"context_line":"        fields_copy \u003d copy.deepcopy(fields)"},{"line_number":81,"context_line":"        copy_from \u003d fields_copy.pop(\u0027copy_from\u0027, None)"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa69d971_86d13025","line":78,"in_reply_to":"fa69d971_368ecc79","updated":"2016-01-07 06:09:56.000000000","message":"Actually if we do so it end up in again same kind of hack in create/update where we needs to pop the data from kwargs and put it again after creating header.\n\nI did data_present for data\u003dNone fuzzy testing but in that case glance http-\u003eraw_request it end up with same value as normal self.post call. \nLet me make it simple now.","commit_id":"570fd09ae2722c7b79545d287627b613d2e7d289"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"8506ed5c3c982e70d640f9bafccb496027f5e275","unresolved":false,"context_lines":[{"line_number":174,"context_line":"            return self._update_with_data(image_id, headers, data)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        url \u003d \u0027v1/images/%s\u0027 % image_id"},{"line_number":177,"context_line":"        resp, body \u003d self.put(url, None, headers)"},{"line_number":178,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":179,"context_line":"        body \u003d json.loads(body)"},{"line_number":180,"context_line":"        return service_client.ResponseBody(resp, body)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a7e1126_286082a4","line":177,"range":{"start_line":177,"start_character":35,"end_line":177,"end_character":39},"updated":"2015-12-21 08:09:41.000000000","message":"So technically, it is ok to keep \"data\" as the previous code.\nBut this change is fine for me because we can see what data(None) is passed here.","commit_id":"570fd09ae2722c7b79545d287627b613d2e7d289"}]}
