)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"84efcfbe5e1f4934dcaad1c07f859be1a9b8f6d9","unresolved":false,"context_lines":[{"line_number":29,"context_line":"l2pop driver has to notify only about this port to all agents."},{"line_number":30,"context_line":"Agents will then add this port to their local list."},{"line_number":31,"context_line":"Agent will ignore any other notifications."},{"line_number":32,"context_line":"In this new appraoch, new field \u0027port\u0027 added to fdb_entries,"},{"line_number":33,"context_line":"because l2pop will always notify about a single port and can"},{"line_number":34,"context_line":"avoid duplicate entries in fdb."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa0719c6_cb3c4e95","line":32,"updated":"2016-03-24 17:25:43.000000000","message":"It\u0027s an RPC message, you shouldn\u0027t change the return values without handling the version properly. I don\u0027t see why we need this new field, to achieve the same goal we can use the current message format: the current code sends the fdb entries only when it\u0027s the first port of the network on an agent, to fix this we could send the fdb_entries regardless.","commit_id":"2ce5e920c58b28af04f9d92d4e13835f3b0475bc"},{"author":{"_account_id":10267,"name":"venkata anil","email":"anilvenkata@redhat.com","username":"anil"},"change_message_id":"c462c800e964a1dd674aefa04b220644c6c4a26f","unresolved":false,"context_lines":[{"line_number":29,"context_line":"l2pop driver has to notify only about this port to all agents."},{"line_number":30,"context_line":"Agents will then add this port to their local list."},{"line_number":31,"context_line":"Agent will ignore any other notifications."},{"line_number":32,"context_line":"In this new appraoch, new field \u0027port\u0027 added to fdb_entries,"},{"line_number":33,"context_line":"because l2pop will always notify about a single port and can"},{"line_number":34,"context_line":"avoid duplicate entries in fdb."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"da0c15f0_ed102dab","line":32,"in_reply_to":"fa0719c6_cb3c4e95","updated":"2016-03-24 18:25:12.000000000","message":"you might be talking about this change which I submitted long back\nhttps://review.openstack.org/#/c/288284/","commit_id":"2ce5e920c58b28af04f9d92d4e13835f3b0475bc"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"b159caff1ce7ea1d34e4925b5775e1f3e8bfb0dc","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"With this approach, when a port create/update/delete happens,"},{"line_number":25,"context_line":"l2pop driver has to notify \"only current port fdb\" to all agents(only"},{"line_number":26,"context_line":"fanout and no cast notification).In this new appraoch, new field \u0027port\u0027"},{"line_number":27,"context_line":"added to fdb_entries,because l2pop will always notify about a single"},{"line_number":28,"context_line":"port and can avoid duplicate entries in port\u0027s fdb."},{"line_number":29,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5a18252c_e74d583f","line":26,"range":{"start_line":26,"start_character":45,"end_line":26,"end_character":53},"updated":"2016-04-14 10:49:43.000000000","message":"appraoch -\u003e approach","commit_id":"5cfdd4b48501aee854de8c17127a25ebb911126b"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"b159caff1ce7ea1d34e4925b5775e1f3e8bfb0dc","unresolved":false,"context_lines":[{"line_number":25,"context_line":"l2pop driver has to notify \"only current port fdb\" to all agents(only"},{"line_number":26,"context_line":"fanout and no cast notification).In this new appraoch, new field \u0027port\u0027"},{"line_number":27,"context_line":"added to fdb_entries,because l2pop will always notify about a single"},{"line_number":28,"context_line":"port and can avoid duplicate entries in port\u0027s fdb."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"A new RPC added for agent to get existing network ports on remote agents"},{"line_number":31,"context_line":"from l2pop driver, and create above list and flood entries to other agents"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5a18252c_e7c6f898","line":28,"updated":"2016-04-14 10:49:43.000000000","message":"please note that such notifications (when using agent notifications) can be processed out of order, because they go in different queues.","commit_id":"5cfdd4b48501aee854de8c17127a25ebb911126b"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"b159caff1ce7ea1d34e4925b5775e1f3e8bfb0dc","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"A new RPC added for agent to get existing network ports on remote agents"},{"line_number":31,"context_line":"from l2pop driver, and create above list and flood entries to other agents"},{"line_number":32,"context_line":"when first port on network(new lvm) on this local agent created("},{"line_number":33,"context_line":"same happens on agent restarts)."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"To maintain backword compatility with agents from previous releases,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5a18252c_c7e65c14","line":32,"updated":"2016-04-14 10:49:43.000000000","message":"created -\u003e is created ?","commit_id":"5cfdd4b48501aee854de8c17127a25ebb911126b"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"b159caff1ce7ea1d34e4925b5775e1f3e8bfb0dc","unresolved":false,"context_lines":[{"line_number":32,"context_line":"when first port on network(new lvm) on this local agent created("},{"line_number":33,"context_line":"same happens on agent restarts)."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"To maintain backword compatility with agents from previous releases,"},{"line_number":36,"context_line":"l2pop driver still notifies about network ports to agent and also"},{"line_number":37,"context_line":"all fdb fields retained.Once this obsolete code is removed, l2pop driver"},{"line_number":38,"context_line":"will be simpler like in https://review.openstack.org/#/c/302325/"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5a18252c_07c4d45c","line":35,"range":{"start_line":35,"start_character":12,"end_line":35,"end_character":20},"updated":"2016-04-14 10:49:43.000000000","message":"backward","commit_id":"5cfdd4b48501aee854de8c17127a25ebb911126b"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"b159caff1ce7ea1d34e4925b5775e1f3e8bfb0dc","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"To maintain backword compatility with agents from previous releases,"},{"line_number":36,"context_line":"l2pop driver still notifies about network ports to agent and also"},{"line_number":37,"context_line":"all fdb fields retained.Once this obsolete code is removed, l2pop driver"},{"line_number":38,"context_line":"will be simpler like in https://review.openstack.org/#/c/302325/"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Need to implement similar changes on linux bridge agent."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5a18252c_478fec29","line":37,"updated":"2016-04-14 10:49:43.000000000","message":"retained -\u003e are retained.","commit_id":"5cfdd4b48501aee854de8c17127a25ebb911126b"}],"neutron/plugins/ml2/drivers/l2pop/db.py":[{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"b159caff1ce7ea1d34e4925b5775e1f3e8bfb0dc","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from neutron.db import models_v2"},{"line_number":24,"context_line":"from neutron.plugins.ml2 import models as ml2_models"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"PortItem \u003d collections.namedtuple(\"PortItem\", \"port_id mac_address ip_list\")"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def get_agent_ip_by_host(session, agent_host):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a18252c_274d90c4","line":26,"updated":"2016-04-14 10:49:43.000000000","message":"May be PortItem is too generic, but I can\u0027t think of a decent name :/ PortAddresses ? I don\u0027t know. \n\n(No action required)\nI just discovered you could define namedtuples with the items in a string separated by spaces, but you can :-)\n\nhttps://docs.python.org/3/library/collections.html#collections.namedtuple","commit_id":"5cfdd4b48501aee854de8c17127a25ebb911126b"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"b159caff1ce7ea1d34e4925b5775e1f3e8bfb0dc","unresolved":false,"context_lines":[{"line_number":137,"context_line":"    ports \u003d {}"},{"line_number":138,"context_line":"    network_ports \u003d ("},{"line_number":139,"context_line":"        get_dvr_active_network_ports(session, network_id) +"},{"line_number":140,"context_line":"        get_nondvr_active_network_ports(session, network_id))"},{"line_number":141,"context_line":"    for binding, agent in network_ports:"},{"line_number":142,"context_line":"        agent_ip \u003d get_agent_ip(agent)"},{"line_number":143,"context_line":"        if host_ip \u003d\u003d agent_ip:"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a18252c_825bb2f5","line":140,"updated":"2016-04-14 10:49:43.000000000","message":"would it make sense to have a single method to grab both in one query? This way we\u0027d avoid two separate queries to the database.","commit_id":"5cfdd4b48501aee854de8c17127a25ebb911126b"}],"neutron/plugins/ml2/drivers/l2pop/mech_driver.py":[{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"84efcfbe5e1f4934dcaad1c07f859be1a9b8f6d9","unresolved":false,"context_lines":[{"line_number":242,"context_line":"            l2pop_db.get_port_items(port)"},{"line_number":243,"context_line":"        other_fdb_ports \u003d other_fdb_entries[network_id][\u0027ports\u0027]"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"        if agent_active_ports \u003d\u003d 1 or (l2pop_db.get_agent_uptime(agent) \u003c"},{"line_number":246,"context_line":"                                       cfg.CONF.l2pop.agent_boot_time):"},{"line_number":247,"context_line":"            # First port activated on current agent in this network,"},{"line_number":248,"context_line":"            # we have to provide it with the whole list of fdb entries"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_78b35a98","line":245,"updated":"2016-03-24 17:25:43.000000000","message":"Instead of all this modification it would be enough to relax this check so that we send all the fdb entries every time, not just when it\u0027s the first port","commit_id":"2ce5e920c58b28af04f9d92d4e13835f3b0475bc"},{"author":{"_account_id":10267,"name":"venkata anil","email":"anilvenkata@redhat.com","username":"anil"},"change_message_id":"49ed82e0ab50ff4554b2e2749bdec60338d71120","unresolved":false,"context_lines":[{"line_number":242,"context_line":"            l2pop_db.get_port_items(port)"},{"line_number":243,"context_line":"        other_fdb_ports \u003d other_fdb_entries[network_id][\u0027ports\u0027]"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"        if agent_active_ports \u003d\u003d 1 or (l2pop_db.get_agent_uptime(agent) \u003c"},{"line_number":246,"context_line":"                                       cfg.CONF.l2pop.agent_boot_time):"},{"line_number":247,"context_line":"            # First port activated on current agent in this network,"},{"line_number":248,"context_line":"            # we have to provide it with the whole list of fdb entries"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a061dce_a9718478","line":245,"in_reply_to":"9a061dce_866bcff0","updated":"2016-04-06 12:38:35.000000000","message":"sure, I will also add comment in all the other places which I am retaining for backward compatibility.","commit_id":"2ce5e920c58b28af04f9d92d4e13835f3b0475bc"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"68ae1757ba9994538f60e1bff07ea2378150df91","unresolved":false,"context_lines":[{"line_number":242,"context_line":"            l2pop_db.get_port_items(port)"},{"line_number":243,"context_line":"        other_fdb_ports \u003d other_fdb_entries[network_id][\u0027ports\u0027]"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"        if agent_active_ports \u003d\u003d 1 or (l2pop_db.get_agent_uptime(agent) \u003c"},{"line_number":246,"context_line":"                                       cfg.CONF.l2pop.agent_boot_time):"},{"line_number":247,"context_line":"            # First port activated on current agent in this network,"},{"line_number":248,"context_line":"            # we have to provide it with the whole list of fdb entries"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a061dce_866bcff0","line":245,"in_reply_to":"da0c15f0_cd5f2974","updated":"2016-04-06 12:32:59.000000000","message":"I understand you\u0027re keeping this code for backwards compat, do we want to add a comment here saying that this code can be removed once we release Newton?","commit_id":"2ce5e920c58b28af04f9d92d4e13835f3b0475bc"},{"author":{"_account_id":10267,"name":"venkata anil","email":"anilvenkata@redhat.com","username":"anil"},"change_message_id":"c462c800e964a1dd674aefa04b220644c6c4a26f","unresolved":false,"context_lines":[{"line_number":242,"context_line":"            l2pop_db.get_port_items(port)"},{"line_number":243,"context_line":"        other_fdb_ports \u003d other_fdb_entries[network_id][\u0027ports\u0027]"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"        if agent_active_ports \u003d\u003d 1 or (l2pop_db.get_agent_uptime(agent) \u003c"},{"line_number":246,"context_line":"                                       cfg.CONF.l2pop.agent_boot_time):"},{"line_number":247,"context_line":"            # First port activated on current agent in this network,"},{"line_number":248,"context_line":"            # we have to provide it with the whole list of fdb entries"}],"source_content_type":"text/x-python","patch_set":1,"id":"da0c15f0_cd5f2974","line":245,"in_reply_to":"fa0719c6_78b35a98","updated":"2016-03-24 18:25:12.000000000","message":"you might be talking about this change which I submitted long back https://review.openstack.org/#/c/288284/","commit_id":"2ce5e920c58b28af04f9d92d4e13835f3b0475bc"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"b159caff1ce7ea1d34e4925b5775e1f3e8bfb0dc","unresolved":false,"context_lines":[{"line_number":73,"context_line":"            self, upd_fdb_entries, port, agent_ip, orig_ips, port_ips):"},{"line_number":74,"context_line":"        orig_mac_ip \u003d l2pop_db.PortItem(port_id\u003dport[\u0027id\u0027],"},{"line_number":75,"context_line":"                                        mac_address\u003dport[\u0027mac_address\u0027],"},{"line_number":76,"context_line":"                                        ip_list\u003d[ip for ip in orig_ips])"},{"line_number":77,"context_line":"        port_mac_ip \u003d l2pop_db.PortItem(port_id\u003dport[\u0027id\u0027],"},{"line_number":78,"context_line":"                                        mac_address\u003dport[\u0027mac_address\u0027],"},{"line_number":79,"context_line":"                                        ip_list\u003d[ip for ip in port_ips])"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a18252c_6d012705","line":76,"updated":"2016-04-14 10:49:43.000000000","message":"[ip for ip in orig_ips] ? \ncouldn\u0027t you just do orig_ips.copy() or use orig_ips as is (if it\u0027s not going to be mutated)","commit_id":"5cfdd4b48501aee854de8c17127a25ebb911126b"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"b159caff1ce7ea1d34e4925b5775e1f3e8bfb0dc","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                                        ip_list\u003d[ip for ip in orig_ips])"},{"line_number":77,"context_line":"        port_mac_ip \u003d l2pop_db.PortItem(port_id\u003dport[\u0027id\u0027],"},{"line_number":78,"context_line":"                                        mac_address\u003dport[\u0027mac_address\u0027],"},{"line_number":79,"context_line":"                                        ip_list\u003d[ip for ip in port_ips])"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        upd_fdb_entries[port[\u0027network_id\u0027]][\u0027port\u0027] \u003d {agent_ip: {}}"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a18252c_8d0c833c","line":79,"updated":"2016-04-14 10:49:43.000000000","message":"ditto","commit_id":"5cfdd4b48501aee854de8c17127a25ebb911126b"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"b159caff1ce7ea1d34e4925b5775e1f3e8bfb0dc","unresolved":false,"context_lines":[{"line_number":318,"context_line":"    @classmethod"},{"line_number":319,"context_line":"    def _get_fdb_entries_template(cls, segment, agent_ip, network_id):"},{"line_number":320,"context_line":"        # REVISIT(anilvenkata): \u0027ports\u0027 key is retained for backward"},{"line_number":321,"context_line":"        # compatbility with agents from previous releases."},{"line_number":322,"context_line":"        return {"},{"line_number":323,"context_line":"            network_id:"},{"line_number":324,"context_line":"                {\u0027segment_id\u0027: segment[\u0027segmentation_id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a18252c_42ceba2e","line":321,"updated":"2016-04-14 10:49:43.000000000","message":"compatbility -\u003e compatibility","commit_id":"5cfdd4b48501aee854de8c17127a25ebb911126b"}],"neutron/plugins/ml2/rpc.py":[{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"b159caff1ce7ea1d34e4925b5775e1f3e8bfb0dc","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"class L2populationServerRpcCallback(object):"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def get_network_ports_fdb(self, context, **kwargs):"},{"line_number":47,"context_line":"        # Agent is requesting the network ports on other agents"},{"line_number":48,"context_line":"        network_id \u003d kwargs.get(\u0027network_id\u0027)"},{"line_number":49,"context_line":"        host \u003d kwargs.get(\u0027host\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a18252c_3ca92725","line":46,"updated":"2016-04-14 10:49:43.000000000","message":"We\u0027d need to check the scalability impacts of this.\n\nDo you have an estimate of the payload response size per port?","commit_id":"5cfdd4b48501aee854de8c17127a25ebb911126b"}]}
