)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"fb650f8a283d396b97e1f52db13564e60e89bc70","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Adds commands for gateway management, and for connecting"},{"line_number":12,"context_line":"networks to gateways. These commands use the nicira-specific"},{"line_number":13,"context_line":"extension \u0027nvp-network-gateway."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Iefcba201bc9fd8dce35762514af0f56b29430ccd"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAM3%2F%2B2us%3D","line":13,"updated":"2013-02-16 20:30:44.000000000","message":"nit: \u0027nvp-network-gateway\u0027.","commit_id":"f937a4176897d533109441567f17143a64f69d99"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Adds commands for gateway management, and for connecting"},{"line_number":12,"context_line":"networks to gateways. These commands use the nicira-specific"},{"line_number":13,"context_line":"extension \u0027nvp-network-gateway."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Iefcba201bc9fd8dce35762514af0f56b29430ccd"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAM3%2F%2BzOg%3D","line":13,"in_reply_to":"AAAAM3%2F%2B2us%3D","updated":"2013-02-18 23:23:12.000000000","message":"ah thanks!","commit_id":"f937a4176897d533109441567f17143a64f69d99"}],"quantumclient/quantum/v2_0/nvpnetworkgateway.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012 OpenStack LLC."},{"line_number":2,"context_line":"# All Rights Reserved"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2BzjA%3D","line":1,"updated":"2013-02-18 21:50:22.000000000","message":"2013","commit_id":"f937a4176897d533109441567f17143a64f69d99"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012 OpenStack LLC."},{"line_number":2,"context_line":"# All Rights Reserved"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2BzOU%3D","line":1,"in_reply_to":"AAAAM3%2F%2BzjA%3D","updated":"2013-02-18 23:23:12.000000000","message":"Done","commit_id":"f937a4176897d533109441567f17143a64f69d99"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"fb650f8a283d396b97e1f52db13564e60e89bc70","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def add_known_arguments(self, parser):"},{"line_number":50,"context_line":"        parser.add_argument("},{"line_number":51,"context_line":"            \u0027name\u0027, metavar\u003d\u0027name\u0027,"},{"line_number":52,"context_line":"            help\u003d\u0027Name of network gateway to create\u0027)"},{"line_number":53,"context_line":"        parser.add_argument("},{"line_number":54,"context_line":"            \u0027--device\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2B2vE%3D","line":51,"updated":"2013-02-16 20:30:09.000000000","message":"Akihiro pointed out to me that the convertion is to upper case the metavar value: i.e:\nmetavar\u003d\u0027NAME\u0027","commit_id":"f937a4176897d533109441567f17143a64f69d99"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def add_known_arguments(self, parser):"},{"line_number":50,"context_line":"        parser.add_argument("},{"line_number":51,"context_line":"            \u0027name\u0027, metavar\u003d\u0027name\u0027,"},{"line_number":52,"context_line":"            help\u003d\u0027Name of network gateway to create\u0027)"},{"line_number":53,"context_line":"        parser.add_argument("},{"line_number":54,"context_line":"            \u0027--device\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2BzOQ%3D","line":51,"in_reply_to":"AAAAM3%2F%2B2vE%3D","updated":"2013-02-18 23:23:12.000000000","message":"Done","commit_id":"f937a4176897d533109441567f17143a64f69d99"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":101,"context_line":"            \u0027network_id\u0027, metavar\u003d\u0027network-id\u0027,"},{"line_number":102,"context_line":"            help\u003d\u0027ID of the internal network to connect on the gateway\u0027)"},{"line_number":103,"context_line":"        parser.add_argument("},{"line_number":104,"context_line":"            \u0027--segmentation_type\u0027,"},{"line_number":105,"context_line":"            help\u003d(\u0027L2 segmentation strategy on the external side of \u0027"},{"line_number":106,"context_line":"                  \u0027the gateway (e.g.: VLAN, FLAT)\u0027))"},{"line_number":107,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2B2q0%3D","line":104,"updated":"2013-02-16 22:39:34.000000000","message":"--segmentation_type --\u003e --segmentation-type\n\nhyphen style is recommended throughout OpenStack CLIs.","commit_id":"f937a4176897d533109441567f17143a64f69d99"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":101,"context_line":"            \u0027network_id\u0027, metavar\u003d\u0027network-id\u0027,"},{"line_number":102,"context_line":"            help\u003d\u0027ID of the internal network to connect on the gateway\u0027)"},{"line_number":103,"context_line":"        parser.add_argument("},{"line_number":104,"context_line":"            \u0027--segmentation_type\u0027,"},{"line_number":105,"context_line":"            help\u003d(\u0027L2 segmentation strategy on the external side of \u0027"},{"line_number":106,"context_line":"                  \u0027the gateway (e.g.: VLAN, FLAT)\u0027))"},{"line_number":107,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2BzOM%3D","line":104,"in_reply_to":"AAAAM3%2F%2B2q0%3D","updated":"2013-02-18 23:23:12.000000000","message":"Done","commit_id":"f937a4176897d533109441567f17143a64f69d99"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":105,"context_line":"            help\u003d(\u0027L2 segmentation strategy on the external side of \u0027"},{"line_number":106,"context_line":"                  \u0027the gateway (e.g.: VLAN, FLAT)\u0027))"},{"line_number":107,"context_line":"        parser.add_argument("},{"line_number":108,"context_line":"            \u0027--segmentation_id\u0027,"},{"line_number":109,"context_line":"            help\u003d(\u0027Identifier for the L2 segment on the external side \u0027"},{"line_number":110,"context_line":"                  \u0027of the gateway\u0027))"},{"line_number":111,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2B2qw%3D","line":108,"updated":"2013-02-16 22:39:34.000000000","message":"--segmentation-id","commit_id":"f937a4176897d533109441567f17143a64f69d99"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":105,"context_line":"            help\u003d(\u0027L2 segmentation strategy on the external side of \u0027"},{"line_number":106,"context_line":"                  \u0027the gateway (e.g.: VLAN, FLAT)\u0027))"},{"line_number":107,"context_line":"        parser.add_argument("},{"line_number":108,"context_line":"            \u0027--segmentation_id\u0027,"},{"line_number":109,"context_line":"            help\u003d(\u0027Identifier for the L2 segment on the external side \u0027"},{"line_number":110,"context_line":"                  \u0027of the gateway\u0027))"},{"line_number":111,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2BzOE%3D","line":108,"in_reply_to":"AAAAM3%2F%2B2qw%3D","updated":"2013-02-18 23:23:12.000000000","message":"Done","commit_id":"f937a4176897d533109441567f17143a64f69d99"}],"quantumclient/shell.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":191,"context_line":"    \u0027lb-healthmonitor-disassociate\u0027: utils.import_class("},{"line_number":192,"context_line":"        \u0027quantumclient.quantum.v2_0.lb.healthmonitor\u0027"},{"line_number":193,"context_line":"        \u0027.DisassociateHealthMonitor\u0027),"},{"line_number":194,"context_line":"    \u0027nvp-net-gateway-create\u0027: utils.import_class("},{"line_number":195,"context_line":"        \u0027quantumclient.quantum.v2_0.nvpnetworkgateway.CreateNetworkGateway\u0027),"},{"line_number":196,"context_line":"    \u0027nvp-net-gateway-update\u0027: utils.import_class("},{"line_number":197,"context_line":"        \u0027quantumclient.quantum.v2_0.nvpnetworkgateway.UpdateNetworkGateway\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2Bzik%3D","line":194,"updated":"2013-02-18 21:50:22.000000000","message":"this will appear even if the plugin is not nvp. anyway of coming up with a more generic name?","commit_id":"f937a4176897d533109441567f17143a64f69d99"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":191,"context_line":"    \u0027lb-healthmonitor-disassociate\u0027: utils.import_class("},{"line_number":192,"context_line":"        \u0027quantumclient.quantum.v2_0.lb.healthmonitor\u0027"},{"line_number":193,"context_line":"        \u0027.DisassociateHealthMonitor\u0027),"},{"line_number":194,"context_line":"    \u0027nvp-net-gateway-create\u0027: utils.import_class("},{"line_number":195,"context_line":"        \u0027quantumclient.quantum.v2_0.nvpnetworkgateway.CreateNetworkGateway\u0027),"},{"line_number":196,"context_line":"    \u0027nvp-net-gateway-update\u0027: utils.import_class("},{"line_number":197,"context_line":"        \u0027quantumclient.quantum.v2_0.nvpnetworkgateway.UpdateNetworkGateway\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2BzOA%3D","line":194,"in_reply_to":"AAAAM3%2F%2Bzik%3D","updated":"2013-02-18 23:23:12.000000000","message":"I added the suffix \u0027nvp\u0027 as I though it was bad to be generic. I will go back to generic then.","commit_id":"f937a4176897d533109441567f17143a64f69d99"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"fb650f8a283d396b97e1f52db13564e60e89bc70","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        \u0027quantumclient.quantum.v2_0.nvpnetworkgateway.ShowNetworkGateway\u0027),"},{"line_number":202,"context_line":"    \u0027nvp-net-gateway-list\u0027: utils.import_class("},{"line_number":203,"context_line":"        \u0027quantumclient.quantum.v2_0.nvpnetworkgateway.ListNetworkGateway\u0027),"},{"line_number":204,"context_line":"    \u0027net-gateway-connect\u0027: utils.import_class("},{"line_number":205,"context_line":"        \u0027quantumclient.quantum.v2_0.nvpnetworkgateway.ConnectNetworkGateway\u0027),"},{"line_number":206,"context_line":"    \u0027net-gateway-disconnect\u0027: utils.import_class("},{"line_number":207,"context_line":"        \u0027quantumclient.quantum.v2_0.nvpnetworkgateway.\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2Bz1o%3D","line":204,"updated":"2013-02-18 20:05:35.000000000","message":"should be nvp-net-gateway-connect as others have nvp-","commit_id":"f937a4176897d533109441567f17143a64f69d99"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":201,"context_line":"        \u0027quantumclient.quantum.v2_0.nvpnetworkgateway.ShowNetworkGateway\u0027),"},{"line_number":202,"context_line":"    \u0027nvp-net-gateway-list\u0027: utils.import_class("},{"line_number":203,"context_line":"        \u0027quantumclient.quantum.v2_0.nvpnetworkgateway.ListNetworkGateway\u0027),"},{"line_number":204,"context_line":"    \u0027net-gateway-connect\u0027: utils.import_class("},{"line_number":205,"context_line":"        \u0027quantumclient.quantum.v2_0.nvpnetworkgateway.ConnectNetworkGateway\u0027),"},{"line_number":206,"context_line":"    \u0027net-gateway-disconnect\u0027: utils.import_class("},{"line_number":207,"context_line":"        \u0027quantumclient.quantum.v2_0.nvpnetworkgateway.\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2BzN4%3D","line":204,"in_reply_to":"AAAAM3%2F%2Bz1o%3D","updated":"2013-02-18 23:23:12.000000000","message":"see previous comment","commit_id":"f937a4176897d533109441567f17143a64f69d99"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"fb650f8a283d396b97e1f52db13564e60e89bc70","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        \u0027quantumclient.quantum.v2_0.nvpnetworkgateway.ListNetworkGateway\u0027),"},{"line_number":204,"context_line":"    \u0027net-gateway-connect\u0027: utils.import_class("},{"line_number":205,"context_line":"        \u0027quantumclient.quantum.v2_0.nvpnetworkgateway.ConnectNetworkGateway\u0027),"},{"line_number":206,"context_line":"    \u0027net-gateway-disconnect\u0027: utils.import_class("},{"line_number":207,"context_line":"        \u0027quantumclient.quantum.v2_0.nvpnetworkgateway.\u0027"},{"line_number":208,"context_line":"        \u0027DisconnectNetworkGateway\u0027)"},{"line_number":209,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2Bz1k%3D","line":206,"updated":"2013-02-18 20:05:35.000000000","message":"ditto","commit_id":"f937a4176897d533109441567f17143a64f69d99"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":203,"context_line":"        \u0027quantumclient.quantum.v2_0.nvpnetworkgateway.ListNetworkGateway\u0027),"},{"line_number":204,"context_line":"    \u0027net-gateway-connect\u0027: utils.import_class("},{"line_number":205,"context_line":"        \u0027quantumclient.quantum.v2_0.nvpnetworkgateway.ConnectNetworkGateway\u0027),"},{"line_number":206,"context_line":"    \u0027net-gateway-disconnect\u0027: utils.import_class("},{"line_number":207,"context_line":"        \u0027quantumclient.quantum.v2_0.nvpnetworkgateway.\u0027"},{"line_number":208,"context_line":"        \u0027DisconnectNetworkGateway\u0027)"},{"line_number":209,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2BzN0%3D","line":206,"in_reply_to":"AAAAM3%2F%2Bz1k%3D","updated":"2013-02-18 23:23:12.000000000","message":"ottid","commit_id":"f937a4176897d533109441567f17143a64f69d99"}],"quantumclient/v2_0/client.py":[{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"fb650f8a283d396b97e1f52db13564e60e89bc70","unresolved":false,"context_lines":[{"line_number":197,"context_line":"        return {\u0027plurals\u0027: self.EXTED_PLURALS,"},{"line_number":198,"context_line":"                \u0027xmlns\u0027: constants.XML_NS_V20,"},{"line_number":199,"context_line":"                constants.EXT_NS: ns}"},{"line_number":200,"context_line":"    network_gateways_path \u003d \"/network-gateways\""},{"line_number":201,"context_line":"    network_gateway_path \u003d \"/network-gateways/%s\""},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    @APIParamsCall"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2B2u8%3D","line":200,"updated":"2013-02-16 20:30:09.000000000","message":"nit: I\u0027d lets move this up to line173 with the other resources.","commit_id":"f937a4176897d533109441567f17143a64f69d99"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":197,"context_line":"        return {\u0027plurals\u0027: self.EXTED_PLURALS,"},{"line_number":198,"context_line":"                \u0027xmlns\u0027: constants.XML_NS_V20,"},{"line_number":199,"context_line":"                constants.EXT_NS: ns}"},{"line_number":200,"context_line":"    network_gateways_path \u003d \"/network-gateways\""},{"line_number":201,"context_line":"    network_gateway_path \u003d \"/network-gateways/%s\""},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    @APIParamsCall"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2BzNw%3D","line":200,"in_reply_to":"AAAAM3%2F%2B2u8%3D","updated":"2013-02-18 23:23:12.000000000","message":"Done","commit_id":"f937a4176897d533109441567f17143a64f69d99"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"fb650f8a283d396b97e1f52db13564e60e89bc70","unresolved":false,"context_lines":[{"line_number":715,"context_line":"        \"\"\""},{"line_number":716,"context_line":"        Connect a network gateway to the specified network"},{"line_number":717,"context_line":"        \"\"\""},{"line_number":718,"context_line":"        return self.put((self.network_gateway_path % gateway_id) +"},{"line_number":719,"context_line":"                        \"/connect_network\","},{"line_number":720,"context_line":"                        body\u003dbody)"},{"line_number":721,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2B2u0%3D","line":718,"updated":"2013-02-16 20:30:09.000000000","message":"nit: i\u0027m okay with this but imo it\u0027s clearer to define a variable that does this rather then + \u0027/connect_network\u0027. (for example line 170).","commit_id":"f937a4176897d533109441567f17143a64f69d99"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":715,"context_line":"        \"\"\""},{"line_number":716,"context_line":"        Connect a network gateway to the specified network"},{"line_number":717,"context_line":"        \"\"\""},{"line_number":718,"context_line":"        return self.put((self.network_gateway_path % gateway_id) +"},{"line_number":719,"context_line":"                        \"/connect_network\","},{"line_number":720,"context_line":"                        body\u003dbody)"},{"line_number":721,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2BzNo%3D","line":718,"in_reply_to":"AAAAM3%2F%2B2u0%3D","updated":"2013-02-18 23:23:12.000000000","message":"Done","commit_id":"f937a4176897d533109441567f17143a64f69d99"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"fb650f8a283d396b97e1f52db13564e60e89bc70","unresolved":false,"context_lines":[{"line_number":724,"context_line":"        \"\"\""},{"line_number":725,"context_line":"        Disconnect a network from the specified gateway"},{"line_number":726,"context_line":"        \"\"\""},{"line_number":727,"context_line":"        return self.put((self.network_gateway_path % gateway_id) +"},{"line_number":728,"context_line":"                        \"/disconnect_network\", body\u003dbody)"},{"line_number":729,"context_line":""},{"line_number":730,"context_line":"    def __init__(self, **kwargs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2B2u4%3D","line":727,"updated":"2013-02-16 20:30:09.000000000","message":"ditto","commit_id":"f937a4176897d533109441567f17143a64f69d99"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":724,"context_line":"        \"\"\""},{"line_number":725,"context_line":"        Disconnect a network from the specified gateway"},{"line_number":726,"context_line":"        \"\"\""},{"line_number":727,"context_line":"        return self.put((self.network_gateway_path % gateway_id) +"},{"line_number":728,"context_line":"                        \"/disconnect_network\", body\u003dbody)"},{"line_number":729,"context_line":""},{"line_number":730,"context_line":"    def __init__(self, **kwargs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2BzNs%3D","line":727,"in_reply_to":"AAAAM3%2F%2B2u4%3D","updated":"2013-02-18 23:23:12.000000000","message":"Done","commit_id":"f937a4176897d533109441567f17143a64f69d99"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":738,"context_line":"        return self.delete(self.agent_path % (agent))"},{"line_number":739,"context_line":""},{"line_number":740,"context_line":"    @APIParamsCall"},{"line_number":741,"context_line":"    def list_network_gateways(self, **_params):"},{"line_number":742,"context_line":"        \"\"\""},{"line_number":743,"context_line":"        Retrieve network gateways"},{"line_number":744,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2BoyA%3D","line":741,"updated":"2013-02-24 03:45:39.000000000","message":"for CLI commands that are extensions, i wonder if we should check to see if the server supports it, or specially handle 404s from the server (in fact, it may make sense to query the supported extensions only on 404 failures).  \n\nThis patch is far from the first that uses an extension, but its worth thinking about what direction we should be heading in.","commit_id":"d77f86218e4c0c2f5371accce64605e7cfff41c5"}]}
