)]}'
{"etc/quantum/plugins/bigswitch/restproxy.ini":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":21,"context_line":"#   serverauth  :   \u003cusername:password\u003e         (default: no auth)"},{"line_number":22,"context_line":"#   serverssl   :   True | False                (default: False)"},{"line_number":23,"context_line":"#   syncdata   :   True | False                (default: False)"},{"line_number":24,"context_line":"#   servertimeout   :  10                       (default: 10 seconds) "},{"line_number":25,"context_line":"#"},{"line_number":26,"context_line":"servers\u003dlocalhost:8080"},{"line_number":27,"context_line":"#serverauth\u003dusername:password"}],"source_content_type":"text/x-properties","patch_set":8,"id":"AAAAMH%2F%2F%2B1U%3D","line":24,"updated":"2012-11-13 02:01:28.000000000","message":"Trailing space","commit_id":"84b176455c53caa2937ede415d91b45c801d388e"}],"quantum/plugins/bigswitch/README":[{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":11,"context_line":"can be configured as external network controllers for this plugin."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"For more details on this plugin, please refer to the following link:"},{"line_number":14,"context_line":"http://www.openflowhub.org/display/floodlightcontroller/Quantum+REST+Proxy+Plugin"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAALn%2F%2FwTs%3D","line":14,"updated":"2012-11-08 09:00:05.000000000","message":"Now that the name of the plugin has been change, do you plan to change these references to the Proxy?\nI think you should to avoid confusion.","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":11,"context_line":"can be configured as external network controllers for this plugin."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"For more details on this plugin, please refer to the following link:"},{"line_number":14,"context_line":"http://www.openflowhub.org/display/floodlightcontroller/Quantum+REST+Proxy+Plugin"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAALn%2F%2FtpU%3D","line":14,"in_reply_to":"AAAALn%2F%2FwTs%3D","updated":"2012-11-11 11:50:01.000000000","message":"Done","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"}],"quantum/plugins/bigswitch/plugin.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":63,"context_line":"from quantum.plugins.bigswitch.version import version_string_with_vcs"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"database_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2FwMs%3D","line":66,"updated":"2012-11-08 12:29:12.000000000","message":"The common logging is used acros Quantum now. I think that you should use it.","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":63,"context_line":"from quantum.plugins.bigswitch.version import version_string_with_vcs"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"database_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2FtpM%3D","line":66,"in_reply_to":"AAAALn%2F%2FwMs%3D","updated":"2012-11-11 11:50:01.000000000","message":"Done","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":96,"context_line":"class RemoteRestError(exceptions.QuantumException):"},{"line_number":97,"context_line":"    def __init__(self, message):"},{"line_number":98,"context_line":"        if message is None:"},{"line_number":99,"context_line":"            message \u003d \"\""},{"line_number":100,"context_line":"        self.message \u003d _(\"Error in REST call to remote network \""},{"line_number":101,"context_line":"                         \"controller\") + \": \" + message"},{"line_number":102,"context_line":"        super(RemoteRestError, self).__init__()"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2FwMo%3D","line":99,"updated":"2012-11-08 12:29:12.000000000","message":"Maybe consider have \"None\" here.","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":96,"context_line":"class RemoteRestError(exceptions.QuantumException):"},{"line_number":97,"context_line":"    def __init__(self, message):"},{"line_number":98,"context_line":"        if message is None:"},{"line_number":99,"context_line":"            message \u003d \"\""},{"line_number":100,"context_line":"        self.message \u003d _(\"Error in REST call to remote network \""},{"line_number":101,"context_line":"                         \"controller\") + \": \" + message"},{"line_number":102,"context_line":"        super(RemoteRestError, self).__init__()"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2FtpI%3D","line":99,"in_reply_to":"AAAALn%2F%2FwMo%3D","updated":"2012-11-11 11:50:01.000000000","message":"Done","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":112,"context_line":"        self.base_uri \u003d base_uri"},{"line_number":113,"context_line":"        self.timeout \u003d timeout"},{"line_number":114,"context_line":"        self.name \u003d name"},{"line_number":115,"context_line":"        self.success_codes \u003d range(200, 207)"},{"line_number":116,"context_line":"        self.auth \u003d None"},{"line_number":117,"context_line":"        if auth:"},{"line_number":118,"context_line":"            self.auth \u003d \u0027Basic \u0027 + base64.encodestring(auth).strip()"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2FwMk%3D","line":115,"updated":"2012-11-08 12:29:12.000000000","message":"Maybe defines for these","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":112,"context_line":"        self.base_uri \u003d base_uri"},{"line_number":113,"context_line":"        self.timeout \u003d timeout"},{"line_number":114,"context_line":"        self.name \u003d name"},{"line_number":115,"context_line":"        self.success_codes \u003d range(200, 207)"},{"line_number":116,"context_line":"        self.auth \u003d None"},{"line_number":117,"context_line":"        if auth:"},{"line_number":118,"context_line":"            self.auth \u003d \u0027Basic \u0027 + base64.encodestring(auth).strip()"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2FtpE%3D","line":115,"in_reply_to":"AAAALn%2F%2FwMk%3D","updated":"2012-11-11 11:50:01.000000000","message":"Done","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":117,"context_line":"        if auth:"},{"line_number":118,"context_line":"            self.auth \u003d \u0027Basic \u0027 + base64.encodestring(auth).strip()"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def rest_call(self, action, resource, data, headers):"},{"line_number":121,"context_line":"        uri \u003d self.base_uri + resource"},{"line_number":122,"context_line":"        body \u003d json.dumps(data)"},{"line_number":123,"context_line":"        if not headers:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2FwMg%3D","line":120,"updated":"2012-11-08 12:29:12.000000000","message":"It could be worth defining in the README that JSON is used.","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":117,"context_line":"        if auth:"},{"line_number":118,"context_line":"            self.auth \u003d \u0027Basic \u0027 + base64.encodestring(auth).strip()"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def rest_call(self, action, resource, data, headers):"},{"line_number":121,"context_line":"        uri \u003d self.base_uri + resource"},{"line_number":122,"context_line":"        body \u003d json.dumps(data)"},{"line_number":123,"context_line":"        if not headers:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2FtpA%3D","line":120,"in_reply_to":"AAAALn%2F%2FwMg%3D","updated":"2012-11-11 11:50:01.000000000","message":"Done","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":140,"context_line":"        else:"},{"line_number":141,"context_line":"            conn \u003d httplib.HTTPConnection("},{"line_number":142,"context_line":"                self.server, self.port, timeout\u003dself.timeout)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        try:"},{"line_number":145,"context_line":"            conn.request(action, uri, body, headers)"},{"line_number":146,"context_line":"            response \u003d conn.getresponse()"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2FwMc%3D","line":143,"updated":"2012-11-08 12:29:12.000000000","message":"If the httplib functions fail then conn \u003d None. This is used later and may result in an exception. Is this correct?","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":140,"context_line":"        else:"},{"line_number":141,"context_line":"            conn \u003d httplib.HTTPConnection("},{"line_number":142,"context_line":"                self.server, self.port, timeout\u003dself.timeout)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        try:"},{"line_number":145,"context_line":"            conn.request(action, uri, body, headers)"},{"line_number":146,"context_line":"            response \u003d conn.getresponse()"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2Fto8%3D","line":143,"in_reply_to":"AAAALn%2F%2FwMc%3D","updated":"2012-11-11 11:50:01.000000000","message":"Performing the check now.","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":182,"context_line":"        Note: We assume 301-303 is a failure, and try the next server in"},{"line_number":183,"context_line":"        the server pool."},{"line_number":184,"context_line":"        \"\"\""},{"line_number":185,"context_line":"        return resp[0] in [0, 301, 302, 303]"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"    def action_success(self, resp):"},{"line_number":188,"context_line":"        \"\"\"Defining success codes as required."}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2FwMY%3D","line":185,"updated":"2012-11-08 12:29:12.000000000","message":"Could also be useful to have these as defines. What if a 4xx or 5xx is received?","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":182,"context_line":"        Note: We assume 301-303 is a failure, and try the next server in"},{"line_number":183,"context_line":"        the server pool."},{"line_number":184,"context_line":"        \"\"\""},{"line_number":185,"context_line":"        return resp[0] in [0, 301, 302, 303]"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"    def action_success(self, resp):"},{"line_number":188,"context_line":"        \"\"\"Defining success codes as required."}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2Fto4%3D","line":185,"in_reply_to":"AAAALn%2F%2FwMY%3D","updated":"2012-11-11 11:50:01.000000000","message":"Done and added codes for 4xx and 5xx","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":258,"context_line":"        assert servers is not None, \u0027Servers not defined. Aborting plugin\u0027"},{"line_number":259,"context_line":"        servers \u003d tuple(s.rsplit(\u0027:\u0027, 1) for s in servers.split(\u0027,\u0027))"},{"line_number":260,"context_line":"        servers \u003d tuple((server, int(port)) for server, port in servers)"},{"line_number":261,"context_line":"        assert all(len(s) \u003d\u003d 2 for s in servers), \u0027Syntax error in servers \u0027\\"},{"line_number":262,"context_line":"                                                  \u0027in config file. \u0027\\"},{"line_number":263,"context_line":"                                                  \u0027Aborting plugin\u0027"},{"line_number":264,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2FwMU%3D","line":261,"updated":"2012-11-08 12:29:12.000000000","message":"Is it possible to do this so no \\ is required?","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":258,"context_line":"        assert servers is not None, \u0027Servers not defined. Aborting plugin\u0027"},{"line_number":259,"context_line":"        servers \u003d tuple(s.rsplit(\u0027:\u0027, 1) for s in servers.split(\u0027,\u0027))"},{"line_number":260,"context_line":"        servers \u003d tuple((server, int(port)) for server, port in servers)"},{"line_number":261,"context_line":"        assert all(len(s) \u003d\u003d 2 for s in servers), \u0027Syntax error in servers \u0027\\"},{"line_number":262,"context_line":"                                                  \u0027in config file. \u0027\\"},{"line_number":263,"context_line":"                                                  \u0027Aborting plugin\u0027"},{"line_number":264,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2Fto0%3D","line":261,"in_reply_to":"AAAALn%2F%2FwMU%3D","updated":"2012-11-11 11:50:01.000000000","message":"Done","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":326,"context_line":"                    \"name\": new_net[\"name\"],"},{"line_number":327,"context_line":"                }"},{"line_number":328,"context_line":"            }"},{"line_number":329,"context_line":"            ret \u003d self.servers.post(resource, data)"},{"line_number":330,"context_line":"            if not self.servers.action_success(ret):"},{"line_number":331,"context_line":"                raise RemoteRestError(ret[2])"},{"line_number":332,"context_line":"        except RemoteRestError as e:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2FwMA%3D","line":329,"updated":"2012-11-08 12:29:12.000000000","message":"Could there be any other type of exception here?","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":326,"context_line":"                    \"name\": new_net[\"name\"],"},{"line_number":327,"context_line":"                }"},{"line_number":328,"context_line":"            }"},{"line_number":329,"context_line":"            ret \u003d self.servers.post(resource, data)"},{"line_number":330,"context_line":"            if not self.servers.action_success(ret):"},{"line_number":331,"context_line":"                raise RemoteRestError(ret[2])"},{"line_number":332,"context_line":"        except RemoteRestError as e:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2Ftow%3D","line":329,"in_reply_to":"AAAALn%2F%2FwMA%3D","updated":"2012-11-11 11:50:01.000000000","message":"Its been handled in rest_call()","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":333,"context_line":"            LOG.error(\"QuantumRestProxyV2:Unable to create remote network:%s\" %"},{"line_number":334,"context_line":"                      e.message)"},{"line_number":335,"context_line":"            super(QuantumRestProxyV2, self).delete_network(context,"},{"line_number":336,"context_line":"                                                           new_net[\"id\"])"},{"line_number":337,"context_line":"            raise"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"        # return created network"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2FwMQ%3D","line":336,"updated":"2012-11-08 12:29:12.000000000","message":"consider \u0027id\u0027 instead of \"id\"","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":333,"context_line":"            LOG.error(\"QuantumRestProxyV2:Unable to create remote network:%s\" %"},{"line_number":334,"context_line":"                      e.message)"},{"line_number":335,"context_line":"            super(QuantumRestProxyV2, self).delete_network(context,"},{"line_number":336,"context_line":"                                                           new_net[\"id\"])"},{"line_number":337,"context_line":"            raise"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"        # return created network"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2Ftos%3D","line":336,"in_reply_to":"AAAALn%2F%2FwMQ%3D","updated":"2012-11-11 11:50:01.000000000","message":"Done","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":369,"context_line":"            if network[\"network\"][\"admin_state_up\"] is False:"},{"line_number":370,"context_line":"                LOG.warning(\"Network with admin_state_up\u003dFalse are not yet \""},{"line_number":371,"context_line":"                            \"supported by this plugin. Ignoring setting for \""},{"line_number":372,"context_line":"                            \"network %s\", net_name)"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"        # update DB"},{"line_number":375,"context_line":"        orig_net \u003d super(QuantumRestProxyV2, self).get_network(context, net_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2FwL8%3D","line":372,"updated":"2012-11-08 12:29:12.000000000","message":"Does the code continue if there is a LOG.warning. Maybe you should return?","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":369,"context_line":"            if network[\"network\"][\"admin_state_up\"] is False:"},{"line_number":370,"context_line":"                LOG.warning(\"Network with admin_state_up\u003dFalse are not yet \""},{"line_number":371,"context_line":"                            \"supported by this plugin. Ignoring setting for \""},{"line_number":372,"context_line":"                            \"network %s\", net_name)"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"        # update DB"},{"line_number":375,"context_line":"        orig_net \u003d super(QuantumRestProxyV2, self).get_network(context, net_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2Ftoo%3D","line":372,"in_reply_to":"AAAALn%2F%2FwL8%3D","updated":"2012-11-11 11:50:01.000000000","message":"Actually this is intentional, we want it to continue.","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":413,"context_line":"        LOG.debug(\"QuantumRestProxyV2: delete_network() called\")"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"        # Validate args"},{"line_number":416,"context_line":"        orig_net \u003d super(QuantumRestProxyV2, self).get_network(context, net_id)"},{"line_number":417,"context_line":"        tenant_id \u003d orig_net[\"tenant_id\"]"},{"line_number":418,"context_line":"        ret_val \u003d super(QuantumRestProxyV2, self).delete_network(context,"},{"line_number":419,"context_line":"                                                                 net_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2FwL4%3D","line":416,"updated":"2012-11-08 12:29:12.000000000","message":"Not used. Maybe delete the network after the controller has sent a successful return code for deletion.","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":413,"context_line":"        LOG.debug(\"QuantumRestProxyV2: delete_network() called\")"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"        # Validate args"},{"line_number":416,"context_line":"        orig_net \u003d super(QuantumRestProxyV2, self).get_network(context, net_id)"},{"line_number":417,"context_line":"        tenant_id \u003d orig_net[\"tenant_id\"]"},{"line_number":418,"context_line":"        ret_val \u003d super(QuantumRestProxyV2, self).delete_network(context,"},{"line_number":419,"context_line":"                                                                 net_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2Ftok%3D","line":416,"in_reply_to":"AAAALn%2F%2FwL4%3D","updated":"2012-11-11 11:50:01.000000000","message":"Actually its being used in the next line. Delete has been moved as suggested, good suggestion, thanks!","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":577,"context_line":"        port \u003d super(QuantumRestProxyV2, self).get_port(context, port_id)"},{"line_number":578,"context_line":""},{"line_number":579,"context_line":"        # Delete from DB"},{"line_number":580,"context_line":"        ret_val \u003d super(QuantumRestProxyV2, self).delete_port(context, port_id)"},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"        # delete from network ctrl. Remote error on delete is ignored"},{"line_number":583,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2FwLw%3D","line":580,"updated":"2012-11-08 12:29:12.000000000","message":"Maybe consider deletion afterwards.","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":577,"context_line":"        port \u003d super(QuantumRestProxyV2, self).get_port(context, port_id)"},{"line_number":578,"context_line":""},{"line_number":579,"context_line":"        # Delete from DB"},{"line_number":580,"context_line":"        ret_val \u003d super(QuantumRestProxyV2, self).delete_port(context, port_id)"},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"        # delete from network ctrl. Remote error on delete is ignored"},{"line_number":583,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2Ftog%3D","line":580,"in_reply_to":"AAAALn%2F%2FwLw%3D","updated":"2012-11-11 11:50:01.000000000","message":"Done","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":646,"context_line":"                      e.message)"},{"line_number":647,"context_line":"            raise"},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"        return None"},{"line_number":650,"context_line":""},{"line_number":651,"context_line":"    def _unplug_interface(self, context, tenant_id, net_id, port_id):"},{"line_number":652,"context_line":"        \"\"\"Detaches a remote interface from the specified port on the"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2FwLo%3D","line":649,"updated":"2012-11-08 12:29:12.000000000","message":"Do you need this. By default i think None is returned","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":646,"context_line":"                      e.message)"},{"line_number":647,"context_line":"            raise"},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"        return None"},{"line_number":650,"context_line":""},{"line_number":651,"context_line":"    def _unplug_interface(self, context, tenant_id, net_id, port_id):"},{"line_number":652,"context_line":"        \"\"\"Detaches a remote interface from the specified port on the"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2Ftoc%3D","line":649,"in_reply_to":"AAAALn%2F%2FwLo%3D","updated":"2012-11-11 11:50:01.000000000","message":"Done","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":669,"context_line":"                \"QuantumRestProxyV2: Unable to update remote port: %s\" %"},{"line_number":670,"context_line":"                e.message)"},{"line_number":671,"context_line":""},{"line_number":672,"context_line":"        return None"},{"line_number":673,"context_line":""},{"line_number":674,"context_line":"    def _send_all_data(self):"},{"line_number":675,"context_line":"        \"\"\"Pushes all data to network ctrl (networks/ports, ports/attachments)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2FwLk%3D","line":672,"updated":"2012-11-08 12:29:12.000000000","message":"Ditto","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":669,"context_line":"                \"QuantumRestProxyV2: Unable to update remote port: %s\" %"},{"line_number":670,"context_line":"                e.message)"},{"line_number":671,"context_line":""},{"line_number":672,"context_line":"        return None"},{"line_number":673,"context_line":""},{"line_number":674,"context_line":"    def _send_all_data(self):"},{"line_number":675,"context_line":"        \"\"\"Pushes all data to network ctrl (networks/ports, ports/attachments)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2FtoY%3D","line":672,"in_reply_to":"AAAALn%2F%2FwLk%3D","updated":"2012-11-11 11:50:01.000000000","message":"Done","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":32,"context_line":"to reside on the controller itself (via the REST interface)."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"This allows for:"},{"line_number":35,"context_line":" - independent auth and redundancy schemes between quantum and network ctrl"},{"line_number":36,"context_line":" - independent upgrade/development cycles between quantum and network ctrl"},{"line_number":37,"context_line":"   as it limits the proxy code upgrade requirement to quantum release cycle"},{"line_number":38,"context_line":"   and the net ctrl specific code upgrade requirement to network ctrl code"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAALn%2F%2Ftns%3D","line":35,"updated":"2012-11-11 12:56:06.000000000","message":"Maybe consider change auth to authentication.\nSame with ctrl.","commit_id":"a883ea9be3fc486ecc5fbb733b66609c620c3058"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":32,"context_line":"to reside on the controller itself (via the REST interface)."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"This allows for:"},{"line_number":35,"context_line":" - independent auth and redundancy schemes between quantum and network ctrl"},{"line_number":36,"context_line":" - independent upgrade/development cycles between quantum and network ctrl"},{"line_number":37,"context_line":"   as it limits the proxy code upgrade requirement to quantum release cycle"},{"line_number":38,"context_line":"   and the net ctrl specific code upgrade requirement to network ctrl code"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAMH%2F%2F%2B2s%3D","line":35,"in_reply_to":"AAAALn%2F%2Ftns%3D","updated":"2012-11-13 00:11:32.000000000","message":"Done","commit_id":"a883ea9be3fc486ecc5fbb733b66609c620c3058"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1eaf7766f295a44851208e348cfea57beeb8abaa","unresolved":false,"context_lines":[{"line_number":244,"context_line":"        return dispatcher.RpcDispatcher([self])"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"class QuantumRestProxyV2(db_base_plugin_v2.QuantumDbPluginV2):"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    def __init__(self):"},{"line_number":250,"context_line":"        LOG.info(\u0027QuantumRestProxy: Starting plugin. Version\u003d%s\u0027 %"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAMH%2F%2F%2FLI%3D","line":247,"updated":"2012-11-12 19:57:13.000000000","message":"Consider a more descriptive name which aids when reading the quantum.conf file.\n\nMaybe: BigswitchPluginV2?","commit_id":"a883ea9be3fc486ecc5fbb733b66609c620c3058"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":244,"context_line":"        return dispatcher.RpcDispatcher([self])"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"class QuantumRestProxyV2(db_base_plugin_v2.QuantumDbPluginV2):"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    def __init__(self):"},{"line_number":250,"context_line":"        LOG.info(\u0027QuantumRestProxy: Starting plugin. Version\u003d%s\u0027 %"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAMH%2F%2F%2B2o%3D","line":247,"in_reply_to":"AAAAMH%2F%2F%2FLI%3D","updated":"2012-11-13 00:11:32.000000000","message":"Per discussions with Mark, leaving this as is. Since this class is used to talk to both FloodLight and Big Switch controllers, the preference was to keep it this way.","commit_id":"a883ea9be3fc486ecc5fbb733b66609c620c3058"},{"author":{"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"},"unresolved":false,"context_lines":[{"line_number":49,"context_line":"import json"},{"line_number":50,"context_line":"import socket"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"from quantum import context as qcontext"},{"line_number":53,"context_line":"from quantum.common import exceptions"},{"line_number":54,"context_line":"from quantum.common import topics"},{"line_number":55,"context_line":"from quantum.db import api as db"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAMH%2F%2F9lc%3D","line":52,"updated":"2012-11-14 00:54:19.000000000","message":"This line should go between lines 54 and 55","commit_id":"9cfe5d9b95d7e8c965641bc3b07a8973a15d2ec4"},{"author":{"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"},"unresolved":false,"context_lines":[{"line_number":49,"context_line":"import json"},{"line_number":50,"context_line":"import socket"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"from quantum import context as qcontext"},{"line_number":53,"context_line":"from quantum.common import exceptions"},{"line_number":54,"context_line":"from quantum.common import topics"},{"line_number":55,"context_line":"from quantum.db import api as db"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAMH%2F%2F9bw%3D","line":52,"updated":"2012-11-14 03:21:51.000000000","message":"This line should be placed between lines 54 and 55","commit_id":"e7c8a8b0b57f7f1eb48411e1d8036778697e9f6e"}],"quantum/plugins/bigswitch/tests/test_server.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import json"},{"line_number":23,"context_line":"import re"},{"line_number":24,"context_line":"from wsgiref.simple_server import make_server"},{"line_number":25,"context_line":"from wsgiref.util import request_uri, application_uri"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2FwLg%3D","line":23,"updated":"2012-11-08 12:29:12.000000000","message":"is a new line required after this?","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import json"},{"line_number":23,"context_line":"import re"},{"line_number":24,"context_line":"from wsgiref.simple_server import make_server"},{"line_number":25,"context_line":"from wsgiref.util import request_uri, application_uri"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2FtoU%3D","line":23,"in_reply_to":"AAAALn%2F%2FwLg%3D","updated":"2012-11-11 11:50:01.000000000","message":"Done","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"}],"quantum/plugins/bigswitch/version.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"QUANTUMRESTPROXY_VERSION \u003d [\u00272012\u0027, \u00271\u0027, None]"},{"line_number":33,"context_line":"YEAR, COUNT, REVISION \u003d QUANTUMRESTPROXY_VERSION"},{"line_number":34,"context_line":"FINAL \u003d False   # This becomes true at Release Candidate time"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def canonical_version_string():"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2FwLQ%3D","line":34,"updated":"2012-11-08 12:29:12.000000000","message":"If I understand correctly this will be done when G version goes into \"code freeze\"? And updated when the proxy version is updated after that?\nIt may be combersome with the OS releases.\nBut it is a good idea and I like it.","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"QUANTUMRESTPROXY_VERSION \u003d [\u00272012\u0027, \u00271\u0027, None]"},{"line_number":33,"context_line":"YEAR, COUNT, REVISION \u003d QUANTUMRESTPROXY_VERSION"},{"line_number":34,"context_line":"FINAL \u003d False   # This becomes true at Release Candidate time"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def canonical_version_string():"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2FtoQ%3D","line":34,"in_reply_to":"AAAALn%2F%2FwLQ%3D","updated":"2012-11-11 11:50:01.000000000","message":"Thats right.","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"}],"quantum/plugins/restproxy/README":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"e740944d5caaf62f5dfe142646e2c99b803019e4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Quantum REST Proxy Plug-in"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"This module provides a generic quantum plugin \u0027QuantumRestProxy\u0027 that"},{"line_number":4,"context_line":"translates quantum function calls to authenticated REST request to a"},{"line_number":5,"context_line":"set of redundant external network controllers."},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"It also keeps a local persistent store of quantum state that has been"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAALn%2F%2F4FM%3D","line":4,"updated":"2012-10-31 07:55:49.000000000","message":"Should request be requests?","commit_id":"0512f77c7ca2100db8069e2266e2129d4e27ec0e"}],"quantum/plugins/restproxy/plugin.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1eaf7766f295a44851208e348cfea57beeb8abaa","unresolved":false,"context_lines":[{"line_number":240,"context_line":"                 version_string_with_vcs())"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"        # init DB, proxy\u0027s persistent store defaults to in-memory sql-lite DB"},{"line_number":243,"context_line":"        options \u003d {\"sql_connection\": \"%s\" % cfg.CONF.DATABASE.sql_connection}"},{"line_number":244,"context_line":"        options.update({\"sql_max_retries\": cfg.CONF.DATABASE.sql_max_retries})"},{"line_number":245,"context_line":"        options.update({\"reconnect_interval\":"},{"line_number":246,"context_line":"                       cfg.CONF.DATABASE.reconnect_interval})"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAALn%2F%2F3RA%3D","line":243,"updated":"2012-10-31 20:09:31.000000000","message":"This should be a multiline dictionary.  Using update() makes a bunch of unnecessary calls.  Consider:\n\noptions \u003d {\n    \u0027sql_connection\u0027: str(cfg.CONF.DATABASE.sql_connection),\n    \u0027sql_max_retries\u0027: cfg.CONF.DATABASE.sql_max_retries,\n    \u0027reconnect_internal\u0027: cfg.CONF.DATABASE.reconnect_interval\u0027,\n}","commit_id":"467b6b6dd95cf6ba9b24e1c2f880ed3f3ffb4cac"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":240,"context_line":"                 version_string_with_vcs())"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"        # init DB, proxy\u0027s persistent store defaults to in-memory sql-lite DB"},{"line_number":243,"context_line":"        options \u003d {\"sql_connection\": \"%s\" % cfg.CONF.DATABASE.sql_connection}"},{"line_number":244,"context_line":"        options.update({\"sql_max_retries\": cfg.CONF.DATABASE.sql_max_retries})"},{"line_number":245,"context_line":"        options.update({\"reconnect_interval\":"},{"line_number":246,"context_line":"                       cfg.CONF.DATABASE.reconnect_interval})"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAALn%2F%2F0Gk%3D","line":243,"in_reply_to":"AAAALn%2F%2F3RA%3D","updated":"2012-11-05 03:26:52.000000000","message":"Done","commit_id":"467b6b6dd95cf6ba9b24e1c2f880ed3f3ffb4cac"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1eaf7766f295a44851208e348cfea57beeb8abaa","unresolved":false,"context_lines":[{"line_number":257,"context_line":""},{"line_number":258,"context_line":"        # validate config"},{"line_number":259,"context_line":"        assert servers is not None, \u0027Servers not defined. Aborting plugin\u0027"},{"line_number":260,"context_line":"        servers \u003d tuple(s.split(\u0027:\u0027) for s in servers.split(\u0027,\u0027))"},{"line_number":261,"context_line":"        servers \u003d tuple((server, int(port)) for server, port in servers)"},{"line_number":262,"context_line":"        assert all(len(s) \u003d\u003d 2 for s in servers), \u0027Syntax error in servers \u0027\\"},{"line_number":263,"context_line":"                                                  \u0027in config file. \u0027\\"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAALn%2F%2F3Mg%3D","line":260,"updated":"2012-10-31 20:09:31.000000000","message":"Not sure this this best way to do this.  Why not make the ServerProxy take in a \"host:port\" combo and split it within the class.  The ServerProxy can throw a value error if the format is wrong. Additionally, it will make it easier to upgrade to IPv6 support which will break in this implementation.","commit_id":"467b6b6dd95cf6ba9b24e1c2f880ed3f3ffb4cac"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":257,"context_line":""},{"line_number":258,"context_line":"        # validate config"},{"line_number":259,"context_line":"        assert servers is not None, \u0027Servers not defined. Aborting plugin\u0027"},{"line_number":260,"context_line":"        servers \u003d tuple(s.split(\u0027:\u0027) for s in servers.split(\u0027,\u0027))"},{"line_number":261,"context_line":"        servers \u003d tuple((server, int(port)) for server, port in servers)"},{"line_number":262,"context_line":"        assert all(len(s) \u003d\u003d 2 for s in servers), \u0027Syntax error in servers \u0027\\"},{"line_number":263,"context_line":"                                                  \u0027in config file. \u0027\\"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAALn%2F%2F0Gg%3D","line":260,"in_reply_to":"AAAALn%2F%2F3Mg%3D","updated":"2012-11-05 03:26:52.000000000","message":"Done","commit_id":"467b6b6dd95cf6ba9b24e1c2f880ed3f3ffb4cac"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1eaf7766f295a44851208e348cfea57beeb8abaa","unresolved":false,"context_lines":[{"line_number":690,"context_line":"                \u0027op-status\u0027: net.get(\u0027admin_state_up\u0027),"},{"line_number":691,"context_line":"            }"},{"line_number":692,"context_line":""},{"line_number":693,"context_line":"            subnets \u003d net.get(\u0027subnets\u0027) or []"},{"line_number":694,"context_line":"            for subnet_id in subnets:"},{"line_number":695,"context_line":"                subnet \u003d self.get_subnet(admin_context, subnet_id)"},{"line_number":696,"context_line":"                gateway_ip \u003d subnet.get(\u0027gateway_ip\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAALn%2F%2F3MQ%3D","line":693,"updated":"2012-10-31 20:09:31.000000000","message":"You can pass a default value to get:\n\nfor subnet_id in net.get(\u0027subnets\u0027, []):","commit_id":"467b6b6dd95cf6ba9b24e1c2f880ed3f3ffb4cac"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":690,"context_line":"                \u0027op-status\u0027: net.get(\u0027admin_state_up\u0027),"},{"line_number":691,"context_line":"            }"},{"line_number":692,"context_line":""},{"line_number":693,"context_line":"            subnets \u003d net.get(\u0027subnets\u0027) or []"},{"line_number":694,"context_line":"            for subnet_id in subnets:"},{"line_number":695,"context_line":"                subnet \u003d self.get_subnet(admin_context, subnet_id)"},{"line_number":696,"context_line":"                gateway_ip \u003d subnet.get(\u0027gateway_ip\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAALn%2F%2F0Gc%3D","line":693,"in_reply_to":"AAAALn%2F%2F3MQ%3D","updated":"2012-11-05 03:26:52.000000000","message":"Done","commit_id":"467b6b6dd95cf6ba9b24e1c2f880ed3f3ffb4cac"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1eaf7766f295a44851208e348cfea57beeb8abaa","unresolved":false,"context_lines":[{"line_number":694,"context_line":"            for subnet_id in subnets:"},{"line_number":695,"context_line":"                subnet \u003d self.get_subnet(admin_context, subnet_id)"},{"line_number":696,"context_line":"                gateway_ip \u003d subnet.get(\u0027gateway_ip\u0027)"},{"line_number":697,"context_line":"                if gateway_ip is not None:"},{"line_number":698,"context_line":"                    # FIX: For backward compatibility with wire protocol"},{"line_number":699,"context_line":"                    networks[net.get(\u0027id\u0027)][\u0027gateway\u0027] \u003d gateway_ip"},{"line_number":700,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAALn%2F%2F3Lo%3D","line":697,"updated":"2012-10-31 20:09:31.000000000","message":"Is it acceptable that the gateway_ip is \u0027\u0027?  If not, consider:\n\nif gateway_ip:","commit_id":"467b6b6dd95cf6ba9b24e1c2f880ed3f3ffb4cac"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":694,"context_line":"            for subnet_id in subnets:"},{"line_number":695,"context_line":"                subnet \u003d self.get_subnet(admin_context, subnet_id)"},{"line_number":696,"context_line":"                gateway_ip \u003d subnet.get(\u0027gateway_ip\u0027)"},{"line_number":697,"context_line":"                if gateway_ip is not None:"},{"line_number":698,"context_line":"                    # FIX: For backward compatibility with wire protocol"},{"line_number":699,"context_line":"                    networks[net.get(\u0027id\u0027)][\u0027gateway\u0027] \u003d gateway_ip"},{"line_number":700,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAALn%2F%2F0GY%3D","line":697,"in_reply_to":"AAAALn%2F%2F3Lo%3D","updated":"2012-11-05 03:26:52.000000000","message":"Done","commit_id":"467b6b6dd95cf6ba9b24e1c2f880ed3f3ffb4cac"}],"quantum/tests/unit/bigswitch/test_restproxy_plugin.py":[{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":56,"context_line":"class RestProxyPluginV2TestCase(test_plugin.QuantumDbPluginV2TestCase):"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    _plugin_name \u003d (\u0027%s.QuantumRestProxyV2\u0027 % RESTPROXY_PKG_PATH)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def setUp(self):"},{"line_number":61,"context_line":"        etc_path \u003d os.path.join(os.path.dirname(__file__), \u0027etc\u0027)"},{"line_number":62,"context_line":"        test_lib.test_config[\u0027config_files\u0027] \u003d [os.path.join(etc_path,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2FwTk%3D","line":59,"updated":"2012-11-08 09:00:05.000000000","message":"still some references to the proxy plugin name","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":56,"context_line":"class RestProxyPluginV2TestCase(test_plugin.QuantumDbPluginV2TestCase):"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    _plugin_name \u003d (\u0027%s.QuantumRestProxyV2\u0027 % RESTPROXY_PKG_PATH)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def setUp(self):"},{"line_number":61,"context_line":"        etc_path \u003d os.path.join(os.path.dirname(__file__), \u0027etc\u0027)"},{"line_number":62,"context_line":"        test_lib.test_config[\u0027config_files\u0027] \u003d [os.path.join(etc_path,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALn%2F%2FtoM%3D","line":59,"in_reply_to":"AAAALn%2F%2FwTk%3D","updated":"2012-11-11 11:50:01.000000000","message":"Plugin name has already been changed. This is a reference to a class inside the plugin package and is internal.","commit_id":"24f6fcfcdd725c5fbdc1cc6b66a9d70a3354fdff"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1eaf7766f295a44851208e348cfea57beeb8abaa","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        pass"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"class RestProxyPluginV2TestCase(test_plugin.QuantumDbPluginV2TestCase):"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    _plugin_name \u003d (\u0027%s.QuantumRestProxyV2\u0027 % RESTPROXY_PKG_PATH)"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAMH%2F%2F%2FL4%3D","line":54,"updated":"2012-11-12 19:57:13.000000000","message":"BigswitchRestProxyPluginV2TestCase","commit_id":"a883ea9be3fc486ecc5fbb733b66609c620c3058"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":51,"context_line":"        pass"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"class RestProxyPluginV2TestCase(test_plugin.QuantumDbPluginV2TestCase):"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    _plugin_name \u003d (\u0027%s.QuantumRestProxyV2\u0027 % RESTPROXY_PKG_PATH)"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAMH%2F%2F%2B2k%3D","line":54,"in_reply_to":"AAAAMH%2F%2F%2FL4%3D","updated":"2012-11-13 00:11:32.000000000","message":"Done","commit_id":"a883ea9be3fc486ecc5fbb733b66609c620c3058"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1eaf7766f295a44851208e348cfea57beeb8abaa","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        self.httpPatch.stop()"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class TestRestProxyBasicGet(test_plugin.TestBasicGet,"},{"line_number":74,"context_line":"                            RestProxyPluginV2TestCase):"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAMH%2F%2F%2FLs%3D","line":73,"updated":"2012-11-12 19:57:13.000000000","message":"TestBigswitchRestProxyBasicGet","commit_id":"a883ea9be3fc486ecc5fbb733b66609c620c3058"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":70,"context_line":"        self.httpPatch.stop()"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class TestRestProxyBasicGet(test_plugin.TestBasicGet,"},{"line_number":74,"context_line":"                            RestProxyPluginV2TestCase):"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAMH%2F%2F%2B2g%3D","line":73,"in_reply_to":"AAAAMH%2F%2F%2FLs%3D","updated":"2012-11-13 00:11:32.000000000","message":"Done","commit_id":"a883ea9be3fc486ecc5fbb733b66609c620c3058"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1eaf7766f295a44851208e348cfea57beeb8abaa","unresolved":false,"context_lines":[{"line_number":76,"context_line":"    pass"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"class TestRestProxyV2HTTPResponse(test_plugin.TestV2HTTPResponse,"},{"line_number":80,"context_line":"                                  RestProxyPluginV2TestCase):"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAMH%2F%2F%2FLo%3D","line":79,"updated":"2012-11-12 19:57:13.000000000","message":"same as above","commit_id":"a883ea9be3fc486ecc5fbb733b66609c620c3058"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":76,"context_line":"    pass"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"class TestRestProxyV2HTTPResponse(test_plugin.TestV2HTTPResponse,"},{"line_number":80,"context_line":"                                  RestProxyPluginV2TestCase):"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAMH%2F%2F%2B2c%3D","line":79,"in_reply_to":"AAAAMH%2F%2F%2FLo%3D","updated":"2012-11-13 00:11:32.000000000","message":"Done","commit_id":"a883ea9be3fc486ecc5fbb733b66609c620c3058"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1eaf7766f295a44851208e348cfea57beeb8abaa","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    pass"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"class TestRestProxyPortsV2(test_plugin.TestPortsV2,"},{"line_number":86,"context_line":"                           RestProxyPluginV2TestCase):"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAMH%2F%2F%2FLk%3D","line":85,"updated":"2012-11-12 19:57:13.000000000","message":"same as above","commit_id":"a883ea9be3fc486ecc5fbb733b66609c620c3058"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":82,"context_line":"    pass"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"class TestRestProxyPortsV2(test_plugin.TestPortsV2,"},{"line_number":86,"context_line":"                           RestProxyPluginV2TestCase):"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAMH%2F%2F%2B2Y%3D","line":85,"in_reply_to":"AAAAMH%2F%2F%2FLk%3D","updated":"2012-11-13 00:11:32.000000000","message":"Done","commit_id":"a883ea9be3fc486ecc5fbb733b66609c620c3058"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1eaf7766f295a44851208e348cfea57beeb8abaa","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    pass"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"class TestRestProxyNetworksV2(test_plugin.TestNetworksV2,"},{"line_number":92,"context_line":"                              RestProxyPluginV2TestCase):"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAMH%2F%2F%2FLg%3D","line":91,"updated":"2012-11-12 19:57:13.000000000","message":"same as above","commit_id":"a883ea9be3fc486ecc5fbb733b66609c620c3058"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":88,"context_line":"    pass"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"class TestRestProxyNetworksV2(test_plugin.TestNetworksV2,"},{"line_number":92,"context_line":"                              RestProxyPluginV2TestCase):"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAMH%2F%2F%2B2U%3D","line":91,"in_reply_to":"AAAAMH%2F%2F%2FLg%3D","updated":"2012-11-13 00:11:32.000000000","message":"Done","commit_id":"a883ea9be3fc486ecc5fbb733b66609c620c3058"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1eaf7766f295a44851208e348cfea57beeb8abaa","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    pass"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"class TestRestProxySubnetsV2(test_plugin.TestSubnetsV2,"},{"line_number":98,"context_line":"                             RestProxyPluginV2TestCase):"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAMH%2F%2F%2FLc%3D","line":97,"updated":"2012-11-12 19:57:13.000000000","message":"same as above","commit_id":"a883ea9be3fc486ecc5fbb733b66609c620c3058"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":94,"context_line":"    pass"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"class TestRestProxySubnetsV2(test_plugin.TestSubnetsV2,"},{"line_number":98,"context_line":"                             RestProxyPluginV2TestCase):"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAMH%2F%2F%2B2Q%3D","line":97,"in_reply_to":"AAAAMH%2F%2F%2FLc%3D","updated":"2012-11-13 00:11:32.000000000","message":"Done","commit_id":"a883ea9be3fc486ecc5fbb733b66609c620c3058"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"1eaf7766f295a44851208e348cfea57beeb8abaa","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    pass"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"class TestRestProxySync(RestProxyPluginV2TestCase):"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def test_send_data(self):"},{"line_number":106,"context_line":"        plugin_obj \u003d QuantumManager.get_plugin()"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAMH%2F%2F%2FLY%3D","line":103,"updated":"2012-11-12 19:57:13.000000000","message":"same as above","commit_id":"a883ea9be3fc486ecc5fbb733b66609c620c3058"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":100,"context_line":"    pass"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"class TestRestProxySync(RestProxyPluginV2TestCase):"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def test_send_data(self):"},{"line_number":106,"context_line":"        plugin_obj \u003d QuantumManager.get_plugin()"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAMH%2F%2F%2B2M%3D","line":103,"in_reply_to":"AAAAMH%2F%2F%2FLY%3D","updated":"2012-11-13 00:11:32.000000000","message":"Done","commit_id":"a883ea9be3fc486ecc5fbb733b66609c620c3058"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2012 OpenStack, LLC."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2F%2B0E%3D","line":1,"updated":"2012-11-13 02:01:28.000000000","message":"Copyright by Big Switch Networks?","commit_id":"84b176455c53caa2937ede415d91b45c801d388e"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":13,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from mock import patch"},{"line_number":17,"context_line":"import os"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"import quantum.common.test_lib as test_lib"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2F%2B0A%3D","line":16,"updated":"2012-11-13 02:01:28.000000000","message":"mock is 3rd party library, so it needs to be moved to 3rd party library section.","commit_id":"84b176455c53caa2937ede415d91b45c801d388e"}]}
