)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"991cca3a726500911c70662afb208d964f109244","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Rodolfo Alonso Hernandez \u003crodolfo.alonso.hernandez@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-02-12 09:28:16 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add VLAN tag info to port before applying SG initial setup."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Before the initial SG firewall setup, the VLAN tag is added to"},{"line_number":10,"context_line":"the port information; this assignement is removed from _bind_devices"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"dae33548_c68b3d1d","line":7,"updated":"2016-02-16 13:06:24.000000000","message":"A prefix here would be helpful for reviewers to get some context","commit_id":"0f205737f9f4c7050dd1808399ce95c06b332726"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"323fee36615607acf307485c67533402cb3a915b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Rodolfo Alonso Hernandez \u003crodolfo.alonso.hernandez@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-02-12 09:28:16 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add VLAN tag info to port before applying SG initial setup."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Before the initial SG firewall setup, the VLAN tag is added to"},{"line_number":10,"context_line":"the port information; this assignement is removed from _bind_devices"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"dae33548_bfbf1c5f","line":7,"in_reply_to":"dae33548_c68b3d1d","updated":"2016-02-16 13:56:03.000000000","message":"Sorry, I don\u0027t understand this comment. Do you mean to add a link to the previous patch?","commit_id":"0f205737f9f4c7050dd1808399ce95c06b332726"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"991cca3a726500911c70662afb208d964f109244","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add VLAN tag info to port before applying SG initial setup."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Before the initial SG firewall setup, the VLAN tag is added to"},{"line_number":10,"context_line":"the port information; this assignement is removed from _bind_devices"},{"line_number":11,"context_line":"function. This value is needed by some SG agent"},{"line_number":12,"context_line":"implementations."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"dae33548_269ae963","line":10,"range":{"start_line":10,"start_character":27,"end_line":10,"end_character":38},"updated":"2016-02-16 13:06:24.000000000","message":"typo assignement \u003d\u003e assignment","commit_id":"0f205737f9f4c7050dd1808399ce95c06b332726"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"323fee36615607acf307485c67533402cb3a915b","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add VLAN tag info to port before applying SG initial setup."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Before the initial SG firewall setup, the VLAN tag is added to"},{"line_number":10,"context_line":"the port information; this assignement is removed from _bind_devices"},{"line_number":11,"context_line":"function. This value is needed by some SG agent"},{"line_number":12,"context_line":"implementations."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"dae33548_3f6e6c96","line":10,"range":{"start_line":10,"start_character":27,"end_line":10,"end_character":38},"in_reply_to":"dae33548_269ae963","updated":"2016-02-16 13:56:03.000000000","message":"Done","commit_id":"0f205737f9f4c7050dd1808399ce95c06b332726"}],"neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py":[{"author":{"_account_id":17377,"name":"Federico Ressi","email":"federico.ressi@intel.com","username":"fressi"},"change_message_id":"635577ab61fc67c4a8131689a609cc96176435b1","unresolved":false,"context_lines":[{"line_number":812,"context_line":"                LOG.debug(\"Port %s was deleted concurrently, skipping it\","},{"line_number":813,"context_line":"                          port.port_name)"},{"line_number":814,"context_line":"                continue"},{"line_number":815,"context_line":"            if cur_tag is not None and cur_tag !\u003d lvm.vlan:"},{"line_number":816,"context_line":"                self.int_br.set_db_attribute("},{"line_number":817,"context_line":"                    \"Port\", port.port_name, \"tag\", lvm.vlan)"},{"line_number":818,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_66ac2e36","line":815,"range":{"start_line":815,"start_character":15,"end_line":815,"end_character":38},"updated":"2016-02-02 09:17:55.000000000","message":"You can remove this.","commit_id":"2407dba00cb29666c2cdec1dfc838fa89fe21d92"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"a70ddc86ac64bdcee3f0a0612cf8eff2dcde90ff","unresolved":false,"context_lines":[{"line_number":808,"context_line":"                continue"},{"line_number":809,"context_line":"            port \u003d port_detail[\u0027vif_port\u0027]"},{"line_number":810,"context_line":"            cur_tag \u003d tags_by_port.get(port.port_name)"},{"line_number":811,"context_line":"            if cur_tag is None:"},{"line_number":812,"context_line":"                LOG.debug(\"Port %s was deleted concurrently, skipping it\","},{"line_number":813,"context_line":"                          port.port_name)"},{"line_number":814,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a5ae5dd_017a5077","line":811,"updated":"2016-02-06 03:17:02.000000000","message":"do we need this check? what use is indicating that the port was deleted concurrently?","commit_id":"e1812cde8d6a8a4ec1143d82eba85eb570e02aad"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a38a7d8d9201f90deef8dd9fcd07109b8a4c716b","unresolved":false,"context_lines":[{"line_number":808,"context_line":"                continue"},{"line_number":809,"context_line":"            port \u003d port_detail[\u0027vif_port\u0027]"},{"line_number":810,"context_line":"            cur_tag \u003d tags_by_port.get(port.port_name)"},{"line_number":811,"context_line":"            if cur_tag is None:"},{"line_number":812,"context_line":"                LOG.debug(\"Port %s was deleted concurrently, skipping it\","},{"line_number":813,"context_line":"                          port.port_name)"},{"line_number":814,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a5ae5dd_ff0a1125","line":811,"in_reply_to":"5a5ae5dd_017a5077","updated":"2016-02-08 09:23:58.000000000","message":"Done.\nI applied the same check used in _bind_devices.\nI\u0027ll test if \"cur_tag is not None\" to check if the port exists in ovs database.","commit_id":"e1812cde8d6a8a4ec1143d82eba85eb570e02aad"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c982136fcc3f0e7d362acf74308e96dc9a7f78c5","unresolved":false,"context_lines":[{"line_number":809,"context_line":"            port \u003d port_detail[\u0027vif_port\u0027]"},{"line_number":810,"context_line":"            cur_tag \u003d tags_by_port.get(port.port_name)"},{"line_number":811,"context_line":"            if cur_tag is not None and cur_tag !\u003d lvm.vlan:"},{"line_number":812,"context_line":"                self.int_br.set_db_attribute("},{"line_number":813,"context_line":"                    \"Port\", port.port_name, \"tag\", lvm.vlan)"},{"line_number":814,"context_line":"        return tags_by_port"},{"line_number":815,"context_line":""},{"line_number":816,"context_line":"    def _bind_devices(self, need_binding_ports, tags_by_name):"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a5ae5dd_42922af8","line":813,"range":{"start_line":812,"start_character":16,"end_line":813,"end_character":60},"updated":"2016-02-09 07:12:31.000000000","message":"@kevin benton\ni believe this call will reintroduce the following security vulnerablitiy\nhttps://bugs.launchpad.net/neutron/+bug/1534322\n\nby making this call here the ovs bridge will be configured to trunk traffic from the vm onto the neutron network before the security groups are setup.\n\nin this case the situation is sligtly different the the bug above as neutron will not have finished binding the port before the security group rules are applied so the vm should not be able to use the port but the datapath is wired up.\n\ninstead of making this change to support this use case the local vlan simply has to be added to line 792 as part of the vlan_mapping dictionary and set in the port other_config section.\n\nthe port_bound function which install the other_config data on the port is called as part of the self.treat_devices_added_or_updated function on line 1563\n\nwhich is called proir to the call to self.sg_agent.setup_port_filters on line 1585 so the vlan information will be available to our security group driver at that time. this will require a minor change to our security group driver to read the local vlan form the other config section but it will enable our usecase without requiring the datapath to be wired up before the security group rules are in place.","commit_id":"40005a8c801df6cc201083e475a328d8d23ffad6"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"1832f2f9c863e5ddb078f92967adb5fb83f9ff19","unresolved":false,"context_lines":[{"line_number":810,"context_line":"            cur_tag \u003d tags_by_port.get(port.port_name)"},{"line_number":811,"context_line":"            if cur_tag is not None and cur_tag !\u003d lvm.vlan:"},{"line_number":812,"context_line":"                self.int_br.set_db_attribute("},{"line_number":813,"context_line":"                    \"Port\", port.port_name, \"tag\", lvm.vlan)"},{"line_number":814,"context_line":"        return tags_by_port"},{"line_number":815,"context_line":""},{"line_number":816,"context_line":"    def _bind_devices(self, need_binding_ports, tags_by_name):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a57f1b5_f76934bf","line":813,"updated":"2016-02-11 14:17:53.000000000","message":"yes, this will re-introduce it. the other_config option would work for me and will probably be the least invasive\n\nAnother option would be to revert https://review.openstack.org/#/c/268192/ so _bind_devices happens first but have _bind_devices install a drop rule which is removed after security groups are wired. However, making sure that it doesn\u0027t interrupt traffic on agent restart or other updates that wouldn\u0027t affect the dataplane will be a little hairy so I would prefer if you could try your suggestion first.","commit_id":"40005a8c801df6cc201083e475a328d8d23ffad6"},{"author":{"_account_id":17377,"name":"Federico Ressi","email":"federico.ressi@intel.com","username":"fressi"},"change_message_id":"fae1271719c9b4b6e505815acb35c3a47d1398da","unresolved":false,"context_lines":[{"line_number":809,"context_line":"            if not lvm:"},{"line_number":810,"context_line":"                continue"},{"line_number":811,"context_line":"            port \u003d port_detail[\u0027vif_port\u0027]"},{"line_number":812,"context_line":"            cur_info \u003d info_by_port.get(port.port_name, None)"},{"line_number":813,"context_line":"            if cur_info is not None and cur_info[0] !\u003d lvm.vlan:"},{"line_number":814,"context_line":"                other_config \u003d cur_info[1] if cur_info[1] is not None else {}"},{"line_number":815,"context_line":"                other_config[\u0027tag\u0027] \u003d lvm.vlan"}],"source_content_type":"text/x-python","patch_set":12,"id":"dae33548_9aca58a0","line":812,"updated":"2016-02-15 15:25:41.000000000","message":"get method returns None by default if no default value is specified. For example this returns None:\n\n  {}.get(1)","commit_id":"0f205737f9f4c7050dd1808399ce95c06b332726"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"991cca3a726500911c70662afb208d964f109244","unresolved":false,"context_lines":[{"line_number":809,"context_line":"            if not lvm:"},{"line_number":810,"context_line":"                continue"},{"line_number":811,"context_line":"            port \u003d port_detail[\u0027vif_port\u0027]"},{"line_number":812,"context_line":"            cur_info \u003d info_by_port.get(port.port_name, None)"},{"line_number":813,"context_line":"            if cur_info is not None and cur_info[0] !\u003d lvm.vlan:"},{"line_number":814,"context_line":"                other_config \u003d cur_info[1] if cur_info[1] is not None else {}"},{"line_number":815,"context_line":"                other_config[\u0027tag\u0027] \u003d lvm.vlan"}],"source_content_type":"text/x-python","patch_set":12,"id":"dae33548_a6c5593d","line":812,"in_reply_to":"dae33548_9aca58a0","updated":"2016-02-16 13:06:24.000000000","message":"+1 None is returned by default - no need to add that explicityly","commit_id":"0f205737f9f4c7050dd1808399ce95c06b332726"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"323fee36615607acf307485c67533402cb3a915b","unresolved":false,"context_lines":[{"line_number":809,"context_line":"            if not lvm:"},{"line_number":810,"context_line":"                continue"},{"line_number":811,"context_line":"            port \u003d port_detail[\u0027vif_port\u0027]"},{"line_number":812,"context_line":"            cur_info \u003d info_by_port.get(port.port_name, None)"},{"line_number":813,"context_line":"            if cur_info is not None and cur_info[0] !\u003d lvm.vlan:"},{"line_number":814,"context_line":"                other_config \u003d cur_info[1] if cur_info[1] is not None else {}"},{"line_number":815,"context_line":"                other_config[\u0027tag\u0027] \u003d lvm.vlan"}],"source_content_type":"text/x-python","patch_set":12,"id":"dae33548_3f366ce7","line":812,"in_reply_to":"dae33548_a6c5593d","updated":"2016-02-16 13:56:03.000000000","message":"Done","commit_id":"0f205737f9f4c7050dd1808399ce95c06b332726"},{"author":{"_account_id":17377,"name":"Federico Ressi","email":"federico.ressi@intel.com","username":"fressi"},"change_message_id":"fae1271719c9b4b6e505815acb35c3a47d1398da","unresolved":false,"context_lines":[{"line_number":811,"context_line":"            port \u003d port_detail[\u0027vif_port\u0027]"},{"line_number":812,"context_line":"            cur_info \u003d info_by_port.get(port.port_name, None)"},{"line_number":813,"context_line":"            if cur_info is not None and cur_info[0] !\u003d lvm.vlan:"},{"line_number":814,"context_line":"                other_config \u003d cur_info[1] if cur_info[1] is not None else {}"},{"line_number":815,"context_line":"                other_config[\u0027tag\u0027] \u003d lvm.vlan"},{"line_number":816,"context_line":"                self.int_br.set_db_attribute("},{"line_number":817,"context_line":"                    \"Port\", port.port_name, \"other_config\", other_config)"}],"source_content_type":"text/x-python","patch_set":12,"id":"dae33548_5aba90e2","line":814,"range":{"start_line":814,"start_character":31,"end_line":814,"end_character":77},"updated":"2016-02-15 15:25:41.000000000","message":"This should produce the same result:\n\n    cur_info[1] or {}","commit_id":"0f205737f9f4c7050dd1808399ce95c06b332726"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"323fee36615607acf307485c67533402cb3a915b","unresolved":false,"context_lines":[{"line_number":811,"context_line":"            port \u003d port_detail[\u0027vif_port\u0027]"},{"line_number":812,"context_line":"            cur_info \u003d info_by_port.get(port.port_name, None)"},{"line_number":813,"context_line":"            if cur_info is not None and cur_info[0] !\u003d lvm.vlan:"},{"line_number":814,"context_line":"                other_config \u003d cur_info[1] if cur_info[1] is not None else {}"},{"line_number":815,"context_line":"                other_config[\u0027tag\u0027] \u003d lvm.vlan"},{"line_number":816,"context_line":"                self.int_br.set_db_attribute("},{"line_number":817,"context_line":"                    \"Port\", port.port_name, \"other_config\", other_config)"}],"source_content_type":"text/x-python","patch_set":12,"id":"dae33548_3fc02c7c","line":814,"range":{"start_line":814,"start_character":31,"end_line":814,"end_character":77},"in_reply_to":"dae33548_5aba90e2","updated":"2016-02-16 13:56:03.000000000","message":"Done","commit_id":"0f205737f9f4c7050dd1808399ce95c06b332726"},{"author":{"_account_id":17377,"name":"Federico Ressi","email":"federico.ressi@intel.com","username":"fressi"},"change_message_id":"fae1271719c9b4b6e505815acb35c3a47d1398da","unresolved":false,"context_lines":[{"line_number":812,"context_line":"            cur_info \u003d info_by_port.get(port.port_name, None)"},{"line_number":813,"context_line":"            if cur_info is not None and cur_info[0] !\u003d lvm.vlan:"},{"line_number":814,"context_line":"                other_config \u003d cur_info[1] if cur_info[1] is not None else {}"},{"line_number":815,"context_line":"                other_config[\u0027tag\u0027] \u003d lvm.vlan"},{"line_number":816,"context_line":"                self.int_br.set_db_attribute("},{"line_number":817,"context_line":"                    \"Port\", port.port_name, \"other_config\", other_config)"},{"line_number":818,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"dae33548_9a5a5882","line":815,"updated":"2016-02-15 15:25:41.000000000","message":"This is modifying the result of self.int_br.get_ports_attributes. Is it expected? If not please consider making a copy.","commit_id":"0f205737f9f4c7050dd1808399ce95c06b332726"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"77ef47b7d2b523ee345f88228234f88a68974ede","unresolved":false,"context_lines":[{"line_number":812,"context_line":"            cur_info \u003d info_by_port.get(port.port_name, None)"},{"line_number":813,"context_line":"            if cur_info is not None and cur_info[0] !\u003d lvm.vlan:"},{"line_number":814,"context_line":"                other_config \u003d cur_info[1] if cur_info[1] is not None else {}"},{"line_number":815,"context_line":"                other_config[\u0027tag\u0027] \u003d lvm.vlan"},{"line_number":816,"context_line":"                self.int_br.set_db_attribute("},{"line_number":817,"context_line":"                    \"Port\", port.port_name, \"other_config\", other_config)"},{"line_number":818,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"dae33548_18c8f421","line":815,"in_reply_to":"dae33548_9a5a5882","updated":"2016-02-16 08:28:31.000000000","message":"This is the unique porpoise of this patch.","commit_id":"0f205737f9f4c7050dd1808399ce95c06b332726"}]}
