)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9820,"name":"Liping Mao","email":"limao@cisco.com","username":"LipingMao"},"change_message_id":"358ab49dc49af7b246bcdef7ddadf8187eda2b88","unresolved":false,"context_lines":[{"line_number":9,"context_line":"If one pre-creates a port and then tells neutron to use that as a gateway"},{"line_number":10,"context_line":"port (a workflow the UI exposes). This port will have the default security"},{"line_number":11,"context_line":"group on it as that was added during the inital create. This causes traffic"},{"line_number":12,"context_line":"to not flow. Instead we should be removing the security group from this port"},{"line_number":13,"context_line":"as currently we do not add any security groups to ports that have a"},{"line_number":14,"context_line":"device_owner name that starts with network:."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1ae5cdf2_737b88f4","line":12,"updated":"2014-06-17 09:39:43.000000000","message":"\"This causes traffic to not flow.\"\nDo you mean \"This will block the traffic flow\" ?","commit_id":"252cbd9cf22ae837f2154a736727afba95eff868"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"235e7c2c7741771e668f6c6017d3930c98da3ee1","unresolved":false,"context_lines":[{"line_number":9,"context_line":"If one pre-creates a port and then tells neutron to use that as a gateway"},{"line_number":10,"context_line":"port (a workflow the UI exposes). This port will have the default security"},{"line_number":11,"context_line":"group on it as that was added during the inital create. This causes traffic"},{"line_number":12,"context_line":"to not flow. Instead we should be removing the security group from this port"},{"line_number":13,"context_line":"as currently we do not add any security groups to ports that have a"},{"line_number":14,"context_line":"device_owner name that starts with network:."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1ae5cdf2_1473f8b4","line":12,"in_reply_to":"1ae5cdf2_737b88f4","updated":"2014-06-17 16:56:49.000000000","message":"yes","commit_id":"252cbd9cf22ae837f2154a736727afba95eff868"}],"neutron/db/l3_db.py":[{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"6d43966bb86b18ede64c472b319d8f4e3d0d9b9b","unresolved":false,"context_lines":[{"line_number":438,"context_line":"        # NOTE(arosen): this is done outside the initial transcation"},{"line_number":439,"context_line":"        # to avoid nested transaction issues with eventlet/sqlalchemy."},{"line_number":440,"context_line":"        port \u003d self._core_plugin.update_port(context, port[\u0027id\u0027],"},{"line_number":441,"context_line":"                                             {\u0027port\u0027: port_req})"},{"line_number":442,"context_line":"        return port"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"    def _add_interface_by_subnet(self, context, router_id, subnet_id, owner):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_0ae53008","line":441,"updated":"2014-06-12 12:56:37.000000000","message":"arosen: I don\u0027t quite understand the \"nested transaction issues\"? don\u0027t our other methods are implemented it by nested transaction? such as the update_port itself:\nml2 pluin.update_port -?neutron.db.db_base_plugin_v2.NeutronDbPluginV2.update_port\n\nand the transaction between line -\u003e 433 is for just reading, should be use an transaction for them?","commit_id":"5b4497066879a59b2630f6013bd3779f0fe295b8"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"073b065ae8de2794459eaf7db0a6904e7ce3310d","unresolved":false,"context_lines":[{"line_number":438,"context_line":"        # NOTE(arosen): this is done outside the initial transcation"},{"line_number":439,"context_line":"        # to avoid nested transaction issues with eventlet/sqlalchemy."},{"line_number":440,"context_line":"        port \u003d self._core_plugin.update_port(context, port[\u0027id\u0027],"},{"line_number":441,"context_line":"                                             {\u0027port\u0027: port_req})"},{"line_number":442,"context_line":"        return port"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"    def _add_interface_by_subnet(self, context, router_id, subnet_id, owner):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_6a2db58e","line":441,"in_reply_to":"1ae5cdf2_0ae53008","updated":"2014-06-13 08:30:59.000000000","message":"I think this call would be the same (with respect to deadlocks) whether or not it is inside the transaction above. The risk comes when one locks for update and then something makes a network call or something that triggers a yield.\n\nIt makes sense to move it into the transaction.","commit_id":"5b4497066879a59b2630f6013bd3779f0fe295b8"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"27b1d8ffb17198b0e90c959f0189bae417d31716","unresolved":false,"context_lines":[{"line_number":438,"context_line":"        # NOTE(arosen): this is done outside the initial transcation"},{"line_number":439,"context_line":"        # to avoid nested transaction issues with eventlet/sqlalchemy."},{"line_number":440,"context_line":"        port \u003d self._core_plugin.update_port(context, port[\u0027id\u0027],"},{"line_number":441,"context_line":"                                             {\u0027port\u0027: port_req})"},{"line_number":442,"context_line":"        return port"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"    def _add_interface_by_subnet(self, context, router_id, subnet_id, owner):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_84790395","line":441,"in_reply_to":"1ae5cdf2_6a2db58e","updated":"2014-06-13 20:32:15.000000000","message":"We\u0027ll see :)","commit_id":"5b4497066879a59b2630f6013bd3779f0fe295b8"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"4fe4420d28a4af1092d785dd81028bbf0a48c75f","unresolved":false,"context_lines":[{"line_number":432,"context_line":"                                              subnet[\u0027cidr\u0027])"},{"line_number":433,"context_line":"            port_req \u003d {\u0027device_id\u0027: router_id,"},{"line_number":434,"context_line":"                        \u0027device_owner\u0027: owner,"},{"line_number":435,"context_line":"                        \u0027security_groups\u0027: []}"},{"line_number":436,"context_line":"            # Update the port attributes in the backend and clear the"},{"line_number":437,"context_line":"            # security groups on the router port."},{"line_number":438,"context_line":"            port \u003d self._core_plugin.update_port(context, port[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_8e90f04f","line":435,"updated":"2014-06-17 07:24:03.000000000","message":"I think it is not good to do something without user knows. At least, we should LOG.warn() here.","commit_id":"252cbd9cf22ae837f2154a736727afba95eff868"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"235e7c2c7741771e668f6c6017d3930c98da3ee1","unresolved":false,"context_lines":[{"line_number":432,"context_line":"                                              subnet[\u0027cidr\u0027])"},{"line_number":433,"context_line":"            port_req \u003d {\u0027device_id\u0027: router_id,"},{"line_number":434,"context_line":"                        \u0027device_owner\u0027: owner,"},{"line_number":435,"context_line":"                        \u0027security_groups\u0027: []}"},{"line_number":436,"context_line":"            # Update the port attributes in the backend and clear the"},{"line_number":437,"context_line":"            # security groups on the router port."},{"line_number":438,"context_line":"            port \u003d self._core_plugin.update_port(context, port[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_d45350e0","line":435,"in_reply_to":"1ae5cdf2_8e90f04f","updated":"2014-06-17 16:56:49.000000000","message":"Adding a LOG message here will just add noise to the logs for an API call we support!  If a user today does neutron router-interface-add router1 subnet1; the port added won\u0027t have a security group. This ensures that if someone does this with a port instead a workflow the UI exposes the same thing happens. Otherwise all traffic will be dropped.","commit_id":"252cbd9cf22ae837f2154a736727afba95eff868"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"fcc24d01353abd2ac3e7afc252525a1d871db04b","unresolved":false,"context_lines":[{"line_number":435,"context_line":"                        \u0027security_groups\u0027: []}"},{"line_number":436,"context_line":"            # Update the port attributes in the backend and clear the"},{"line_number":437,"context_line":"            # security groups on the router port."},{"line_number":438,"context_line":"            port \u003d self._core_plugin.update_port(context, port[\u0027id\u0027],"},{"line_number":439,"context_line":"                                                 {\u0027port\u0027: port_req})"},{"line_number":440,"context_line":"        return port"},{"line_number":441,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_df744938","line":438,"updated":"2014-06-17 17:23:29.000000000","message":"I think the whole change makes sense, but I would be concerned as to what this poses, the hell could potentially break loose.","commit_id":"252cbd9cf22ae837f2154a736727afba95eff868"}]}
