From 1c9a7a64797a5e9b754e99cd7d76705cb89bba9f Mon Sep 17 00:00:00 2001 From: "Joshua M. Boniface" Date: Tue, 1 Jun 2021 11:49:39 -0400 Subject: [PATCH] Convert VXNetworkInstance to new zkhandler --- node-daemon/pvcnoded/Daemon.py | 2 +- node-daemon/pvcnoded/VXNetworkInstance.py | 70 +++++++++++------------ 2 files changed, 35 insertions(+), 37 deletions(-) diff --git a/node-daemon/pvcnoded/Daemon.py b/node-daemon/pvcnoded/Daemon.py index e1efbab2..43cbdae6 100644 --- a/node-daemon/pvcnoded/Daemon.py +++ b/node-daemon/pvcnoded/Daemon.py @@ -924,7 +924,7 @@ if enable_networking: # Add any missing networks to the list for network in new_network_list: if network not in network_list: - d_network[network] = VXNetworkInstance.VXNetworkInstance(network, zkhandler.zk_conn, config, logger, this_node, dns_aggregator) + d_network[network] = VXNetworkInstance.VXNetworkInstance(network, zkhandler, config, logger, this_node, dns_aggregator) if config['daemon_mode'] == 'coordinator' and d_network[network].nettype == 'managed': try: dns_aggregator.add_network(d_network[network]) diff --git a/node-daemon/pvcnoded/VXNetworkInstance.py b/node-daemon/pvcnoded/VXNetworkInstance.py index aca94751..3e31f46b 100644 --- a/node-daemon/pvcnoded/VXNetworkInstance.py +++ b/node-daemon/pvcnoded/VXNetworkInstance.py @@ -24,15 +24,14 @@ import time from textwrap import dedent -import pvcnoded.zkhandler as zkhandler import pvcnoded.common as common class VXNetworkInstance(object): # Initialization function - def __init__(self, vni, zk_conn, config, logger, this_node, dns_aggregator): + def __init__(self, vni, zkhandler, config, logger, this_node, dns_aggregator): self.vni = vni - self.zk_conn = zk_conn + self.zkhandler = zkhandler self.config = config self.logger = logger self.this_node = this_node @@ -41,7 +40,7 @@ class VXNetworkInstance(object): self.vni_mtu = config['vni_mtu'] self.bridge_dev = config['bridge_dev'] - self.nettype = zkhandler.readdata(self.zk_conn, '/networks/{}/nettype'.format(self.vni)) + self.nettype = self.zkhandler.read('/networks/{}/nettype'.format(self.vni)) if self.nettype == 'bridged': self.logger.out( 'Creating new bridged network', @@ -73,7 +72,7 @@ class VXNetworkInstance(object): self.bridge_nic = 'vmbr{}'.format(self.vni) # Zookeper handlers for changed states - @self.zk_conn.DataWatch('/networks/{}'.format(self.vni)) + @self.zkhandler.zk_conn.DataWatch('/networks/{}'.format(self.vni)) def watch_network_description(data, stat, event=''): if event and event.type == 'DELETED': # The key has been deleted after existing before; terminate this watcher @@ -92,16 +91,16 @@ class VXNetworkInstance(object): self.description = None self.domain = None self.name_servers = None - self.ip6_gateway = zkhandler.readdata(self.zk_conn, '/networks/{}/ip6_gateway'.format(self.vni)) - self.ip6_network = zkhandler.readdata(self.zk_conn, '/networks/{}/ip6_network'.format(self.vni)) - self.ip6_cidrnetmask = zkhandler.readdata(self.zk_conn, '/networks/{}/ip6_network'.format(self.vni)).split('/')[-1] - self.dhcp6_flag = (zkhandler.readdata(self.zk_conn, '/networks/{}/dhcp6_flag'.format(self.vni)) == 'True') - self.ip4_gateway = zkhandler.readdata(self.zk_conn, '/networks/{}/ip4_gateway'.format(self.vni)) - self.ip4_network = zkhandler.readdata(self.zk_conn, '/networks/{}/ip4_network'.format(self.vni)) - self.ip4_cidrnetmask = zkhandler.readdata(self.zk_conn, '/networks/{}/ip4_network'.format(self.vni)).split('/')[-1] - self.dhcp4_flag = (zkhandler.readdata(self.zk_conn, '/networks/{}/dhcp4_flag'.format(self.vni)) == 'True') - self.dhcp4_start = (zkhandler.readdata(self.zk_conn, '/networks/{}/dhcp4_start'.format(self.vni)) == 'True') - self.dhcp4_end = (zkhandler.readdata(self.zk_conn, '/networks/{}/dhcp4_end'.format(self.vni)) == 'True') + self.ip6_gateway = self.zkhandler.read('/networks/{}/ip6_gateway'.format(self.vni)) + self.ip6_network = self.zkhandler.read('/networks/{}/ip6_network'.format(self.vni)) + self.ip6_cidrnetmask = self.zkhandler.read('/networks/{}/ip6_network'.format(self.vni)).split('/')[-1] + self.dhcp6_flag = (self.zkhandler.read('/networks/{}/dhcp6_flag'.format(self.vni)) == 'True') + self.ip4_gateway = self.zkhandler.read('/networks/{}/ip4_gateway'.format(self.vni)) + self.ip4_network = self.zkhandler.read('/networks/{}/ip4_network'.format(self.vni)) + self.ip4_cidrnetmask = self.zkhandler.read('/networks/{}/ip4_network'.format(self.vni)).split('/')[-1] + self.dhcp4_flag = (self.zkhandler.read('/networks/{}/dhcp4_flag'.format(self.vni)) == 'True') + self.dhcp4_start = (self.zkhandler.read('/networks/{}/dhcp4_start'.format(self.vni)) == 'True') + self.dhcp4_end = (self.zkhandler.read('/networks/{}/dhcp4_end'.format(self.vni)) == 'True') self.vxlan_nic = 'vxlan{}'.format(self.vni) self.bridge_nic = 'vmbr{}'.format(self.vni) @@ -158,11 +157,11 @@ add rule inet filter forward ip6 saddr {netaddr6} counter jump {vxlannic}-out vxlannic=self.vxlan_nic, ) - self.firewall_rules_in = zkhandler.listchildren(self.zk_conn, '/networks/{}/firewall_rules/in'.format(self.vni)) - self.firewall_rules_out = zkhandler.listchildren(self.zk_conn, '/networks/{}/firewall_rules/out'.format(self.vni)) + self.firewall_rules_in = self.zkhandler.children('/networks/{}/firewall_rules/in'.format(self.vni)) + self.firewall_rules_out = self.zkhandler.children('/networks/{}/firewall_rules/out'.format(self.vni)) # Zookeper handlers for changed states - @self.zk_conn.DataWatch('/networks/{}'.format(self.vni)) + @self.zkhandler.zk_conn.DataWatch('/networks/{}'.format(self.vni)) def watch_network_description(data, stat, event=''): if event and event.type == 'DELETED': # The key has been deleted after existing before; terminate this watcher @@ -176,7 +175,7 @@ add rule inet filter forward ip6 saddr {netaddr6} counter jump {vxlannic}-out self.stopDHCPServer() self.startDHCPServer() - @self.zk_conn.DataWatch('/networks/{}/domain'.format(self.vni)) + @self.zkhandler.zk_conn.DataWatch('/networks/{}/domain'.format(self.vni)) def watch_network_domain(data, stat, event=''): if event and event.type == 'DELETED': # The key has been deleted after existing before; terminate this watcher @@ -193,7 +192,7 @@ add rule inet filter forward ip6 saddr {netaddr6} counter jump {vxlannic}-out self.stopDHCPServer() self.startDHCPServer() - @self.zk_conn.DataWatch('/networks/{}/name_servers'.format(self.vni)) + @self.zkhandler.zk_conn.DataWatch('/networks/{}/name_servers'.format(self.vni)) def watch_network_name_servers(data, stat, event=''): if event and event.type == 'DELETED': # The key has been deleted after existing before; terminate this watcher @@ -210,7 +209,7 @@ add rule inet filter forward ip6 saddr {netaddr6} counter jump {vxlannic}-out self.stopDHCPServer() self.startDHCPServer() - @self.zk_conn.DataWatch('/networks/{}/ip6_network'.format(self.vni)) + @self.zkhandler.zk_conn.DataWatch('/networks/{}/ip6_network'.format(self.vni)) def watch_network_ip6_network(data, stat, event=''): if event and event.type == 'DELETED': # The key has been deleted after existing before; terminate this watcher @@ -225,7 +224,7 @@ add rule inet filter forward ip6 saddr {netaddr6} counter jump {vxlannic}-out self.stopDHCPServer() self.startDHCPServer() - @self.zk_conn.DataWatch('/networks/{}/ip6_gateway'.format(self.vni)) + @self.zkhandler.zk_conn.DataWatch('/networks/{}/ip6_gateway'.format(self.vni)) def watch_network_gateway6(data, stat, event=''): if event and event.type == 'DELETED': # The key has been deleted after existing before; terminate this watcher @@ -247,7 +246,7 @@ add rule inet filter forward ip6 saddr {netaddr6} counter jump {vxlannic}-out self.stopDHCPServer() self.startDHCPServer() - @self.zk_conn.DataWatch('/networks/{}/dhcp6_flag'.format(self.vni)) + @self.zkhandler.zk_conn.DataWatch('/networks/{}/dhcp6_flag'.format(self.vni)) def watch_network_dhcp6_status(data, stat, event=''): if event and event.type == 'DELETED': # The key has been deleted after existing before; terminate this watcher @@ -261,7 +260,7 @@ add rule inet filter forward ip6 saddr {netaddr6} counter jump {vxlannic}-out elif self.dhcp_server_daemon and not self.dhcp4_flag and self.this_node.router_state in ['primary', 'takeover']: self.stopDHCPServer() - @self.zk_conn.DataWatch('/networks/{}/ip4_network'.format(self.vni)) + @self.zkhandler.zk_conn.DataWatch('/networks/{}/ip4_network'.format(self.vni)) def watch_network_ip4_network(data, stat, event=''): if event and event.type == 'DELETED': # The key has been deleted after existing before; terminate this watcher @@ -276,7 +275,7 @@ add rule inet filter forward ip6 saddr {netaddr6} counter jump {vxlannic}-out self.stopDHCPServer() self.startDHCPServer() - @self.zk_conn.DataWatch('/networks/{}/ip4_gateway'.format(self.vni)) + @self.zkhandler.zk_conn.DataWatch('/networks/{}/ip4_gateway'.format(self.vni)) def watch_network_gateway4(data, stat, event=''): if event and event.type == 'DELETED': # The key has been deleted after existing before; terminate this watcher @@ -298,7 +297,7 @@ add rule inet filter forward ip6 saddr {netaddr6} counter jump {vxlannic}-out self.stopDHCPServer() self.startDHCPServer() - @self.zk_conn.DataWatch('/networks/{}/dhcp4_flag'.format(self.vni)) + @self.zkhandler.zk_conn.DataWatch('/networks/{}/dhcp4_flag'.format(self.vni)) def watch_network_dhcp4_status(data, stat, event=''): if event and event.type == 'DELETED': # The key has been deleted after existing before; terminate this watcher @@ -312,7 +311,7 @@ add rule inet filter forward ip6 saddr {netaddr6} counter jump {vxlannic}-out elif self.dhcp_server_daemon and not self.dhcp6_flag and self.this_node.router_state in ['primary', 'takeover']: self.stopDHCPServer() - @self.zk_conn.DataWatch('/networks/{}/dhcp4_start'.format(self.vni)) + @self.zkhandler.zk_conn.DataWatch('/networks/{}/dhcp4_start'.format(self.vni)) def watch_network_dhcp4_start(data, stat, event=''): if event and event.type == 'DELETED': # The key has been deleted after existing before; terminate this watcher @@ -325,7 +324,7 @@ add rule inet filter forward ip6 saddr {netaddr6} counter jump {vxlannic}-out self.stopDHCPServer() self.startDHCPServer() - @self.zk_conn.DataWatch('/networks/{}/dhcp4_end'.format(self.vni)) + @self.zkhandler.zk_conn.DataWatch('/networks/{}/dhcp4_end'.format(self.vni)) def watch_network_dhcp4_end(data, stat, event=''): if event and event.type == 'DELETED': # The key has been deleted after existing before; terminate this watcher @@ -338,7 +337,7 @@ add rule inet filter forward ip6 saddr {netaddr6} counter jump {vxlannic}-out self.stopDHCPServer() self.startDHCPServer() - @self.zk_conn.ChildrenWatch('/networks/{}/dhcp4_reservations'.format(self.vni)) + @self.zkhandler.zk_conn.ChildrenWatch('/networks/{}/dhcp4_reservations'.format(self.vni)) def watch_network_dhcp_reservations(new_reservations, event=''): if event and event.type == 'DELETED': # The key has been deleted after existing before; terminate this watcher @@ -354,7 +353,7 @@ add rule inet filter forward ip6 saddr {netaddr6} counter jump {vxlannic}-out self.stopDHCPServer() self.startDHCPServer() - @self.zk_conn.ChildrenWatch('/networks/{}/firewall_rules/in'.format(self.vni)) + @self.zkhandler.zk_conn.ChildrenWatch('/networks/{}/firewall_rules/in'.format(self.vni)) def watch_network_firewall_rules_in(new_rules, event=''): if event and event.type == 'DELETED': # The key has been deleted after existing before; terminate this watcher @@ -366,7 +365,7 @@ add rule inet filter forward ip6 saddr {netaddr6} counter jump {vxlannic}-out self.firewall_rules_in = new_rules self.updateFirewallRules() - @self.zk_conn.ChildrenWatch('/networks/{}/firewall_rules/out'.format(self.vni)) + @self.zkhandler.zk_conn.ChildrenWatch('/networks/{}/firewall_rules/out'.format(self.vni)) def watch_network_firewall_rules_out(new_rules, event=''): if event and event.type == 'DELETED': # The key has been deleted after existing before; terminate this watcher @@ -389,8 +388,7 @@ add rule inet filter forward ip6 saddr {netaddr6} counter jump {vxlannic}-out if reservation not in old_reservations_list: # Add new reservation file filename = '{}/{}'.format(self.dnsmasq_hostsdir, reservation) - ipaddr = zkhandler.readdata( - self.zk_conn, + ipaddr = self.zkhandler.readdata( '/networks/{}/dhcp4_reservations/{}/ipaddr'.format( self.vni, reservation @@ -426,10 +424,10 @@ add rule inet filter forward ip6 saddr {netaddr6} counter jump {vxlannic}-out full_ordered_rules = [] for acl in self.firewall_rules_in: - order = zkhandler.readdata(self.zk_conn, '/networks/{}/firewall_rules/in/{}/order'.format(self.vni, acl)) + order = self.zkhandler.read('/networks/{}/firewall_rules/in/{}/order'.format(self.vni, acl)) ordered_acls_in[order] = acl for acl in self.firewall_rules_out: - order = zkhandler.readdata(self.zk_conn, '/networks/{}/firewall_rules/out/{}/order'.format(self.vni, acl)) + order = self.zkhandler.read('/networks/{}/firewall_rules/out/{}/order'.format(self.vni, acl)) ordered_acls_out[order] = acl for order in sorted(ordered_acls_in.keys()): @@ -440,7 +438,7 @@ add rule inet filter forward ip6 saddr {netaddr6} counter jump {vxlannic}-out for direction in 'in', 'out': for acl in sorted_acl_list[direction]: rule_prefix = "add rule inet filter vxlan{}-{} counter".format(self.vni, direction) - rule_data = zkhandler.readdata(self.zk_conn, '/networks/{}/firewall_rules/{}/{}/rule'.format(self.vni, direction, acl)) + rule_data = self.zkhandler.read('/networks/{}/firewall_rules/{}/{}/rule'.format(self.vni, direction, acl)) rule = '{} {}'.format(rule_prefix, rule_data) full_ordered_rules.append(rule)