)]}'
{"glance/api/v2/images.py":[{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"3221af6ba67c706d8aec2f6a1b447e40020aea1c","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def index(self, req):"},{"line_number":45,"context_line":"        #NOTE(bcwaldon): deleted\u003dFalse ensures we only get non-deleted images"},{"line_number":46,"context_line":"        # is_public\u003dTrue gets public images and those owned by the auth\u0027d user"},{"line_number":47,"context_line":"        filters \u003d {\u0027deleted\u0027: False, \u0027is_public\u0027: True}"},{"line_number":48,"context_line":"        return self.db_api.image_get_all(req.context, filters\u003dfilters)"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAHX%2F%2F71E%3D","line":46,"updated":"2012-05-15 14:24:28.000000000","message":"Minor quibble: the deleted\u003dFalse filter is kinda self-evident and doesn\u0027t IMO warrant an explanation in a comment (which tends to disrupt the logical flow).","commit_id":"8bb2bf2e6d9a6147704d64b68d3fb86e62c43f43"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"77ca94be7680d860aca44967f936b249890b8893","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def index(self, req):"},{"line_number":45,"context_line":"        #NOTE(bcwaldon): deleted\u003dFalse ensures we only get non-deleted images"},{"line_number":46,"context_line":"        # is_public\u003dTrue gets public images and those owned by the auth\u0027d user"},{"line_number":47,"context_line":"        filters \u003d {\u0027deleted\u0027: False, \u0027is_public\u0027: True}"},{"line_number":48,"context_line":"        return self.db_api.image_get_all(req.context, filters\u003dfilters)"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAHX%2F%2F7yI%3D","line":46,"in_reply_to":"AAAAHX%2F%2F71E%3D","updated":"2012-05-15 14:40:20.000000000","message":"Removed it. It\u0027s technically out of scope for this patch anyways.","commit_id":"8bb2bf2e6d9a6147704d64b68d3fb86e62c43f43"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"aaf135aac8f997ebe5cb40667acaa3cb2d61f38f","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        self._validate(request, body)"},{"line_number":83,"context_line":"        output[\u0027image\u0027] \u003d body"},{"line_number":84,"context_line":"        if \u0027visibility\u0027 in body:"},{"line_number":85,"context_line":"            output[\u0027image\u0027][\u0027is_public\u0027] \u003d body.pop(\u0027visibility\u0027) \u003d\u003d \u0027public\u0027"},{"line_number":86,"context_line":"        return output"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def create(self, request):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAHX%2F%2F770%3D","line":85,"updated":"2012-05-15 03:33:52.000000000","message":"Why the difference in name/type between what what is stored (string variable \u0027visibility\u0027) and what is output (boolean \u0027is_public\u0027)?","commit_id":"8bb2bf2e6d9a6147704d64b68d3fb86e62c43f43"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"3925a42a93ad1240f4bd9410abc26e90d14bd01c","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        self._validate(request, body)"},{"line_number":83,"context_line":"        output[\u0027image\u0027] \u003d body"},{"line_number":84,"context_line":"        if \u0027visibility\u0027 in body:"},{"line_number":85,"context_line":"            output[\u0027image\u0027][\u0027is_public\u0027] \u003d body.pop(\u0027visibility\u0027) \u003d\u003d \u0027public\u0027"},{"line_number":86,"context_line":"        return output"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def create(self, request):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAHX%2F%2F7zc%3D","line":85,"in_reply_to":"AAAAHX%2F%2F770%3D","updated":"2012-05-15 14:07:15.000000000","message":"I\u0027m looking for a term that makes more sense than \u0027is_public\u0027. This is just a suggestion, and I personally like it quite a bit more. Using \u0027private\u0027 and \u0027public\u0027 for the value adds a lot more context than True and False.","commit_id":"8bb2bf2e6d9a6147704d64b68d3fb86e62c43f43"}],"glance/tests/functional/v2/test_images.py":[{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"aaf135aac8f997ebe5cb40667acaa3cb2d61f38f","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        self.stop_servers()"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    @functional.runs_sql"},{"line_number":185,"context_line":"    def test_permissions(self):"},{"line_number":186,"context_line":"        # Create an image that belongs to TENANT1"},{"line_number":187,"context_line":"        path \u003d self._url(\u0027/images\u0027)"},{"line_number":188,"context_line":"        headers \u003d self._headers({\u0027Content-Type\u0027: \u0027application/json\u0027})"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAHX%2F%2F78I%3D","line":185,"updated":"2012-05-15 03:33:52.000000000","message":"Maybe it\u0027s just me, but neat commented blocks like this cry out for a refactor.  For example, checking that an image is visible to a tenant could easily be a 1-liner (i.e. check_image_is_visible(\u0027imagename\u0027, \u0027tenantname\u0027)).  Is there an api client that could be used rather than making the raw calls?","commit_id":"8bb2bf2e6d9a6147704d64b68d3fb86e62c43f43"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"3925a42a93ad1240f4bd9410abc26e90d14bd01c","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        self.stop_servers()"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    @functional.runs_sql"},{"line_number":185,"context_line":"    def test_permissions(self):"},{"line_number":186,"context_line":"        # Create an image that belongs to TENANT1"},{"line_number":187,"context_line":"        path \u003d self._url(\u0027/images\u0027)"},{"line_number":188,"context_line":"        headers \u003d self._headers({\u0027Content-Type\u0027: \u0027application/json\u0027})"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAHX%2F%2F7zY%3D","line":185,"in_reply_to":"AAAAHX%2F%2F78I%3D","updated":"2012-05-15 14:07:15.000000000","message":"I understand the sentiment, but in cases like this I like being more explicit than implicit. These tests might be lengthy, but it\u0027s spelled out exactly what requests we\u0027re making and what they should do. We also don\u0027t have python-glanceclient in this project, so we don\u0027t have a client to use instead.","commit_id":"8bb2bf2e6d9a6147704d64b68d3fb86e62c43f43"}]}
