)]}'
{"etc/quantum/plugins/bigswitch/restproxy.ini":[{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":34,"context_line":"#   server_timeout   :  10                       (default: 10 seconds)"},{"line_number":35,"context_line":"#"},{"line_number":36,"context_line":"servers\u003dlocalhost:8080"},{"line_number":37,"context_line":"#server_auth\u003dusername:password"},{"line_number":38,"context_line":"#server_ssl\u003dTrue"},{"line_number":39,"context_line":"#sync_data\u003dTrue"},{"line_number":40,"context_line":"#server_timeout\u003d10"}],"source_content_type":"text/x-properties","patch_set":7,"id":"AAAAM3%2F%2B5x4%3D","line":37,"updated":"2013-02-14 23:48:05.000000000","message":"you already have localhost as default value, do you consider to comment out this line as well?","commit_id":"b2196559b0cdf1dfe540cdc06d174f0088da6312"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":34,"context_line":"#   server_timeout   :  10                       (default: 10 seconds)"},{"line_number":35,"context_line":"#"},{"line_number":36,"context_line":"servers\u003dlocalhost:8080"},{"line_number":37,"context_line":"#server_auth\u003dusername:password"},{"line_number":38,"context_line":"#server_ssl\u003dTrue"},{"line_number":39,"context_line":"#sync_data\u003dTrue"},{"line_number":40,"context_line":"#server_timeout\u003d10"}],"source_content_type":"text/x-properties","patch_set":7,"id":"AAAAM3%2F%2B5Qg%3D","line":37,"in_reply_to":"AAAAM3%2F%2B5x4%3D","updated":"2013-02-15 07:02:26.000000000","message":"It is important that the user see what is being used here, rather it getting silently picked from the defaults. No plans to change this.","commit_id":"b2196559b0cdf1dfe540cdc06d174f0088da6312"}],"quantum/openstack/common/version.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":61,"context_line":"        if self.release is None:"},{"line_number":62,"context_line":"            self.release \u003d self._get_version_from_pkg_resources()"},{"line_number":63,"context_line":"        \"\"\""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        return \"something.version\""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def version_string(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B4Bg%3D","line":64,"updated":"2013-02-15 20:00:25.000000000","message":"There is a change from patch set 7. Is it an intentional change?","commit_id":"779159bd9719e7a9fee3eb18d9d8e462bb0549f0"}],"quantum/plugins/bigswitch/plugin.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"0697a6fe849ae36fb398848d332dc76578338815","unresolved":false,"context_lines":[{"line_number":59,"context_line":"from quantum.db import db_base_plugin_v2"},{"line_number":60,"context_line":"from quantum.db import dhcp_rpc_base"},{"line_number":61,"context_line":"from quantum.db import l3_db"},{"line_number":62,"context_line":"from quantum.db import models_v2"},{"line_number":63,"context_line":"from quantum.extensions import l3"},{"line_number":64,"context_line":"from quantum.openstack.common import cfg"},{"line_number":65,"context_line":"from quantum.openstack.common import lockutils"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FIV8%3D","line":62,"updated":"2013-02-06 05:12:30.000000000","message":"unused import","commit_id":"334048903244eb1cb58106144d8e6d3d6fe22cd5"},{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"unresolved":false,"context_lines":[{"line_number":448,"context_line":"        orig_net \u003d super(QuantumRestProxyV2, self).get_network(context, net_id)"},{"line_number":449,"context_line":"        tenant_id \u003d orig_net[\"tenant_id\"]"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"        filter \u003d {\u0027network_id\u0027: [net_id]}"},{"line_number":452,"context_line":"        ports \u003d self.get_ports(context, filters\u003dfilter)"},{"line_number":453,"context_line":""},{"line_number":454,"context_line":"        # check if there are any tenant owned ports in-use"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FHeQ%3D","line":451,"updated":"2013-02-06 18:08:50.000000000","message":"filter is needed?","commit_id":"daa0172b6225c119a0915dff337e9a8a795ce6a6"},{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"unresolved":false,"context_lines":[{"line_number":471,"context_line":"        except RemoteRestError as e:"},{"line_number":472,"context_line":"            LOG.error(_(\"QuantumRestProxyV2: Unable to update remote \""},{"line_number":473,"context_line":"                        \"network: %s\"), e.message)"},{"line_number":474,"context_line":"            raise"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"    def create_port(self, context, port):"},{"line_number":477,"context_line":"        \"\"\"Create a port, which is a connection point of a device"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FHec%3D","line":474,"updated":"2013-02-06 18:08:50.000000000","message":"RemoteRestError looks always return 500 for client.\nHowever it could be 404 or 400 in remote. Is this correct behavior?","commit_id":"daa0172b6225c119a0915dff337e9a8a795ce6a6"},{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"unresolved":false,"context_lines":[{"line_number":508,"context_line":"                    self).get_network(context, new_port[\"network_id\"])"},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"        if self.addmetaserverroute:"},{"line_number":511,"context_line":"            if new_port[\u0027device_owner\u0027] \u003d\u003d \u0027network:dhcp\u0027:"},{"line_number":512,"context_line":"                destination \u003d METADATA_SERVER_IP + \u0027/32\u0027"},{"line_number":513,"context_line":"                self._add_host_route(context, destination, new_port)"},{"line_number":514,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FHfA%3D","line":511,"updated":"2013-02-06 18:08:50.000000000","message":"network:dhcp should be constraint","commit_id":"daa0172b6225c119a0915dff337e9a8a795ce6a6"},{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"unresolved":false,"context_lines":[{"line_number":511,"context_line":"            if new_port[\u0027device_owner\u0027] \u003d\u003d \u0027network:dhcp\u0027:"},{"line_number":512,"context_line":"                destination \u003d METADATA_SERVER_IP + \u0027/32\u0027"},{"line_number":513,"context_line":"                self._add_host_route(context, destination, new_port)"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"        # create on networl ctrl"},{"line_number":516,"context_line":"        try:"},{"line_number":517,"context_line":"            resource \u003d PORT_RESOURCE_PATH % (net[\"tenant_id\"], net[\"id\"])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FHew%3D","line":514,"updated":"2013-02-06 18:08:50.000000000","message":"How this is related with l3 support?","commit_id":"daa0172b6225c119a0915dff337e9a8a795ce6a6"},{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"unresolved":false,"context_lines":[{"line_number":632,"context_line":""},{"line_number":633,"context_line":"        ret_val \u003d super(QuantumRestProxyV2, self).delete_port(context,"},{"line_number":634,"context_line":"                                                              port_id)"},{"line_number":635,"context_line":"        return ret_val"},{"line_number":636,"context_line":""},{"line_number":637,"context_line":"    def _delete_port(self, context, port_id):"},{"line_number":638,"context_line":"        # Delete from DB"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FHeU%3D","line":635,"updated":"2013-02-06 18:08:50.000000000","message":"ret_val is needed?","commit_id":"daa0172b6225c119a0915dff337e9a8a795ce6a6"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"0697a6fe849ae36fb398848d332dc76578338815","unresolved":false,"context_lines":[{"line_number":1129,"context_line":"        network \u003d self._map_state_and_status(network)"},{"line_number":1130,"context_line":"        subnets \u003d self._get_all_subnets_json_for_network(network[\u0027id\u0027])"},{"line_number":1131,"context_line":"        network[\u0027subnets\u0027] \u003d subnets"},{"line_number":1132,"context_line":"        gateway_ip \u003d None"},{"line_number":1133,"context_line":""},{"line_number":1134,"context_line":"        if subnets:"},{"line_number":1135,"context_line":"            for subnet in subnets:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FEYQ%3D","line":1132,"updated":"2013-02-08 04:13:50.000000000","message":"Consider replacing 1132-42 with Python\u0027s for:/else:\n\nfor subnet in (subnets or []):\n    if subnet[\u0027gateway_ip\u0027]:\n        network[\u0027gateway\u0027] \u003d subnet[\u0027gateway_ip\u0027]\n        break\nelse:\n    network[\u0027gateway\u0027] \u003d \u0027\u0027","commit_id":"82176efa932b222ef97b8e1ad9e81e08fdf7bc9d"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"0697a6fe849ae36fb398848d332dc76578338815","unresolved":false,"context_lines":[{"line_number":1167,"context_line":""},{"line_number":1168,"context_line":"    def _map_state_and_status(self, resource):"},{"line_number":1169,"context_line":"        resource \u003d copy.copy(resource)"},{"line_number":1170,"context_line":"        if \u0027admin_state_up\u0027 in resource:"},{"line_number":1171,"context_line":"            if resource[\u0027admin_state_up\u0027]:"},{"line_number":1172,"context_line":"                resource[\u0027state\u0027] \u003d \u0027UP\u0027"},{"line_number":1173,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FEYk%3D","line":1170,"updated":"2013-02-08 04:13:50.000000000","message":"Consider replacing 1170-1177 with:\n\nresource[\u0027state\u0027] \u003d (\n    \u0027UP\u0027 if resource.pop(\u0027admin_state_up\u0027, True) else \u0027DOWN\u0027\n)","commit_id":"82176efa932b222ef97b8e1ad9e81e08fdf7bc9d"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"0697a6fe849ae36fb398848d332dc76578338815","unresolved":false,"context_lines":[{"line_number":1182,"context_line":"        return resource"},{"line_number":1183,"context_line":""},{"line_number":1184,"context_line":"    def _warn_on_state_status(self, resource):"},{"line_number":1185,"context_line":"        if \u0027admin_state_up\u0027 in resource:"},{"line_number":1186,"context_line":"            if resource[\u0027admin_state_up\u0027] is False:"},{"line_number":1187,"context_line":"                LOG.warning(_(\"Setting admin_state_up\u003dFalse is not supported\""},{"line_number":1188,"context_line":"                              \" in this plugin version. Ignoring setting.\"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FEYc%3D","line":1185,"updated":"2013-02-08 04:13:50.000000000","message":"Consider simplifying 1185-1186:\n\nif resource.get(\u0027admin_state_up\u0027, True) is False:","commit_id":"82176efa932b222ef97b8e1ad9e81e08fdf7bc9d"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":83,"context_line":"    cfg.IntOpt(\u0027servertimeout\u0027, default\u003d10,"},{"line_number":84,"context_line":"               help\u003d_(\"Maximum number of seconds to wait for proxy request \""},{"line_number":85,"context_line":"                      \"to connect and complete.\")),"},{"line_number":86,"context_line":"    cfg.StrOpt(\u0027quantumid\u0027, default\u003d\u0027Quantum\u0027,"},{"line_number":87,"context_line":"               help\u003d_(\"User defined identifier for this Quantum deployment\")),"},{"line_number":88,"context_line":"    cfg.BoolOpt(\u0027addmetaserverroute\u0027, default\u003dTrue,"},{"line_number":89,"context_line":"                help\u003d_(\"Flag to decide if a route to the metadata server \""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FBqg%3D","line":86,"updated":"2013-02-11 08:12:17.000000000","message":"does this need to be unique? have you considered using the utility function:\n\ndef get_hostname():\n    return socket.getfqdn()","commit_id":"ddc5354c7aa66bfadb299107ecddc31c70e6b874"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":83,"context_line":"    cfg.IntOpt(\u0027servertimeout\u0027, default\u003d10,"},{"line_number":84,"context_line":"               help\u003d_(\"Maximum number of seconds to wait for proxy request \""},{"line_number":85,"context_line":"                      \"to connect and complete.\")),"},{"line_number":86,"context_line":"    cfg.StrOpt(\u0027quantumid\u0027, default\u003d\u0027Quantum\u0027,"},{"line_number":87,"context_line":"               help\u003d_(\"User defined identifier for this Quantum deployment\")),"},{"line_number":88,"context_line":"    cfg.BoolOpt(\u0027addmetaserverroute\u0027, default\u003dTrue,"},{"line_number":89,"context_line":"                help\u003d_(\"Flag to decide if a route to the metadata server \""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9jM%3D","line":86,"in_reply_to":"AAAAM3%2F%2FBqg%3D","updated":"2013-02-13 05:08:20.000000000","message":"Good suggestion. Done.","commit_id":"ddc5354c7aa66bfadb299107ecddc31c70e6b874"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":85,"context_line":"                      \"to connect and complete.\")),"},{"line_number":86,"context_line":"    cfg.StrOpt(\u0027quantumid\u0027, default\u003d\u0027Quantum\u0027,"},{"line_number":87,"context_line":"               help\u003d_(\"User defined identifier for this Quantum deployment\")),"},{"line_number":88,"context_line":"    cfg.BoolOpt(\u0027addmetaserverroute\u0027, default\u003dTrue,"},{"line_number":89,"context_line":"                help\u003d_(\"Flag to decide if a route to the metadata server \""},{"line_number":90,"context_line":"                       \"shoulde be injected in the VM\")),"},{"line_number":91,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FBqc%3D","line":88,"updated":"2013-02-11 08:12:17.000000000","message":"any reason not to use _ to make it more user friendly?","commit_id":"ddc5354c7aa66bfadb299107ecddc31c70e6b874"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":85,"context_line":"                      \"to connect and complete.\")),"},{"line_number":86,"context_line":"    cfg.StrOpt(\u0027quantumid\u0027, default\u003d\u0027Quantum\u0027,"},{"line_number":87,"context_line":"               help\u003d_(\"User defined identifier for this Quantum deployment\")),"},{"line_number":88,"context_line":"    cfg.BoolOpt(\u0027addmetaserverroute\u0027, default\u003dTrue,"},{"line_number":89,"context_line":"                help\u003d_(\"Flag to decide if a route to the metadata server \""},{"line_number":90,"context_line":"                       \"shoulde be injected in the VM\")),"},{"line_number":91,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9jE%3D","line":88,"in_reply_to":"AAAAM3%2F%2FBqc%3D","updated":"2013-02-13 05:08:20.000000000","message":"Done","commit_id":"ddc5354c7aa66bfadb299107ecddc31c70e6b874"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":87,"context_line":"               help\u003d_(\"User defined identifier for this Quantum deployment\")),"},{"line_number":88,"context_line":"    cfg.BoolOpt(\u0027addmetaserverroute\u0027, default\u003dTrue,"},{"line_number":89,"context_line":"                help\u003d_(\"Flag to decide if a route to the metadata server \""},{"line_number":90,"context_line":"                       \"shoulde be injected in the VM\")),"},{"line_number":91,"context_line":"]"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FBqo%3D","line":90,"updated":"2013-02-11 08:12:17.000000000","message":"typo - shoulde","commit_id":"ddc5354c7aa66bfadb299107ecddc31c70e6b874"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":87,"context_line":"               help\u003d_(\"User defined identifier for this Quantum deployment\")),"},{"line_number":88,"context_line":"    cfg.BoolOpt(\u0027addmetaserverroute\u0027, default\u003dTrue,"},{"line_number":89,"context_line":"                help\u003d_(\"Flag to decide if a route to the metadata server \""},{"line_number":90,"context_line":"                       \"shoulde be injected in the VM\")),"},{"line_number":91,"context_line":"]"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9jA%3D","line":90,"in_reply_to":"AAAAM3%2F%2FBqo%3D","updated":"2013-02-13 05:08:20.000000000","message":"Done","commit_id":"ddc5354c7aa66bfadb299107ecddc31c70e6b874"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":279,"context_line":"class QuantumRestProxyV2(db_base_plugin_v2.QuantumDbPluginV2,"},{"line_number":280,"context_line":"                         l3_db.L3_NAT_db_mixin):"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"    supported_extension_aliases \u003d [\"router\"]"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"    def __init__(self):"},{"line_number":285,"context_line":"        LOG.info(_(\u0027QuantumRestProxy: Starting plugin. Version\u003d%s\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FBqY%3D","line":282,"updated":"2013-02-11 08:12:17.000000000","message":"Nova is making use of the vif bidning type. I suggest that you should also take care of that at some time or another (not part of this patch set :))","commit_id":"ddc5354c7aa66bfadb299107ecddc31c70e6b874"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":279,"context_line":"class QuantumRestProxyV2(db_base_plugin_v2.QuantumDbPluginV2,"},{"line_number":280,"context_line":"                         l3_db.L3_NAT_db_mixin):"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"    supported_extension_aliases \u003d [\"router\"]"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"    def __init__(self):"},{"line_number":285,"context_line":"        LOG.info(_(\u0027QuantumRestProxy: Starting plugin. Version\u003d%s\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9i8%3D","line":282,"in_reply_to":"AAAAM3%2F%2FBqY%3D","updated":"2013-02-13 05:08:20.000000000","message":"Thanks for heads up. Yes, I have created a bug for this a while back. Wanted to get this in first.","commit_id":"ddc5354c7aa66bfadb299107ecddc31c70e6b874"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":368,"context_line":"                \"network\": mapped_network"},{"line_number":369,"context_line":"            }"},{"line_number":370,"context_line":"            ret \u003d self.servers.post(resource, data)"},{"line_number":371,"context_line":"            if not self.servers.action_success(ret):"},{"line_number":372,"context_line":"                raise RemoteRestError(ret[2])"},{"line_number":373,"context_line":"        except RemoteRestError as e:"},{"line_number":374,"context_line":"            LOG.error(_(\"QuantumRestProxyV2:Unable to create remote \""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FBqQ%3D","line":371,"updated":"2013-02-11 08:12:17.000000000","message":"do you want to undo the network creation?","commit_id":"ddc5354c7aa66bfadb299107ecddc31c70e6b874"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":368,"context_line":"                \"network\": mapped_network"},{"line_number":369,"context_line":"            }"},{"line_number":370,"context_line":"            ret \u003d self.servers.post(resource, data)"},{"line_number":371,"context_line":"            if not self.servers.action_success(ret):"},{"line_number":372,"context_line":"                raise RemoteRestError(ret[2])"},{"line_number":373,"context_line":"        except RemoteRestError as e:"},{"line_number":374,"context_line":"            LOG.error(_(\"QuantumRestProxyV2:Unable to create remote \""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9i4%3D","line":371,"in_reply_to":"AAAAM3%2F%2FBqQ%3D","updated":"2013-02-13 05:08:20.000000000","message":"Actually it is happening in the except block below.","commit_id":"ddc5354c7aa66bfadb299107ecddc31c70e6b874"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"3aa0db50415aa725d2d1fefb7a32d60be4ce0616","unresolved":false,"context_lines":[{"line_number":775,"context_line":"        tenant_id \u003d self._get_tenant_id_for_create(context, router[\"router\"])"},{"line_number":776,"context_line":""},{"line_number":777,"context_line":"        # create router in DB"},{"line_number":778,"context_line":"        new_router \u003d super(QuantumRestProxyV2, self).create_router(context,"},{"line_number":779,"context_line":"                                                                   router)"},{"line_number":780,"context_line":""},{"line_number":781,"context_line":"        # create router on the network controller"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FACo%3D","line":778,"updated":"2013-02-11 23:07:59.000000000","message":"If you wrap 778 to 790 in a transaction you don\u0027t need to do the except RemoteRestError as e and the delete from the database.","commit_id":"ddc5354c7aa66bfadb299107ecddc31c70e6b874"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":775,"context_line":"        tenant_id \u003d self._get_tenant_id_for_create(context, router[\"router\"])"},{"line_number":776,"context_line":""},{"line_number":777,"context_line":"        # create router in DB"},{"line_number":778,"context_line":"        new_router \u003d super(QuantumRestProxyV2, self).create_router(context,"},{"line_number":779,"context_line":"                                                                   router)"},{"line_number":780,"context_line":""},{"line_number":781,"context_line":"        # create router on the network controller"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9i0%3D","line":778,"in_reply_to":"AAAAM3%2F%2FACo%3D","updated":"2013-02-13 05:08:20.000000000","message":"Good suggestion. If you don\u0027t mind I will attempt that enhancement as a separate patch, since there are many other places where this could be done in this module (including older code).","commit_id":"ddc5354c7aa66bfadb299107ecddc31c70e6b874"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"3aa0db50415aa725d2d1fefb7a32d60be4ce0616","unresolved":false,"context_lines":[{"line_number":804,"context_line":""},{"line_number":805,"context_line":"        self._warn_on_state_status(router[\u0027router\u0027])"},{"line_number":806,"context_line":""},{"line_number":807,"context_line":"        orig_router \u003d super(QuantumRestProxyV2, self).get_router(context,"},{"line_number":808,"context_line":"                                                                 router_id)"},{"line_number":809,"context_line":"        tenant_id \u003d orig_router[\"tenant_id\"]"},{"line_number":810,"context_line":"        new_router \u003d super(QuantumRestProxyV2, self).update_router(context,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FACk%3D","line":807,"updated":"2013-02-11 23:07:59.000000000","message":"ditto comment as above.","commit_id":"ddc5354c7aa66bfadb299107ecddc31c70e6b874"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":804,"context_line":""},{"line_number":805,"context_line":"        self._warn_on_state_status(router[\u0027router\u0027])"},{"line_number":806,"context_line":""},{"line_number":807,"context_line":"        orig_router \u003d super(QuantumRestProxyV2, self).get_router(context,"},{"line_number":808,"context_line":"                                                                 router_id)"},{"line_number":809,"context_line":"        tenant_id \u003d orig_router[\"tenant_id\"]"},{"line_number":810,"context_line":"        new_router \u003d super(QuantumRestProxyV2, self).update_router(context,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9iw%3D","line":807,"in_reply_to":"AAAAM3%2F%2FACk%3D","updated":"2013-02-13 05:08:20.000000000","message":"Ditto.","commit_id":"ddc5354c7aa66bfadb299107ecddc31c70e6b874"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":1170,"context_line":""},{"line_number":1171,"context_line":"    def _warn_on_state_status(self, resource):"},{"line_number":1172,"context_line":"        if resource.get(\u0027admin_state_up\u0027, True) is False:"},{"line_number":1173,"context_line":"            LOG.warning(_(\"Setting admin_state_up\u003dFalse is not supported\""},{"line_number":1174,"context_line":"                          \" in this plugin version. Ignoring setting.\"))"},{"line_number":1175,"context_line":""},{"line_number":1176,"context_line":"        if \u0027status\u0027 in resource:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FBp8%3D","line":1173,"updated":"2013-02-11 08:12:17.000000000","message":"Maybe at least consider printing the resource.","commit_id":"ddc5354c7aa66bfadb299107ecddc31c70e6b874"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":1170,"context_line":""},{"line_number":1171,"context_line":"    def _warn_on_state_status(self, resource):"},{"line_number":1172,"context_line":"        if resource.get(\u0027admin_state_up\u0027, True) is False:"},{"line_number":1173,"context_line":"            LOG.warning(_(\"Setting admin_state_up\u003dFalse is not supported\""},{"line_number":1174,"context_line":"                          \" in this plugin version. Ignoring setting.\"))"},{"line_number":1175,"context_line":""},{"line_number":1176,"context_line":"        if \u0027status\u0027 in resource:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9is%3D","line":1173,"in_reply_to":"AAAAM3%2F%2FBp8%3D","updated":"2013-02-13 05:08:20.000000000","message":"Done","commit_id":"ddc5354c7aa66bfadb299107ecddc31c70e6b874"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":89,"context_line":"    cfg.BoolOpt(\u0027addmetaserverroute\u0027, default\u003dTrue,"},{"line_number":90,"context_line":"                help\u003d_(\"Flag to decide if a route to the metadata server \""},{"line_number":91,"context_line":"                       \"should be injected into the VM\")),"},{"line_number":92,"context_line":"]"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"cfg.CONF.register_opts(restproxy_opts, \"RESTPROXY\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B6s4%3D","line":92,"updated":"2013-02-14 18:31:32.000000000","message":"Would it be possible to have a _ in the configuration variable names. It makes it a lot easier to read and understand.\nquantumid - quantum_id\naddmetaserverroute - add_meta_server_route\nNot sure if others feel the same here (same with the the existing vars)","commit_id":"d4451f6150d8ce07ccf97064e47a17cb39e29dc9"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":89,"context_line":"    cfg.BoolOpt(\u0027addmetaserverroute\u0027, default\u003dTrue,"},{"line_number":90,"context_line":"                help\u003d_(\"Flag to decide if a route to the metadata server \""},{"line_number":91,"context_line":"                       \"should be injected into the VM\")),"},{"line_number":92,"context_line":"]"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"cfg.CONF.register_opts(restproxy_opts, \"RESTPROXY\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B6H0%3D","line":92,"in_reply_to":"AAAAM3%2F%2B6s4%3D","updated":"2013-02-14 19:46:29.000000000","message":"Done. Sorry I did not get your comment the first time around.","commit_id":"d4451f6150d8ce07ccf97064e47a17cb39e29dc9"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":280,"context_line":"class QuantumRestProxyV2(db_base_plugin_v2.QuantumDbPluginV2,"},{"line_number":281,"context_line":"                         l3_db.L3_NAT_db_mixin):"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"    supported_extension_aliases \u003d [\"router\"]"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"    def __init__(self):"},{"line_number":286,"context_line":"        LOG.info(_(\u0027QuantumRestProxy: Starting plugin. Version\u003d%s\u0027),"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B6s0%3D","line":283,"updated":"2013-02-14 18:31:32.000000000","message":"hope that the port binding is on your radare (this can affect the noa side of things)","commit_id":"d4451f6150d8ce07ccf97064e47a17cb39e29dc9"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":280,"context_line":"class QuantumRestProxyV2(db_base_plugin_v2.QuantumDbPluginV2,"},{"line_number":281,"context_line":"                         l3_db.L3_NAT_db_mixin):"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"    supported_extension_aliases \u003d [\"router\"]"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"    def __init__(self):"},{"line_number":286,"context_line":"        LOG.info(_(\u0027QuantumRestProxy: Starting plugin. Version\u003d%s\u0027),"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B6Hs%3D","line":283,"in_reply_to":"AAAAM3%2F%2B6s0%3D","updated":"2013-02-14 19:46:29.000000000","message":"Thanks for the heads up. Yes, I want to submit that shortly.","commit_id":"d4451f6150d8ce07ccf97064e47a17cb39e29dc9"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":633,"context_line":""},{"line_number":634,"context_line":"        super(QuantumRestProxyV2, self).delete_port(context, port_id)"},{"line_number":635,"context_line":""},{"line_number":636,"context_line":"    def _delete_port(self, context, port_id):"},{"line_number":637,"context_line":"        # Delete from DB"},{"line_number":638,"context_line":"        port \u003d super(QuantumRestProxyV2, self).get_port(context, port_id)"},{"line_number":639,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B6p0%3D","line":636,"updated":"2013-02-14 18:31:32.000000000","message":"Who calls this method?","commit_id":"d4451f6150d8ce07ccf97064e47a17cb39e29dc9"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":633,"context_line":""},{"line_number":634,"context_line":"        super(QuantumRestProxyV2, self).delete_port(context, port_id)"},{"line_number":635,"context_line":""},{"line_number":636,"context_line":"    def _delete_port(self, context, port_id):"},{"line_number":637,"context_line":"        # Delete from DB"},{"line_number":638,"context_line":"        port \u003d super(QuantumRestProxyV2, self).get_port(context, port_id)"},{"line_number":639,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B6HY%3D","line":636,"in_reply_to":"AAAAM3%2F%2B6p0%3D","updated":"2013-02-14 19:46:29.000000000","message":"This is overriding the parent\u0027s _delete_port, so the parent\u0027s delete_port is calling it.","commit_id":"d4451f6150d8ce07ccf97064e47a17cb39e29dc9"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"restproxy_opts \u003d ["},{"line_number":75,"context_line":"    cfg.StrOpt(\u0027servers\u0027, default\u003d\u0027localhost:8800\u0027,"},{"line_number":76,"context_line":"               help\u003d_(\"A comma separated list of servers and port numbers \""},{"line_number":77,"context_line":"                      \"to proxy request to.\")),"},{"line_number":78,"context_line":"    cfg.StrOpt(\u0027server_auth\u0027, default\u003d\u0027username:password\u0027, secret\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B5xw%3D","line":75,"updated":"2013-02-14 23:48:05.000000000","message":"in the ini file the default port is 8080, I know these are just default values but wondering why the port is different?","commit_id":"b2196559b0cdf1dfe540cdc06d174f0088da6312"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"restproxy_opts \u003d ["},{"line_number":75,"context_line":"    cfg.StrOpt(\u0027servers\u0027, default\u003d\u0027localhost:8800\u0027,"},{"line_number":76,"context_line":"               help\u003d_(\"A comma separated list of servers and port numbers \""},{"line_number":77,"context_line":"                      \"to proxy request to.\")),"},{"line_number":78,"context_line":"    cfg.StrOpt(\u0027server_auth\u0027, default\u003d\u0027username:password\u0027, secret\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B5Qc%3D","line":75,"in_reply_to":"AAAAM3%2F%2B5xw%3D","updated":"2013-02-15 07:02:26.000000000","message":"Test controller uses this port, real controller uses the other port.","commit_id":"b2196559b0cdf1dfe540cdc06d174f0088da6312"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":766,"context_line":"            self._send_update_network(orig_net)"},{"line_number":767,"context_line":"        except RemoteRestError as e:"},{"line_number":768,"context_line":"            # TODO (Sumit): rollback deletion of subnet"},{"line_number":769,"context_line":"            raise"},{"line_number":770,"context_line":""},{"line_number":771,"context_line":"    def create_router(self, context, router):"},{"line_number":772,"context_line":"        LOG.debug(_(\"QuantumRestProxyV2: create_router() called\"))"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B5xg%3D","line":769,"updated":"2013-02-14 23:48:05.000000000","message":"This is an important TODO, would you consider its implementation before merging this code?","commit_id":"b2196559b0cdf1dfe540cdc06d174f0088da6312"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":766,"context_line":"            self._send_update_network(orig_net)"},{"line_number":767,"context_line":"        except RemoteRestError as e:"},{"line_number":768,"context_line":"            # TODO (Sumit): rollback deletion of subnet"},{"line_number":769,"context_line":"            raise"},{"line_number":770,"context_line":""},{"line_number":771,"context_line":"    def create_router(self, context, router):"},{"line_number":772,"context_line":"        LOG.debug(_(\"QuantumRestProxyV2: create_router() called\"))"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B5QU%3D","line":769,"in_reply_to":"AAAAM3%2F%2B5xg%3D","updated":"2013-02-15 07:02:26.000000000","message":"This rollback is not as critical, hence left for a future enhancement.","commit_id":"b2196559b0cdf1dfe540cdc06d174f0088da6312"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":945,"context_line":"                raise RemoteRestError(ret[2])"},{"line_number":946,"context_line":"        except RemoteRestError as e:"},{"line_number":947,"context_line":"            LOG.error(_(\"QuantumRestProxyV2:Unable to delete remote intf: \""},{"line_number":948,"context_line":"                        \"%s\"), e.message)"},{"line_number":949,"context_line":"            raise"},{"line_number":950,"context_line":""},{"line_number":951,"context_line":"        # return new interface"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B5xU%3D","line":948,"updated":"2013-02-14 23:48:05.000000000","message":"Is there a roll back operation in case controller fails?","commit_id":"b2196559b0cdf1dfe540cdc06d174f0088da6312"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":945,"context_line":"                raise RemoteRestError(ret[2])"},{"line_number":946,"context_line":"        except RemoteRestError as e:"},{"line_number":947,"context_line":"            LOG.error(_(\"QuantumRestProxyV2:Unable to delete remote intf: \""},{"line_number":948,"context_line":"                        \"%s\"), e.message)"},{"line_number":949,"context_line":"            raise"},{"line_number":950,"context_line":""},{"line_number":951,"context_line":"        # return new interface"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B5QQ%3D","line":948,"in_reply_to":"AAAAM3%2F%2B5xU%3D","updated":"2013-02-15 07:02:26.000000000","message":"This rollback is not as critical, hence left for a future enhancement.","commit_id":"b2196559b0cdf1dfe540cdc06d174f0088da6312"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":1013,"context_line":"            self._send_update_network(orig_net)"},{"line_number":1014,"context_line":"        except RemoteRestError as e:"},{"line_number":1015,"context_line":"            # TODO(Sumit): rollback deletion of floating IP"},{"line_number":1016,"context_line":"            raise"},{"line_number":1017,"context_line":""},{"line_number":1018,"context_line":"    def _send_all_data(self):"},{"line_number":1019,"context_line":"        \"\"\"Pushes all data to network ctrl (networks/ports, ports/attachments)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B5xM%3D","line":1016,"updated":"2013-02-14 23:48:05.000000000","message":"ditto","commit_id":"b2196559b0cdf1dfe540cdc06d174f0088da6312"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":1013,"context_line":"            self._send_update_network(orig_net)"},{"line_number":1014,"context_line":"        except RemoteRestError as e:"},{"line_number":1015,"context_line":"            # TODO(Sumit): rollback deletion of floating IP"},{"line_number":1016,"context_line":"            raise"},{"line_number":1017,"context_line":""},{"line_number":1018,"context_line":"    def _send_all_data(self):"},{"line_number":1019,"context_line":"        \"\"\"Pushes all data to network ctrl (networks/ports, ports/attachments)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B5QM%3D","line":1016,"in_reply_to":"AAAAM3%2F%2B5xM%3D","updated":"2013-02-15 07:02:26.000000000","message":"This rollback is not as critical, hence left for a future enhancement.","commit_id":"b2196559b0cdf1dfe540cdc06d174f0088da6312"}],"quantum/plugins/bigswitch/vcsversion.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":6,"context_line":"QUANTUMRESTPROXY_VERSION \u003d [\u00272013\u0027, \u00271\u0027, None]"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"FINAL \u003d False   # This becomes true at Release Candidate time"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FBps%3D","line":9,"updated":"2013-02-11 08:12:17.000000000","message":"Does tis mean towards end of G version you will set this as True?","commit_id":"ddc5354c7aa66bfadb299107ecddc31c70e6b874"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"unresolved":false,"context_lines":[{"line_number":6,"context_line":"QUANTUMRESTPROXY_VERSION \u003d [\u00272013\u0027, \u00271\u0027, None]"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"FINAL \u003d False   # This becomes true at Release Candidate time"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9ig%3D","line":9,"in_reply_to":"AAAAM3%2F%2FBps%3D","updated":"2013-02-13 05:08:20.000000000","message":"Good point. The thinking here is to turn this to True when both the plugin and the backend (controller) are in sync as release candidates. Ideally should happen for G version.","commit_id":"ddc5354c7aa66bfadb299107ecddc31c70e6b874"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":1,"context_line":"version_info \u003d {\u0027branch_nick\u0027: u\u0027quantum/trunk\u0027,"},{"line_number":2,"context_line":"                \u0027revision_id\u0027: u\u00271\u0027,"},{"line_number":3,"context_line":"                \u0027revno\u0027: 0}"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B4dc%3D","line":1,"updated":"2013-02-15 17:18:47.000000000","message":"No Copyright notice","commit_id":"b2196559b0cdf1dfe540cdc06d174f0088da6312"}],"quantum/tests/unit/bigswitch/test_router_db.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"0697a6fe849ae36fb398848d332dc76578338815","unresolved":false,"context_lines":[{"line_number":18,"context_line":"# @author: Sumit Naiksatam, sumitnaiksatam@gmail.com"},{"line_number":19,"context_line":"#"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"import logging"},{"line_number":22,"context_line":"import os"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"import ast"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FIVg%3D","line":21,"updated":"2013-02-06 05:12:30.000000000","message":"this is unused","commit_id":"334048903244eb1cb58106144d8e6d3d6fe22cd5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"0697a6fe849ae36fb398848d332dc76578338815","unresolved":false,"context_lines":[{"line_number":21,"context_line":"import logging"},{"line_number":22,"context_line":"import os"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"import ast"},{"line_number":25,"context_line":"import json"},{"line_number":26,"context_line":"from mock import patch"},{"line_number":27,"context_line":"from webob import exc"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FIVk%3D","line":24,"updated":"2013-02-06 05:12:30.000000000","message":"unused import","commit_id":"334048903244eb1cb58106144d8e6d3d6fe22cd5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"0697a6fe849ae36fb398848d332dc76578338815","unresolved":false,"context_lines":[{"line_number":22,"context_line":"import os"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"import ast"},{"line_number":25,"context_line":"import json"},{"line_number":26,"context_line":"from mock import patch"},{"line_number":27,"context_line":"from webob import exc"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FIVo%3D","line":25,"updated":"2013-02-06 05:12:30.000000000","message":"unused import","commit_id":"334048903244eb1cb58106144d8e6d3d6fe22cd5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"0697a6fe849ae36fb398848d332dc76578338815","unresolved":false,"context_lines":[{"line_number":41,"context_line":"from quantum.tests.unit.bigswitch import test_restproxy_plugin"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"schema_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FIVc%3D","line":44,"updated":"2013-02-06 05:12:30.000000000","message":"this is unused","commit_id":"334048903244eb1cb58106144d8e6d3d6fe22cd5"},{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"unresolved":false,"context_lines":[{"line_number":118,"context_line":"        config.parse(args\u003dargs)"},{"line_number":119,"context_line":"        self.plugin_obj \u003d QuantumManager.get_plugin()"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def test_router_remove_router_interface_wrong_subnet_returns_409(self):"},{"line_number":122,"context_line":"        with self.router() as r:"},{"line_number":123,"context_line":"            with self.subnet() as s:"},{"line_number":124,"context_line":"                with self.subnet(cidr\u003d\u002710.0.10.0/24\u0027) as s1:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FHeE%3D","line":121,"updated":"2013-02-06 18:08:50.000000000","message":"This test looks generic one, so we should have this on test_l3_plugin.L3NatDBTestCase","commit_id":"daa0172b6225c119a0915dff337e9a8a795ce6a6"},{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"unresolved":false,"context_lines":[{"line_number":139,"context_line":"                                                      p[\u0027port\u0027][\u0027id\u0027])"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def test_router_remove_router_interface_wrong_port_returns_404(self):"},{"line_number":142,"context_line":"        with self.router() as r:"},{"line_number":143,"context_line":"            with self.subnet() as s:"},{"line_number":144,"context_line":"                with self.port(subnet\u003ds, no_delete\u003dTrue) as p:"},{"line_number":145,"context_line":"                    self._router_interface_action(\u0027add\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FHd8%3D","line":142,"updated":"2013-02-06 18:08:50.000000000","message":"ditto","commit_id":"daa0172b6225c119a0915dff337e9a8a795ce6a6"},{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"unresolved":false,"context_lines":[{"line_number":162,"context_line":"                    # remove extra port created"},{"line_number":163,"context_line":"                    self._delete(\u0027ports\u0027, p2[\u0027port\u0027][\u0027id\u0027])"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    def test_create_floatingip_no_ext_gateway_return_404(self):"},{"line_number":166,"context_line":"        with self.subnet(cidr\u003d\u002710.0.10.0/24\u0027) as public_sub:"},{"line_number":167,"context_line":"            self._set_net_external(public_sub[\u0027subnet\u0027][\u0027network_id\u0027])"},{"line_number":168,"context_line":"            with self.port() as private_port:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FHd4%3D","line":165,"updated":"2013-02-06 18:08:50.000000000","message":"ditto","commit_id":"daa0172b6225c119a0915dff337e9a8a795ce6a6"},{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"unresolved":false,"context_lines":[{"line_number":173,"context_line":"                        port_id\u003dprivate_port[\u0027port\u0027][\u0027id\u0027])"},{"line_number":174,"context_line":"                    self.assertEqual(res.status_int, exc.HTTPNotFound.code)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def test_router_update_gateway(self):"},{"line_number":177,"context_line":"        with self.router() as r:"},{"line_number":178,"context_line":"            with self.subnet() as s1:"},{"line_number":179,"context_line":"                with self.subnet(cidr\u003d\u002710.0.10.0/24\u0027) as s2:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FHd0%3D","line":176,"updated":"2013-02-06 18:08:50.000000000","message":"ditto","commit_id":"daa0172b6225c119a0915dff337e9a8a795ce6a6"},{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"unresolved":false,"context_lines":[{"line_number":76,"context_line":"        return []"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"class RouterDBTestCase(test_l3_plugin.L3NatDBTestCase):"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def setUp(self):"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FHUU%3D","line":79,"updated":"2013-02-06 19:12:51.000000000","message":"This class should implement tear down such as test_l3_plugin","commit_id":"82176efa932b222ef97b8e1ad9e81e08fdf7bc9d"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":251,"context_line":"    def test_send_data(self):"},{"line_number":252,"context_line":"        fmt \u003d \u0027json\u0027"},{"line_number":253,"context_line":"        plugin_obj \u003d QuantumManager.get_plugin()"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"        with self.router() as r:"},{"line_number":256,"context_line":"            r_id \u003d r[\u0027router\u0027][\u0027id\u0027]"},{"line_number":257,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B4dE%3D","line":254,"updated":"2013-02-15 17:18:47.000000000","message":"(just suggestion)\nIf you use contextlib.netsted, you can avoid deep nesting.\nThis library is useful for such case.","commit_id":"b2196559b0cdf1dfe540cdc06d174f0088da6312"}]}
