Have VXNetworkInstance set MTU if unset
Makes this explicit in Zookeeper if a network is unset, post-migration (schema version 6). Addresses #144
This commit is contained in:
		| @@ -80,10 +80,19 @@ class VXNetworkInstance(object): | ||||
|  | ||||
|         try: | ||||
|             self.vx_mtu = self.zkhandler.read(('network.mtu', self.vni)) | ||||
|             if self.vx_mtu == '' or self.vx_mtu is None: | ||||
|                 raise | ||||
|         except Exception: | ||||
|             self.vx_mtu = None | ||||
|  | ||||
|         # Explicitly set the MTU to max_mtu if unset (in Zookeeper too assuming the key exists) | ||||
|         if self.vx_mtu == '' or self.vx_mtu is None: | ||||
|             self.vx_mtu = self.max_mtu | ||||
|             # Try block for migration purposes | ||||
|             try: | ||||
|                 self.zkhandler.write([ | ||||
|                     (('network.mtu', self.vni), self.vx_mtu) | ||||
|                 ]) | ||||
|             except Exception: | ||||
|                 pass | ||||
|  | ||||
|         # Zookeper handlers for changed states | ||||
|         @self.zkhandler.zk_conn.DataWatch(self.zkhandler.schema.path('network', self.vni)) | ||||
| @@ -97,6 +106,7 @@ class VXNetworkInstance(object): | ||||
|                 self.old_description = self.description | ||||
|                 self.description = data.decode('ascii') | ||||
|  | ||||
|         # Try block for migration purposes | ||||
|         try: | ||||
|             @self.zkhandler.zk_conn.DataWatch(self.zkhandler.schema.path('network.mtu', self.vni)) | ||||
|             def watch_network_mtu(data, stat, event=''): | ||||
| @@ -132,10 +142,19 @@ class VXNetworkInstance(object): | ||||
|  | ||||
|         try: | ||||
|             self.vx_mtu = self.zkhandler.read(('network.mtu', self.vni)) | ||||
|             if self.vx_mtu == '' or self.vx_mtu is None: | ||||
|                 raise | ||||
|         except Exception: | ||||
|             self.vx_mtu = None | ||||
|  | ||||
|         # Explicitly set the MTU to max_mtu if unset (in Zookeeper too assuming the key exists) | ||||
|         if self.vx_mtu == '' or self.vx_mtu is None: | ||||
|             self.vx_mtu = self.max_mtu | ||||
|             try: | ||||
|                 # Try block for migration purposes | ||||
|                 self.zkhandler.write([ | ||||
|                     (('network.mtu', self.vni), self.vx_mtu) | ||||
|                 ]) | ||||
|             except Exception: | ||||
|                 pass | ||||
|  | ||||
|         self.nftables_netconf_filename = '{}/networks/{}.nft'.format(self.config['nft_dynamic_directory'], self.vni) | ||||
|         self.firewall_rules = [] | ||||
| @@ -241,6 +260,7 @@ add rule inet filter forward ip6 saddr {netaddr6} counter jump {vxlannic}-out | ||||
|                     self.stopDHCPServer() | ||||
|                     self.startDHCPServer() | ||||
|  | ||||
|         # Try block for migration purposes | ||||
|         try: | ||||
|             @self.zkhandler.zk_conn.DataWatch(self.zkhandler.schema.path('network.mtu', self.vni)) | ||||
|             def watch_network_mtu(data, stat, event=''): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user