)]}'
{"tempest/services/image/v1/json/image_client.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"aa0fa3169a58c2a7c580d884ebd0e0a3af706a2a","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        for option in [\u0027is_public\u0027, \u0027location\u0027, \u0027properties\u0027]:"},{"line_number":134,"context_line":"            if option in kwargs:"},{"line_number":135,"context_line":"                value \u003d kwargs.get(option)"},{"line_number":136,"context_line":"                params[option] \u003d value"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        headers.update(self._image_meta_to_headers(params))"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2Fxs4%3D","line":135,"updated":"2013-03-12 21:28:38.000000000","message":"nit, is there really a reason to do this in 2 steps? seems like living on one like would be good.","commit_id":"bfe9dd27ac35b59bf7afdb6ad2b726cafc1789d2"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"ce6fa8159766d90cb08dfe266518f09e53f8f610","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        for option in [\u0027is_public\u0027, \u0027location\u0027, \u0027properties\u0027]:"},{"line_number":134,"context_line":"            if option in kwargs:"},{"line_number":135,"context_line":"                value \u003d kwargs.get(option)"},{"line_number":136,"context_line":"                params[option] \u003d value"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        headers.update(self._image_meta_to_headers(params))"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2FxrU%3D","line":135,"in_reply_to":"AAAAN3%2F%2Fxs4%3D","updated":"2013-03-12 21:44:28.000000000","message":"Ok, if I need to respin this patch I\u0027ll make it one line.","commit_id":"bfe9dd27ac35b59bf7afdb6ad2b726cafc1789d2"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"aa0fa3169a58c2a7c580d884ebd0e0a3af706a2a","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        headers.update(self._image_meta_to_headers(params))"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        if \u0027data\u0027 in kwargs:"},{"line_number":141,"context_line":"            return self._create_with_data(headers, kwargs.get(\u0027data\u0027))"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        resp, body \u003d self.post(\u0027v1/images\u0027, None, headers)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2Fxs0%3D","line":140,"updated":"2013-03-12 21:28:38.000000000","message":"so data\u003dNone is still going to be true here, is that what you want?","commit_id":"bfe9dd27ac35b59bf7afdb6ad2b726cafc1789d2"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"ce6fa8159766d90cb08dfe266518f09e53f8f610","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        headers.update(self._image_meta_to_headers(params))"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        if \u0027data\u0027 in kwargs:"},{"line_number":141,"context_line":"            return self._create_with_data(headers, kwargs.get(\u0027data\u0027))"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        resp, body \u003d self.post(\u0027v1/images\u0027, None, headers)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2FxrA%3D","line":140,"in_reply_to":"AAAAN3%2F%2Fxs0%3D","updated":"2013-03-12 21:44:28.000000000","message":"That\u0027s actually fine. In general if a data arg is passed in as a kwarg then we can assume that there is an image upload. If there isn\u0027t an image to upload then we shouldn\u0027t be passing in a data kwarg. It doesn\u0027t make any sense to have data\u003dNone as an arg for create_image().\n\nHowever, even if that was done, it wouldn\u0027t break anything, the glance_http module would just be used instead of rest_client.There shouldn\u0027t be any real difference between a request without data between the 2 clients. (Even though I tried to avoid using glance_http unless it was actually needed, ie chunked upload)","commit_id":"bfe9dd27ac35b59bf7afdb6ad2b726cafc1789d2"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"aa0fa3169a58c2a7c580d884ebd0e0a3af706a2a","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        if \u0027data\u0027 in kwargs:"},{"line_number":141,"context_line":"            return self._create_with_data(headers, kwargs.get(\u0027data\u0027))"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        resp, body \u003d self.post(\u0027v1/images\u0027, None, headers)"},{"line_number":144,"context_line":"        body \u003d json.loads(body)"},{"line_number":145,"context_line":"        return resp, body[\u0027image\u0027]"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2Fxsw%3D","line":143,"updated":"2013-03-12 21:28:38.000000000","message":"why did this change to None here?","commit_id":"bfe9dd27ac35b59bf7afdb6ad2b726cafc1789d2"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"ce6fa8159766d90cb08dfe266518f09e53f8f610","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        if \u0027data\u0027 in kwargs:"},{"line_number":141,"context_line":"            return self._create_with_data(headers, kwargs.get(\u0027data\u0027))"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        resp, body \u003d self.post(\u0027v1/images\u0027, None, headers)"},{"line_number":144,"context_line":"        body \u003d json.loads(body)"},{"line_number":145,"context_line":"        return resp, body[\u0027image\u0027]"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2Fxro%3D","line":143,"in_reply_to":"AAAAN3%2F%2Fxsw%3D","updated":"2013-03-12 21:44:28.000000000","message":"This was changed to none because there is not supposed to be any data on a create request here (no image upload). However, data is a required field on post(). Moving to kwargs for this method drops  None as the default for the data arg.","commit_id":"bfe9dd27ac35b59bf7afdb6ad2b726cafc1789d2"}],"tempest/tests/image/base.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"aa0fa3169a58c2a7c580d884ebd0e0a3af706a2a","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        for image_id in cls.created_images:"},{"line_number":39,"context_line":"            try:"},{"line_number":40,"context_line":"                cls.client.delete_image(image_id)"},{"line_number":41,"context_line":"            except Exception:"},{"line_number":42,"context_line":"                pass"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        for image_id in cls.created_images:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2Fxsk%3D","line":41,"updated":"2013-03-12 21:28:38.000000000","message":"do we want to be explicit about catches? only catch not found or something?","commit_id":"bfe9dd27ac35b59bf7afdb6ad2b726cafc1789d2"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"ce6fa8159766d90cb08dfe266518f09e53f8f610","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        for image_id in cls.created_images:"},{"line_number":39,"context_line":"            try:"},{"line_number":40,"context_line":"                cls.client.delete_image(image_id)"},{"line_number":41,"context_line":"            except Exception:"},{"line_number":42,"context_line":"                pass"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        for image_id in cls.created_images:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2FxqY%3D","line":41,"in_reply_to":"AAAAN3%2F%2Fxsk%3D","updated":"2013-03-12 21:44:28.000000000","message":"Fair enough, I think this actually warrants a respin of this patch. (I probably wouldn\u0027t let this merge with this as is if I were reviewing this patch)\n\nFor the record I just based this off the tearDownClass clear_servers() method in tempest.tests.compute.base. So we might want to fix it there too.","commit_id":"bfe9dd27ac35b59bf7afdb6ad2b726cafc1789d2"}],"tempest/tests/image/v1/test_images.py":[{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"51992d57d0746153a0a3bc65defca85475fef75d","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        self.assertTrue(body.get(\u0027is_public\u0027))"},{"line_number":56,"context_line":"        self.assertTrue(\u0027status\u0027 in body)"},{"line_number":57,"context_line":"        self.assertEqual(\u0027queued\u0027, body.get(\u0027status\u0027))"},{"line_number":58,"context_line":"        print body"},{"line_number":59,"context_line":"        self.assertTrue(\u0027properties\u0027 in body)"},{"line_number":60,"context_line":"        for key, val in properties.items():"},{"line_number":61,"context_line":"            self.assertEqual(val, body.get(\u0027properties\u0027)[key])"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAN3%2F%2FyIc%3D","line":58,"updated":"2013-03-12 18:00:01.000000000","message":"Need to remove.","commit_id":"efccf3722ed2c46ad7e1f2a2902904dc7aa5c19a"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"0216c59f973bfe28fb049dfcfb6ef0c3fee0ffbe","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        self.assertTrue(body.get(\u0027is_public\u0027))"},{"line_number":56,"context_line":"        self.assertTrue(\u0027status\u0027 in body)"},{"line_number":57,"context_line":"        self.assertEqual(\u0027queued\u0027, body.get(\u0027status\u0027))"},{"line_number":58,"context_line":"        print body"},{"line_number":59,"context_line":"        self.assertTrue(\u0027properties\u0027 in body)"},{"line_number":60,"context_line":"        for key, val in properties.items():"},{"line_number":61,"context_line":"            self.assertEqual(val, body.get(\u0027properties\u0027)[key])"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAN3%2F%2FyGo%3D","line":58,"in_reply_to":"AAAAN3%2F%2FyIc%3D","updated":"2013-03-12 18:16:10.000000000","message":"Oops, done.","commit_id":"efccf3722ed2c46ad7e1f2a2902904dc7aa5c19a"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"aa0fa3169a58c2a7c580d884ebd0e0a3af706a2a","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                                       disk_format\u003d\u0027raw\u0027,"},{"line_number":47,"context_line":"                                       is_public\u003dTrue,"},{"line_number":48,"context_line":"                                       properties\u003dproperties)"},{"line_number":49,"context_line":"        self.assertTrue(\u0027id\u0027 in body)"},{"line_number":50,"context_line":"        image_id \u003d body.get(\u0027id\u0027)"},{"line_number":51,"context_line":"        self.created_images.append(image_id)"},{"line_number":52,"context_line":"        self.assertTrue(\u0027name\u0027 in body)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2FxsI%3D","line":49,"updated":"2013-03-12 21:28:38.000000000","message":"as a follow up, can you get rid of the assertTrue assertions?","commit_id":"bfe9dd27ac35b59bf7afdb6ad2b726cafc1789d2"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"ce6fa8159766d90cb08dfe266518f09e53f8f610","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                                       disk_format\u003d\u0027raw\u0027,"},{"line_number":47,"context_line":"                                       is_public\u003dTrue,"},{"line_number":48,"context_line":"                                       properties\u003dproperties)"},{"line_number":49,"context_line":"        self.assertTrue(\u0027id\u0027 in body)"},{"line_number":50,"context_line":"        image_id \u003d body.get(\u0027id\u0027)"},{"line_number":51,"context_line":"        self.created_images.append(image_id)"},{"line_number":52,"context_line":"        self.assertTrue(\u0027name\u0027 in body)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2Fxqk%3D","line":49,"in_reply_to":"AAAAN3%2F%2FxsI%3D","updated":"2013-03-12 21:44:28.000000000","message":"Yeah, I\u0027ll put a patch on the top of the series shortly that will clean up these asserts.","commit_id":"bfe9dd27ac35b59bf7afdb6ad2b726cafc1789d2"}]}
