)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"528a907165100bf91a5fdaa2885c32bd0c12c352","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- add REST API layer for async worker(tasks) to"},{"line_number":10,"context_line":"support tasks operations."},{"line_number":11,"context_line":"- update to include sparse task for tasks.index"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Co-authored-by: Fei Long Wang \u003cflwang@cn.ibm.com\u003e"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAATn%2F9fDY%3D","line":11,"updated":"2013-12-11 01:04:50.000000000","message":"please include any other changes that might be going in like important method signatures, tests and relevant domain changes.","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"2dad830cd5b5e126334e60d79e49956033e979f8","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- add REST API layer for async worker(tasks) to"},{"line_number":10,"context_line":"support tasks operations."},{"line_number":11,"context_line":"- update to include sparse task for tasks.index"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Co-authored-by: Fei Long Wang \u003cflwang@cn.ibm.com\u003e"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAATn%2F9PJ8%3D","line":11,"in_reply_to":"AAAATn%2F9fDY%3D","updated":"2013-12-13 17:02:09.000000000","message":"included more info as mentioned by you. Thanks nikhil.","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"}],"glance/api/v2/tasks.py":[{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"9f48d9b8f8b8412d8d25ae2f19d9a147bc1a85c2","unresolved":false,"context_lines":[{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2013 OpenStack, LLC"},{"line_number":4,"context_line":"# All Rights Reserved."},{"line_number":5,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":8,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9tn8%3D","line":5,"updated":"2013-12-06 20:59:28.000000000","message":"Copyright order misplaces. Should be at line 3 and not sure if both of them would be acceptable.","commit_id":"02d6e11cee2293e073e183c394bc21ddd9e496dd"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"9f48d9b8f8b8412d8d25ae2f19d9a147bc1a85c2","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        except (exception.NotFound, exception.InvalidSortKey,"},{"line_number":86,"context_line":"                exception.InvalidFilterRangeValue) as e:"},{"line_number":87,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dunicode(e))"},{"line_number":88,"context_line":"        except exception.Forbidden as e:"},{"line_number":89,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003dunicode(e))"},{"line_number":90,"context_line":"        result[\u0027tasks\u0027] \u003d tasks"},{"line_number":91,"context_line":"        return result"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9thg%3D","line":88,"updated":"2013-12-06 20:59:28.000000000","message":"I wonder if Forbidden should be caught first?","commit_id":"02d6e11cee2293e073e183c394bc21ddd9e496dd"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"9f48d9b8f8b8412d8d25ae2f19d9a147bc1a85c2","unresolved":false,"context_lines":[{"line_number":96,"context_line":"            task \u003d task_repo.get(task_id)"},{"line_number":97,"context_line":"        except exception.NotFound as e:"},{"line_number":98,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dunicode(e))"},{"line_number":99,"context_line":"        except exception.Forbidden as e:"},{"line_number":100,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003dunicode(e))"},{"line_number":101,"context_line":"        return task"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9thU%3D","line":99,"updated":"2013-12-06 20:59:28.000000000","message":"ditto","commit_id":"02d6e11cee2293e073e183c394bc21ddd9e496dd"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"9f48d9b8f8b8412d8d25ae2f19d9a147bc1a85c2","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        type \u003d filters.get(\u0027type\u0027, None)"},{"line_number":129,"context_line":"        if type:"},{"line_number":130,"context_line":"            if type not in [\u0027import\u0027]:"},{"line_number":131,"context_line":"                msg \u003d _(\u0027Invalid type value: %s\u0027) % type"},{"line_number":132,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9tgM%3D","line":130,"updated":"2013-12-06 20:59:28.000000000","message":"type validation would be done using the CONF at the domain layer currently, until the fix for dependency injections goes in.","commit_id":"02d6e11cee2293e073e183c394bc21ddd9e496dd"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"ee01597764c230f7df2168dd765900416d131408","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        output \u003d super(RequestDeserializer, self).default(request)"},{"line_number":109,"context_line":"        if \u0027body\u0027 not in output:"},{"line_number":110,"context_line":"            msg \u003d _(\u0027Body expected in request.\u0027)"},{"line_number":111,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":112,"context_line":"        return output[\u0027body\u0027]"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def _validate_sort_dir(self, sort_dir):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9tdE%3D","line":111,"updated":"2013-12-06 22:06:05.000000000","message":"unicode conversion missing","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"0a9e003a8fff60e6f734b222ca2076fdf26bafa7","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        output \u003d super(RequestDeserializer, self).default(request)"},{"line_number":109,"context_line":"        if \u0027body\u0027 not in output:"},{"line_number":110,"context_line":"            msg \u003d _(\u0027Body expected in request.\u0027)"},{"line_number":111,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":112,"context_line":"        return output[\u0027body\u0027]"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def _validate_sort_dir(self, sort_dir):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9p3E%3D","line":111,"in_reply_to":"AAAATn%2F9tdE%3D","updated":"2013-12-09 16:46:40.000000000","message":"I think, the _(msg) is already returning the unicoded value. Hence we might not have to do it again. I could see the following in the source code:\n\n#glance.openstack.common.gettextutils\n\ndef _(msg):\n    return _t.ugettext(msg)\n\n#_t (translation)\ndef ugettext(self, message):\n    if self._fallback:\n        return self._fallback.ugettext(message)\n    return unicode(message)","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"ee01597764c230f7df2168dd765900416d131408","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    def _validate_sort_dir(self, sort_dir):"},{"line_number":115,"context_line":"        if sort_dir not in [\u0027asc\u0027, \u0027desc\u0027]:"},{"line_number":116,"context_line":"            msg \u003d _(\u0027Invalid sort direction: %s\u0027) % sort_dir"},{"line_number":117,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        return sort_dir"},{"line_number":120,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9tdA%3D","line":117,"updated":"2013-12-06 22:06:05.000000000","message":"unicode conversion missing","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"0a9e003a8fff60e6f734b222ca2076fdf26bafa7","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    def _validate_sort_dir(self, sort_dir):"},{"line_number":115,"context_line":"        if sort_dir not in [\u0027asc\u0027, \u0027desc\u0027]:"},{"line_number":116,"context_line":"            msg \u003d _(\u0027Invalid sort direction: %s\u0027) % sort_dir"},{"line_number":117,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        return sort_dir"},{"line_number":120,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9p2s%3D","line":117,"in_reply_to":"AAAATn%2F9tdA%3D","updated":"2013-12-09 16:46:40.000000000","message":"replied at https://review.openstack.org/#/c/59814/3/glance/api/v2/tasks.py #111","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"ee01597764c230f7df2168dd765900416d131408","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        type \u003d filters.get(\u0027type\u0027, None)"},{"line_number":129,"context_line":"        if type:"},{"line_number":130,"context_line":"            if type not in [\u0027import\u0027]:"},{"line_number":131,"context_line":"                msg \u003d _(\u0027Invalid type value: %s\u0027) % type"},{"line_number":132,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9tc8%3D","line":130,"updated":"2013-12-06 22:06:05.000000000","message":"Feel like we should use the config value for the type of tasks allowed","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"0a9e003a8fff60e6f734b222ca2076fdf26bafa7","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        type \u003d filters.get(\u0027type\u0027, None)"},{"line_number":129,"context_line":"        if type:"},{"line_number":130,"context_line":"            if type not in [\u0027import\u0027]:"},{"line_number":131,"context_line":"                msg \u003d _(\u0027Invalid type value: %s\u0027) % type"},{"line_number":132,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9nbw%3D","line":130,"in_reply_to":"AAAATn%2F9tc8%3D","updated":"2013-12-09 16:46:40.000000000","message":"as we discussed, will wait for even executor patch to come in to make the changes if required.","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"ee01597764c230f7df2168dd765900416d131408","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            limit \u003d int(limit)"},{"line_number":139,"context_line":"        except ValueError:"},{"line_number":140,"context_line":"            msg \u003d _(\"limit param must be an integer\")"},{"line_number":141,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        if limit \u003c 0:"},{"line_number":144,"context_line":"            msg \u003d _(\"limit param must be positive\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9tRc%3D","line":141,"updated":"2013-12-06 22:06:05.000000000","message":"unicode conversion missing","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"0a9e003a8fff60e6f734b222ca2076fdf26bafa7","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            limit \u003d int(limit)"},{"line_number":139,"context_line":"        except ValueError:"},{"line_number":140,"context_line":"            msg \u003d _(\"limit param must be an integer\")"},{"line_number":141,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        if limit \u003c 0:"},{"line_number":144,"context_line":"            msg \u003d _(\"limit param must be positive\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9p2o%3D","line":141,"in_reply_to":"AAAATn%2F9tRc%3D","updated":"2013-12-09 16:46:40.000000000","message":"replied at https://review.openstack.org/#/c/59814/3/glance/api/v2/tasks.py #111","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"ee01597764c230f7df2168dd765900416d131408","unresolved":false,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        if limit \u003c 0:"},{"line_number":144,"context_line":"            msg \u003d _(\"limit param must be positive\")"},{"line_number":145,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        return limit"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9tRY%3D","line":145,"updated":"2013-12-06 22:06:05.000000000","message":"unicode conversion missing","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"0a9e003a8fff60e6f734b222ca2076fdf26bafa7","unresolved":false,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        if limit \u003c 0:"},{"line_number":144,"context_line":"            msg \u003d _(\"limit param must be positive\")"},{"line_number":145,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        return limit"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9p2k%3D","line":145,"in_reply_to":"AAAATn%2F9tRY%3D","updated":"2013-12-09 16:46:40.000000000","message":"replied at https://review.openstack.org/#/c/59814/3/glance/api/v2/tasks.py #111","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"ee01597764c230f7df2168dd765900416d131408","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                        \u0027image_properties\u0027]:"},{"line_number":161,"context_line":"                if key not in body[\u0027input\u0027]:"},{"line_number":162,"context_line":"                    msg \u003d _(\"Input does not contain \u0027%(key)s\u0027 field\""},{"line_number":163,"context_line":"                            % {\"key\": key})"},{"line_number":164,"context_line":"                    raise webob.exc.HTTPBadRequest(explanation\u003dunicode(msg))"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    def __init__(self, schema\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9tck%3D","line":163,"updated":"2013-12-06 22:06:05.000000000","message":"formatting error\n_(\"Input does not contain \u0027%(key)s\u0027 field\") % {\"key\": key}","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"0a9e003a8fff60e6f734b222ca2076fdf26bafa7","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                        \u0027image_properties\u0027]:"},{"line_number":161,"context_line":"                if key not in body[\u0027input\u0027]:"},{"line_number":162,"context_line":"                    msg \u003d _(\"Input does not contain \u0027%(key)s\u0027 field\""},{"line_number":163,"context_line":"                            % {\"key\": key})"},{"line_number":164,"context_line":"                    raise webob.exc.HTTPBadRequest(explanation\u003dunicode(msg))"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    def __init__(self, schema\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9p0g%3D","line":163,"in_reply_to":"AAAATn%2F9tck%3D","updated":"2013-12-09 16:46:40.000000000","message":"fixed","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"ee01597764c230f7df2168dd765900416d131408","unresolved":false,"context_lines":[{"line_number":176,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dunicode(e))"},{"line_number":177,"context_line":"        task \u003d {}"},{"line_number":178,"context_line":"        properties \u003d body"},{"line_number":179,"context_line":"        for key in self._base_properties:"},{"line_number":180,"context_line":"            try:"},{"line_number":181,"context_line":"                task[key] \u003d properties.pop(key)"},{"line_number":182,"context_line":"            except KeyError:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9tUo%3D","line":179,"updated":"2013-12-06 22:06:05.000000000","message":"Should we call the type, input, owner as base_properties? I wonder if tasks do not inherit that terminology from images.","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"0a9e003a8fff60e6f734b222ca2076fdf26bafa7","unresolved":false,"context_lines":[{"line_number":176,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dunicode(e))"},{"line_number":177,"context_line":"        task \u003d {}"},{"line_number":178,"context_line":"        properties \u003d body"},{"line_number":179,"context_line":"        for key in self._base_properties:"},{"line_number":180,"context_line":"            try:"},{"line_number":181,"context_line":"                task[key] \u003d properties.pop(key)"},{"line_number":182,"context_line":"            except KeyError:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9ncI%3D","line":179,"in_reply_to":"AAAATn%2F9tUo%3D","updated":"2013-12-09 16:46:40.000000000","message":"changed to _required_properties","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"ee01597764c230f7df2168dd765900416d131408","unresolved":false,"context_lines":[{"line_number":223,"context_line":"        task_view \u003d self.schema.filter(task_view)  # domain"},{"line_number":224,"context_line":"        return task_view"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    def _get_task_href(self, task, subcollection\u003d\u0027\u0027):"},{"line_number":227,"context_line":"        base_href \u003d \u0027/v2/tasks/%s\u0027 % task.task_id"},{"line_number":228,"context_line":"        if subcollection:"},{"line_number":229,"context_line":"            base_href \u003d \u0027%s/%s\u0027 % (base_href, subcollection)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9tNc%3D","line":226,"updated":"2013-12-06 22:06:05.000000000","message":"subcollection is not needed I presume","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"0a9e003a8fff60e6f734b222ca2076fdf26bafa7","unresolved":false,"context_lines":[{"line_number":223,"context_line":"        task_view \u003d self.schema.filter(task_view)  # domain"},{"line_number":224,"context_line":"        return task_view"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    def _get_task_href(self, task, subcollection\u003d\u0027\u0027):"},{"line_number":227,"context_line":"        base_href \u003d \u0027/v2/tasks/%s\u0027 % task.task_id"},{"line_number":228,"context_line":"        if subcollection:"},{"line_number":229,"context_line":"            base_href \u003d \u0027%s/%s\u0027 % (base_href, subcollection)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9ncU%3D","line":226,"in_reply_to":"AAAATn%2F9tNc%3D","updated":"2013-12-09 16:46:40.000000000","message":"removed it. Thanks Nikhil.","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"0a9e003a8fff60e6f734b222ca2076fdf26bafa7","unresolved":false,"context_lines":[{"line_number":223,"context_line":"        task_view \u003d self.schema.filter(task_view)  # domain"},{"line_number":224,"context_line":"        return task_view"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    def _get_task_href(self, task, subcollection\u003d\u0027\u0027):"},{"line_number":227,"context_line":"        base_href \u003d \u0027/v2/tasks/%s\u0027 % task.task_id"},{"line_number":228,"context_line":"        if subcollection:"},{"line_number":229,"context_line":"            base_href \u003d \u0027%s/%s\u0027 % (base_href, subcollection)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9ouo%3D","line":226,"in_reply_to":"AAAATn%2F9tNc%3D","updated":"2013-12-09 16:46:40.000000000","message":"you are right nikhil. removed subcollection.","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"ee01597764c230f7df2168dd765900416d131408","unresolved":false,"context_lines":[{"line_number":235,"context_line":""},{"line_number":236,"context_line":"    def get(self, response, task):"},{"line_number":237,"context_line":"        task_view \u003d self._format_task(task)"},{"line_number":238,"context_line":"        body \u003d json.dumps(task_view, ensure_ascii\u003dFalse)"},{"line_number":239,"context_line":"        response.unicode_body \u003d unicode(body)"},{"line_number":240,"context_line":"        response.content_type \u003d \u0027application/json\u0027"},{"line_number":241,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9tNI%3D","line":238,"updated":"2013-12-06 22:06:05.000000000","message":"we should use openstack.common.jsonutils","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"0a9e003a8fff60e6f734b222ca2076fdf26bafa7","unresolved":false,"context_lines":[{"line_number":235,"context_line":""},{"line_number":236,"context_line":"    def get(self, response, task):"},{"line_number":237,"context_line":"        task_view \u003d self._format_task(task)"},{"line_number":238,"context_line":"        body \u003d json.dumps(task_view, ensure_ascii\u003dFalse)"},{"line_number":239,"context_line":"        response.unicode_body \u003d unicode(body)"},{"line_number":240,"context_line":"        response.content_type \u003d \u0027application/json\u0027"},{"line_number":241,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9pkI%3D","line":238,"in_reply_to":"AAAATn%2F9tNI%3D","updated":"2013-12-09 16:46:40.000000000","message":"done.","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"ee01597764c230f7df2168dd765900416d131408","unresolved":false,"context_lines":[{"line_number":243,"context_line":"        params \u003d dict(response.request.params)"},{"line_number":244,"context_line":"        params.pop(\u0027marker\u0027, None)"},{"line_number":245,"context_line":"        query \u003d urllib.urlencode(params)"},{"line_number":246,"context_line":"        hide_attributes \u003d [\u0027input\u0027, \u0027result\u0027, \u0027message\u0027]"},{"line_number":247,"context_line":"        body \u003d {"},{"line_number":248,"context_line":"            \u0027tasks\u0027: [self._format_task(i, hide_attributes\u003dhide_attributes)"},{"line_number":249,"context_line":"                      for i in result[\u0027tasks\u0027]],"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9tUc%3D","line":246,"updated":"2013-12-06 22:06:05.000000000","message":"may be we should have a note saying that this is a temporary workaround until the PartialTask/Sparse task implementation goes in?","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"0a9e003a8fff60e6f734b222ca2076fdf26bafa7","unresolved":false,"context_lines":[{"line_number":243,"context_line":"        params \u003d dict(response.request.params)"},{"line_number":244,"context_line":"        params.pop(\u0027marker\u0027, None)"},{"line_number":245,"context_line":"        query \u003d urllib.urlencode(params)"},{"line_number":246,"context_line":"        hide_attributes \u003d [\u0027input\u0027, \u0027result\u0027, \u0027message\u0027]"},{"line_number":247,"context_line":"        body \u003d {"},{"line_number":248,"context_line":"            \u0027tasks\u0027: [self._format_task(i, hide_attributes\u003dhide_attributes)"},{"line_number":249,"context_line":"                      for i in result[\u0027tasks\u0027]],"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9ncc%3D","line":246,"in_reply_to":"AAAATn%2F9tUc%3D","updated":"2013-12-09 16:46:40.000000000","message":"added a note nikhil.","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"0a9e003a8fff60e6f734b222ca2076fdf26bafa7","unresolved":false,"context_lines":[{"line_number":243,"context_line":"        params \u003d dict(response.request.params)"},{"line_number":244,"context_line":"        params.pop(\u0027marker\u0027, None)"},{"line_number":245,"context_line":"        query \u003d urllib.urlencode(params)"},{"line_number":246,"context_line":"        hide_attributes \u003d [\u0027input\u0027, \u0027result\u0027, \u0027message\u0027]"},{"line_number":247,"context_line":"        body \u003d {"},{"line_number":248,"context_line":"            \u0027tasks\u0027: [self._format_task(i, hide_attributes\u003dhide_attributes)"},{"line_number":249,"context_line":"                      for i in result[\u0027tasks\u0027]],"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9orQ%3D","line":246,"in_reply_to":"AAAATn%2F9tUc%3D","updated":"2013-12-09 16:46:40.000000000","message":"done.","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"ee01597764c230f7df2168dd765900416d131408","unresolved":false,"context_lines":[{"line_number":271,"context_line":"        \"description\": _(\"The type of task represented by this content\"),"},{"line_number":272,"context_line":"        \"enum\": ["},{"line_number":273,"context_line":"            \"import\","},{"line_number":274,"context_line":"            \"export\","},{"line_number":275,"context_line":"            \"clone\""},{"line_number":276,"context_line":"        ],"},{"line_number":277,"context_line":"        \"type\": \"string\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9tTc%3D","line":274,"updated":"2013-12-06 22:06:05.000000000","message":"let\u0027s just keep import for now, no?","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"0a9e003a8fff60e6f734b222ca2076fdf26bafa7","unresolved":false,"context_lines":[{"line_number":271,"context_line":"        \"description\": _(\"The type of task represented by this content\"),"},{"line_number":272,"context_line":"        \"enum\": ["},{"line_number":273,"context_line":"            \"import\","},{"line_number":274,"context_line":"            \"export\","},{"line_number":275,"context_line":"            \"clone\""},{"line_number":276,"context_line":"        ],"},{"line_number":277,"context_line":"        \"type\": \"string\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9pjs%3D","line":274,"in_reply_to":"AAAATn%2F9tTc%3D","updated":"2013-12-09 16:46:40.000000000","message":"yes, you are right nikhil. removing export \u0026 clone.","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"ee01597764c230f7df2168dd765900416d131408","unresolved":false,"context_lines":[{"line_number":299,"context_line":"        \"type\": \"string\""},{"line_number":300,"context_line":"    },"},{"line_number":301,"context_line":"    \"message\": {"},{"line_number":302,"context_line":"        \"description\": _(\"Human-readable informative message only included \\"},{"line_number":303,"context_line":"when appropriate (usually on failure)\"),"},{"line_number":304,"context_line":"        \"type\": \"string\","},{"line_number":305,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9tTM%3D","line":302,"updated":"2013-12-06 22:06:05.000000000","message":"is the backslash necessary?","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"0a9e003a8fff60e6f734b222ca2076fdf26bafa7","unresolved":false,"context_lines":[{"line_number":299,"context_line":"        \"type\": \"string\""},{"line_number":300,"context_line":"    },"},{"line_number":301,"context_line":"    \"message\": {"},{"line_number":302,"context_line":"        \"description\": _(\"Human-readable informative message only included \\"},{"line_number":303,"context_line":"when appropriate (usually on failure)\"),"},{"line_number":304,"context_line":"        \"type\": \"string\","},{"line_number":305,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9pjM%3D","line":302,"in_reply_to":"AAAATn%2F9tTM%3D","updated":"2013-12-09 16:46:40.000000000","message":"yes this is necessary as single line exceeds 80 col width.","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"6e7cf5fd42f3f2646bfc3f7b33e11911b3e1366b","unresolved":false,"context_lines":[{"line_number":317,"context_line":"    return schema"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"def get_collection_schema():"},{"line_number":321,"context_line":"    task_schema \u003d get_schema()"},{"line_number":322,"context_line":"    return glance.schema.CollectionSchema(\u0027tasks\u0027, task_schema)"},{"line_number":323,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9m3g%3D","line":320,"updated":"2013-12-09 18:12:10.000000000","message":"This should probably have the Text entries removed since we want to return only partial tasks in collections.","commit_id":"562afa896da169d65f0c59c88a4581fadbfe4d9a"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"ff72277edcaac3ce1d08736651818d850d991114","unresolved":false,"context_lines":[{"line_number":317,"context_line":"    return schema"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"def get_collection_schema():"},{"line_number":321,"context_line":"    task_schema \u003d get_schema()"},{"line_number":322,"context_line":"    return glance.schema.CollectionSchema(\u0027tasks\u0027, task_schema)"},{"line_number":323,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9jX0%3D","line":320,"in_reply_to":"AAAATn%2F9m3g%3D","updated":"2013-12-10 16:40:41.000000000","message":"Thanks Mark. Made respective changes to remove the text entries.","commit_id":"562afa896da169d65f0c59c88a4581fadbfe4d9a"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"528a907165100bf91a5fdaa2885c32bd0c12c352","unresolved":false,"context_lines":[{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2013 OpenStack, LLC"},{"line_number":4,"context_line":"# All Rights Reserved."},{"line_number":5,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":8,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9fI0%3D","line":5,"updated":"2013-12-11 01:04:50.000000000","message":"copyright duplicate or misplaced\n\n(should be at line 3 and may be remove the openstack one)","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"d3b186620ac643a629b1496a222e141eb0379221","unresolved":false,"context_lines":[{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2013 OpenStack, LLC"},{"line_number":4,"context_line":"# All Rights Reserved."},{"line_number":5,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":8,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9eG8%3D","line":5,"in_reply_to":"AAAATn%2F9fI0%3D","updated":"2013-12-11 16:27:21.000000000","message":"done thanks.","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"386a9385dab669e9b11a9dc72c58584c7207131b","unresolved":false,"context_lines":[{"line_number":17,"context_line":"# under the License."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"import copy"},{"line_number":20,"context_line":"from glance.openstack.common.gettextutils import _"},{"line_number":21,"context_line":"import webob.exc"},{"line_number":22,"context_line":"import urllib"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9e%2BU%3D","line":20,"updated":"2013-12-11 01:45:44.000000000","message":"not necessary. The project adds it to the __builtin__.","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"d3b186620ac643a629b1496a222e141eb0379221","unresolved":false,"context_lines":[{"line_number":17,"context_line":"# under the License."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"import copy"},{"line_number":20,"context_line":"from glance.openstack.common.gettextutils import _"},{"line_number":21,"context_line":"import webob.exc"},{"line_number":22,"context_line":"import urllib"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9eIw%3D","line":20,"in_reply_to":"AAAATn%2F9e%2BU%3D","updated":"2013-12-11 16:27:21.000000000","message":"sorry, i was trying to fix pycharm error message on _() method and forgot to remove it while submitting the patch set. removed it now.","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"386a9385dab669e9b11a9dc72c58584c7207131b","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        self.gateway \u003d glance.gateway.Gateway(self.db_api, self.store_api,"},{"line_number":52,"context_line":"                                              self.notifier, self.policy)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @utils.mutating"},{"line_number":55,"context_line":"    def create(self, req, task):"},{"line_number":56,"context_line":"        task_factory \u003d self.gateway.get_task_factory(req.context)"},{"line_number":57,"context_line":"        task_repo \u003d self.gateway.get_task_repo(req.context)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9e9k%3D","line":54,"updated":"2013-12-11 01:45:44.000000000","message":"I don\u0027t think that tasks POST call would have a mutating request body (unlike images). So, may be remove it?","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"2dad830cd5b5e126334e60d79e49956033e979f8","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        self.gateway \u003d glance.gateway.Gateway(self.db_api, self.store_api,"},{"line_number":52,"context_line":"                                              self.notifier, self.policy)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @utils.mutating"},{"line_number":55,"context_line":"    def create(self, req, task):"},{"line_number":56,"context_line":"        task_factory \u003d self.gateway.get_task_factory(req.context)"},{"line_number":57,"context_line":"        task_repo \u003d self.gateway.get_task_repo(req.context)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9Ptc%3D","line":54,"in_reply_to":"AAAATn%2F9e9k%3D","updated":"2013-12-13 17:02:09.000000000","message":"you are right. i removed it nikhil. thanks.","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"386a9385dab669e9b11a9dc72c58584c7207131b","unresolved":false,"context_lines":[{"line_number":104,"context_line":"    def _get_request_body(self, request):"},{"line_number":105,"context_line":"        output \u003d super(RequestDeserializer, self).default(request)"},{"line_number":106,"context_line":"        if \u0027body\u0027 not in output:"},{"line_number":107,"context_line":"            msg \u003d _(\u0027Body expected in request.\u0027)"},{"line_number":108,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":109,"context_line":"        return output[\u0027body\u0027]"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9e%2Bg%3D","line":107,"updated":"2013-12-11 01:45:44.000000000","message":"Period not necessary","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"d3b186620ac643a629b1496a222e141eb0379221","unresolved":false,"context_lines":[{"line_number":104,"context_line":"    def _get_request_body(self, request):"},{"line_number":105,"context_line":"        output \u003d super(RequestDeserializer, self).default(request)"},{"line_number":106,"context_line":"        if \u0027body\u0027 not in output:"},{"line_number":107,"context_line":"            msg \u003d _(\u0027Body expected in request.\u0027)"},{"line_number":108,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":109,"context_line":"        return output[\u0027body\u0027]"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9eIk%3D","line":107,"in_reply_to":"AAAATn%2F9e%2Bg%3D","updated":"2013-12-11 16:27:21.000000000","message":"removed period.","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"9950b46fc232986b697100c8f23e7c010c53ee5d","unresolved":false,"context_lines":[{"line_number":150,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dunicode(msg))"},{"line_number":151,"context_line":"        if \u0027input\u0027 not in body:"},{"line_number":152,"context_line":"            msg \u003d _(\"Task input is required\")"},{"line_number":153,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dunicode(msg))"},{"line_number":154,"context_line":"        task_type \u003d body[\u0027type\u0027]"},{"line_number":155,"context_line":"        if task_type \u003d\u003d \u0027import\u0027:"},{"line_number":156,"context_line":"            for key in [\u0027import_from\u0027, \u0027import_from_format\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9hS4%3D","line":153,"updated":"2013-12-10 16:46:31.000000000","message":"can checking for required field \u0027owner\u0027 too be done here? Currently its done at authorization.py\u0027s TaskFactoryProxy.new_task()","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"d3b186620ac643a629b1496a222e141eb0379221","unresolved":false,"context_lines":[{"line_number":150,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dunicode(msg))"},{"line_number":151,"context_line":"        if \u0027input\u0027 not in body:"},{"line_number":152,"context_line":"            msg \u003d _(\"Task input is required\")"},{"line_number":153,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dunicode(msg))"},{"line_number":154,"context_line":"        task_type \u003d body[\u0027type\u0027]"},{"line_number":155,"context_line":"        if task_type \u003d\u003d \u0027import\u0027:"},{"line_number":156,"context_line":"            for key in [\u0027import_from\u0027, \u0027import_from_format\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9eIg%3D","line":153,"in_reply_to":"AAAATn%2F9fJY%3D","updated":"2013-12-11 16:27:21.000000000","message":"thanks Nikhil.","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"fbde8ecd5f20d73c8acc78e87594df2c58b8aa7d","unresolved":false,"context_lines":[{"line_number":150,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dunicode(msg))"},{"line_number":151,"context_line":"        if \u0027input\u0027 not in body:"},{"line_number":152,"context_line":"            msg \u003d _(\"Task input is required\")"},{"line_number":153,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dunicode(msg))"},{"line_number":154,"context_line":"        task_type \u003d body[\u0027type\u0027]"},{"line_number":155,"context_line":"        if task_type \u003d\u003d \u0027import\u0027:"},{"line_number":156,"context_line":"            for key in [\u0027import_from\u0027, \u0027import_from_format\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9fJY%3D","line":153,"in_reply_to":"AAAATn%2F9hS4%3D","updated":"2013-12-11 00:39:12.000000000","message":"Yeah, I think we should leave it to authorization layer. This looks okay,","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"386a9385dab669e9b11a9dc72c58584c7207131b","unresolved":false,"context_lines":[{"line_number":177,"context_line":"                task[key] \u003d properties.pop(key)"},{"line_number":178,"context_line":"            except KeyError:"},{"line_number":179,"context_line":"                pass"},{"line_number":180,"context_line":"        return dict(task\u003dtask)"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    def index(self, request):"},{"line_number":183,"context_line":"        params \u003d request.params.copy()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9e9w%3D","line":180,"updated":"2013-12-11 01:45:44.000000000","message":"not sure if we need to return this way.\n\nsimple returning task should suffice, no?","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"d3b186620ac643a629b1496a222e141eb0379221","unresolved":false,"context_lines":[{"line_number":177,"context_line":"                task[key] \u003d properties.pop(key)"},{"line_number":178,"context_line":"            except KeyError:"},{"line_number":179,"context_line":"                pass"},{"line_number":180,"context_line":"        return dict(task\u003dtask)"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    def index(self, request):"},{"line_number":183,"context_line":"        params \u003d request.params.copy()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9eH8%3D","line":180,"updated":"2013-12-11 16:27:21.000000000","message":"seems this is required as it is holding the created task object itself using the key \u0027task\u0027.","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"343218ffa1cf268f1aa1c66e3aab46ef42b34df5","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        }"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        if marker is not None:"},{"line_number":194,"context_line":"            query_params[\u0027marker\u0027] \u003d marker"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        if limit is not None:"},{"line_number":197,"context_line":"            query_params[\u0027limit\u0027] \u003d self._validate_limit(limit)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9e4E%3D","line":194,"updated":"2013-12-11 02:06:25.000000000","message":"where is the is_uuid_like validation done for the marker?","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"2dad830cd5b5e126334e60d79e49956033e979f8","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        }"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        if marker is not None:"},{"line_number":194,"context_line":"            query_params[\u0027marker\u0027] \u003d marker"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        if limit is not None:"},{"line_number":197,"context_line":"            query_params[\u0027limit\u0027] \u003d self._validate_limit(limit)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9PtQ%3D","line":194,"in_reply_to":"AAAATn%2F9e4E%3D","updated":"2013-12-13 17:02:09.000000000","message":"i have included the validation and respective tests as well. thanks nikhil.","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"ce669a1f89bbe863bf4cd92e82f931ff39bd6573","unresolved":false,"context_lines":[{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    def get(self, response, task):"},{"line_number":227,"context_line":"        task_view \u003d self._format_task(task, self.task_schema)"},{"line_number":228,"context_line":"        body \u003d json.dumps(task_view, ensure_ascii\u003dFalse)"},{"line_number":229,"context_line":"        response.unicode_body \u003d unicode(body)"},{"line_number":230,"context_line":"        response.content_type \u003d \u0027application/json\u0027"},{"line_number":231,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9e6k%3D","line":228,"updated":"2013-12-11 01:52:45.000000000","message":"Based on the discussion, I think we may need to remove the ensure_ascii check here (default value is True) as the message entity could have ascii chars in it.","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"386a9385dab669e9b11a9dc72c58584c7207131b","unresolved":false,"context_lines":[{"line_number":245,"context_line":"            params[\u0027marker\u0027] \u003d result[\u0027next_marker\u0027]"},{"line_number":246,"context_line":"            next_query \u003d urllib.urlencode(params)"},{"line_number":247,"context_line":"            body[\u0027next\u0027] \u003d \u0027/v2/tasks?%s\u0027 % next_query"},{"line_number":248,"context_line":"        response.unicode_body \u003d unicode(json.dumps(body, ensure_ascii\u003dFalse))"},{"line_number":249,"context_line":"        response.content_type \u003d \u0027application/json\u0027"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9e8I%3D","line":248,"updated":"2013-12-11 01:45:44.000000000","message":"I\u0027m unsure if ascii\u003dFalse is needed here. What is out likely case for expecting ascii characters in list of tasks, considering they are sparse list of tasks?","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"ce669a1f89bbe863bf4cd92e82f931ff39bd6573","unresolved":false,"context_lines":[{"line_number":245,"context_line":"            params[\u0027marker\u0027] \u003d result[\u0027next_marker\u0027]"},{"line_number":246,"context_line":"            next_query \u003d urllib.urlencode(params)"},{"line_number":247,"context_line":"            body[\u0027next\u0027] \u003d \u0027/v2/tasks?%s\u0027 % next_query"},{"line_number":248,"context_line":"        response.unicode_body \u003d unicode(json.dumps(body, ensure_ascii\u003dFalse))"},{"line_number":249,"context_line":"        response.content_type \u003d \u0027application/json\u0027"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9e68%3D","line":248,"in_reply_to":"AAAATn%2F9e8I%3D","updated":"2013-12-11 01:52:45.000000000","message":"I\u0027m sorry, please ignore this comment.","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"386a9385dab669e9b11a9dc72c58584c7207131b","unresolved":false,"context_lines":[{"line_number":251,"context_line":""},{"line_number":252,"context_line":"_TASK_SCHEMA \u003d {"},{"line_number":253,"context_line":"    \"id\": {"},{"line_number":254,"context_line":"        \"description\": \"An identifier for the task\","},{"line_number":255,"context_line":"        \"pattern\": _(\u0027^([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}\u0027"},{"line_number":256,"context_line":"                     \u0027-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}$\u0027),"},{"line_number":257,"context_line":"        \"type\": \"string\""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9e%2FI%3D","line":254,"updated":"2013-12-11 01:45:44.000000000","message":"missed out the translation","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"d3b186620ac643a629b1496a222e141eb0379221","unresolved":false,"context_lines":[{"line_number":251,"context_line":""},{"line_number":252,"context_line":"_TASK_SCHEMA \u003d {"},{"line_number":253,"context_line":"    \"id\": {"},{"line_number":254,"context_line":"        \"description\": \"An identifier for the task\","},{"line_number":255,"context_line":"        \"pattern\": _(\u0027^([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}\u0027"},{"line_number":256,"context_line":"                     \u0027-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}$\u0027),"},{"line_number":257,"context_line":"        \"type\": \"string\""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9eHg%3D","line":254,"in_reply_to":"AAAATn%2F9e%2FI%3D","updated":"2013-12-11 16:27:21.000000000","message":"thanks. fixed it Nikhil.","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"343218ffa1cf268f1aa1c66e3aab46ef42b34df5","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        \"type\": \"string\","},{"line_number":292,"context_line":"    },"},{"line_number":293,"context_line":"    \"expires_at\": {"},{"line_number":294,"context_line":"        \"description\": _(\"Datetime when this resource is subject to removal\"),"},{"line_number":295,"context_line":"        \"type\": \"string\""},{"line_number":296,"context_line":"    },"},{"line_number":297,"context_line":"    \"created_at\": {"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9e4k%3D","line":294,"updated":"2013-12-11 02:06:25.000000000","message":"s/is/would be/","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"d3b186620ac643a629b1496a222e141eb0379221","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        \"type\": \"string\","},{"line_number":292,"context_line":"    },"},{"line_number":293,"context_line":"    \"expires_at\": {"},{"line_number":294,"context_line":"        \"description\": _(\"Datetime when this resource is subject to removal\"),"},{"line_number":295,"context_line":"        \"type\": \"string\""},{"line_number":296,"context_line":"    },"},{"line_number":297,"context_line":"    \"created_at\": {"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9eHI%3D","line":294,"in_reply_to":"AAAATn%2F9e4k%3D","updated":"2013-12-11 16:27:21.000000000","message":"fixed. thanks.","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"343218ffa1cf268f1aa1c66e3aab46ef42b34df5","unresolved":false,"context_lines":[{"line_number":295,"context_line":"        \"type\": \"string\""},{"line_number":296,"context_line":"    },"},{"line_number":297,"context_line":"    \"created_at\": {"},{"line_number":298,"context_line":"        \"description\": _(\"Datetime when this resource is created\"),"},{"line_number":299,"context_line":"        \"type\": \"string\""},{"line_number":300,"context_line":"    },"},{"line_number":301,"context_line":"    \"updated_at\": {"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9e4s%3D","line":298,"updated":"2013-12-11 02:06:25.000000000","message":"s/is/was","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"d3b186620ac643a629b1496a222e141eb0379221","unresolved":false,"context_lines":[{"line_number":295,"context_line":"        \"type\": \"string\""},{"line_number":296,"context_line":"    },"},{"line_number":297,"context_line":"    \"created_at\": {"},{"line_number":298,"context_line":"        \"description\": _(\"Datetime when this resource is created\"),"},{"line_number":299,"context_line":"        \"type\": \"string\""},{"line_number":300,"context_line":"    },"},{"line_number":301,"context_line":"    \"updated_at\": {"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9eHY%3D","line":298,"in_reply_to":"AAAATn%2F9e4s%3D","updated":"2013-12-11 16:27:21.000000000","message":"fixed. thanks.","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"343218ffa1cf268f1aa1c66e3aab46ef42b34df5","unresolved":false,"context_lines":[{"line_number":299,"context_line":"        \"type\": \"string\""},{"line_number":300,"context_line":"    },"},{"line_number":301,"context_line":"    \"updated_at\": {"},{"line_number":302,"context_line":"        \"description\": _(\"Datetime when this resource is updated\"),"},{"line_number":303,"context_line":"        \"type\": \"string\""},{"line_number":304,"context_line":"    },"},{"line_number":305,"context_line":"    \u0027self\u0027: {\u0027type\u0027: \u0027string\u0027},"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9e4o%3D","line":302,"updated":"2013-12-11 02:06:25.000000000","message":"s/is/was","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"d3b186620ac643a629b1496a222e141eb0379221","unresolved":false,"context_lines":[{"line_number":299,"context_line":"        \"type\": \"string\""},{"line_number":300,"context_line":"    },"},{"line_number":301,"context_line":"    \"updated_at\": {"},{"line_number":302,"context_line":"        \"description\": _(\"Datetime when this resource is updated\"),"},{"line_number":303,"context_line":"        \"type\": \"string\""},{"line_number":304,"context_line":"    },"},{"line_number":305,"context_line":"    \u0027self\u0027: {\u0027type\u0027: \u0027string\u0027},"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9eHU%3D","line":302,"in_reply_to":"AAAATn%2F9e4o%3D","updated":"2013-12-11 16:27:21.000000000","message":"fixed thanks.","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"440aae9c7b0315a76d71c8d754ef956dde7f49d4","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        return limit"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def _validate_create_body(self, body):"},{"line_number":153,"context_line":"        \"\"\"Validate the body of task creating request\"\"\""},{"line_number":154,"context_line":"        if \u0027type\u0027 not in body:"},{"line_number":155,"context_line":"            msg \u003d _(\"Task type is required\")"},{"line_number":156,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dunicode(msg))"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9TQ0%3D","line":153,"updated":"2013-12-12 22:17:01.000000000","message":"Why not just check with self._required_properties?","commit_id":"672b1cbfadea959aeb64c1e235c342885c318bf2"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"9a3e3b22c0edbd588f96dd5688021c6d911e4f3d","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        return limit"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def _validate_create_body(self, body):"},{"line_number":153,"context_line":"        \"\"\"Validate the body of task creating request\"\"\""},{"line_number":154,"context_line":"        if \u0027type\u0027 not in body:"},{"line_number":155,"context_line":"            msg \u003d _(\"Task type is required\")"},{"line_number":156,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dunicode(msg))"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9RuM%3D","line":153,"in_reply_to":"AAAATn%2F9TQ0%3D","updated":"2013-12-13 17:07:55.000000000","message":"done. thanks alex.","commit_id":"672b1cbfadea959aeb64c1e235c342885c318bf2"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"440aae9c7b0315a76d71c8d754ef956dde7f49d4","unresolved":false,"context_lines":[{"line_number":178,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dunicode(e))"},{"line_number":179,"context_line":"        task \u003d {}"},{"line_number":180,"context_line":"        properties \u003d body"},{"line_number":181,"context_line":"        for key in self._required_properties:"},{"line_number":182,"context_line":"            try:"},{"line_number":183,"context_line":"                task[key] \u003d properties.pop(key)"},{"line_number":184,"context_line":"            except KeyError:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9TQk%3D","line":181,"updated":"2013-12-12 22:17:01.000000000","message":"This seems a little odd to me, so does this only return a dict that contains type, input, and owner?","commit_id":"672b1cbfadea959aeb64c1e235c342885c318bf2"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"9a3e3b22c0edbd588f96dd5688021c6d911e4f3d","unresolved":false,"context_lines":[{"line_number":178,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dunicode(e))"},{"line_number":179,"context_line":"        task \u003d {}"},{"line_number":180,"context_line":"        properties \u003d body"},{"line_number":181,"context_line":"        for key in self._required_properties:"},{"line_number":182,"context_line":"            try:"},{"line_number":183,"context_line":"                task[key] \u003d properties.pop(key)"},{"line_number":184,"context_line":"            except KeyError:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9RvI%3D","line":181,"in_reply_to":"AAAATn%2F9TQk%3D","updated":"2013-12-13 17:07:55.000000000","message":"hi alex, type and input are only required to create a task initially. (PS: I removed owner today from list as per the wiki documentation for POST /tasks) @nikhil, is there any other properties that can be passed in or required?\nreference: https://wiki.openstack.org/wiki/Glance-tasks-api#Task_Request_Schema","commit_id":"672b1cbfadea959aeb64c1e235c342885c318bf2"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"440aae9c7b0315a76d71c8d754ef956dde7f49d4","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        \"type\": \"string\""},{"line_number":293,"context_line":"    },"},{"line_number":294,"context_line":"    \"message\": {"},{"line_number":295,"context_line":"        \"description\": _(\"Human-readable informative message only included\""},{"line_number":296,"context_line":"                         \"when appropriate (usually on failure)\"),"},{"line_number":297,"context_line":"        \"type\": \"string\","},{"line_number":298,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9TPM%3D","line":295,"updated":"2013-12-12 22:17:01.000000000","message":"There should be a \u0027 \u0027 at the end of this string so \u0027included\u0027 and \u0027when\u0027 are separated.","commit_id":"672b1cbfadea959aeb64c1e235c342885c318bf2"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"9a3e3b22c0edbd588f96dd5688021c6d911e4f3d","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        \"type\": \"string\""},{"line_number":293,"context_line":"    },"},{"line_number":294,"context_line":"    \"message\": {"},{"line_number":295,"context_line":"        \"description\": _(\"Human-readable informative message only included\""},{"line_number":296,"context_line":"                         \"when appropriate (usually on failure)\"),"},{"line_number":297,"context_line":"        \"type\": \"string\","},{"line_number":298,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9RvU%3D","line":295,"in_reply_to":"AAAATn%2F9TPM%3D","updated":"2013-12-13 17:07:55.000000000","message":"done.","commit_id":"672b1cbfadea959aeb64c1e235c342885c318bf2"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"440aae9c7b0315a76d71c8d754ef956dde7f49d4","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        \"type\": \"string\","},{"line_number":298,"context_line":"    },"},{"line_number":299,"context_line":"    \"expires_at\": {"},{"line_number":300,"context_line":"        \"description\": _(\"Datetime when this resource would be\""},{"line_number":301,"context_line":"                         \"subject to removal\"),"},{"line_number":302,"context_line":"        \"type\": \"string\""},{"line_number":303,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9TPI%3D","line":300,"updated":"2013-12-12 22:17:01.000000000","message":"same as above","commit_id":"672b1cbfadea959aeb64c1e235c342885c318bf2"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"9a3e3b22c0edbd588f96dd5688021c6d911e4f3d","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        \"type\": \"string\","},{"line_number":298,"context_line":"    },"},{"line_number":299,"context_line":"    \"expires_at\": {"},{"line_number":300,"context_line":"        \"description\": _(\"Datetime when this resource would be\""},{"line_number":301,"context_line":"                         \"subject to removal\"),"},{"line_number":302,"context_line":"        \"type\": \"string\""},{"line_number":303,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9RvY%3D","line":300,"in_reply_to":"AAAATn%2F9TPI%3D","updated":"2013-12-13 17:07:55.000000000","message":"done.","commit_id":"672b1cbfadea959aeb64c1e235c342885c318bf2"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"440aae9c7b0315a76d71c8d754ef956dde7f49d4","unresolved":false,"context_lines":[{"line_number":320,"context_line":"    return schema"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"def get_partial_task_schema():"},{"line_number":324,"context_line":"    properties \u003d copy.deepcopy(_TASK_SCHEMA)"},{"line_number":325,"context_line":"    hide_properties \u003d [\u0027input\u0027, \u0027result\u0027, \u0027message\u0027]"},{"line_number":326,"context_line":"    for key in hide_properties:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9TM8%3D","line":323,"updated":"2013-12-12 22:17:01.000000000","message":"I would prefix this with \u0027_\u0027 since it\u0027s only being used in this module","commit_id":"672b1cbfadea959aeb64c1e235c342885c318bf2"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"9a3e3b22c0edbd588f96dd5688021c6d911e4f3d","unresolved":false,"context_lines":[{"line_number":320,"context_line":"    return schema"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"def get_partial_task_schema():"},{"line_number":324,"context_line":"    properties \u003d copy.deepcopy(_TASK_SCHEMA)"},{"line_number":325,"context_line":"    hide_properties \u003d [\u0027input\u0027, \u0027result\u0027, \u0027message\u0027]"},{"line_number":326,"context_line":"    for key in hide_properties:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9Rvo%3D","line":323,"in_reply_to":"AAAATn%2F9TM8%3D","updated":"2013-12-13 17:07:55.000000000","message":"done. thanks alex.","commit_id":"672b1cbfadea959aeb64c1e235c342885c318bf2"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"51571b9fa03bea0754c7b55412bfdf1cb9a4f3b4","unresolved":false,"context_lines":[{"line_number":21,"context_line":"import webob.exc"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from oslo.config import cfg"},{"line_number":24,"context_line":"from oslo.messaging.openstack.common import uuidutils"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"import glance.db"},{"line_number":27,"context_line":"import glance.gateway"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATn%2F9NPU%3D","line":24,"updated":"2013-12-14 03:56:44.000000000","message":"This import caused a lot issues. Multiple Jenkins tests failed.","commit_id":"b91cd42c20ec1c8be78c10047935614e2a6c3684"}],"glance/domain/__init__.py":[{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"ee01597764c230f7df2168dd765900416d131408","unresolved":false,"context_lines":[{"line_number":318,"context_line":"        self.expires_at \u003d timeutils.utcnow() + self._time_to_live"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"class TaskExecutorFactory(object):"},{"line_number":322,"context_line":"    def new_task_executor(self, context, task):"},{"line_number":323,"context_line":"        # FIXME(flwang): This method will be implemented when the executor"},{"line_number":324,"context_line":"        # code is ready."}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9tKc%3D","line":321,"updated":"2013-12-06 22:06:05.000000000","message":"I wonder if the executor logic should just come in a separate patch. That logic can then just be based of master and avoid this gruesome dependency chain?","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"0a9e003a8fff60e6f734b222ca2076fdf26bafa7","unresolved":false,"context_lines":[{"line_number":318,"context_line":"        self.expires_at \u003d timeutils.utcnow() + self._time_to_live"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"class TaskExecutorFactory(object):"},{"line_number":322,"context_line":"    def new_task_executor(self, context, task):"},{"line_number":323,"context_line":"        # FIXME(flwang): This method will be implemented when the executor"},{"line_number":324,"context_line":"        # code is ready."}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9o1s%3D","line":321,"in_reply_to":"AAAATn%2F9tKc%3D","updated":"2013-12-09 16:46:40.000000000","message":"removed it from this patch.","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"ee01597764c230f7df2168dd765900416d131408","unresolved":false,"context_lines":[{"line_number":326,"context_line":""},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"class TaskFactory(object):"},{"line_number":329,"context_line":"    def new_task(self, type\u003dNone, input\u003dNone, owner\u003dNone):"},{"line_number":330,"context_line":"        task_id \u003d uuidutils.generate_uuid()"},{"line_number":331,"context_line":"        status \u003d \u0027pending\u0027"},{"line_number":332,"context_line":"        result \u003d None"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9tJ8%3D","line":329,"updated":"2013-12-06 22:06:05.000000000","message":"if we are going to do the type, input and owner validation in the Deserializer why keep them as kwargs?\n\nAs this is only being passed down from the authorization layer https://review.openstack.org/#/c/59814/3/glance/api/authorization.py , the need for default values is minimal, no?","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"0a9e003a8fff60e6f734b222ca2076fdf26bafa7","unresolved":false,"context_lines":[{"line_number":326,"context_line":""},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"class TaskFactory(object):"},{"line_number":329,"context_line":"    def new_task(self, type\u003dNone, input\u003dNone, owner\u003dNone):"},{"line_number":330,"context_line":"        task_id \u003d uuidutils.generate_uuid()"},{"line_number":331,"context_line":"        status \u003d \u0027pending\u0027"},{"line_number":332,"context_line":"        result \u003d None"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9ncE%3D","line":329,"in_reply_to":"AAAATn%2F9tJ8%3D","updated":"2013-12-09 16:46:40.000000000","message":"as we discussed, will look into this a bit more in detail and make the appropriate changes.","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"6e7cf5fd42f3f2646bfc3f7b33e11911b3e1366b","unresolved":false,"context_lines":[{"line_number":312,"context_line":""},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"class TaskFactory(object):"},{"line_number":315,"context_line":"    def new_task(self, type\u003dNone, input\u003dNone, owner\u003dNone):"},{"line_number":316,"context_line":"        task_id \u003d uuidutils.generate_uuid()"},{"line_number":317,"context_line":"        status \u003d \u0027pending\u0027"},{"line_number":318,"context_line":"        result \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9m8I%3D","line":315,"updated":"2013-12-09 18:12:10.000000000","message":"I\u0027m concerned that it doesn\u0027t make sense to create a new task without the minimal description of type, input, and owner. Should these really be optional arguments?","commit_id":"562afa896da169d65f0c59c88a4581fadbfe4d9a"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"ff72277edcaac3ce1d08736651818d850d991114","unresolved":false,"context_lines":[{"line_number":312,"context_line":""},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"class TaskFactory(object):"},{"line_number":315,"context_line":"    def new_task(self, type\u003dNone, input\u003dNone, owner\u003dNone):"},{"line_number":316,"context_line":"        task_id \u003d uuidutils.generate_uuid()"},{"line_number":317,"context_line":"        status \u003d \u0027pending\u0027"},{"line_number":318,"context_line":"        result \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9ijk%3D","line":315,"in_reply_to":"AAAATn%2F9lTs%3D","updated":"2013-12-10 16:40:41.000000000","message":"Thanks Mark, Nikhil. Made the type, input, owner arguments mandatory.","commit_id":"562afa896da169d65f0c59c88a4581fadbfe4d9a"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"697f24b379171161f6a18610e37df7991c52bb1e","unresolved":false,"context_lines":[{"line_number":312,"context_line":""},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"class TaskFactory(object):"},{"line_number":315,"context_line":"    def new_task(self, type\u003dNone, input\u003dNone, owner\u003dNone):"},{"line_number":316,"context_line":"        task_id \u003d uuidutils.generate_uuid()"},{"line_number":317,"context_line":"        status \u003d \u0027pending\u0027"},{"line_number":318,"context_line":"        result \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9lTs%3D","line":315,"in_reply_to":"AAAATn%2F9m8I%3D","updated":"2013-12-09 23:53:17.000000000","message":"+1\n\nI brought it up in the morning and guess Venkatesh mentioned to fix it late tonight.","commit_id":"562afa896da169d65f0c59c88a4581fadbfe4d9a"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"528a907165100bf91a5fdaa2885c32bd0c12c352","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import collections"},{"line_number":18,"context_line":"import datetime"},{"line_number":19,"context_line":"from glance.openstack.common.gettextutils import _"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from oslo.config import cfg"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9fIM%3D","line":19,"updated":"2013-12-11 01:04:50.000000000","message":"not needed. Please remove it. The project adds it to the __builtin__.","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"d3b186620ac643a629b1496a222e141eb0379221","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import collections"},{"line_number":18,"context_line":"import datetime"},{"line_number":19,"context_line":"from glance.openstack.common.gettextutils import _"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from oslo.config import cfg"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9eGk%3D","line":19,"in_reply_to":"AAAATn%2F9fIM%3D","updated":"2013-12-11 16:27:21.000000000","message":"same answer as in https://review.openstack.org/#/c/59814/5/glance/api/v2/tasks.py line-20. removing it. thanks Nikhil.","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"440aae9c7b0315a76d71c8d754ef956dde7f49d4","unresolved":false,"context_lines":[{"line_number":312,"context_line":""},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"class TaskFactory(object):"},{"line_number":315,"context_line":"    def new_task(self, type, input, owner):"},{"line_number":316,"context_line":"        task_id \u003d uuidutils.generate_uuid()"},{"line_number":317,"context_line":"        status \u003d \u0027pending\u0027"},{"line_number":318,"context_line":"        result \u003d None"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9TN8%3D","line":315,"updated":"2013-12-12 22:17:01.000000000","message":"I think these were prefixed with task_ because type and input are builtin functions. Not a big deal, just better safe than sorry.","commit_id":"672b1cbfadea959aeb64c1e235c342885c318bf2"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"9a3e3b22c0edbd588f96dd5688021c6d911e4f3d","unresolved":false,"context_lines":[{"line_number":312,"context_line":""},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"class TaskFactory(object):"},{"line_number":315,"context_line":"    def new_task(self, type, input, owner):"},{"line_number":316,"context_line":"        task_id \u003d uuidutils.generate_uuid()"},{"line_number":317,"context_line":"        status \u003d \u0027pending\u0027"},{"line_number":318,"context_line":"        result \u003d None"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9Pt4%3D","line":315,"in_reply_to":"AAAATn%2F9TN8%3D","updated":"2013-12-13 17:07:55.000000000","message":"changed it to task_type and task_input. thanks alex.","commit_id":"672b1cbfadea959aeb64c1e235c342885c318bf2"}],"glance/domain/proxy.py":[{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"ee01597764c230f7df2168dd765900416d131408","unresolved":false,"context_lines":[{"line_number":149,"context_line":"    updated_at \u003d _proxy(\u0027base\u0027, \u0027updated_at\u0027)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def run(self, executor):"},{"line_number":152,"context_line":"        self.base.run(executor)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    def begin_processing(self):"},{"line_number":155,"context_line":"        self.base.begin_processing()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9tJs%3D","line":152,"updated":"2013-12-06 22:06:05.000000000","message":"please see my comment in the domain/__init__.py file","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"0a9e003a8fff60e6f734b222ca2076fdf26bafa7","unresolved":false,"context_lines":[{"line_number":149,"context_line":"    updated_at \u003d _proxy(\u0027base\u0027, \u0027updated_at\u0027)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def run(self, executor):"},{"line_number":152,"context_line":"        self.base.run(executor)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    def begin_processing(self):"},{"line_number":155,"context_line":"        self.base.begin_processing()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9nbI%3D","line":152,"in_reply_to":"AAAATn%2F9tJs%3D","updated":"2013-12-09 16:46:40.000000000","message":"just left the signature in domain/__init__.py. For now run() is not called from anywhere until we handle in executor patch.","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"ee01597764c230f7df2168dd765900416d131408","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        self.helper \u003d Helper(proxy_class, proxy_kwargs)"},{"line_number":167,"context_line":"        self.base \u003d base"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    def new_task(self, **kwargs):"},{"line_number":170,"context_line":"        t \u003d self.base.new_task(**kwargs)"},{"line_number":171,"context_line":"        return self.helper.proxy(t)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9tJk%3D","line":169,"updated":"2013-12-06 22:06:05.000000000","message":"So, if we make the arguments mandatory, this would change.","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"0a9e003a8fff60e6f734b222ca2076fdf26bafa7","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        self.helper \u003d Helper(proxy_class, proxy_kwargs)"},{"line_number":167,"context_line":"        self.base \u003d base"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    def new_task(self, **kwargs):"},{"line_number":170,"context_line":"        t \u003d self.base.new_task(**kwargs)"},{"line_number":171,"context_line":"        return self.helper.proxy(t)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9nZ4%3D","line":169,"in_reply_to":"AAAATn%2F9tJk%3D","updated":"2013-12-09 16:46:40.000000000","message":"as we discussed, will look into this a bit more in detail and make the appropriate changes.","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"6e7cf5fd42f3f2646bfc3f7b33e11911b3e1366b","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        self.helper \u003d Helper(proxy_class, proxy_kwargs)"},{"line_number":167,"context_line":"        self.base \u003d base"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    def new_task(self, **kwargs):"},{"line_number":170,"context_line":"        t \u003d self.base.new_task(**kwargs)"},{"line_number":171,"context_line":"        return self.helper.proxy(t)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9m78%3D","line":169,"updated":"2013-12-09 18:12:10.000000000","message":"This is fine though.","commit_id":"562afa896da169d65f0c59c88a4581fadbfe4d9a"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"ff72277edcaac3ce1d08736651818d850d991114","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        self.helper \u003d Helper(proxy_class, proxy_kwargs)"},{"line_number":167,"context_line":"        self.base \u003d base"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    def new_task(self, **kwargs):"},{"line_number":170,"context_line":"        t \u003d self.base.new_task(**kwargs)"},{"line_number":171,"context_line":"        return self.helper.proxy(t)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9ii0%3D","line":169,"in_reply_to":"AAAATn%2F9m78%3D","updated":"2013-12-10 16:40:41.000000000","message":"Thanks Mark. Leaving it as it is.","commit_id":"562afa896da169d65f0c59c88a4581fadbfe4d9a"}],"glance/gateway.py":[{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"ee01597764c230f7df2168dd765900416d131408","unresolved":false,"context_lines":[{"line_number":109,"context_line":"            notifier_task_repo, context)"},{"line_number":110,"context_line":"        return authorized_task_repo"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def get_task_executor_factory(self):"},{"line_number":113,"context_line":"        return glance.domain.TaskExecutorFactory()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9tKQ%3D","line":112,"updated":"2013-12-06 22:06:05.000000000","message":"Please see my comment on line 321 in\nhttps://review.openstack.org/#/c/59814/3/glance/domain/__init__.py","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"0a9e003a8fff60e6f734b222ca2076fdf26bafa7","unresolved":false,"context_lines":[{"line_number":109,"context_line":"            notifier_task_repo, context)"},{"line_number":110,"context_line":"        return authorized_task_repo"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def get_task_executor_factory(self):"},{"line_number":113,"context_line":"        return glance.domain.TaskExecutorFactory()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9o1U%3D","line":112,"in_reply_to":"AAAATn%2F9tKQ%3D","updated":"2013-12-09 16:46:40.000000000","message":"removed this implementation.","commit_id":"11e421087cd670fa248b42bc88acb22328d72ef3"}],"glance/tests/functional/v2/test_tasks.py":[{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"6e7cf5fd42f3f2646bfc3f7b33e11911b3e1366b","unresolved":false,"context_lines":[{"line_number":32,"context_line":"TENANT4 \u003d uuidutils.generate_uuid()"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class TestTasks(functional.FunctionalTest):"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def setUp(self):"},{"line_number":38,"context_line":"        super(TestTasks, self).setUp()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9nBc%3D","line":35,"updated":"2013-12-09 18:12:10.000000000","message":"Is there any reason why we shouldn\u0027t be using the faster integration test framework for this test case?","commit_id":"562afa896da169d65f0c59c88a4581fadbfe4d9a"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"528a907165100bf91a5fdaa2885c32bd0c12c352","unresolved":false,"context_lines":[{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2013 OpenStack Foundation"},{"line_number":4,"context_line":"# All Rights Reserved."},{"line_number":5,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":8,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9fD8%3D","line":5,"updated":"2013-12-11 01:04:50.000000000","message":"copyright duplicate or misplaced","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"d3b186620ac643a629b1496a222e141eb0379221","unresolved":false,"context_lines":[{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2013 OpenStack Foundation"},{"line_number":4,"context_line":"# All Rights Reserved."},{"line_number":5,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":8,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9eGY%3D","line":5,"in_reply_to":"AAAATn%2F9fD8%3D","updated":"2013-12-11 16:27:21.000000000","message":"fixed it thanks.","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"9950b46fc232986b697100c8f23e7c010c53ee5d","unresolved":false,"context_lines":[{"line_number":32,"context_line":"TENANT4 \u003d uuidutils.generate_uuid()"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class TestTasks(functional.FunctionalTest):"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def setUp(self):"},{"line_number":38,"context_line":"        super(TestTasks, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9hRU%3D","line":35,"updated":"2013-12-10 16:46:31.000000000","message":"Bringing forward Mark\u0027s comment from previous patch set so that we do not miss it.\n\nMark: Is there any reason why we shouldn\u0027t be using the faster integration test framework for this test case?","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"2dad830cd5b5e126334e60d79e49956033e979f8","unresolved":false,"context_lines":[{"line_number":32,"context_line":"TENANT4 \u003d uuidutils.generate_uuid()"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class TestTasks(functional.FunctionalTest):"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def setUp(self):"},{"line_number":38,"context_line":"        super(TestTasks, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9Pss%3D","line":35,"in_reply_to":"AAAATn%2F9bZA%3D","updated":"2013-12-13 17:02:09.000000000","message":"implemented integration test for the tasks api. thanks Mark.","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"d3b186620ac643a629b1496a222e141eb0379221","unresolved":false,"context_lines":[{"line_number":32,"context_line":"TENANT4 \u003d uuidutils.generate_uuid()"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class TestTasks(functional.FunctionalTest):"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def setUp(self):"},{"line_number":38,"context_line":"        super(TestTasks, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9bZA%3D","line":35,"in_reply_to":"AAAATn%2F9hRU%3D","updated":"2013-12-11 16:27:21.000000000","message":"Working on it.","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"440aae9c7b0315a76d71c8d754ef956dde7f49d4","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        tasks \u003d json.loads(response.text)[\u0027tasks\u0027]"},{"line_number":74,"context_line":"        self.assertEqual(0, len(tasks))"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        # Create a task (with a deployer-defined property)"},{"line_number":77,"context_line":"        path \u003d self._url(\u0027/v2/tasks\u0027)"},{"line_number":78,"context_line":"        headers \u003d self._headers({\u0027content-type\u0027: \u0027application/json\u0027})"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9TH0%3D","line":76,"updated":"2013-12-12 22:17:01.000000000","message":"should \u0027with a deployer-defined property\u0027 be here?","commit_id":"672b1cbfadea959aeb64c1e235c342885c318bf2"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"9a3e3b22c0edbd588f96dd5688021c6d911e4f3d","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        tasks \u003d json.loads(response.text)[\u0027tasks\u0027]"},{"line_number":74,"context_line":"        self.assertEqual(0, len(tasks))"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        # Create a task (with a deployer-defined property)"},{"line_number":77,"context_line":"        path \u003d self._url(\u0027/v2/tasks\u0027)"},{"line_number":78,"context_line":"        headers \u003d self._headers({\u0027content-type\u0027: \u0027application/json\u0027})"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9Rtc%3D","line":76,"in_reply_to":"AAAATn%2F9TH0%3D","updated":"2013-12-13 17:07:55.000000000","message":"removed it. thanks alex.","commit_id":"672b1cbfadea959aeb64c1e235c342885c318bf2"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"440aae9c7b0315a76d71c8d754ef956dde7f49d4","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        data \u003d json.dumps({\"type\": \"import\","},{"line_number":81,"context_line":"                           \"owner\": TENANT1,"},{"line_number":82,"context_line":"                           \"input\": {"},{"line_number":83,"context_line":"                           \"import_from\": self.file_path,"},{"line_number":84,"context_line":"                           \"import_from_format\": \"qcow2\","},{"line_number":85,"context_line":"                           \"image_properties\": {"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9TKg%3D","line":82,"updated":"2013-12-12 22:17:01.000000000","message":"Could this be tabbed a little cleaner?","commit_id":"672b1cbfadea959aeb64c1e235c342885c318bf2"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"9a3e3b22c0edbd588f96dd5688021c6d911e4f3d","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        data \u003d json.dumps({\"type\": \"import\","},{"line_number":81,"context_line":"                           \"owner\": TENANT1,"},{"line_number":82,"context_line":"                           \"input\": {"},{"line_number":83,"context_line":"                           \"import_from\": self.file_path,"},{"line_number":84,"context_line":"                           \"import_from_format\": \"qcow2\","},{"line_number":85,"context_line":"                           \"image_properties\": {"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9RtY%3D","line":82,"in_reply_to":"AAAATn%2F9TKg%3D","updated":"2013-12-13 17:07:55.000000000","message":"done.","commit_id":"672b1cbfadea959aeb64c1e235c342885c318bf2"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"440aae9c7b0315a76d71c8d754ef956dde7f49d4","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        }"},{"line_number":119,"context_line":"        for key, value in expected_task.items():"},{"line_number":120,"context_line":"            self.assertEqual(task[key], value, key)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        # Image list should now have one entry"},{"line_number":123,"context_line":"        path \u003d self._url(\u0027/v2/tasks\u0027)"},{"line_number":124,"context_line":"        response \u003d requests.get(path, headers\u003dself._headers())"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9TGw%3D","line":121,"updated":"2013-12-12 22:17:01.000000000","message":"Should we add a case where the task is updated?","commit_id":"672b1cbfadea959aeb64c1e235c342885c318bf2"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"9a3e3b22c0edbd588f96dd5688021c6d911e4f3d","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        }"},{"line_number":119,"context_line":"        for key, value in expected_task.items():"},{"line_number":120,"context_line":"            self.assertEqual(task[key], value, key)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        # Image list should now have one entry"},{"line_number":123,"context_line":"        path \u003d self._url(\u0027/v2/tasks\u0027)"},{"line_number":124,"context_line":"        response \u003d requests.get(path, headers\u003dself._headers())"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9RtQ%3D","line":121,"in_reply_to":"AAAATn%2F9TGw%3D","updated":"2013-12-13 17:07:55.000000000","message":"hi alex, currently we do not have a scenario where a task is updated alex. may be after the executor patch we might have a scenario. once it is required, will come back and include it as well.","commit_id":"672b1cbfadea959aeb64c1e235c342885c318bf2"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"440aae9c7b0315a76d71c8d754ef956dde7f49d4","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        for key, value in expected_task.items():"},{"line_number":120,"context_line":"            self.assertEqual(task[key], value, key)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        # Image list should now have one entry"},{"line_number":123,"context_line":"        path \u003d self._url(\u0027/v2/tasks\u0027)"},{"line_number":124,"context_line":"        response \u003d requests.get(path, headers\u003dself._headers())"},{"line_number":125,"context_line":"        self.assertEqual(200, response.status_code)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9TG4%3D","line":122,"updated":"2013-12-12 22:17:01.000000000","message":"I think this should say task","commit_id":"672b1cbfadea959aeb64c1e235c342885c318bf2"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"9a3e3b22c0edbd588f96dd5688021c6d911e4f3d","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        for key, value in expected_task.items():"},{"line_number":120,"context_line":"            self.assertEqual(task[key], value, key)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        # Image list should now have one entry"},{"line_number":123,"context_line":"        path \u003d self._url(\u0027/v2/tasks\u0027)"},{"line_number":124,"context_line":"        response \u003d requests.get(path, headers\u003dself._headers())"},{"line_number":125,"context_line":"        self.assertEqual(200, response.status_code)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9RtM%3D","line":122,"in_reply_to":"AAAATn%2F9TG4%3D","updated":"2013-12-13 17:07:55.000000000","message":"changed it . thanks alex.","commit_id":"672b1cbfadea959aeb64c1e235c342885c318bf2"}],"glance/tests/integration/v2/test_tasks_api.py":[{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"440aae9c7b0315a76d71c8d754ef956dde7f49d4","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        content_dict \u003d json.loads(content)"},{"line_number":203,"context_line":"        self.assertEqual(2, len(content_dict[\u0027tasks\u0027]))"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        # 3. GET /tasks with owner filter"},{"line_number":206,"context_line":"        # Verify correct task returned with owner"},{"line_number":207,"context_line":"        params \u003d \"owner\u003d%s\" % TENANT1"},{"line_number":208,"context_line":"        path \u003d \"/v2/tasks?%s\" % (params)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9TD0%3D","line":205,"updated":"2013-12-12 22:17:01.000000000","message":"May want to make sure that providing a different owner returns something different.","commit_id":"672b1cbfadea959aeb64c1e235c342885c318bf2"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"490012a79bd68bf4861969c1f67facba9eb4e3c3","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        content_dict \u003d json.loads(content)"},{"line_number":203,"context_line":"        self.assertEqual(2, len(content_dict[\u0027tasks\u0027]))"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        # 3. GET /tasks with owner filter"},{"line_number":206,"context_line":"        # Verify correct task returned with owner"},{"line_number":207,"context_line":"        params \u003d \"owner\u003d%s\" % TENANT1"},{"line_number":208,"context_line":"        path \u003d \"/v2/tasks?%s\" % (params)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9PGY%3D","line":205,"in_reply_to":"AAAATn%2F9TD0%3D","updated":"2013-12-13 17:09:10.000000000","message":"this is done alex. thanks.","commit_id":"672b1cbfadea959aeb64c1e235c342885c318bf2"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"440aae9c7b0315a76d71c8d754ef956dde7f49d4","unresolved":false,"context_lines":[{"line_number":216,"context_line":"        self.assertEqual(TENANT1, content_dict[\u0027tasks\u0027][0][\u0027owner\u0027])"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        # 3. GET /tasks with owner filter"},{"line_number":219,"context_line":"        # Verify correct task returned with owner"},{"line_number":220,"context_line":"        params \u003d \"type\u003dimport\""},{"line_number":221,"context_line":"        path \u003d \"/v2/tasks?%s\" % (params)"},{"line_number":222,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9TDo%3D","line":219,"updated":"2013-12-12 22:17:01.000000000","message":"Same here","commit_id":"672b1cbfadea959aeb64c1e235c342885c318bf2"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"9a3e3b22c0edbd588f96dd5688021c6d911e4f3d","unresolved":false,"context_lines":[{"line_number":216,"context_line":"        self.assertEqual(TENANT1, content_dict[\u0027tasks\u0027][0][\u0027owner\u0027])"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        # 3. GET /tasks with owner filter"},{"line_number":219,"context_line":"        # Verify correct task returned with owner"},{"line_number":220,"context_line":"        params \u003d \"type\u003dimport\""},{"line_number":221,"context_line":"        path \u003d \"/v2/tasks?%s\" % (params)"},{"line_number":222,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9Pvg%3D","line":219,"in_reply_to":"AAAATn%2F9TDo%3D","updated":"2013-12-13 17:07:55.000000000","message":"the commented code block was wrong. this commented code is supposed to say filter by \u0027import\u0027. I changed the comments. currently we have only one type \u0027import\u0027. hence this check can suffice. when more types are included, we can include more tests for them too.","commit_id":"672b1cbfadea959aeb64c1e235c342885c318bf2"}],"glance/tests/unit/v2/test_tasks_resource.py":[{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"528a907165100bf91a5fdaa2885c32bd0c12c352","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2013 OpenStack Foundation."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":6,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9fHQ%3D","line":3,"updated":"2013-12-11 01:04:50.000000000","message":"copyright duplicate or misplaced","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"d3b186620ac643a629b1496a222e141eb0379221","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2013 OpenStack Foundation."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":6,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9eGE%3D","line":3,"in_reply_to":"AAAATn%2F9fHQ%3D","updated":"2013-12-11 16:27:21.000000000","message":"fixed it thanks.","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"343218ffa1cf268f1aa1c66e3aab46ef42b34df5","unresolved":false,"context_lines":[{"line_number":234,"context_line":"        self.assertEquals(UUID3, actual[1])"},{"line_number":235,"context_line":"        self.assertEquals(UUID2, actual[2])"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    def test_index_with_marker_not_found(self):"},{"line_number":238,"context_line":"        fake_uuid \u003d uuidutils.generate_uuid()"},{"line_number":239,"context_line":"        path \u003d \u0027/tasks\u0027"},{"line_number":240,"context_line":"        request \u003d unit_test_utils.get_fake_request(path)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9e34%3D","line":237,"updated":"2013-12-11 02:06:25.000000000","message":"we should add a test for invalid marker. Please see my comment about marker validation at in the tasks.py file.","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"},{"author":{"_account_id":7703,"name":"Venkatesh Sampath","email":"venkatesh.sampath@outlook.com","username":"venkateshsampath"},"change_message_id":"2dad830cd5b5e126334e60d79e49956033e979f8","unresolved":false,"context_lines":[{"line_number":234,"context_line":"        self.assertEquals(UUID3, actual[1])"},{"line_number":235,"context_line":"        self.assertEquals(UUID2, actual[2])"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    def test_index_with_marker_not_found(self):"},{"line_number":238,"context_line":"        fake_uuid \u003d uuidutils.generate_uuid()"},{"line_number":239,"context_line":"        path \u003d \u0027/tasks\u0027"},{"line_number":240,"context_line":"        request \u003d unit_test_utils.get_fake_request(path)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9Psg%3D","line":237,"in_reply_to":"AAAATn%2F9e34%3D","updated":"2013-12-13 17:02:09.000000000","message":"the test is added. thanks nikhil.","commit_id":"08a4d76baab2d0d3710e13d406af62a78f2b385f"}]}
