It started to work , after i modified this code:

def _fetch_external_net_id(self, force=False):
        """Find UUID of single external network for this agent."""
        self.conf.gateway_external_network_id = ''
        #if self.conf.gateway_external_network_id:
        #    return self.conf.gateway_external_network_id
        return self.conf.gateway_external_network_id

from https://github.com/openstack/neutron/blob/master/neutron/agent/l3/agent.py

Looks like, that respective option is not being read correctly from the respective configuration file.

Regards,
Lohit

On May 6, 2019, 2:28 AM -0500, valleru@cbio.mskcc.org, wrote:
Hello All,

I am trying to install Openstack Stein on a single node, with multiple external networks (both networks are also shared). 
However, i keep getting the following error in the logs, and the router interfaces show as down.

2019-05-06 02:19:45.046 52175 ERROR neutron.agent.l3.agent
2019-05-06 02:19:45.048 52175 INFO neutron.agent.l3.agent [-] Starting router update for a2ec6c99-944e-408a-945a-dffbe09f65ce, action 3, priority 2
2019-05-06 02:19:46.249 52175 ERROR neutron.agent.l3.agent [-] Failed to process compatible router: a2ec6c99-944e-408a-945a-dffbe09f65ce: Exception: The 'gateway_external_network_id' option must be configured for this agent as Neutron has more than one external network.
2019-05-06 02:19:46.249 52175 ERROR neutron.agent.l3.agent Traceback (most recent call last):
2019-05-06 02:19:46.249 52175 ERROR neutron.agent.l3.agent   File "/usr/lib/python2.7/site-packages/neutron/agent/l3/agent.py", line 701, in _process_routers_if_compatible
2019-05-06 02:19:46.249 52175 ERROR neutron.agent.l3.agent     self._process_router_if_compatible(router)
2019-05-06 02:19:46.249 52175 ERROR neutron.agent.l3.agent   File "/usr/lib/python2.7/site-packages/neutron/agent/l3/agent.py", line 548, in _process_router_if_compatible
2019-05-06 02:19:46.249 52175 ERROR neutron.agent.l3.agent     target_ex_net_id = self._fetch_external_net_id()
2019-05-06 02:19:46.249 52175 ERROR neutron.agent.l3.agent   File "/usr/lib/python2.7/site-packages/neutron/agent/l3/agent.py", line 376, in _fetch_external_net_id
2019-05-06 02:19:46.249 52175 ERROR neutron.agent.l3.agent     raise Exception(msg)
2019-05-06 02:19:46.249 52175 ERROR neutron.agent.l3.agent Exception: The 'gateway_external_network_id' option must be configured for this agent as Neutron has more than one external network.
2019-05-06 02:19:46.249 52175 ERROR neutron.agent.l3.agent
2019-05-06 02:19:46.252 52175 WARNING neutron.agent.l3.agent [-] Hit retry limit with router update for a2ec6c99-944e-408a-945a-dffbe09f65ce, action 3
2019-05-06 02:19:46.253 52175 WARNING neutron.agent.l3.agent [-] Info for router a2ec6c99-944e-408a-945a-dffbe09f65ce was not found. Performing router cleanup

 
I have set these parameters to empty, as mentioned in the docs.

/etc/neutron/l3_agent.ini

gateway_external_network_id =
external_network_bridge =
interface_driver = openvswitch 

I tried linuxbridge-agent too,but i could not get rid of the above error.

 openstack port list --router router1

+--------------------------------------+------+-------------------+----------------------------------------------------------------------------+--------+
| ID                                   | Name | MAC Address       | Fixed IP Addresses                                                         | Status |
+--------------------------------------+------+-------------------+----------------------------------------------------------------------------+--------+
| 1bcaad17-17ed-4383-9206-34417f8fd2df |      | fa:16:3e:c1:b1:1f | ip_address='192.168.1.1', subnet_id='b00cb3bf-ca89-4e00-8bd7-83a75dbb6080' | DOWN   |
| f49d976f-b733-4360-9d1f-cdd35ecf54e6 |      | fa:16:3e:54:82:4b | ip_address='10.0.10.11', subnet_id='7cc01a33-f078-494d-9b0b-e988f5b4915d'  | DOWN   |
+--------------------------------------+------+-------------------+----------------------------------------------------------------------------+————+

However it does work when i have just one external network

 openstack port list --router router1
+--------------------------------------+------+-------------------+--------------------------------------------------------------------------------+--------+
| ID                                   | Name | MAC Address       | Fixed IP Addresses                                                             | Status |
+--------------------------------------+------+-------------------+--------------------------------------------------------------------------------+--------+
| cdb06cf7-7492-4275-bd93-88a46b9769a8 |      | fa:16:3e:7c:ea:55 | ip_address='192.168.1.1', subnet_id='b00cb3bf-ca89-4e00-8bd7-83a75dbb6080'     | ACTIVE |
| fc9b06d7-d377-451b-9af5-07e1fab072dc |      | fa:16:3e:d0:6d:7c | ip_address='140.163.188.149', subnet_id='4a2bf30a-e7f8-44c1-8b08-4de01b2b1296' | ACTIVE |
+--------------------------------------+------+-------------------+--------------------------------------------------------------------------------+--------+

May i please know, how to get the above working.
I have seen multiple articles online that mention that this should be working, however i am unable to get this to work.
It is really important for us to have to have 2 external networks in the environment, and be able to route to both of them if possible.


Thank you,
Lohit