)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"be92e3e1d065efa60401223b12a221a253597ac8","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"We follow this order for selecting candidates"},{"line_number":22,"context_line":"1) candidates with ovn-cms-options and proper bridge mappings"},{"line_number":23,"context_line":"2) if no candidates, then chassis with only ovn-cms-options"},{"line_number":24,"context_line":"3) if no candidates, then chassis with proper bridge mappings"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Closes-bug: #1743745"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5f93b717_fe2d82a8","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":59},"updated":"2018-01-25 11:19:05.000000000","message":"I think this is problematic since we would be scheduling routers on hosts without external connectivity. ajo and I have been talking about this and we think that it\u0027d be reasonable to log an ERROR here and skip to 3). What do you think? Also, maybe in a separate patch we could fail the API call in this case since the cloud is misconfigured.","commit_id":"db4a1b9cdc80a863126db0c7c944c3e9a8575858"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"526b49c30340d7d1d93aacffca139b5844a8c13a","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"We follow this order for selecting candidates"},{"line_number":22,"context_line":"1) candidates with ovn-cms-options and proper bridge mappings"},{"line_number":23,"context_line":"2) if no candidates, then chassis with only ovn-cms-options"},{"line_number":24,"context_line":"3) if no candidates, then chassis with proper bridge mappings"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Closes-bug: #1743745"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5f93b717_ca59dbfe","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":59},"in_reply_to":"5f93b717_21d8aa51","updated":"2018-01-25 13:50:31.000000000","message":"Oh sorry, by external connectivity i meant bridge mappings. If there\u0027s no bridge mappings, there\u0027s no external connectivity so we want to avoid scheduling routers on those nodes. What do you think?","commit_id":"db4a1b9cdc80a863126db0c7c944c3e9a8575858"},{"author":{"_account_id":10267,"name":"venkata anil","email":"anilvenkata@redhat.com","username":"anil"},"change_message_id":"9f4f48bf72619bfd30c04c341a1d51d3db267a97","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"We follow this order for selecting candidates"},{"line_number":22,"context_line":"1) candidates with ovn-cms-options and proper bridge mappings"},{"line_number":23,"context_line":"2) if no candidates, then chassis with only ovn-cms-options"},{"line_number":24,"context_line":"3) if no candidates, then chassis with proper bridge mappings"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Closes-bug: #1743745"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5f93b717_21d8aa51","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":59},"in_reply_to":"5f93b717_fe2d82a8","updated":"2018-01-25 12:10:48.000000000","message":"How can we check external connectivity?\n\nMay be admin has configured chassis in some other way(no bridge mappings) for external connectivity and then updated ovn-cms-options. \n\nFor now,  we can log an ERROR here and skip to 3(Thanks for the suggestion)\n\nWaiting for suggestions.","commit_id":"db4a1b9cdc80a863126db0c7c944c3e9a8575858"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"599ea39581a7473235d1e2972abbdba5af1482c7","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Admin sets ovn-cms-options in external_ids as"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"ovs-vsctl set open ."},{"line_number":12,"context_line":"   external_ids:ovn-cms-options\u003d\"enable-chassis-as-gw\""},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"to enable a chassis as a candidate for scheduling gateway router."},{"line_number":15,"context_line":"Networking-ovn will parse ovn-cms-options and select this chassis"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f93b717_93aaddcf","line":12,"range":{"start_line":11,"start_character":0,"end_line":12,"end_character":54},"updated":"2018-01-29 19:02:12.000000000","message":"Quick q: This is already supported and we do not require any patches in core OVN for it, right ?","commit_id":"8268353b68d23057848c38c2120ef30f6ee861f3"},{"author":{"_account_id":23458,"name":"Dong Jun","email":"dongjun.01@bytedance.com","username":"Dongj"},"change_message_id":"419864fee0056a94ef638a86ebdb7ddb756e0325","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Admin sets ovn-cms-options in external_ids as"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"ovs-vsctl set open ."},{"line_number":12,"context_line":"   external_ids:ovn-cms-options\u003d\"enable-chassis-as-gw\""},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"to enable a chassis as a candidate for scheduling gateway router."},{"line_number":15,"context_line":"Networking-ovn will parse ovn-cms-options and select this chassis"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f93b717_c75c12ef","line":12,"range":{"start_line":12,"start_character":33,"end_line":12,"end_character":53},"updated":"2018-01-30 07:27:06.000000000","message":"``enable-chassis-as-gw`` is described neither in the ovn-controller man file nor in networking-ovn conf file. It is not very friendly only in the code, I think it\u0027s better to have an option in conf.","commit_id":"8268353b68d23057848c38c2120ef30f6ee861f3"},{"author":{"_account_id":10237,"name":"Numan Siddique","email":"nusiddiq@redhat.com","username":"numansiddique"},"change_message_id":"d5bc01e32b6b946997af95de133dca9083e156d4","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Admin sets ovn-cms-options in external_ids as"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"ovs-vsctl set open ."},{"line_number":12,"context_line":"   external_ids:ovn-cms-options\u003d\"enable-chassis-as-gw\""},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"to enable a chassis as a candidate for scheduling gateway router."},{"line_number":15,"context_line":"Networking-ovn will parse ovn-cms-options and select this chassis"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f93b717_da4b6828","line":12,"range":{"start_line":11,"start_character":0,"end_line":12,"end_character":54},"in_reply_to":"5f93b717_4b38edec","updated":"2018-01-31 08:19:12.000000000","message":"How about adding an option through devstack. And if set, the devstack ovn script would run \"ovs-vsctl set open . external_ids:ovn-cms-options\u003d\u0027...\u0027, just like how we set ovn-bridge-mappings ?","commit_id":"8268353b68d23057848c38c2120ef30f6ee861f3"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"cdb95e3baafa1567dac9bc0796d1becb9a192c7e","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Admin sets ovn-cms-options in external_ids as"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"ovs-vsctl set open ."},{"line_number":12,"context_line":"   external_ids:ovn-cms-options\u003d\"enable-chassis-as-gw\""},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"to enable a chassis as a candidate for scheduling gateway router."},{"line_number":15,"context_line":"Networking-ovn will parse ovn-cms-options and select this chassis"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f93b717_8a292ae7","line":12,"range":{"start_line":11,"start_character":0,"end_line":12,"end_character":54},"in_reply_to":"5f93b717_5f4bf429","updated":"2018-01-30 11:41:31.000000000","message":"Thanks for clarifying @Daniel!\n\nRe: tempest test, I think the more tests the better. Tempest is probably one of the most realistic tests we run on gate so, I\u0027m +1 for it! (Maybe even on a separated patch-set if anil so prefer)","commit_id":"8268353b68d23057848c38c2120ef30f6ee861f3"},{"author":{"_account_id":10267,"name":"venkata anil","email":"anilvenkata@redhat.com","username":"anil"},"change_message_id":"7540caf805c4735dd7236aa1cedcae4438b06e75","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Admin sets ovn-cms-options in external_ids as"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"ovs-vsctl set open ."},{"line_number":12,"context_line":"   external_ids:ovn-cms-options\u003d\"enable-chassis-as-gw\""},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"to enable a chassis as a candidate for scheduling gateway router."},{"line_number":15,"context_line":"Networking-ovn will parse ovn-cms-options and select this chassis"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f93b717_4b38edec","line":12,"range":{"start_line":11,"start_character":0,"end_line":12,"end_character":54},"in_reply_to":"5f93b717_8a292ae7","updated":"2018-01-31 07:23:23.000000000","message":"Thanks Lucas, Dong and Daniel for suggestions.\n\nI have added a release note also enabled through devstack. We can\u0027t pass this a config option through config files as it has to be set by admin through Openstack installers or manually.\n\nI don\u0027t see tempest folder inside networking-ovn. I will add a tempest test for this in tempest repo.","commit_id":"8268353b68d23057848c38c2120ef30f6ee861f3"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"01c36b98f68a8a7d9952bd02770ba75560b3f6bc","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Admin sets ovn-cms-options in external_ids as"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"ovs-vsctl set open ."},{"line_number":12,"context_line":"   external_ids:ovn-cms-options\u003d\"enable-chassis-as-gw\""},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"to enable a chassis as a candidate for scheduling gateway router."},{"line_number":15,"context_line":"Networking-ovn will parse ovn-cms-options and select this chassis"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f93b717_5f4bf429","line":12,"range":{"start_line":11,"start_character":0,"end_line":12,"end_character":54},"in_reply_to":"5f93b717_93aaddcf","updated":"2018-01-30 11:21:01.000000000","message":"Right. It\u0027s on current master branch and 2.9 Also this patch looks backwards compatible since if the external id doesn\u0027t exist it will still work.\nhttps://mail.openvswitch.org/pipermail/ovs-dev/2018- January/343556.html\n\n\n@Anil, others: shall we write this option from devstack so that we can properly test this path in tempest runs? I would also include some DEBUG logs to be able to tell the candidates and the chosen one. Also noting that no CMS Options were found if that\u0027s the case. I think it will be easier to debug issues with FIPs and so on. Thoughts?","commit_id":"8268353b68d23057848c38c2120ef30f6ee861f3"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"599ea39581a7473235d1e2972abbdba5af1482c7","unresolved":false,"context_lines":[{"line_number":21,"context_line":"We follow this order for selecting candidates"},{"line_number":22,"context_line":"1) candidates with ovn-cms-options and proper bridge mappings"},{"line_number":23,"context_line":"2) if no candidates from 1), then chassis with proper"},{"line_number":24,"context_line":"   bridge mappings"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Closes-bug: #1743745"},{"line_number":27,"context_line":"Change-Id: I86fbe27f0b6a9317ad82c2bcf2a0446d118de35b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f93b717_13ed6d24","line":24,"updated":"2018-01-29 19:02:12.000000000","message":"This is a great feature and I think it would be good to at least add a release note about it (maybe a document too, but a release note to start I think would be great).\n\nOtherwise, this is going to be just a hidden feature that little to no people will be aware of.","commit_id":"8268353b68d23057848c38c2120ef30f6ee861f3"},{"author":{"_account_id":23458,"name":"Dong Jun","email":"dongjun.01@bytedance.com","username":"Dongj"},"change_message_id":"419864fee0056a94ef638a86ebdb7ddb756e0325","unresolved":false,"context_lines":[{"line_number":21,"context_line":"We follow this order for selecting candidates"},{"line_number":22,"context_line":"1) candidates with ovn-cms-options and proper bridge mappings"},{"line_number":23,"context_line":"2) if no candidates from 1), then chassis with proper"},{"line_number":24,"context_line":"   bridge mappings"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Closes-bug: #1743745"},{"line_number":27,"context_line":"Change-Id: I86fbe27f0b6a9317ad82c2bcf2a0446d118de35b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f93b717_7c5ef544","line":24,"in_reply_to":"5f93b717_13ed6d24","updated":"2018-01-30 07:27:06.000000000","message":"++","commit_id":"8268353b68d23057848c38c2120ef30f6ee861f3"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"01c36b98f68a8a7d9952bd02770ba75560b3f6bc","unresolved":false,"context_lines":[{"line_number":21,"context_line":"We follow this order for selecting candidates"},{"line_number":22,"context_line":"1) candidates with ovn-cms-options and proper bridge mappings"},{"line_number":23,"context_line":"2) if no candidates from 1), then chassis with proper"},{"line_number":24,"context_line":"   bridge mappings"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Closes-bug: #1743745"},{"line_number":27,"context_line":"Change-Id: I86fbe27f0b6a9317ad82c2bcf2a0446d118de35b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f93b717_1f6ecc94","line":24,"in_reply_to":"5f93b717_13ed6d24","updated":"2018-01-30 11:21:01.000000000","message":"+1 for the reno","commit_id":"8268353b68d23057848c38c2120ef30f6ee861f3"},{"author":{"_account_id":10267,"name":"venkata anil","email":"anilvenkata@redhat.com","username":"anil"},"change_message_id":"7540caf805c4735dd7236aa1cedcae4438b06e75","unresolved":false,"context_lines":[{"line_number":21,"context_line":"We follow this order for selecting candidates"},{"line_number":22,"context_line":"1) candidates with ovn-cms-options and proper bridge mappings"},{"line_number":23,"context_line":"2) if no candidates from 1), then chassis with proper"},{"line_number":24,"context_line":"   bridge mappings"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Closes-bug: #1743745"},{"line_number":27,"context_line":"Change-Id: I86fbe27f0b6a9317ad82c2bcf2a0446d118de35b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f93b717_0b2665cf","line":24,"in_reply_to":"5f93b717_1f6ecc94","updated":"2018-01-31 07:23:23.000000000","message":"done","commit_id":"8268353b68d23057848c38c2120ef30f6ee861f3"}],"devstack/computenode-local.conf.sample":[{"author":{"_account_id":10237,"name":"Numan Siddique","email":"nusiddiq@redhat.com","username":"numansiddique"},"change_message_id":"2267b660b4d8c566259f70ee192a78fddd2a891c","unresolved":false,"context_lines":[{"line_number":74,"context_line":"# If the admin wants to enable this chassis to host gateway routers for"},{"line_number":75,"context_line":"# external connectivity, then set ENABLE_CHASSIS_AS_GW to True."},{"line_number":76,"context_line":"# Then devstack will set ovn-cms-options with enable-chassis-as-gw"},{"line_number":77,"context_line":"# in Open_vSwitch table\u0027s external_ids column. This option has to be"},{"line_number":78,"context_line":"# enabled only on controller and network nodes and should be set"},{"line_number":79,"context_line":"# to False on compute nodes."},{"line_number":80,"context_line":"#ENABLE_CHASSIS_AS_GW\u003dFalse"}],"source_content_type":"application/octet-stream","patch_set":11,"id":"3fa0c359_5db6058d","line":79,"range":{"start_line":77,"start_character":48,"end_line":79,"end_character":28},"updated":"2018-02-15 09:16:27.000000000","message":"What if someone wants to make use of compute nodes for external connectivity ? \n\nThe wordings seems in appropriate to me. I suggest removing this line.","commit_id":"fee0111c37fd63416f07031cb0d80fbca1d6035f"},{"author":{"_account_id":10267,"name":"venkata anil","email":"anilvenkata@redhat.com","username":"anil"},"change_message_id":"5ccc5adcd3e1826979e43c44045674d0817a4b59","unresolved":false,"context_lines":[{"line_number":74,"context_line":"# If the admin wants to enable this chassis to host gateway routers for"},{"line_number":75,"context_line":"# external connectivity, then set ENABLE_CHASSIS_AS_GW to True."},{"line_number":76,"context_line":"# Then devstack will set ovn-cms-options with enable-chassis-as-gw"},{"line_number":77,"context_line":"# in Open_vSwitch table\u0027s external_ids column. This option has to be"},{"line_number":78,"context_line":"# enabled only on controller and network nodes and should be set"},{"line_number":79,"context_line":"# to False on compute nodes."},{"line_number":80,"context_line":"#ENABLE_CHASSIS_AS_GW\u003dFalse"}],"source_content_type":"application/octet-stream","patch_set":11,"id":"3fa0c359_6307a21a","line":79,"range":{"start_line":77,"start_character":48,"end_line":79,"end_character":28},"in_reply_to":"3fa0c359_5db6058d","updated":"2018-02-15 09:35:40.000000000","message":"sure","commit_id":"fee0111c37fd63416f07031cb0d80fbca1d6035f"}],"devstack/devstackgaterc":[{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"4983d882a9d3fb3737ca6b190848f06f4d877cf1","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    # NOTE(rtheis): Multinode does not require creating an OVN L3 public network."},{"line_number":43,"context_line":"    export DEVSTACK_LOCAL_CONFIG+\u003d$\u0027\\n\u0027\"OVN_L3_CREATE_PUBLIC_NETWORK\u003dFalse\""},{"line_number":44,"context_line":"    # Enable controller to host gateway routers"},{"line_number":45,"context_line":"    export DEVSTACK_LOCAL_CONFIG+\u003d$\u0027\\n\u0027\"ENABLE_CHASSIS_AS_GW\u003dTrue\""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    # NOTE(rtheis): Configure the enabled services on the compute node."},{"line_number":48,"context_line":"    export DEVSTACK_SUBNODE_CONFIG+\u003d$\u0027\\n\u0027\"ENABLED_SERVICES\u003dn-cpu,dstat,c-vol,c-bak,ovn-controller\""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"5f93b717_1fc9baaa","line":45,"updated":"2018-01-31 12:42:46.000000000","message":"wouldn\u0027t this be enabling it for all chassis on the deployment?","commit_id":"2627f72b539ea5d67fcbad02ea448487000f0068"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"b0652f6f66ec771a4a3a4812a90ac8502af10ffd","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    # NOTE(rtheis): Multinode does not require creating an OVN L3 public network."},{"line_number":43,"context_line":"    export DEVSTACK_LOCAL_CONFIG+\u003d$\u0027\\n\u0027\"OVN_L3_CREATE_PUBLIC_NETWORK\u003dFalse\""},{"line_number":44,"context_line":"    # Enable controller to host gateway routers"},{"line_number":45,"context_line":"    export DEVSTACK_LOCAL_CONFIG+\u003d$\u0027\\n\u0027\"ENABLE_CHASSIS_AS_GW\u003dTrue\""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    # NOTE(rtheis): Configure the enabled services on the compute node."},{"line_number":48,"context_line":"    export DEVSTACK_SUBNODE_CONFIG+\u003d$\u0027\\n\u0027\"ENABLED_SERVICES\u003dn-cpu,dstat,c-vol,c-bak,ovn-controller\""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"3fa0c359_e6550f1f","line":45,"in_reply_to":"3fa0c359_8683eb56","updated":"2018-02-05 07:42:35.000000000","message":"No no, nice!, if that is the case then it makes sense to me, let\u0027s keep it and make it easy to users ;)","commit_id":"2627f72b539ea5d67fcbad02ea448487000f0068"},{"author":{"_account_id":10267,"name":"venkata anil","email":"anilvenkata@redhat.com","username":"anil"},"change_message_id":"cd39677e4f30c32f99a986e3085f6946dfd00314","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    # NOTE(rtheis): Multinode does not require creating an OVN L3 public network."},{"line_number":43,"context_line":"    export DEVSTACK_LOCAL_CONFIG+\u003d$\u0027\\n\u0027\"OVN_L3_CREATE_PUBLIC_NETWORK\u003dFalse\""},{"line_number":44,"context_line":"    # Enable controller to host gateway routers"},{"line_number":45,"context_line":"    export DEVSTACK_LOCAL_CONFIG+\u003d$\u0027\\n\u0027\"ENABLE_CHASSIS_AS_GW\u003dTrue\""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    # NOTE(rtheis): Configure the enabled services on the compute node."},{"line_number":48,"context_line":"    export DEVSTACK_SUBNODE_CONFIG+\u003d$\u0027\\n\u0027\"ENABLED_SERVICES\u003dn-cpu,dstat,c-vol,c-bak,ovn-controller\""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"3fa0c359_8683eb56","line":45,"in_reply_to":"5f93b717_1fc9baaa","updated":"2018-02-05 07:11:41.000000000","message":"No. I think DEVSTACK_LOCAL_CONFIG for controller and DEVSTACK_SUBNODE_CONFIG is for computes. But I will disable it by default.","commit_id":"2627f72b539ea5d67fcbad02ea448487000f0068"},{"author":{"_account_id":10237,"name":"Numan Siddique","email":"nusiddiq@redhat.com","username":"numansiddique"},"change_message_id":"2267b660b4d8c566259f70ee192a78fddd2a891c","unresolved":false,"context_lines":[{"line_number":39,"context_line":"fi"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"# Enable controller to host gateway routers"},{"line_number":42,"context_line":"# Note: ENABLE_CHASSIS_AS_GW has to be enabled on controller or network"},{"line_number":43,"context_line":"# nodes only and should be disabled on compute nodes."},{"line_number":44,"context_line":"export DEVSTACK_LOCAL_CONFIG+\u003d$\u0027\\n\u0027\"ENABLE_CHASSIS_AS_GW\u003dTrue\""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"if [[ \"$DEVSTACK_GATE_TOPOLOGY\" \u003d\u003d \"multinode\" ]] ; then"}],"source_content_type":"application/octet-stream","patch_set":11,"id":"3fa0c359_fd7b51bb","line":43,"range":{"start_line":42,"start_character":2,"end_line":43,"end_character":53},"updated":"2018-02-15 09:16:27.000000000","message":"See my comment in devstack compute sample file.\nI don\u0027t think its a hard requirement that only controllers can host gateway chassis. I think this line can be deleted.","commit_id":"fee0111c37fd63416f07031cb0d80fbca1d6035f"},{"author":{"_account_id":10267,"name":"venkata anil","email":"anilvenkata@redhat.com","username":"anil"},"change_message_id":"5ccc5adcd3e1826979e43c44045674d0817a4b59","unresolved":false,"context_lines":[{"line_number":39,"context_line":"fi"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"# Enable controller to host gateway routers"},{"line_number":42,"context_line":"# Note: ENABLE_CHASSIS_AS_GW has to be enabled on controller or network"},{"line_number":43,"context_line":"# nodes only and should be disabled on compute nodes."},{"line_number":44,"context_line":"export DEVSTACK_LOCAL_CONFIG+\u003d$\u0027\\n\u0027\"ENABLE_CHASSIS_AS_GW\u003dTrue\""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"if [[ \"$DEVSTACK_GATE_TOPOLOGY\" \u003d\u003d \"multinode\" ]] ; then"}],"source_content_type":"application/octet-stream","patch_set":11,"id":"3fa0c359_c302360a","line":43,"range":{"start_line":42,"start_character":2,"end_line":43,"end_character":53},"in_reply_to":"3fa0c359_fd7b51bb","updated":"2018-02-15 09:35:40.000000000","message":"sure","commit_id":"fee0111c37fd63416f07031cb0d80fbca1d6035f"}],"devstack/lib/networking-ovn":[{"author":{"_account_id":10237,"name":"Numan Siddique","email":"nusiddiq@redhat.com","username":"numansiddique"},"change_message_id":"ad1468d2d5ca999c72fe725f534b39ae4d5ebd3d","unresolved":false,"context_lines":[{"line_number":374,"context_line":"            ovn_base_setup_bridge $OVS_PHYSICAL_BRIDGE"},{"line_number":375,"context_line":"            ovs-vsctl set open . external-ids:ovn-bridge-mappings\u003d${PHYSICAL_NETWORK}:${OVS_PHYSICAL_BRIDGE}"},{"line_number":376,"context_line":"            # Select this chassis to host gateway routers"},{"line_number":377,"context_line":"            ovs-vsctl set open . external-ids:ovn-cms-options\u003d\"enable-chassis-as-gw\""},{"line_number":378,"context_line":"        fi"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"        if is_service_enabled ovn-controller-vtep ; then"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"5f93b717_baea1cd5","line":377,"updated":"2018-01-31 08:22:18.000000000","message":"probably a devstack option \"ENABLE_CHASSIS\u003dYes\" ?\nDevelopers (or deployers) can set this option to true for controllers and No for compute nodes. The default for controller sample file can be \"yes\" and \"no\" for compute sample file.","commit_id":"2226e7133e3d93984f573a600c00aab32b4005dc"},{"author":{"_account_id":10267,"name":"venkata anil","email":"anilvenkata@redhat.com","username":"anil"},"change_message_id":"ee4507501e052497df52af2f685feef915d5574c","unresolved":false,"context_lines":[{"line_number":374,"context_line":"            ovn_base_setup_bridge $OVS_PHYSICAL_BRIDGE"},{"line_number":375,"context_line":"            ovs-vsctl set open . external-ids:ovn-bridge-mappings\u003d${PHYSICAL_NETWORK}:${OVS_PHYSICAL_BRIDGE}"},{"line_number":376,"context_line":"            # Select this chassis to host gateway routers"},{"line_number":377,"context_line":"            ovs-vsctl set open . external-ids:ovn-cms-options\u003d\"enable-chassis-as-gw\""},{"line_number":378,"context_line":"        fi"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"        if is_service_enabled ovn-controller-vtep ; then"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"5f93b717_3d860615","line":377,"in_reply_to":"5f93b717_baea1cd5","updated":"2018-01-31 09:00:01.000000000","message":"That makes sense","commit_id":"2226e7133e3d93984f573a600c00aab32b4005dc"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"8b5850db872b0e562b5df9bc565d037e8f3d0d85","unresolved":false,"context_lines":[{"line_number":374,"context_line":"            ovn_base_setup_bridge $OVS_PHYSICAL_BRIDGE"},{"line_number":375,"context_line":"            ovs-vsctl set open . external-ids:ovn-bridge-mappings\u003d${PHYSICAL_NETWORK}:${OVS_PHYSICAL_BRIDGE}"},{"line_number":376,"context_line":"            # Select this chassis to host gateway routers"},{"line_number":377,"context_line":"            ovs-vsctl set open . external-ids:ovn-cms-options\u003d\"enable-chassis-as-gw\""},{"line_number":378,"context_line":"        fi"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"        if is_service_enabled ovn-controller-vtep ; then"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"5f93b717_b049ddb7","line":377,"in_reply_to":"5f93b717_baea1cd5","updated":"2018-01-31 09:45:28.000000000","message":"maybe ENABLE_CHASSIS_AS_GW? Also, should then we include one for distributed FIPs so that we can enable developers to deploy all the combinations?","commit_id":"2226e7133e3d93984f573a600c00aab32b4005dc"}],"devstack/local.conf.sample":[{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"180d6a5a7b6a771ded8aff1b3da79c471f999ccb","unresolved":false,"context_lines":[{"line_number":101,"context_line":"# external connectivity, then set ENABLE_CHASSIS_AS_GW to True."},{"line_number":102,"context_line":"# Then devstack will set ovn-cms-options with enable-chassis-as-gw"},{"line_number":103,"context_line":"# in Open_vSwitch table\u0027s external_ids column"},{"line_number":104,"context_line":"#ENABLE_CHASSIS_AS_GW\u003dTrue"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"# use the following for IPv4"},{"line_number":107,"context_line":"#IP_VERSION\u003d4"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"5f93b717_33f5d7ed","line":104,"updated":"2018-01-31 10:02:12.000000000","message":"Do we want to set this option to False in https://github.com/openstack/networking-ovn/blob/master/devstack/computenode-local.conf.sample  ?","commit_id":"2627f72b539ea5d67fcbad02ea448487000f0068"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"4983d882a9d3fb3737ca6b190848f06f4d877cf1","unresolved":false,"context_lines":[{"line_number":101,"context_line":"# external connectivity, then set ENABLE_CHASSIS_AS_GW to True."},{"line_number":102,"context_line":"# Then devstack will set ovn-cms-options with enable-chassis-as-gw"},{"line_number":103,"context_line":"# in Open_vSwitch table\u0027s external_ids column"},{"line_number":104,"context_line":"#ENABLE_CHASSIS_AS_GW\u003dTrue"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"# use the following for IPv4"},{"line_number":107,"context_line":"#IP_VERSION\u003d4"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"5f93b717_df74b26a","line":104,"in_reply_to":"5f93b717_33f5d7ed","updated":"2018-01-31 12:42:46.000000000","message":"May be we should set a default to false somewhere in the plugin before valuation ? \nENABLE_CHASSIS_AS_GW\u003d${ENABLE_CHASSIS_AS_GW:-False}","commit_id":"2627f72b539ea5d67fcbad02ea448487000f0068"},{"author":{"_account_id":10267,"name":"venkata anil","email":"anilvenkata@redhat.com","username":"anil"},"change_message_id":"cd39677e4f30c32f99a986e3085f6946dfd00314","unresolved":false,"context_lines":[{"line_number":101,"context_line":"# external connectivity, then set ENABLE_CHASSIS_AS_GW to True."},{"line_number":102,"context_line":"# Then devstack will set ovn-cms-options with enable-chassis-as-gw"},{"line_number":103,"context_line":"# in Open_vSwitch table\u0027s external_ids column"},{"line_number":104,"context_line":"#ENABLE_CHASSIS_AS_GW\u003dTrue"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"# use the following for IPv4"},{"line_number":107,"context_line":"#IP_VERSION\u003d4"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"3fa0c359_c6901399","line":104,"in_reply_to":"5f93b717_df74b26a","updated":"2018-02-05 07:11:41.000000000","message":"I will change the default to false.","commit_id":"2627f72b539ea5d67fcbad02ea448487000f0068"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"c9bfb7aa748e0b888e8473bf8a3614639b768ae8","unresolved":false,"context_lines":[{"line_number":97,"context_line":"#OVS_PHYSICAL_BRIDGE\u003dbr-provider"},{"line_number":98,"context_line":"#PROVIDER_SUBNET_NAME\u003dprovider-subnet"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"# If the admin wants to enable this chassis to host gateway routers for"},{"line_number":101,"context_line":"# external connectivity, then set ENABLE_CHASSIS_AS_GW to True."},{"line_number":102,"context_line":"# Then devstack will set ovn-cms-options with enable-chassis-as-gw"},{"line_number":103,"context_line":"# in Open_vSwitch table\u0027s external_ids column"}],"source_content_type":"application/octet-stream","patch_set":13,"id":"3fa0c359_83d45221","line":100,"updated":"2018-02-26 12:25:36.000000000","message":"nitpicking: I\u0027d explain it in a different way, now it doesn\u0027t seem like that\u0027s the default.\n\nThe chassis is enabled by default to host gateway routers for external connectivity. If you don\u0027t want that then set ENABLE_CHASSIS_AS_GW to False.\nWhen this is enabled devstack will set the ovn-cms-options with enable-chassis-a-gw in Open_vSwitch table\u0027s external_ids column.","commit_id":"764f0dfc38aff3b335a4dd6ed806bc0a4a03921a"},{"author":{"_account_id":10267,"name":"venkata anil","email":"anilvenkata@redhat.com","username":"anil"},"change_message_id":"677b6f55ae0aaef0eea52d7d9b7b3e922a8be834","unresolved":false,"context_lines":[{"line_number":97,"context_line":"#OVS_PHYSICAL_BRIDGE\u003dbr-provider"},{"line_number":98,"context_line":"#PROVIDER_SUBNET_NAME\u003dprovider-subnet"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"# If the admin wants to enable this chassis to host gateway routers for"},{"line_number":101,"context_line":"# external connectivity, then set ENABLE_CHASSIS_AS_GW to True."},{"line_number":102,"context_line":"# Then devstack will set ovn-cms-options with enable-chassis-as-gw"},{"line_number":103,"context_line":"# in Open_vSwitch table\u0027s external_ids column"}],"source_content_type":"application/octet-stream","patch_set":13,"id":"3fa0c359_89c0f351","line":100,"in_reply_to":"3fa0c359_83d45221","updated":"2018-02-26 14:13:12.000000000","message":"ENABLE_CHASSIS_AS_GW is not True by default. Thanks","commit_id":"764f0dfc38aff3b335a4dd6ed806bc0a4a03921a"}],"doc/source/admin/refarch/provider-networks.rst":[{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"c9bfb7aa748e0b888e8473bf8a3614639b768ae8","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"#. On the controller node, source the administrative project credentials."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"#. On the controller node, if the admin wants to enable this chassis to host"},{"line_number":48,"context_line":"   gateway routers for external connectivity, then set ovn-cms-options to"},{"line_number":49,"context_line":"   enable-chassis-as-gw."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"3fa0c359_838bf21c","line":47,"range":{"start_line":47,"start_character":27,"end_line":47,"end_character":45},"updated":"2018-02-26 12:25:36.000000000","message":"I\u0027d remove that bit all together, this is already the \"admin\" guide. :-)","commit_id":"764f0dfc38aff3b335a4dd6ed806bc0a4a03921a"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"c9bfb7aa748e0b888e8473bf8a3614639b768ae8","unresolved":false,"context_lines":[{"line_number":45,"context_line":"#. On the controller node, source the administrative project credentials."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"#. On the controller node, if the admin wants to enable this chassis to host"},{"line_number":48,"context_line":"   gateway routers for external connectivity, then set ovn-cms-options to"},{"line_number":49,"context_line":"   enable-chassis-as-gw."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"   .. code-block:: console"}],"source_content_type":"text/x-rst","patch_set":13,"id":"3fa0c359_237a1e23","line":48,"range":{"start_line":48,"start_character":46,"end_line":48,"end_character":50},"updated":"2018-02-26 12:25:36.000000000","message":"this too (to make the other change sound ok)","commit_id":"764f0dfc38aff3b335a4dd6ed806bc0a4a03921a"}],"doc/source/contributor/testing.rst":[{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"c9bfb7aa748e0b888e8473bf8a3614639b768ae8","unresolved":false,"context_lines":[{"line_number":513,"context_line":"    $ ovs-vsctl set open . \\"},{"line_number":514,"context_line":"    external-ids:ovn-bridge-mappings\u003dprovidernet:br-provider"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"If the admin wants to enable this chassis to host a gateway router for"},{"line_number":517,"context_line":"external connectivity, then set ovn-cms-options to enable-chassis-as-gw."},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":13,"id":"3fa0c359_63b266e7","line":516,"range":{"start_line":516,"start_character":3,"end_line":516,"end_character":18},"updated":"2018-02-26 12:25:36.000000000","message":"\"you want\" may be?, all the document talks to \"you\", not the admin :)","commit_id":"764f0dfc38aff3b335a4dd6ed806bc0a4a03921a"}],"doc/source/install/index.rst":[{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"180d6a5a7b6a771ded8aff1b3da79c471f999ccb","unresolved":false,"context_lines":[{"line_number":251,"context_line":""},{"line_number":252,"context_line":"     .. code-block:: console"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        # ovs-vsctl set open . external-ids:ovn-cms-options\u003denable-chassis-as-gw"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"Network nodes"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f93b717_b0f79d59","line":254,"updated":"2018-01-31 10:02:12.000000000","message":"Nice!","commit_id":"2627f72b539ea5d67fcbad02ea448487000f0068"}],"migration/migrate-to-ovn.yml":[{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"c9bfb7aa748e0b888e8473bf8a3614639b768ae8","unresolved":false,"context_lines":[{"line_number":162,"context_line":"    when: ovn_central is defined"},{"line_number":163,"context_line":"    command: neutron-ovn-db-sync-util --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini"},{"line_number":164,"context_line":"  - name: Configure node for hosting gateway routers for external connectivity."},{"line_number":165,"context_line":"    command: \"ovs-vsctl set open . external_ids:ovn-cms-options\u003denable-chassis-as-gw\""},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"- hosts: overcloud"},{"line_number":168,"context_line":"  remote_user: \"{{ remote_user }}\""}],"source_content_type":"text/x-yaml","patch_set":13,"id":"3fa0c359_23cd3e5c","line":165,"updated":"2018-02-26 12:25:36.000000000","message":"nice! ;)","commit_id":"764f0dfc38aff3b335a4dd6ed806bc0a4a03921a"}],"networking_ovn/common/ovn_client.py":[{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"2c3f7defa7ff2af20b2670818f9aa8abb4d1925f","unresolved":false,"context_lines":[{"line_number":1002,"context_line":"                        cms_bmaps.append(chassis)"},{"line_number":1003,"context_line":"                else:"},{"line_number":1004,"context_line":"                    bmaps.append(chassis)"},{"line_number":1005,"context_line":"        return cms_bmaps or bmaps"},{"line_number":1006,"context_line":""},{"line_number":1007,"context_line":"    def _get_physnet(self, net_id):"},{"line_number":1008,"context_line":"        extnet \u003d self._plugin.get_network(n_context.get_admin_context(),"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f93b717_ca25f25d","line":1005,"updated":"2018-01-30 11:24:30.000000000","message":"I had wrote some comments here in my previous review and I lost them... I suggested adding some DEBUG log traces here to help people debugging connectivity issues. For example.\n\nif not cms_bamps:\n   LOG.debug(\"No eligible chassis with external connectivity\"\n             \" through ovn-cms-options.\")\nelse\n   LOG.debug(\"Candidates with external connectivity: %s\", bmaps)\n\nSomething similar to this would be helpful. What do you think?","commit_id":"8268353b68d23057848c38c2120ef30f6ee861f3"},{"author":{"_account_id":10267,"name":"venkata anil","email":"anilvenkata@redhat.com","username":"anil"},"change_message_id":"7540caf805c4735dd7236aa1cedcae4438b06e75","unresolved":false,"context_lines":[{"line_number":1002,"context_line":"                        cms_bmaps.append(chassis)"},{"line_number":1003,"context_line":"                else:"},{"line_number":1004,"context_line":"                    bmaps.append(chassis)"},{"line_number":1005,"context_line":"        return cms_bmaps or bmaps"},{"line_number":1006,"context_line":""},{"line_number":1007,"context_line":"    def _get_physnet(self, net_id):"},{"line_number":1008,"context_line":"        extnet \u003d self._plugin.get_network(n_context.get_admin_context(),"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f93b717_eb28d997","line":1005,"in_reply_to":"5f93b717_ca25f25d","updated":"2018-01-31 07:23:23.000000000","message":"sorry for that, done now :)","commit_id":"8268353b68d23057848c38c2120ef30f6ee861f3"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"6523e3b678ab11413ab0a9252782f9d53e55a269","unresolved":false,"context_lines":[{"line_number":1006,"context_line":"        if not cms_bmaps:"},{"line_number":1007,"context_line":"            LOG.debug(\"No eligible chassis with external connectivity\""},{"line_number":1008,"context_line":"                      \" through ovn-cms-options.\")"},{"line_number":1009,"context_line":"        LOG.debug(\"Candidates with external connectivity: %s\", candidates)"},{"line_number":1010,"context_line":"        return candidates"},{"line_number":1011,"context_line":""},{"line_number":1012,"context_line":"    def _get_physnet(self, net_id):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa0c359_f310e0aa","line":1009,"range":{"start_line":1009,"start_character":19,"end_line":1009,"end_character":29},"updated":"2018-02-09 13:46:12.000000000","message":"nit, may I suggest:\n\n\"Chassis candidates with ...\"\n\nSo we know what resource we are talking about here","commit_id":"2bac92f5934687cfb3daa1a3a6e85e2c1cfc8207"},{"author":{"_account_id":10267,"name":"venkata anil","email":"anilvenkata@redhat.com","username":"anil"},"change_message_id":"fd3e3f17a93b8ce9515960fd6cc8a6e893d30a41","unresolved":false,"context_lines":[{"line_number":1006,"context_line":"        if not cms_bmaps:"},{"line_number":1007,"context_line":"            LOG.debug(\"No eligible chassis with external connectivity\""},{"line_number":1008,"context_line":"                      \" through ovn-cms-options.\")"},{"line_number":1009,"context_line":"        LOG.debug(\"Candidates with external connectivity: %s\", candidates)"},{"line_number":1010,"context_line":"        return candidates"},{"line_number":1011,"context_line":""},{"line_number":1012,"context_line":"    def _get_physnet(self, net_id):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa0c359_7f59d232","line":1009,"range":{"start_line":1009,"start_character":19,"end_line":1009,"end_character":29},"in_reply_to":"3fa0c359_f310e0aa","updated":"2018-02-12 09:36:59.000000000","message":"sure","commit_id":"2bac92f5934687cfb3daa1a3a6e85e2c1cfc8207"}],"networking_ovn/ovsdb/impl_idl_ovn.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"6523e3b678ab11413ab0a9252782f9d53e55a269","unresolved":false,"context_lines":[{"line_number":678,"context_line":"    def get_gateway_chassis_from_cms_options(self):"},{"line_number":679,"context_line":"        gw_chassis \u003d []"},{"line_number":680,"context_line":"        for ch in self.chassis_list().execute(check_error\u003dTrue):"},{"line_number":681,"context_line":"            LOG.debug(\"chassis name: %(name)s hostname: %(hostname)s \""},{"line_number":682,"context_line":"                      \"external_ids: %(external_ids)s\","},{"line_number":683,"context_line":"                      {\u0027name\u0027: ch.name, \u0027hostname\u0027: ch.hostname,"},{"line_number":684,"context_line":"                       \u0027external_ids\u0027: ch.external_ids})"},{"line_number":685,"context_line":"            cms_options \u003d ch.external_ids.get(\u0027ovn-cms-options\u0027, \u0027\u0027)"},{"line_number":686,"context_line":"            if \u0027enable-chassis-as-gw\u0027 in cms_options.split(\u0027,\u0027):"},{"line_number":687,"context_line":"                gw_chassis.append(ch.name)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa0c359_936e3c2d","line":684,"range":{"start_line":681,"start_character":0,"end_line":684,"end_character":56},"updated":"2018-02-09 13:46:12.000000000","message":"Not sure we want to log all chassis in a loop like this. It will be called every time a router port is added AFAICT.\n\nMaybe leave the log at L688 only.","commit_id":"2bac92f5934687cfb3daa1a3a6e85e2c1cfc8207"},{"author":{"_account_id":10267,"name":"venkata anil","email":"anilvenkata@redhat.com","username":"anil"},"change_message_id":"fd3e3f17a93b8ce9515960fd6cc8a6e893d30a41","unresolved":false,"context_lines":[{"line_number":678,"context_line":"    def get_gateway_chassis_from_cms_options(self):"},{"line_number":679,"context_line":"        gw_chassis \u003d []"},{"line_number":680,"context_line":"        for ch in self.chassis_list().execute(check_error\u003dTrue):"},{"line_number":681,"context_line":"            LOG.debug(\"chassis name: %(name)s hostname: %(hostname)s \""},{"line_number":682,"context_line":"                      \"external_ids: %(external_ids)s\","},{"line_number":683,"context_line":"                      {\u0027name\u0027: ch.name, \u0027hostname\u0027: ch.hostname,"},{"line_number":684,"context_line":"                       \u0027external_ids\u0027: ch.external_ids})"},{"line_number":685,"context_line":"            cms_options \u003d ch.external_ids.get(\u0027ovn-cms-options\u0027, \u0027\u0027)"},{"line_number":686,"context_line":"            if \u0027enable-chassis-as-gw\u0027 in cms_options.split(\u0027,\u0027):"},{"line_number":687,"context_line":"                gw_chassis.append(ch.name)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa0c359_5f5416fe","line":684,"range":{"start_line":681,"start_character":0,"end_line":684,"end_character":56},"in_reply_to":"3fa0c359_936e3c2d","updated":"2018-02-12 09:36:59.000000000","message":"Thanks Lucas. I added this for my CI debugging :)","commit_id":"2bac92f5934687cfb3daa1a3a6e85e2c1cfc8207"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"6523e3b678ab11413ab0a9252782f9d53e55a269","unresolved":false,"context_lines":[{"line_number":692,"context_line":"    def get_chassis_and_physnets(self):"},{"line_number":693,"context_line":"        chassis_info_dict \u003d {}"},{"line_number":694,"context_line":"        for ch in self.chassis_list().execute(check_error\u003dTrue):"},{"line_number":695,"context_line":"            LOG.debug(\"chassis name: %(name)s hostname: %(hostname)s \""},{"line_number":696,"context_line":"                      \"external_ids: %(external_ids)s\","},{"line_number":697,"context_line":"                      {\u0027name\u0027: ch.name, \u0027hostname\u0027: ch.hostname,"},{"line_number":698,"context_line":"                       \u0027external_ids\u0027: ch.external_ids})"},{"line_number":699,"context_line":"            chassis_info_dict[ch.name] \u003d self._get_chassis_physnets(ch)"},{"line_number":700,"context_line":"        LOG.debug(\"chassis with physnets %s\", chassis_info_dict)"},{"line_number":701,"context_line":"        traceback.print_stack()"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa0c359_537434fe","line":698,"range":{"start_line":695,"start_character":0,"end_line":698,"end_character":56},"updated":"2018-02-09 13:46:12.000000000","message":"ditto, same as comment at L684","commit_id":"2bac92f5934687cfb3daa1a3a6e85e2c1cfc8207"},{"author":{"_account_id":10237,"name":"Numan Siddique","email":"nusiddiq@redhat.com","username":"numansiddique"},"change_message_id":"2267b660b4d8c566259f70ee192a78fddd2a891c","unresolved":false,"context_lines":[{"line_number":676,"context_line":""},{"line_number":677,"context_line":"    def get_gateway_chassis_from_cms_options(self):"},{"line_number":678,"context_line":"        gw_chassis \u003d []"},{"line_number":679,"context_line":"        for ch in self.chassis_list().execute(check_error\u003dTrue):"},{"line_number":680,"context_line":"            cms_options \u003d ch.external_ids.get(\u0027ovn-cms-options\u0027, \u0027\u0027)"},{"line_number":681,"context_line":"            if \u0027enable-chassis-as-gw\u0027 in cms_options.split(\u0027,\u0027):"},{"line_number":682,"context_line":"                gw_chassis.append(ch.name)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa0c359_68a9c18e","line":679,"updated":"2018-02-15 09:16:27.000000000","message":"The function get_candidates_for_scheduling() in ovn_client.py in the comment says\n\n***\n1) chassis from cms with proper bridge mappings\n***\n\nWhat if a chassis has only ovn-cms-options configured but not ovn-bridge-mappings ?","commit_id":"fee0111c37fd63416f07031cb0d80fbca1d6035f"},{"author":{"_account_id":10237,"name":"Numan Siddique","email":"nusiddiq@redhat.com","username":"numansiddique"},"change_message_id":"f97be748f4275164d63e9113cec226477c6daec1","unresolved":false,"context_lines":[{"line_number":676,"context_line":""},{"line_number":677,"context_line":"    def get_gateway_chassis_from_cms_options(self):"},{"line_number":678,"context_line":"        gw_chassis \u003d []"},{"line_number":679,"context_line":"        for ch in self.chassis_list().execute(check_error\u003dTrue):"},{"line_number":680,"context_line":"            cms_options \u003d ch.external_ids.get(\u0027ovn-cms-options\u0027, \u0027\u0027)"},{"line_number":681,"context_line":"            if \u0027enable-chassis-as-gw\u0027 in cms_options.split(\u0027,\u0027):"},{"line_number":682,"context_line":"                gw_chassis.append(ch.name)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa0c359_b5815d4d","line":679,"in_reply_to":"3fa0c359_485ba553","updated":"2018-02-15 10:31:36.000000000","message":"Ok. got it.","commit_id":"fee0111c37fd63416f07031cb0d80fbca1d6035f"},{"author":{"_account_id":10267,"name":"venkata anil","email":"anilvenkata@redhat.com","username":"anil"},"change_message_id":"5ccc5adcd3e1826979e43c44045674d0817a4b59","unresolved":false,"context_lines":[{"line_number":676,"context_line":""},{"line_number":677,"context_line":"    def get_gateway_chassis_from_cms_options(self):"},{"line_number":678,"context_line":"        gw_chassis \u003d []"},{"line_number":679,"context_line":"        for ch in self.chassis_list().execute(check_error\u003dTrue):"},{"line_number":680,"context_line":"            cms_options \u003d ch.external_ids.get(\u0027ovn-cms-options\u0027, \u0027\u0027)"},{"line_number":681,"context_line":"            if \u0027enable-chassis-as-gw\u0027 in cms_options.split(\u0027,\u0027):"},{"line_number":682,"context_line":"                gw_chassis.append(ch.name)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa0c359_485ba553","line":679,"in_reply_to":"3fa0c359_68a9c18e","updated":"2018-02-15 09:35:40.000000000","message":"In that case, that chassis will be ignored.","commit_id":"fee0111c37fd63416f07031cb0d80fbca1d6035f"}],"networking_ovn/tests/functional/test_router.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"599ea39581a7473235d1e2972abbdba5af1482c7","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            # INVALID_CHASSIS to avoid erros"},{"line_number":98,"context_line":"            return [ovn_const.OVN_GATEWAY_INVALID_CHASSIS]"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        with mock.patch.object(ovn_client._ovn_scheduler, \u0027select\u0027,"},{"line_number":101,"context_line":"                               side_effect\u003dfake_select),\\"},{"line_number":102,"context_line":"            mock.patch.object(self.l3_plugin.scheduler, \u0027select\u0027,"},{"line_number":103,"context_line":"                              side_effect\u003dfake_select):"},{"line_number":104,"context_line":"            gw_info \u003d {\u0027network_id\u0027: ext1[\u0027network\u0027][\u0027id\u0027]}"},{"line_number":105,"context_line":"            self._create_router(\u0027router1\u0027, gw_info\u003dgw_info)"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5f93b717_50552b1c","line":103,"range":{"start_line":100,"start_character":0,"end_line":103,"end_character":55},"updated":"2018-01-29 19:02:12.000000000","message":"Most a nit but, it would be good to assert if these mocks are actually being called since the only assert we have in this test is inside the fake_select().\n\ne.g\n\n with mock.patch.object(...) as mock_select, mock(...) as mock_l3_select:\n     ...\n     self.assertTrue(mock_select.called)\n     self.assertTrue(mock_l3_select.called)","commit_id":"8268353b68d23057848c38c2120ef30f6ee861f3"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"01c36b98f68a8a7d9952bd02770ba75560b3f6bc","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            # INVALID_CHASSIS to avoid erros"},{"line_number":98,"context_line":"            return [ovn_const.OVN_GATEWAY_INVALID_CHASSIS]"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        with mock.patch.object(ovn_client._ovn_scheduler, \u0027select\u0027,"},{"line_number":101,"context_line":"                               side_effect\u003dfake_select),\\"},{"line_number":102,"context_line":"            mock.patch.object(self.l3_plugin.scheduler, \u0027select\u0027,"},{"line_number":103,"context_line":"                              side_effect\u003dfake_select):"},{"line_number":104,"context_line":"            gw_info \u003d {\u0027network_id\u0027: ext1[\u0027network\u0027][\u0027id\u0027]}"},{"line_number":105,"context_line":"            self._create_router(\u0027router1\u0027, gw_info\u003dgw_info)"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5f93b717_7f1d900d","line":103,"range":{"start_line":100,"start_character":0,"end_line":103,"end_character":55},"in_reply_to":"5f93b717_50552b1c","updated":"2018-01-30 11:21:01.000000000","message":"++","commit_id":"8268353b68d23057848c38c2120ef30f6ee861f3"},{"author":{"_account_id":10267,"name":"venkata anil","email":"anilvenkata@redhat.com","username":"anil"},"change_message_id":"2f426836d5b9776b7bde0601506b1c4f56149c29","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            # INVALID_CHASSIS to avoid erros"},{"line_number":98,"context_line":"            return [ovn_const.OVN_GATEWAY_INVALID_CHASSIS]"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        with mock.patch.object(ovn_client._ovn_scheduler, \u0027select\u0027,"},{"line_number":101,"context_line":"                               side_effect\u003dfake_select),\\"},{"line_number":102,"context_line":"            mock.patch.object(self.l3_plugin.scheduler, \u0027select\u0027,"},{"line_number":103,"context_line":"                              side_effect\u003dfake_select):"},{"line_number":104,"context_line":"            gw_info \u003d {\u0027network_id\u0027: ext1[\u0027network\u0027][\u0027id\u0027]}"},{"line_number":105,"context_line":"            self._create_router(\u0027router1\u0027, gw_info\u003dgw_info)"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5f93b717_cfd3c4d4","line":103,"range":{"start_line":100,"start_character":0,"end_line":103,"end_character":55},"in_reply_to":"5f93b717_50552b1c","updated":"2018-01-30 10:57:17.000000000","message":"sure, thanks Lucas","commit_id":"8268353b68d23057848c38c2120ef30f6ee861f3"},{"author":{"_account_id":10267,"name":"venkata anil","email":"anilvenkata@redhat.com","username":"anil"},"change_message_id":"7540caf805c4735dd7236aa1cedcae4438b06e75","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            # INVALID_CHASSIS to avoid erros"},{"line_number":98,"context_line":"            return [ovn_const.OVN_GATEWAY_INVALID_CHASSIS]"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        with mock.patch.object(ovn_client._ovn_scheduler, \u0027select\u0027,"},{"line_number":101,"context_line":"                               side_effect\u003dfake_select),\\"},{"line_number":102,"context_line":"            mock.patch.object(self.l3_plugin.scheduler, \u0027select\u0027,"},{"line_number":103,"context_line":"                              side_effect\u003dfake_select):"},{"line_number":104,"context_line":"            gw_info \u003d {\u0027network_id\u0027: ext1[\u0027network\u0027][\u0027id\u0027]}"},{"line_number":105,"context_line":"            self._create_router(\u0027router1\u0027, gw_info\u003dgw_info)"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5f93b717_8b1b557f","line":103,"range":{"start_line":100,"start_character":0,"end_line":103,"end_character":55},"in_reply_to":"5f93b717_7f1d900d","updated":"2018-01-31 07:23:23.000000000","message":"done","commit_id":"8268353b68d23057848c38c2120ef30f6ee861f3"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"01c36b98f68a8a7d9952bd02770ba75560b3f6bc","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    def test_gateway_chassis_with_cms_and_bridge_mappings(self):"},{"line_number":113,"context_line":"        # Both chassis1 and chassis3 are having proper bridge mappings,"},{"line_number":114,"context_line":"        # but only chassis3 is having enable-chassis-as-gw."},{"line_number":115,"context_line":"        # Yest if chassis3 is slected as candidate or not."},{"line_number":116,"context_line":"        self.chassis3 \u003d self.add_fake_chassis("},{"line_number":117,"context_line":"            \u0027ovs-host3\u0027, physical_nets\u003d[\u0027physnet1\u0027],"},{"line_number":118,"context_line":"            external_ids\u003d{\u0027ovn-cms-options\u0027: \u0027enable-chassis-as-gw\u0027})"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f93b717_9fabbc87","line":115,"range":{"start_line":115,"start_character":10,"end_line":115,"end_character":58},"updated":"2018-01-30 11:21:01.000000000","message":"super nit: s/Yest/Test  s/slected/selected","commit_id":"8268353b68d23057848c38c2120ef30f6ee861f3"},{"author":{"_account_id":10267,"name":"venkata anil","email":"anilvenkata@redhat.com","username":"anil"},"change_message_id":"7540caf805c4735dd7236aa1cedcae4438b06e75","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    def test_gateway_chassis_with_cms_and_bridge_mappings(self):"},{"line_number":113,"context_line":"        # Both chassis1 and chassis3 are having proper bridge mappings,"},{"line_number":114,"context_line":"        # but only chassis3 is having enable-chassis-as-gw."},{"line_number":115,"context_line":"        # Yest if chassis3 is slected as candidate or not."},{"line_number":116,"context_line":"        self.chassis3 \u003d self.add_fake_chassis("},{"line_number":117,"context_line":"            \u0027ovs-host3\u0027, physical_nets\u003d[\u0027physnet1\u0027],"},{"line_number":118,"context_line":"            external_ids\u003d{\u0027ovn-cms-options\u0027: \u0027enable-chassis-as-gw\u0027})"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f93b717_4b11cd5c","line":115,"range":{"start_line":115,"start_character":10,"end_line":115,"end_character":58},"in_reply_to":"5f93b717_9fabbc87","updated":"2018-01-31 07:23:23.000000000","message":"done","commit_id":"8268353b68d23057848c38c2120ef30f6ee861f3"},{"author":{"_account_id":10237,"name":"Numan Siddique","email":"nusiddiq@redhat.com","username":"numansiddique"},"change_message_id":"2267b660b4d8c566259f70ee192a78fddd2a891c","unresolved":false,"context_lines":[{"line_number":124,"context_line":"            external_ids\u003d{\u0027ovn-cms-options\u0027: \u0027enable-chassis-as-gw\u0027})"},{"line_number":125,"context_line":"        self._check_gateway_chassis_candidates([self.chassis3])"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    def test_gateway_chassis_with_bridge_mappings_and_no_cms(self):"},{"line_number":128,"context_line":"        # chassis1 is configured with proper bridge mappings,"},{"line_number":129,"context_line":"        # but none of the chassis having enable-chassis-as-gw."},{"line_number":130,"context_line":"        # Test if chassis1 is selected as candidate or not."}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa0c359_e84631c1","line":127,"updated":"2018-02-15 09:16:27.000000000","message":"I think one more test case with cms options with no bridge mappings would be great.","commit_id":"fee0111c37fd63416f07031cb0d80fbca1d6035f"},{"author":{"_account_id":10267,"name":"venkata anil","email":"anilvenkata@redhat.com","username":"anil"},"change_message_id":"5ccc5adcd3e1826979e43c44045674d0817a4b59","unresolved":false,"context_lines":[{"line_number":124,"context_line":"            external_ids\u003d{\u0027ovn-cms-options\u0027: \u0027enable-chassis-as-gw\u0027})"},{"line_number":125,"context_line":"        self._check_gateway_chassis_candidates([self.chassis3])"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    def test_gateway_chassis_with_bridge_mappings_and_no_cms(self):"},{"line_number":128,"context_line":"        # chassis1 is configured with proper bridge mappings,"},{"line_number":129,"context_line":"        # but none of the chassis having enable-chassis-as-gw."},{"line_number":130,"context_line":"        # Test if chassis1 is selected as candidate or not."}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa0c359_e805d115","line":127,"in_reply_to":"3fa0c359_e84631c1","updated":"2018-02-15 09:35:40.000000000","message":"sure","commit_id":"fee0111c37fd63416f07031cb0d80fbca1d6035f"}],"vagrant/provisioning/setup-controller.sh":[{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"180d6a5a7b6a771ded8aff1b3da79c471f999ccb","unresolved":false,"context_lines":[{"line_number":70,"context_line":"# external connectivity, then set ENABLE_CHASSIS_AS_GW to True."},{"line_number":71,"context_line":"# Then devstack will set ovn-cms-options with enable-chassis-as-gw"},{"line_number":72,"context_line":"# in Open_vSwitch table\u0027s external_ids column"},{"line_number":73,"context_line":"ENABLE_CHASSIS_AS_GW\u003dTrue"},{"line_number":74,"context_line":"DEVSTACKEOF"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"# Add unique post-config for DevStack here using a separate \u0027cat\u0027 with"}],"source_content_type":"text/x-sh","patch_set":4,"id":"5f93b717_d39833c1","line":73,"updated":"2018-01-31 10:02:12.000000000","message":"Do we want to set this option to False in \nhttps://github.com/openstack/networking-ovn/blob/master/vagrant/provisioning/setup-compute.sh  ?","commit_id":"2627f72b539ea5d67fcbad02ea448487000f0068"},{"author":{"_account_id":10267,"name":"venkata anil","email":"anilvenkata@redhat.com","username":"anil"},"change_message_id":"cd39677e4f30c32f99a986e3085f6946dfd00314","unresolved":false,"context_lines":[{"line_number":70,"context_line":"# external connectivity, then set ENABLE_CHASSIS_AS_GW to True."},{"line_number":71,"context_line":"# Then devstack will set ovn-cms-options with enable-chassis-as-gw"},{"line_number":72,"context_line":"# in Open_vSwitch table\u0027s external_ids column"},{"line_number":73,"context_line":"ENABLE_CHASSIS_AS_GW\u003dTrue"},{"line_number":74,"context_line":"DEVSTACKEOF"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"# Add unique post-config for DevStack here using a separate \u0027cat\u0027 with"}],"source_content_type":"text/x-sh","patch_set":4,"id":"3fa0c359_e6bbcf0b","line":73,"in_reply_to":"5f93b717_d39833c1","updated":"2018-02-05 07:11:41.000000000","message":"sure","commit_id":"2627f72b539ea5d67fcbad02ea448487000f0068"}]}
