)]}'
{"neutron/plugins/cisco/db/network_db_v2.py":[{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"2b2ca0cc8cf815d5a859dfad6fd13a7af5692391","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from neutron.plugins.openvswitch import ovs_models_v2"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def get_all_qoss(tenant_id):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2Fj68%3D","line":33,"updated":"2013-07-29 06:38:48.000000000","message":"shouldn\u0027t be removed some unit tests?","commit_id":"38e769c50ed9954b306c9c4e750ea9cff25035b4"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"f1b1272bb610f55cb94147b514341bd9a63f56ec","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from neutron.plugins.openvswitch import ovs_models_v2"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def get_all_qoss(tenant_id):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2Fjqc%3D","line":33,"in_reply_to":"AAAAQn%2F%2Fj68%3D","updated":"2013-07-29 08:57:32.000000000","message":"apparently there were no tests for these functions","commit_id":"38e769c50ed9954b306c9c4e750ea9cff25035b4"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"b3c3a35a81a923267773c64f8ac5bc158cb786a5","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from neutron.plugins.openvswitch import ovs_models_v2"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def get_all_qoss(tenant_id):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2FPIY%3D","line":33,"in_reply_to":"AAAAQn%2F%2FjNE%3D","updated":"2013-08-04 23:27:03.000000000","message":"Done","commit_id":"38e769c50ed9954b306c9c4e750ea9cff25035b4"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"216415f42d7a81437b5100b2257bfa56bbeb0068","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from neutron.plugins.openvswitch import ovs_models_v2"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def get_all_qoss(tenant_id):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2FjNE%3D","line":33,"in_reply_to":"AAAAQn%2F%2Fjqc%3D","updated":"2013-07-29 12:55:32.000000000","message":"I have some bugs open to improve UT coverage. Maybe I can do something for this module here. Let me give it a try.","commit_id":"38e769c50ed9954b306c9c4e750ea9cff25035b4"}],"neutron/plugins/cisco/db/network_models_v2.py":[{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"cdadeebe8a014cd30bc4c6180ab3849f16adcf21","unresolved":false,"context_lines":[{"line_number":24,"context_line":"class QoS(model_base.BASEV2):"},{"line_number":25,"context_line":"    \"\"\"Represents QoS for a tenant.\"\"\""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    __tablename__ \u003d \u0027cisco_qoses\u0027"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    qos_id \u003d sa.Column(sa.String(255))"},{"line_number":30,"context_line":"    tenant_id \u003d sa.Column(sa.String(255), primary_key\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2Fjak%3D","line":27,"updated":"2013-07-29 12:00:00.000000000","message":"qoses seems odd. Is there a better name, like qos_policies or something?","commit_id":"38e769c50ed9954b306c9c4e750ea9cff25035b4"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"b3c3a35a81a923267773c64f8ac5bc158cb786a5","unresolved":false,"context_lines":[{"line_number":24,"context_line":"class QoS(model_base.BASEV2):"},{"line_number":25,"context_line":"    \"\"\"Represents QoS for a tenant.\"\"\""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    __tablename__ \u003d \u0027cisco_qoses\u0027"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    qos_id \u003d sa.Column(sa.String(255))"},{"line_number":30,"context_line":"    tenant_id \u003d sa.Column(sa.String(255), primary_key\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2FPIU%3D","line":27,"in_reply_to":"AAAAQn%2F%2Fjak%3D","updated":"2013-08-04 23:27:03.000000000","message":"Done","commit_id":"38e769c50ed9954b306c9c4e750ea9cff25035b4"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"cdadeebe8a014cd30bc4c6180ab3849f16adcf21","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    __tablename__ \u003d \u0027cisco_qoses\u0027"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    qos_id \u003d sa.Column(sa.String(255))"},{"line_number":30,"context_line":"    tenant_id \u003d sa.Column(sa.String(255), primary_key\u003dTrue)"},{"line_number":31,"context_line":"    qos_name \u003d sa.Column(sa.String(255), primary_key\u003dTrue)"},{"line_number":32,"context_line":"    qos_desc \u003d sa.Column(sa.String(255))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2FjXk%3D","line":29,"updated":"2013-07-29 12:00:00.000000000","message":"Shouldn\u0027t all the ID fields be String(36)? LIne 29, 30, 40, 41.","commit_id":"38e769c50ed9954b306c9c4e750ea9cff25035b4"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"216415f42d7a81437b5100b2257bfa56bbeb0068","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    __tablename__ \u003d \u0027cisco_qoses\u0027"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    qos_id \u003d sa.Column(sa.String(255))"},{"line_number":30,"context_line":"    tenant_id \u003d sa.Column(sa.String(255), primary_key\u003dTrue)"},{"line_number":31,"context_line":"    qos_name \u003d sa.Column(sa.String(255), primary_key\u003dTrue)"},{"line_number":32,"context_line":"    qos_desc \u003d sa.Column(sa.String(255))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2FjMA%3D","line":29,"in_reply_to":"AAAAQn%2F%2FjP4%3D","updated":"2013-07-29 12:55:32.000000000","message":"Yes, the problem is that changing the column widths now makes migration very complicated.","commit_id":"38e769c50ed9954b306c9c4e750ea9cff25035b4"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"5148a4fad55f28cbb0e5f411b00fb09bbd2ca00d","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    __tablename__ \u003d \u0027cisco_qoses\u0027"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    qos_id \u003d sa.Column(sa.String(255))"},{"line_number":30,"context_line":"    tenant_id \u003d sa.Column(sa.String(255), primary_key\u003dTrue)"},{"line_number":31,"context_line":"    qos_name \u003d sa.Column(sa.String(255), primary_key\u003dTrue)"},{"line_number":32,"context_line":"    qos_desc \u003d sa.Column(sa.String(255))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2FjP4%3D","line":29,"in_reply_to":"AAAAQn%2F%2FjXk%3D","updated":"2013-07-29 12:29:22.000000000","message":"tenant is 255, names and descriptions are usually 255 and even 1024.\nas for qos_id, reducing field capacity would complicate migration potentially.","commit_id":"38e769c50ed9954b306c9c4e750ea9cff25035b4"}],"neutron/plugins/cisco/db/nexus_db_v2.py":[{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"b4be50be01afb234a4a501c231ac791085ea0ce8","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        session, bindings \u003d _get_nexus_bindings(which, **bfilter)"},{"line_number":133,"context_line":"        if bindings:"},{"line_number":134,"context_line":"            return session, bindings"},{"line_number":135,"context_line":"    except Exception as e:"},{"line_number":136,"context_line":"        LOG.debug(\"Lookup %s Nexus bindings for %s failed: %s\","},{"line_number":137,"context_line":"                  which, bfilter, e)"},{"line_number":138,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2Fhn0%3D","line":135,"updated":"2013-07-29 20:22:01.000000000","message":"Okay... if NoResultFound is never raised in the query, then probably want to eliminate this try/except, unless there\u0027s a reason to map all exceptions to NexusPortBindingNotFound.","commit_id":"38e769c50ed9954b306c9c4e750ea9cff25035b4"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"d06784c20284060d4c0c66d152f9e5f2c782530d","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        session, bindings \u003d _get_nexus_bindings(which, **bfilter)"},{"line_number":133,"context_line":"        if bindings:"},{"line_number":134,"context_line":"            return session, bindings"},{"line_number":135,"context_line":"    except Exception as e:"},{"line_number":136,"context_line":"        LOG.debug(\"Lookup %s Nexus bindings for %s failed: %s\","},{"line_number":137,"context_line":"                  which, bfilter, e)"},{"line_number":138,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2Fhs4%3D","line":135,"updated":"2013-07-29 19:51:21.000000000","message":"We should probably only catch NoResultFound here, so that we\u0027re not quiescing other troubling exceptions.  OR, if we really do want to catch all exceptions, then the following LOG should be a LOG.exception instead of LOG.debug.","commit_id":"38e769c50ed9954b306c9c4e750ea9cff25035b4"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"b3c3a35a81a923267773c64f8ac5bc158cb786a5","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        session, bindings \u003d _get_nexus_bindings(which, **bfilter)"},{"line_number":133,"context_line":"        if bindings:"},{"line_number":134,"context_line":"            return session, bindings"},{"line_number":135,"context_line":"    except Exception as e:"},{"line_number":136,"context_line":"        LOG.debug(\"Lookup %s Nexus bindings for %s failed: %s\","},{"line_number":137,"context_line":"                  which, bfilter, e)"},{"line_number":138,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2FPIQ%3D","line":135,"in_reply_to":"AAAAQn%2F%2Fhn0%3D","updated":"2013-08-04 23:27:03.000000000","message":"Done","commit_id":"38e769c50ed9954b306c9c4e750ea9cff25035b4"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"b57f98c4e88db064d4cc3fdf40de40b3286fd746","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        session, bindings \u003d _get_nexus_bindings(which, **bfilter)"},{"line_number":133,"context_line":"        if bindings:"},{"line_number":134,"context_line":"            return session, bindings"},{"line_number":135,"context_line":"    except Exception as e:"},{"line_number":136,"context_line":"        LOG.debug(\"Lookup %s Nexus bindings for %s failed: %s\","},{"line_number":137,"context_line":"                  which, bfilter, e)"},{"line_number":138,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2FhqE%3D","line":135,"in_reply_to":"AAAAQn%2F%2Fhs4%3D","updated":"2013-07-29 19:54:44.000000000","message":"NoResultFound is never raised by _get_nexus_bindings","commit_id":"38e769c50ed9954b306c9c4e750ea9cff25035b4"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"d06784c20284060d4c0c66d152f9e5f2c782530d","unresolved":false,"context_lines":[{"line_number":135,"context_line":"    except Exception as e:"},{"line_number":136,"context_line":"        LOG.debug(\"Lookup %s Nexus bindings for %s failed: %s\","},{"line_number":137,"context_line":"                  which, bfilter, e)"},{"line_number":138,"context_line":"        pass"},{"line_number":139,"context_line":"    raise c_exc.NexusPortBindingNotFound(**bfilter)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2Fhss%3D","line":138,"updated":"2013-07-29 19:51:21.000000000","message":"pass statement is unnecessary?","commit_id":"38e769c50ed9954b306c9c4e750ea9cff25035b4"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"82b62d116043114a64f7e00a570ac9e9049d8954","unresolved":false,"context_lines":[{"line_number":32,"context_line":"def get_nexusport_binding(port_id, vlan_id, switch_ip, instance_id):"},{"line_number":33,"context_line":"    \"\"\"Lists a nexusport binding.\"\"\""},{"line_number":34,"context_line":"    LOG.debug(_(\"get_nexusport_binding() called\"))"},{"line_number":35,"context_line":"    return _lookup_all_nexus_bindings(port_id\u003dport_id,"},{"line_number":36,"context_line":"                                      vlan_id\u003dvlan_id,"},{"line_number":37,"context_line":"                                      switch_ip\u003dswitch_ip,"},{"line_number":38,"context_line":"                                      instance_id\u003dinstance_id)[1]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FOME%3D","line":35,"updated":"2013-08-05 09:13:21.000000000","message":"returning a part of tuple is barely readable.\nI suggest you refactor function _get_nexus_bindings so returning result[1] would not be necessary","commit_id":"b56b5bf11c3f59abebbc4c77eaba8f653f0d4cf3"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"3b4bcff2b90c83ce9480b021fc060887ba2b912f","unresolved":false,"context_lines":[{"line_number":32,"context_line":"def get_nexusport_binding(port_id, vlan_id, switch_ip, instance_id):"},{"line_number":33,"context_line":"    \"\"\"Lists a nexusport binding.\"\"\""},{"line_number":34,"context_line":"    LOG.debug(_(\"get_nexusport_binding() called\"))"},{"line_number":35,"context_line":"    return _lookup_all_nexus_bindings(port_id\u003dport_id,"},{"line_number":36,"context_line":"                                      vlan_id\u003dvlan_id,"},{"line_number":37,"context_line":"                                      switch_ip\u003dswitch_ip,"},{"line_number":38,"context_line":"                                      instance_id\u003dinstance_id)[1]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FMXY%3D","line":35,"in_reply_to":"AAAAQn%2F%2FOME%3D","updated":"2013-08-06 01:27:18.000000000","message":"Done","commit_id":"b56b5bf11c3f59abebbc4c77eaba8f653f0d4cf3"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"82b62d116043114a64f7e00a570ac9e9049d8954","unresolved":false,"context_lines":[{"line_number":41,"context_line":"def get_nexusvlan_binding(vlan_id, switch_ip):"},{"line_number":42,"context_line":"    \"\"\"Lists a vlan and switch binding.\"\"\""},{"line_number":43,"context_line":"    LOG.debug(_(\"get_nexusvlan_binding() called\"))"},{"line_number":44,"context_line":"    return _lookup_all_nexus_bindings(vlan_id\u003dvlan_id, switch_ip\u003dswitch_ip)[1]"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"def add_nexusport_binding(port_id, vlan_id, switch_ip, instance_id):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FOK4%3D","line":44,"updated":"2013-08-05 09:13:21.000000000","message":"ditto","commit_id":"b56b5bf11c3f59abebbc4c77eaba8f653f0d4cf3"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"3b4bcff2b90c83ce9480b021fc060887ba2b912f","unresolved":false,"context_lines":[{"line_number":41,"context_line":"def get_nexusvlan_binding(vlan_id, switch_ip):"},{"line_number":42,"context_line":"    \"\"\"Lists a vlan and switch binding.\"\"\""},{"line_number":43,"context_line":"    LOG.debug(_(\"get_nexusvlan_binding() called\"))"},{"line_number":44,"context_line":"    return _lookup_all_nexus_bindings(vlan_id\u003dvlan_id, switch_ip\u003dswitch_ip)[1]"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"def add_nexusport_binding(port_id, vlan_id, switch_ip, instance_id):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FMXU%3D","line":44,"in_reply_to":"AAAAQn%2F%2FOK4%3D","updated":"2013-08-06 01:27:18.000000000","message":"Done","commit_id":"b56b5bf11c3f59abebbc4c77eaba8f653f0d4cf3"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"82b62d116043114a64f7e00a570ac9e9049d8954","unresolved":false,"context_lines":[{"line_number":73,"context_line":"def update_nexusport_binding(port_id, new_vlan_id):"},{"line_number":74,"context_line":"    \"\"\"Updates nexusport binding.\"\"\""},{"line_number":75,"context_line":"    LOG.debug(_(\"update_nexusport_binding called\"))"},{"line_number":76,"context_line":"    session, binding \u003d _lookup_one_nexus_binding(port_id\u003dport_id)"},{"line_number":77,"context_line":"    if new_vlan_id:"},{"line_number":78,"context_line":"        binding[\"vlan_id\"] \u003d new_vlan_id"},{"line_number":79,"context_line":"    session.merge(binding)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FOK0%3D","line":76,"updated":"2013-08-05 09:13:21.000000000","message":"retrieve the session and pass it to _lookup_one_nexus_binding","commit_id":"b56b5bf11c3f59abebbc4c77eaba8f653f0d4cf3"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"3b4bcff2b90c83ce9480b021fc060887ba2b912f","unresolved":false,"context_lines":[{"line_number":73,"context_line":"def update_nexusport_binding(port_id, new_vlan_id):"},{"line_number":74,"context_line":"    \"\"\"Updates nexusport binding.\"\"\""},{"line_number":75,"context_line":"    LOG.debug(_(\"update_nexusport_binding called\"))"},{"line_number":76,"context_line":"    session, binding \u003d _lookup_one_nexus_binding(port_id\u003dport_id)"},{"line_number":77,"context_line":"    if new_vlan_id:"},{"line_number":78,"context_line":"        binding[\"vlan_id\"] \u003d new_vlan_id"},{"line_number":79,"context_line":"    session.merge(binding)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FMXM%3D","line":76,"in_reply_to":"AAAAQn%2F%2FOK0%3D","updated":"2013-08-06 01:27:18.000000000","message":"Done","commit_id":"b56b5bf11c3f59abebbc4c77eaba8f653f0d4cf3"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"82b62d116043114a64f7e00a570ac9e9049d8954","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    \"\"\"Lists nexusvm bindings.\"\"\""},{"line_number":86,"context_line":"    LOG.debug(_(\"get_nexusvm_binding() called\"))"},{"line_number":87,"context_line":"    return _lookup_first_nexus_binding(instance_id\u003dinstance_id,"},{"line_number":88,"context_line":"                                       vlan_id\u003dvlan_id)[1]"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"def get_port_vlan_switch_binding(port_id, vlan_id, switch_ip):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FOKw%3D","line":88,"updated":"2013-08-05 09:13:21.000000000","message":"see above","commit_id":"b56b5bf11c3f59abebbc4c77eaba8f653f0d4cf3"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"3b4bcff2b90c83ce9480b021fc060887ba2b912f","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    \"\"\"Lists nexusvm bindings.\"\"\""},{"line_number":86,"context_line":"    LOG.debug(_(\"get_nexusvm_binding() called\"))"},{"line_number":87,"context_line":"    return _lookup_first_nexus_binding(instance_id\u003dinstance_id,"},{"line_number":88,"context_line":"                                       vlan_id\u003dvlan_id)[1]"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"def get_port_vlan_switch_binding(port_id, vlan_id, switch_ip):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FMXI%3D","line":88,"in_reply_to":"AAAAQn%2F%2FOKw%3D","updated":"2013-08-06 01:27:18.000000000","message":"Done","commit_id":"b56b5bf11c3f59abebbc4c77eaba8f653f0d4cf3"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"82b62d116043114a64f7e00a570ac9e9049d8954","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    LOG.debug(_(\"get_port_vlan_switch_binding() called\"))"},{"line_number":94,"context_line":"    return _lookup_all_nexus_bindings(port_id\u003dport_id,"},{"line_number":95,"context_line":"                                      switch_ip\u003dswitch_ip,"},{"line_number":96,"context_line":"                                      vlan_id\u003dvlan_id)[1]"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"def get_port_switch_bindings(port_id, switch_ip):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FOKs%3D","line":96,"updated":"2013-08-05 09:13:21.000000000","message":"see above","commit_id":"b56b5bf11c3f59abebbc4c77eaba8f653f0d4cf3"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"3b4bcff2b90c83ce9480b021fc060887ba2b912f","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    LOG.debug(_(\"get_port_vlan_switch_binding() called\"))"},{"line_number":94,"context_line":"    return _lookup_all_nexus_bindings(port_id\u003dport_id,"},{"line_number":95,"context_line":"                                      switch_ip\u003dswitch_ip,"},{"line_number":96,"context_line":"                                      vlan_id\u003dvlan_id)[1]"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"def get_port_switch_bindings(port_id, switch_ip):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FMXA%3D","line":96,"in_reply_to":"AAAAQn%2F%2FOKs%3D","updated":"2013-08-06 01:27:18.000000000","message":"Done","commit_id":"b56b5bf11c3f59abebbc4c77eaba8f653f0d4cf3"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"82b62d116043114a64f7e00a570ac9e9049d8954","unresolved":false,"context_lines":[{"line_number":117,"context_line":"def _get_nexus_bindings(which, **bfilter):"},{"line_number":118,"context_line":"    \"\"\"Query for \u0027which\u0027 Nexus bindings matching the filter.\"\"\""},{"line_number":119,"context_line":"    session \u003d db.get_session()"},{"line_number":120,"context_line":"    which_bindings \u003d getattr(session.query(nexus_models_v2.NexusPortBinding)."},{"line_number":121,"context_line":"                             filter_by(**bfilter), which)"},{"line_number":122,"context_line":"    return session, which_bindings()"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FOMg%3D","line":120,"updated":"2013-08-05 09:13:21.000000000","message":"that looks cryptic. could you rearrange the code and add the comment listing methods that you are going to call on query?","commit_id":"b56b5bf11c3f59abebbc4c77eaba8f653f0d4cf3"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"3b4bcff2b90c83ce9480b021fc060887ba2b912f","unresolved":false,"context_lines":[{"line_number":117,"context_line":"def _get_nexus_bindings(which, **bfilter):"},{"line_number":118,"context_line":"    \"\"\"Query for \u0027which\u0027 Nexus bindings matching the filter.\"\"\""},{"line_number":119,"context_line":"    session \u003d db.get_session()"},{"line_number":120,"context_line":"    which_bindings \u003d getattr(session.query(nexus_models_v2.NexusPortBinding)."},{"line_number":121,"context_line":"                             filter_by(**bfilter), which)"},{"line_number":122,"context_line":"    return session, which_bindings()"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FML8%3D","line":120,"in_reply_to":"AAAAQn%2F%2FOMg%3D","updated":"2013-08-06 01:27:18.000000000","message":"I made an attempt to make it less cryptic. Let me know what you think.","commit_id":"b56b5bf11c3f59abebbc4c77eaba8f653f0d4cf3"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"82b62d116043114a64f7e00a570ac9e9049d8954","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    session \u003d db.get_session()"},{"line_number":120,"context_line":"    which_bindings \u003d getattr(session.query(nexus_models_v2.NexusPortBinding)."},{"line_number":121,"context_line":"                             filter_by(**bfilter), which)"},{"line_number":122,"context_line":"    return session, which_bindings()"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"def _lookup_nexus_bindings(which, **bfilter):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FOLE%3D","line":122,"updated":"2013-08-05 09:13:21.000000000","message":"i think it\u0027s not necessary to return a session. it\u0027s better to receive it as a function parameter","commit_id":"b56b5bf11c3f59abebbc4c77eaba8f653f0d4cf3"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"3b4bcff2b90c83ce9480b021fc060887ba2b912f","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    session \u003d db.get_session()"},{"line_number":120,"context_line":"    which_bindings \u003d getattr(session.query(nexus_models_v2.NexusPortBinding)."},{"line_number":121,"context_line":"                             filter_by(**bfilter), which)"},{"line_number":122,"context_line":"    return session, which_bindings()"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"def _lookup_nexus_bindings(which, **bfilter):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FNGM%3D","line":122,"in_reply_to":"AAAAQn%2F%2FOLE%3D","updated":"2013-08-06 01:27:18.000000000","message":"Done","commit_id":"b56b5bf11c3f59abebbc4c77eaba8f653f0d4cf3"}],"neutron/plugins/cisco/db/nexus_models_v2.py":[{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"cdadeebe8a014cd30bc4c6180ab3849f16adcf21","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    __tablename__ \u003d \"cisco_nexusport_bindings\""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    id \u003d sa.Column(sa.Integer, primary_key\u003dTrue, autoincrement\u003dTrue)"},{"line_number":29,"context_line":"    port_id \u003d sa.Column(sa.String(255))"},{"line_number":30,"context_line":"    vlan_id \u003d sa.Column(sa.Integer, nullable\u003dFalse)"},{"line_number":31,"context_line":"    switch_ip \u003d sa.Column(sa.String(255))"},{"line_number":32,"context_line":"    instance_id \u003d sa.Column(sa.String(255))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2FjVs%3D","line":29,"updated":"2013-07-29 12:00:00.000000000","message":"Should port_id and instance_id be String(36)?","commit_id":"38e769c50ed9954b306c9c4e750ea9cff25035b4"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"216415f42d7a81437b5100b2257bfa56bbeb0068","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    __tablename__ \u003d \"cisco_nexusport_bindings\""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    id \u003d sa.Column(sa.Integer, primary_key\u003dTrue, autoincrement\u003dTrue)"},{"line_number":29,"context_line":"    port_id \u003d sa.Column(sa.String(255))"},{"line_number":30,"context_line":"    vlan_id \u003d sa.Column(sa.Integer, nullable\u003dFalse)"},{"line_number":31,"context_line":"    switch_ip \u003d sa.Column(sa.String(255))"},{"line_number":32,"context_line":"    instance_id \u003d sa.Column(sa.String(255))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2FjNk%3D","line":29,"in_reply_to":"AAAAQn%2F%2FjVs%3D","updated":"2013-07-29 12:55:32.000000000","message":"That would be nice. However, changing it now makes the database migration very complicated.","commit_id":"38e769c50ed9954b306c9c4e750ea9cff25035b4"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"cdadeebe8a014cd30bc4c6180ab3849f16adcf21","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    id \u003d sa.Column(sa.Integer, primary_key\u003dTrue, autoincrement\u003dTrue)"},{"line_number":29,"context_line":"    port_id \u003d sa.Column(sa.String(255))"},{"line_number":30,"context_line":"    vlan_id \u003d sa.Column(sa.Integer, nullable\u003dFalse)"},{"line_number":31,"context_line":"    switch_ip \u003d sa.Column(sa.String(255))"},{"line_number":32,"context_line":"    instance_id \u003d sa.Column(sa.String(255))"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def __repr__(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2FjUo%3D","line":31,"updated":"2013-07-29 12:00:00.000000000","message":"IP address size... 64?","commit_id":"38e769c50ed9954b306c9c4e750ea9cff25035b4"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"216415f42d7a81437b5100b2257bfa56bbeb0068","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    id \u003d sa.Column(sa.Integer, primary_key\u003dTrue, autoincrement\u003dTrue)"},{"line_number":29,"context_line":"    port_id \u003d sa.Column(sa.String(255))"},{"line_number":30,"context_line":"    vlan_id \u003d sa.Column(sa.Integer, nullable\u003dFalse)"},{"line_number":31,"context_line":"    switch_ip \u003d sa.Column(sa.String(255))"},{"line_number":32,"context_line":"    instance_id \u003d sa.Column(sa.String(255))"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def __repr__(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2FjNg%3D","line":31,"in_reply_to":"AAAAQn%2F%2FjUo%3D","updated":"2013-07-29 12:55:32.000000000","message":"Ditto.","commit_id":"38e769c50ed9954b306c9c4e750ea9cff25035b4"},{"author":{"_account_id":6694,"name":"rcurran","email":"rcurran@cisco.com","username":"rcurran"},"change_message_id":"df8906cd62648df32b8cb562aef7580edbf00884","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def __repr__(self):"},{"line_number":35,"context_line":"        \"\"\"Just the binding, without the id key.\"\"\""},{"line_number":36,"context_line":"        return (\"\u003cNexusPortBinding(%s,%s,%s,%s)\u003e\" %"},{"line_number":37,"context_line":"                (self.port_id, self.vlan_id, self.switch_ip, self.instance_id))"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def __eq__(self, other):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2FjGs%3D","line":36,"updated":"2013-07-29 13:30:41.000000000","message":"I take it you meant to change vlan_id to be printed as an %s and not %d.","commit_id":"38e769c50ed9954b306c9c4e750ea9cff25035b4"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"443eaea94e884d3d877d3559aa77c881eda972b3","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def __repr__(self):"},{"line_number":35,"context_line":"        \"\"\"Just the binding, without the id key.\"\"\""},{"line_number":36,"context_line":"        return (\"\u003cNexusPortBinding(%s,%s,%s,%s)\u003e\" %"},{"line_number":37,"context_line":"                (self.port_id, self.vlan_id, self.switch_ip, self.instance_id))"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def __eq__(self, other):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2Fi%2F4%3D","line":36,"in_reply_to":"AAAAQn%2F%2FjGs%3D","updated":"2013-07-29 13:57:36.000000000","message":"Yes, it seems that model fields are all strings.","commit_id":"38e769c50ed9954b306c9c4e750ea9cff25035b4"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"82b62d116043114a64f7e00a570ac9e9049d8954","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def __repr__(self):"},{"line_number":35,"context_line":"        \"\"\"Just the binding, without the id key.\"\"\""},{"line_number":36,"context_line":"        return (\"\u003cNexusPortBinding(%s,%s,%s,%s)\u003e\" %"},{"line_number":37,"context_line":"                (self.port_id, self.vlan_id, self.switch_ip, self.instance_id))"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def __eq__(self, other):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FONY%3D","line":36,"updated":"2013-08-05 09:13:21.000000000","message":"%d changed to %s - is that intended?","commit_id":"b56b5bf11c3f59abebbc4c77eaba8f653f0d4cf3"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"3b4bcff2b90c83ce9480b021fc060887ba2b912f","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def __repr__(self):"},{"line_number":35,"context_line":"        \"\"\"Just the binding, without the id key.\"\"\""},{"line_number":36,"context_line":"        return (\"\u003cNexusPortBinding(%s,%s,%s,%s)\u003e\" %"},{"line_number":37,"context_line":"                (self.port_id, self.vlan_id, self.switch_ip, self.instance_id))"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def __eq__(self, other):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FMXg%3D","line":36,"in_reply_to":"AAAAQn%2F%2FONY%3D","updated":"2013-08-06 01:27:18.000000000","message":"Since self.vlan_id is now a sa.Column object, it seems safer to use %s.","commit_id":"b56b5bf11c3f59abebbc4c77eaba8f653f0d4cf3"}],"neutron/plugins/cisco/models/virt_phy_sw_v2.py":[{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"82b62d116043114a64f7e00a570ac9e9049d8954","unresolved":false,"context_lines":[{"line_number":42,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"def initialize_db():"},{"line_number":46,"context_line":"    db_api.configure_db()"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FONg%3D","line":45,"updated":"2013-08-05 09:13:21.000000000","message":"not sure why it should be a separate function","commit_id":"b56b5bf11c3f59abebbc4c77eaba8f653f0d4cf3"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"3b4bcff2b90c83ce9480b021fc060887ba2b912f","unresolved":false,"context_lines":[{"line_number":42,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"def initialize_db():"},{"line_number":46,"context_line":"    db_api.configure_db()"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FK4U%3D","line":45,"in_reply_to":"AAAAQn%2F%2FONg%3D","updated":"2013-08-06 01:27:18.000000000","message":"oops, it was a temporary experiment. Reverted.","commit_id":"b56b5bf11c3f59abebbc4c77eaba8f653f0d4cf3"}],"neutron/tests/unit/cisco/test_network_db.py":[{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"20962dd5930f3c03d3e570efc3c43cf2e9d50a02","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from neutron.tests import base"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class CiscoNetworkQosDbTest(base.BaseTestCase):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    QosObj \u003d collections.namedtuple(\u0027QosObj\u0027, \u0027tenant qname desc\u0027)"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2FJck%3D","line":25,"updated":"2013-08-06 12:49:41.000000000","message":"Nit: Docstring describing purpose of test class for this and other classes in file.","commit_id":"3222afa2d47b7754ae80a83a6753de5c160b248d"}],"neutron/tests/unit/cisco/test_nexus_db.py":[{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"20962dd5930f3c03d3e570efc3c43cf2e9d50a02","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from neutron.tests import base"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class CiscoNexusDbTest(base.BaseTestCase):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    NpbObj \u003d collections.namedtuple(\u0027NpbObj\u0027, \u0027port vlan switch instance\u0027)"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2FJcc%3D","line":25,"updated":"2013-08-06 12:49:41.000000000","message":"Nit: Docstring describing purpose of test class.","commit_id":"3222afa2d47b7754ae80a83a6753de5c160b248d"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"26aa44651edc90e975c163efdc3f5a21c699b0fa","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    \"\"\"Unit tests for cisco.db.nexus_models_v2.NexusPortBinding model.\"\"\""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    NpbObj \u003d collections.namedtuple(\u0027NpbObj\u0027, \u0027port vlan switch instance\u0027)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def setUp(self):"},{"line_number":32,"context_line":"        super(CiscoNexusDbTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAQn%2F%2FJKI%3D","line":29,"updated":"2013-08-06 14:29:55.000000000","message":"yes... namedtuple!","commit_id":"08112f087ffb221513db2872b6db0726d0c30702"}]}
