Configure the nat interface automatically

- Refactor nbhelper
- Generate device's netplan config from netbox data

This change is for [AETHER-1371]

Change-Id: Ieed77850c7405c2634bfa3b78bd2d9086b8f837b
diff --git a/scripts/edgeconfig.py b/scripts/edgeconfig.py
index 5dc21fc..2faf9de 100644
--- a/scripts/edgeconfig.py
+++ b/scripts/edgeconfig.py
@@ -33,8 +33,8 @@
         },
     }
 
-    args = nbhelper.parse_cli_args(extra_args)
-    nbh = nbhelper.NBHelper(args)
+    args = nbhelper.initialize(extra_args)
+    tenant = nbhelper.NBTenant()
 
     # use base_config for additional items
     yaml_out = yaml.safe_load(args.base_config.read())
@@ -44,15 +44,11 @@
 
     # reverse zones aggregate across RFC1918 IP prefix
     dns_reverse_zones = nbhelper.NBDNSReverseZones()
-
-    for prefix in nbh.all_prefixes():
+    for prefix in tenant.get_prefixes().values():
 
         nbhelper.NBDNSForwardZone.get_fwd_zone(prefix)
-
         dns_reverse_zones.add_prefix(prefix)
-
         dhcpd_subnet = nbhelper.NBDHCPSubnet(prefix)
-
         dhcpd_if = dhcpd_subnet.dhcpd_interface
 
         if dhcpd_if and dhcpd_if not in dhcpd_interfaces:
@@ -60,7 +56,8 @@
 
         dhcpd_subnets.append(dhcpd_subnet)
 
-    #    yaml_out["devices"] = nbhelper.NBDevice.all_devs()
+    # yaml_out["devices"] = nbhelper.NBDevice.all_devs()
+    yaml_out["netprep_netplan"] = tenant.generate_netplan()
     yaml_out["dns_forward_zones"] = nbhelper.NBDNSForwardZone.all_fwd_zones()
     yaml_out["dns_reverse_zones"] = dns_reverse_zones
     yaml_out["dhcpd_subnets"] = dhcpd_subnets