)]}'
{"marconi/queues/storage/pooling.py":[{"author":{"_account_id":6427,"name":"Kurt Griffiths","email":"kurt.griffiths@rackspace.com","username":"kgriffs"},"change_message_id":"b80efe2fa0678525dfb607bc513f5ea9d59cc1e7","unresolved":false,"context_lines":[{"line_number":164,"context_line":"        yield it()"},{"line_number":165,"context_line":"        yield marker_name[\u0027next\u0027]"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def get(self, name, project\u003dNone):"},{"line_number":168,"context_line":"        try:"},{"line_number":169,"context_line":"            return self.get_metadata(name, project)"},{"line_number":170,"context_line":"        except errors.QueueDoesNotExist:"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_ee2584bf","line":167,"updated":"2014-08-01 19:48:01.000000000","message":"DRY: Is this necessary? Seems like RoutingController.__getattr__ will take care of this automagically.","commit_id":"005b244d3c905d13f8d6245473d2dd463c50c4a1"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"86ade430da4de3e0773c3325808a8d9351f2ce45","unresolved":false,"context_lines":[{"line_number":164,"context_line":"        yield it()"},{"line_number":165,"context_line":"        yield marker_name[\u0027next\u0027]"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def get(self, name, project\u003dNone):"},{"line_number":168,"context_line":"        try:"},{"line_number":169,"context_line":"            return self.get_metadata(name, project)"},{"line_number":170,"context_line":"        except errors.QueueDoesNotExist:"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_e4584327","line":167,"in_reply_to":"baada198_ee2584bf","updated":"2014-08-01 19:59:53.000000000","message":"I think it is, the routing controller will try to call `get`, which will end up here. This will then call `get_metadata`, which should lookup the right target and call `get_metadata` there. Unless I\u0027m missing something.","commit_id":"005b244d3c905d13f8d6245473d2dd463c50c4a1"}],"marconi/queues/storage/sqlalchemy/queues.py":[{"author":{"_account_id":6427,"name":"Kurt Griffiths","email":"kurt.griffiths@rackspace.com","username":"kgriffs"},"change_message_id":"b80efe2fa0678525dfb607bc513f5ea9d59cc1e7","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        except utils.NoResult:"},{"line_number":69,"context_line":"            raise errors.QueueDoesNotExist(name, project)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def get(self, name, project\u003dNone):"},{"line_number":72,"context_line":"        try:"},{"line_number":73,"context_line":"            return self.get_metadata(name, project)"},{"line_number":74,"context_line":"        except errors.QueueDoesNotExist:"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_21506d09","line":71,"updated":"2014-08-01 19:48:01.000000000","message":"DRY: Would it make sense to just implement this in the base class?","commit_id":"005b244d3c905d13f8d6245473d2dd463c50c4a1"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"86ade430da4de3e0773c3325808a8d9351f2ce45","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        except utils.NoResult:"},{"line_number":69,"context_line":"            raise errors.QueueDoesNotExist(name, project)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def get(self, name, project\u003dNone):"},{"line_number":72,"context_line":"        try:"},{"line_number":73,"context_line":"            return self.get_metadata(name, project)"},{"line_number":74,"context_line":"        except errors.QueueDoesNotExist:"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_e4b4c31e","line":71,"in_reply_to":"baada198_21506d09","updated":"2014-08-01 19:59:53.000000000","message":"As soon as v1 reaches EOL, `get_metadata` should go away. I preferred to keep this here and move `get_metadata` body here later on.","commit_id":"005b244d3c905d13f8d6245473d2dd463c50c4a1"},{"author":{"_account_id":6427,"name":"Kurt Griffiths","email":"kurt.griffiths@rackspace.com","username":"kgriffs"},"change_message_id":"b80efe2fa0678525dfb607bc513f5ea9d59cc1e7","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def get(self, name, project\u003dNone):"},{"line_number":72,"context_line":"        try:"},{"line_number":73,"context_line":"            return self.get_metadata(name, project)"},{"line_number":74,"context_line":"        except errors.QueueDoesNotExist:"},{"line_number":75,"context_line":"            return {}"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_a162bdd6","line":73,"updated":"2014-08-01 19:48:01.000000000","message":"Q. Why the extra layer of indirection, vs. simply calling  get_metadata directly and having it return {} rather than raising an error? Not saying it\u0027s bad, just trying to understand...","commit_id":"005b244d3c905d13f8d6245473d2dd463c50c4a1"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"86ade430da4de3e0773c3325808a8d9351f2ce45","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def get(self, name, project\u003dNone):"},{"line_number":72,"context_line":"        try:"},{"line_number":73,"context_line":"            return self.get_metadata(name, project)"},{"line_number":74,"context_line":"        except errors.QueueDoesNotExist:"},{"line_number":75,"context_line":"            return {}"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_a4d72b4e","line":73,"in_reply_to":"baada198_a162bdd6","updated":"2014-08-01 19:59:53.000000000","message":"Because of the API. `get_metadata` is still being used by v1, hence I had to preserve its current behavior.","commit_id":"005b244d3c905d13f8d6245473d2dd463c50c4a1"}],"marconi/queues/transport/wsgi/v1_1/queues.py":[{"author":{"_account_id":6427,"name":"Kurt Griffiths","email":"kurt.griffiths@rackspace.com","username":"kgriffs"},"change_message_id":"b80efe2fa0678525dfb607bc513f5ea9d59cc1e7","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            description \u003d _(u\u0027Queue metadata could not be retrieved.\u0027)"},{"line_number":56,"context_line":"            raise wsgi_errors.HTTPServiceUnavailable(description)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        resp.content_location \u003d req.path"},{"line_number":59,"context_line":"        resp.body \u003d utils.to_json(resp_dict)"},{"line_number":60,"context_line":"        # status defaults to 200"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_e14bd525","line":58,"updated":"2014-08-01 19:48:01.000000000","message":"NIT: Content-Location header is going to be removed from all responses per the spec, so feel free to exclude it now from this endpoint if you like; otherwise we\u0027ll get it in another patch with the others operations.","commit_id":"005b244d3c905d13f8d6245473d2dd463c50c4a1"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"86ade430da4de3e0773c3325808a8d9351f2ce45","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            description \u003d _(u\u0027Queue metadata could not be retrieved.\u0027)"},{"line_number":56,"context_line":"            raise wsgi_errors.HTTPServiceUnavailable(description)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        resp.content_location \u003d req.path"},{"line_number":59,"context_line":"        resp.body \u003d utils.to_json(resp_dict)"},{"line_number":60,"context_line":"        # status defaults to 200"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_c44edf38","line":58,"in_reply_to":"baada198_e14bd525","updated":"2014-08-01 19:59:53.000000000","message":"Done","commit_id":"005b244d3c905d13f8d6245473d2dd463c50c4a1"},{"author":{"_account_id":6427,"name":"Kurt Griffiths","email":"kurt.griffiths@rackspace.com","username":"kgriffs"},"change_message_id":"b80efe2fa0678525dfb607bc513f5ea9d59cc1e7","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        # Deserialize queue metadata"},{"line_number":75,"context_line":"        metadata \u003d None"},{"line_number":76,"context_line":"        if req.content_length:"},{"line_number":77,"context_line":"            document \u003d wsgi_utils.deserialize(req.stream, req.content_length)"},{"line_number":78,"context_line":"            metadata \u003d wsgi_utils.sanitize(document, spec\u003dNone)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_a1f39de5","line":77,"updated":"2014-08-01 19:48:01.000000000","message":"FYI: At some point I\u0027d like to make decorators that call these utils or find some other way to DRY.","commit_id":"005b244d3c905d13f8d6245473d2dd463c50c4a1"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"86ade430da4de3e0773c3325808a8d9351f2ce45","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        # Deserialize queue metadata"},{"line_number":75,"context_line":"        metadata \u003d None"},{"line_number":76,"context_line":"        if req.content_length:"},{"line_number":77,"context_line":"            document \u003d wsgi_utils.deserialize(req.stream, req.content_length)"},{"line_number":78,"context_line":"            metadata \u003d wsgi_utils.sanitize(document, spec\u003dNone)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_24615ba8","line":77,"in_reply_to":"baada198_a1f39de5","updated":"2014-08-01 19:59:53.000000000","message":"+1, I like the idea.","commit_id":"005b244d3c905d13f8d6245473d2dd463c50c4a1"}],"marconi/tests/queues/transport/wsgi/v1_1/test_queue_lifecycle.py":[{"author":{"_account_id":10777,"name":"Nataliia Uvarova","email":"grafinya.uvarova@gmail.com","username":"AAzza"},"change_message_id":"a9a5e01f7752a00b5bf50f500c75e836e817c7d1","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        self.queue_path \u003d self.url_prefix + \u0027/queues\u0027"},{"line_number":35,"context_line":"        self.gumshoe_queue_path \u003d self.queue_path + \u0027/gumshoe\u0027"},{"line_number":36,"context_line":"        self.fizbat_queue_path \u003d self.queue_path + \u0027/fizbat\u0027"},{"line_number":37,"context_line":"        self.fizbat_queue_path \u003d self.fizbat_queue_path"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        self.headers \u003d {"},{"line_number":40,"context_line":"            \u0027Client-ID\u0027: str(uuid.uuid4()),"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_2135dff6","line":37,"updated":"2014-08-01 11:49:43.000000000","message":"i have strong feeling this line should not be here :)","commit_id":"774fcd417b01a98bb06482bd39379424395e2581"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"b03b9d453a5ca80d0bb5312f7a41beb26ac97b2b","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        self.queue_path \u003d self.url_prefix + \u0027/queues\u0027"},{"line_number":35,"context_line":"        self.gumshoe_queue_path \u003d self.queue_path + \u0027/gumshoe\u0027"},{"line_number":36,"context_line":"        self.fizbat_queue_path \u003d self.queue_path + \u0027/fizbat\u0027"},{"line_number":37,"context_line":"        self.fizbat_queue_path \u003d self.fizbat_queue_path"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        self.headers \u003d {"},{"line_number":40,"context_line":"            \u0027Client-ID\u0027: str(uuid.uuid4()),"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_648365cb","line":37,"in_reply_to":"baada198_2135dff6","updated":"2014-08-01 11:59:00.000000000","message":"LOL, find/replace failure :D","commit_id":"774fcd417b01a98bb06482bd39379424395e2581"},{"author":{"_account_id":6427,"name":"Kurt Griffiths","email":"kurt.griffiths@rackspace.com","username":"kgriffs"},"change_message_id":"b80efe2fa0678525dfb607bc513f5ea9d59cc1e7","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        self.assertEqual(self.srmock.status, falcon.HTTP_200)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    def test_update_metadata(self):"},{"line_number":204,"context_line":"        self.skip(\"This should use patch instead\")"},{"line_number":205,"context_line":"        xyz_queue_path \u003d self.url_prefix + \u0027/queues/xyz\u0027"},{"line_number":206,"context_line":"        xyz_queue_path_metadata \u003d xyz_queue_path"},{"line_number":207,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_81ff7934","line":204,"updated":"2014-08-01 19:48:01.000000000","message":"DSQ: Are you suggesting adding PATCH support to the queue resource? Personally, I think PUT is fine. This is a gray area because you could say the representation of the queue resource itself, not it\u0027s messages, is defined to be the metadata document. So the PUT is appropriate because it replaces the old state with a completely new state (we aren\u0027t patches a subset of the queue state). Just my $0.02","commit_id":"005b244d3c905d13f8d6245473d2dd463c50c4a1"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"86ade430da4de3e0773c3325808a8d9351f2ce45","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        self.assertEqual(self.srmock.status, falcon.HTTP_200)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    def test_update_metadata(self):"},{"line_number":204,"context_line":"        self.skip(\"This should use patch instead\")"},{"line_number":205,"context_line":"        xyz_queue_path \u003d self.url_prefix + \u0027/queues/xyz\u0027"},{"line_number":206,"context_line":"        xyz_queue_path_metadata \u003d xyz_queue_path"},{"line_number":207,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_e4f923c6","line":204,"in_reply_to":"baada198_81ff7934","updated":"2014-08-01 19:59:53.000000000","message":"I totally agree with you. The motivation behind supporting `PATCH` is to reduce the data traveling from the client to the service and also improve the UX when it comes to update the metadata. Lets discuss this further and fix it in a follow-up patch, if you agree.","commit_id":"005b244d3c905d13f8d6245473d2dd463c50c4a1"}]}
