def network_hostname(node): network = node.Network if network: return "%s_%s" % (ank.name_folder_safe(network), ank.name_folder_safe(node.label)) else: return ank.name_folder_safe(node.label)
def compile(self): log.info("Compiling Dynagen for %s" % self.host) g_phy = self.anm['phy'] G_graphics = self.anm['graphics'] ios_compiler = IosClassicCompiler(self.nidb, self.anm) for phy_node in g_phy.nodes('is_router', host=self.host, syntax='ios'): nidb_node = self.nidb.node(phy_node) graphics_node = G_graphics.node(phy_node) nidb_node.render.template = os.path.join("templates", "ios.mako") nidb_node.render.dst_folder = os.path.join( "rendered", self.host, "dynagen", self.config_dir) nidb_node.render.dst_file = "%s.cfg" % ank.name_folder_safe( phy_node.label) # TODO: may want to normalise x/y nidb_node.x = graphics_node.x nidb_node.y = graphics_node.y # Allocate edges # assign interfaces # Note this could take external data int_ids = self.interface_ids() for interface in nidb_node.physical_interfaces: interface.id = int_ids.next() ios_compiler.compile(nidb_node) self.allocate_ports() self.lab_topology()
def compile(self): log.info("Compiling Junosphere for %s" % self.host) g_phy = self.anm['phy'] junos_compiler = JunosCompiler(self.nidb, self.anm) for phy_node in g_phy.nodes('is_router', host=self.host, syntax='junos'): nidb_node = self.nidb.node(phy_node) nidb_node.render.template = os.path.join("templates","junos.mako") nidb_node.render.dst_folder = os.path.join("rendered",self.host,"junosphere") nidb_node.render.dst_file = "%s.conf" % ank.name_folder_safe( phy_node.label) int_ids = self.interface_ids() for interface in nidb_node.physical_interfaces: interface.unit = 0 interface.id = int_ids.next() junos_compiler.compile(nidb_node)
def compile(self): log.info("Compiling Junosphere for %s" % self.host) g_phy = self.anm['phy'] junos_compiler = JunosCompiler(self.nidb, self.anm) for phy_node in g_phy.nodes('is_router', host=self.host, syntax='junos'): nidb_node = self.nidb.node(phy_node) nidb_node.render.template = "templates/junos.mako" nidb_node.render.dst_folder = "rendered/%s/%s" % ( self.host, "junosphere") nidb_node.render.dst_file = "%s.conf" % ank.name_folder_safe( phy_node.label) int_ids = self.interface_ids() for edge in self.nidb.edges(nidb_node): edge.unit = 0 edge.id = int_ids.next() junos_compiler.compile(nidb_node)