def testGeneratePodSpecificDhcpConfWithSerial(self): from jnpr.openclos.l3Clos import util flexmock(util, isPlatformUbuntu=True) with self._dao.getReadWriteSession() as session: pod = createPod('pod1', session) pod.spineJunosImage = 'testSpineImage' createPodDevice(session, 'dev1', pod) dev2 = createPodDevice(session, 'dev2', pod) dev2.macAddress = None dev2.serialNumber = 'VB1234567890' dev3 = createPodDevice(session, 'dev3', pod) dev3.role = 'leaf' dev3.serialNumber = 'VB1234567891' dhcpConf = self.ztpServer.generatePodSpecificDhcpConf( session, pod.id) print dhcpConf self.assertEquals(2, dhcpConf.count('testSpineImage')) self.assertFalse('{{' in dhcpConf) self.assertFalse('}}' in dhcpConf) self.assertFalse('None' in dhcpConf) self.assertTrue('VB1234567890' in dhcpConf) self.assertTrue('VB1234567891' not in dhcpConf) self.assertEquals( 5, dhcpConf.count('host-name') ) # 1 global class + 1 subnet + 2 device mac + 1 device serial
def testGeneratePodSpecificDhcpConfWithSerial(self): from jnpr.openclos.l3Clos import util flexmock(util, isPlatformUbuntu = True) with self._dao.getReadWriteSession() as session: pod = createPod('pod1', session) pod.spineJunosImage = 'testSpineImage' createPodDevice(session, 'dev1', pod) dev2 = createPodDevice(session, 'dev2', pod) dev2.macAddress = None dev2.serialNumber = 'VB1234567890' dev3 = createPodDevice(session, 'dev3', pod) dev3.role = 'leaf' dev3.serialNumber = 'VB1234567891' dhcpConf = self.ztpServer.generatePodSpecificDhcpConf(session, pod.id) print dhcpConf self.assertEquals(2, dhcpConf.count('testSpineImage')) self.assertFalse('{{' in dhcpConf) self.assertFalse('}}' in dhcpConf) self.assertFalse('None' in dhcpConf) self.assertTrue('VB1234567890' in dhcpConf) self.assertTrue('VB1234567891' not in dhcpConf) self.assertEquals(5, dhcpConf.count('host-name')) # 1 global class + 1 subnet + 2 device mac + 1 device serial
def testGeneratePodSpecificDhcpConfFor2StageZtp(self): from jnpr.openclos.l3Clos import util flexmock(util, isPlatformUbuntu=True) flexmock(util, isZtpStaged=True) with self._dao.getReadWriteSession() as session: pod = createPod('pod1', session) pod.spineJunosImage = 'testSpineImage' pod.leafSettings.append(LeafSetting('ex4300-24p', pod.id)) dev1 = createPodDevice(session, 'dev1', pod) dev2 = createPodDevice(session, 'dev2', pod) dev3 = createPodDevice(session, 'dev3', pod) dev3.role = 'leaf' dev4 = createPodDevice(session, 'dev4', pod) dev4.role = 'leaf' dhcpConf = self.ztpServer.generatePodSpecificDhcpConf( session, pod.id) self.assertEquals(2, dhcpConf.count('testSpineImage')) self.assertFalse('{{' in dhcpConf) self.assertFalse('}}' in dhcpConf) self.assertFalse('None' in dhcpConf) self.assertEquals( 3, dhcpConf.count('host-name')) # 1 global + 2 spine device self.assertEquals(1, dhcpConf.count('pool')) self.assertEquals(2, dhcpConf.count('class ')) self.assertEquals(4, dhcpConf.count('vendor-class-identifier'))
def testGeneratePodSpecificDhcpConfFor2StageZtp(self): from jnpr.openclos.l3Clos import util flexmock(util, isPlatformUbuntu = True) flexmock(util, isZtpStaged = True) with self._dao.getReadWriteSession() as session: pod = createPod('pod1', session) pod.spineJunosImage = 'testSpineImage' pod.leafSettings.append(LeafSetting('ex4300-24p', pod.id)) dev1 = createPodDevice(session, 'dev1', pod) dev2 = createPodDevice(session, 'dev2', pod) dev3 = createPodDevice(session, 'dev3', pod) dev3.role = 'leaf' dev4 = createPodDevice(session, 'dev4', pod) dev4.role = 'leaf' dhcpConf = self.ztpServer.generatePodSpecificDhcpConf(session, pod.id) self.assertEquals(2, dhcpConf.count('testSpineImage')) self.assertFalse('{{' in dhcpConf) self.assertFalse('}}' in dhcpConf) self.assertFalse('None' in dhcpConf) self.assertEquals(3, dhcpConf.count('host-name')) # 1 global + 2 spine device self.assertEquals(1, dhcpConf.count('pool')) self.assertEquals(2, dhcpConf.count('class ')) self.assertEquals(4, dhcpConf.count('vendor-class-identifier'))
def createTwoSpineTwoLeafPlugNPlay(self, session): from test_model import createPod pod = createPod('pod1', session) from test_model import createPodDevice spine1 = createPodDevice(session, 'spine1', pod) spine2 = createPodDevice(session, 'spine2', pod) leaf1 = createPodDevice(session, 'leaf1', pod) leaf1.role = 'leaf' leaf1.family = 'qfx5100-48s-6q' leaf2 = createPodDevice(session, 'leaf2', pod) leaf2.role = 'leaf' leaf2.family = 'unknown' IFDs = [InterfaceDefinition('et-0/0/0', spine1, 'downlink'), InterfaceDefinition('et-0/0/1', spine1, 'downlink'), InterfaceDefinition('et-0/0/0', spine2, 'downlink'), InterfaceDefinition('et-0/0/1', spine2, 'downlink'), InterfaceDefinition('et-0/0/48', leaf1, 'uplink'), InterfaceDefinition('et-0/0/49', leaf1, 'uplink'), InterfaceDefinition('uplink-1', leaf2, 'uplink'), InterfaceDefinition('uplink-2', leaf2, 'uplink')] session.add_all(IFDs) IFLs = self.createIfls(session, IFDs) IFDs[4].peer = IFDs[0] IFDs[0].peer = IFDs[4] IFDs[5].peer = IFDs[2] IFDs[2].peer = IFDs[5] IFDs[6].peer = IFDs[1] IFDs[1].peer = IFDs[6] IFDs[7].peer = IFDs[3] IFDs[3].peer = IFDs[7] return {'ifds': IFDs, 'ifls': IFLs}
def createTwoSpineTwoLeafWithDummyUplinksForEx4300(self, session): from test_model import createPod pod = createPod("pod1", session) from test_model import createPodDevice spine1 = createPodDevice(session, "spine1", pod) spine2 = createPodDevice(session, "spine2", pod) spine3 = createPodDevice(session, "spine3", pod) leaf1 = createPodDevice(session, "leaf1", pod) leaf1.role = "leaf" leaf1.family = "qfx5100-48s-6q" leaf2 = createPodDevice(session, "leaf2", pod) leaf2.role = "leaf" leaf2.family = "qfx5100-48s-6q" IFDs = [ InterfaceDefinition("et-0/0/0", spine1, "downlink"), InterfaceDefinition("et-0/0/1", spine1, "downlink"), InterfaceDefinition("et-0/0/0", spine2, "downlink"), InterfaceDefinition("et-0/0/1", spine2, "downlink"), InterfaceDefinition("et-0/0/0", spine3, "downlink"), InterfaceDefinition("et-0/0/1", spine3, "downlink"), InterfaceDefinition("et-0/0/48", leaf1, "uplink"), InterfaceDefinition("et-0/0/49", leaf1, "uplink"), InterfaceDefinition("et-0/0/50", leaf2, "uplink"), InterfaceDefinition("et-0/0/48", leaf2, "uplink"), InterfaceDefinition("et-0/0/49", leaf2, "uplink"), InterfaceDefinition("dummy", leaf2, "uplink"), ] session.add_all(IFDs) IFDs[6].peer = IFDs[0] IFDs[0].peer = IFDs[6] IFDs[7].peer = IFDs[2] IFDs[2].peer = IFDs[7] IFDs[8].peer = IFDs[4] IFDs[4].peer = IFDs[8] IFDs[9].peer = IFDs[1] IFDs[1].peer = IFDs[9] IFDs[10].peer = IFDs[3] IFDs[3].peer = IFDs[10] IFDs[11].peer = IFDs[5] IFDs[5].peer = IFDs[11] return IFDs
def createTwoSpineTwoLeafWithDummyUplinksForEx4300(self, session): from test_model import createPod pod = createPod('pod1', session) from test_model import createPodDevice spine1 = createPodDevice(session, 'spine1', pod) spine2 = createPodDevice(session, 'spine2', pod) spine3 = createPodDevice(session, 'spine3', pod) leaf1 = createPodDevice(session, 'leaf1', pod) leaf1.role = 'leaf' leaf1.family = 'qfx5100-48s-6q' leaf2 = createPodDevice(session, 'leaf2', pod) leaf2.role = 'leaf' leaf2.family = 'qfx5100-48s-6q' IFDs = [ InterfaceDefinition('et-0/0/0', spine1, 'downlink'), InterfaceDefinition('et-0/0/1', spine1, 'downlink'), InterfaceDefinition('et-0/0/0', spine2, 'downlink'), InterfaceDefinition('et-0/0/1', spine2, 'downlink'), InterfaceDefinition('et-0/0/0', spine3, 'downlink'), InterfaceDefinition('et-0/0/1', spine3, 'downlink'), InterfaceDefinition('et-0/0/48', leaf1, 'uplink'), InterfaceDefinition('et-0/0/49', leaf1, 'uplink'), InterfaceDefinition('et-0/0/50', leaf2, 'uplink'), InterfaceDefinition('et-0/0/48', leaf2, 'uplink'), InterfaceDefinition('et-0/0/49', leaf2, 'uplink'), InterfaceDefinition('dummy', leaf2, 'uplink') ] session.add_all(IFDs) IFDs[6].peer = IFDs[0] IFDs[0].peer = IFDs[6] IFDs[7].peer = IFDs[2] IFDs[2].peer = IFDs[7] IFDs[8].peer = IFDs[4] IFDs[4].peer = IFDs[8] IFDs[9].peer = IFDs[1] IFDs[1].peer = IFDs[9] IFDs[10].peer = IFDs[3] IFDs[3].peer = IFDs[10] IFDs[11].peer = IFDs[5] IFDs[5].peer = IFDs[11] return IFDs
def testGeneratePodSpecificDhcpConf(self): from jnpr.openclos.l3Clos import util flexmock(util, isPlatformUbuntu = True) with self._dao.getReadWriteSession() as session: pod = createPod('pod1', session) pod.spineJunosImage = 'testSpineImage' createPodDevice(session, 'dev1', pod) dev2 = createPodDevice(session, 'dev2', pod) dev3 = createPodDevice(session, 'dev3', pod) dev3.role = 'leaf' dhcpConf = self.ztpServer.generatePodSpecificDhcpConf(session, pod.id) self.assertEquals(2, dhcpConf.count('testSpineImage')) self.assertFalse('{{' in dhcpConf) self.assertFalse('}}' in dhcpConf) self.assertFalse('None' in dhcpConf) self.assertEquals(4, dhcpConf.count('host-name')) # 1 global + 3 device
def testCreateDeviceInGraph(self): testDeviceTopology = pydot.Dot(graph_type='graph', ) pod = createPod('pod1', self.dao.Session()) cablingPlanWriter = CablingPlanWriter(self.conf, pod, self.dao) device = createPodDevice(self.dao.Session(), 'Preethi', pod) device.id = 'preethi-1' cablingPlanWriter.createDeviceInGraph(device.name, device, testDeviceTopology) path = cablingPlanWriter.outputDir + '/testDevicelabel.dot' testDeviceTopology.write_raw(path) data = open(path, 'r').read() #check the generated label for device self.assertTrue('"preethi-1" [shape=record, label=Preethi];' in data)
def createTwoSpineTwoLeafPlugNPlay(self, session): from test_model import createPod pod = createPod("pod1", session) from test_model import createPodDevice spine1 = createPodDevice(session, "spine1", pod) spine2 = createPodDevice(session, "spine2", pod) leaf1 = createPodDevice(session, "leaf1", pod) leaf1.role = "leaf" leaf1.family = "qfx5100-48s-6q" leaf2 = createPodDevice(session, "leaf2", pod) leaf2.role = "leaf" leaf2.family = "unknown" IFDs = [ InterfaceDefinition("et-0/0/0", spine1, "downlink"), InterfaceDefinition("et-0/0/1", spine1, "downlink"), InterfaceDefinition("et-0/0/0", spine2, "downlink"), InterfaceDefinition("et-0/0/1", spine2, "downlink"), InterfaceDefinition("et-0/0/48", leaf1, "uplink"), InterfaceDefinition("et-0/0/49", leaf1, "uplink"), InterfaceDefinition("uplink-1", leaf2, "uplink"), InterfaceDefinition("uplink-2", leaf2, "uplink"), ] session.add_all(IFDs) IFLs = self.createIfls(session, IFDs) IFDs[4].peer = IFDs[0] IFDs[0].peer = IFDs[4] IFDs[5].peer = IFDs[2] IFDs[2].peer = IFDs[5] IFDs[6].peer = IFDs[1] IFDs[1].peer = IFDs[6] IFDs[7].peer = IFDs[3] IFDs[3].peer = IFDs[7] return {"ifds": IFDs, "ifls": IFLs}
def testGeneratePodSpecificDhcpConf(self): from jnpr.openclos.l3Clos import util flexmock(util, isPlatformUbuntu=True) with self._dao.getReadWriteSession() as session: pod = createPod('pod1', session) pod.spineJunosImage = 'testSpineImage' createPodDevice(session, 'dev1', pod) dev2 = createPodDevice(session, 'dev2', pod) dev3 = createPodDevice(session, 'dev3', pod) dev3.role = 'leaf' dhcpConf = self.ztpServer.generatePodSpecificDhcpConf( session, pod.id) self.assertEquals(2, dhcpConf.count('testSpineImage')) self.assertFalse('{{' in dhcpConf) self.assertFalse('}}' in dhcpConf) self.assertFalse('None' in dhcpConf) self.assertEquals(4, dhcpConf.count('host-name')) # 1 global + 3 device
def testGeneratePodSpecificDhcpConf(self): from jnpr.openclos.l3Clos import util flexmock(util, isPlatformUbuntu = True) pod = createPod('pod1', self.session) pod.spineJunosImage = 'testSpineImage' pod.leafJunosImage = 'testLeafImage' createPodDevice(self.session, 'dev1', pod) dev2 = createPodDevice(self.session, 'dev2', pod) dev3 = createPodDevice(self.session, 'dev3', pod) dev3.role = 'leaf' dev4 = createPodDevice(self.session, 'dev4', pod) dev4.role = 'unknown' dhcpConf = self.ztpServer.generatePodSpecificDhcpConf('pod1') self.assertEquals(2, dhcpConf.count('testSpineImage')) self.assertEquals(1, dhcpConf.count('testLeafImage')) self.assertFalse('{{' in dhcpConf) self.assertFalse('}}' in dhcpConf) self.assertEquals(5, dhcpConf.count('host-name')) # 1 global + 4 device
def createTwoSpineTwoLeafWithDummyUplinksForEx4300(self, session): from test_model import createPod pod = createPod('pod1', session) from test_model import createPodDevice spine1 = createPodDevice(session, 'spine1', pod) spine2 = createPodDevice(session, 'spine2', pod) spine3 = createPodDevice(session, 'spine3', pod) leaf1 = createPodDevice(session, 'leaf1', pod) leaf1.role = 'leaf' leaf1.family = 'qfx5100-48s-6q' leaf2 = createPodDevice(session, 'leaf2', pod) leaf2.role = 'leaf' leaf2.family = 'qfx5100-48s-6q' IFDs = [ InterfaceDefinition('et-0/0/0', spine1, 'downlink'), InterfaceDefinition('et-0/0/1', spine1, 'downlink'), InterfaceDefinition('et-0/0/0', spine2, 'downlink'), InterfaceDefinition('et-0/0/1', spine2, 'downlink'), InterfaceDefinition('et-0/0/0', spine3, 'downlink'), InterfaceDefinition('et-0/0/1', spine3, 'downlink'), InterfaceDefinition('et-0/0/48', leaf1, 'uplink'), InterfaceDefinition('et-0/0/49', leaf1, 'uplink'), InterfaceDefinition('et-0/0/50', leaf2, 'uplink'), InterfaceDefinition('et-0/0/48', leaf2, 'uplink'), InterfaceDefinition('et-0/0/49', leaf2, 'uplink'), InterfaceDefinition('dummy', leaf2, 'uplink')] session.add_all(IFDs) IFDs[6].peer = IFDs[0] IFDs[0].peer = IFDs[6] IFDs[7].peer = IFDs[2] IFDs[2].peer = IFDs[7] IFDs[8].peer = IFDs[4] IFDs[4].peer = IFDs[8] IFDs[9].peer = IFDs[1] IFDs[1].peer = IFDs[9] IFDs[10].peer = IFDs[3] IFDs[3].peer = IFDs[10] IFDs[11].peer = IFDs[5] IFDs[5].peer = IFDs[11] return IFDs
def createTwoSpineTwoLeafPlugNPlay(self, session): from test_model import createPod pod = createPod('pod1', session) from test_model import createPodDevice spine1 = createPodDevice(session, 'spine1', pod) spine2 = createPodDevice(session, 'spine2', pod) leaf1 = createPodDevice(session, 'leaf1', pod) leaf1.role = 'leaf' leaf1.family = 'qfx5100-48s-6q' leaf2 = createPodDevice(session, 'leaf2', pod) leaf2.role = 'leaf' leaf2.family = 'unknown' IFDs = [ InterfaceDefinition('et-0/0/0', spine1, 'downlink'), InterfaceDefinition('et-0/0/1', spine1, 'downlink'), InterfaceDefinition('et-0/0/0', spine2, 'downlink'), InterfaceDefinition('et-0/0/1', spine2, 'downlink'), InterfaceDefinition('et-0/0/48', leaf1, 'uplink'), InterfaceDefinition('et-0/0/49', leaf1, 'uplink'), InterfaceDefinition('uplink-1', leaf2, 'uplink'), InterfaceDefinition('uplink-2', leaf2, 'uplink') ] session.add_all(IFDs) IFLs = self.createIfls(session, IFDs) IFDs[4].peer = IFDs[0] IFDs[0].peer = IFDs[4] IFDs[5].peer = IFDs[2] IFDs[2].peer = IFDs[5] IFDs[6].peer = IFDs[1] IFDs[1].peer = IFDs[6] IFDs[7].peer = IFDs[3] IFDs[3].peer = IFDs[7] return {'ifds': IFDs, 'ifls': IFLs}
def testGeneratePodSpecificDhcpConf(self): from jnpr.openclos.l3Clos import util flexmock(util, isPlatformUbuntu=True) pod = createPod('pod1', self.session) pod.spineJunosImage = 'testSpineImage' pod.leafJunosImage = 'testLeafImage' createPodDevice(self.session, 'dev1', pod) dev2 = createPodDevice(self.session, 'dev2', pod) dev3 = createPodDevice(self.session, 'dev3', pod) dev3.role = 'leaf' dev4 = createPodDevice(self.session, 'dev4', pod) dev4.role = 'unknown' dhcpConf = self.ztpServer.generatePodSpecificDhcpConf('pod1') self.assertEquals(2, dhcpConf.count('testSpineImage')) self.assertEquals(1, dhcpConf.count('testLeafImage')) self.assertFalse('{{' in dhcpConf) self.assertFalse('}}' in dhcpConf) self.assertEquals(5, dhcpConf.count('host-name')) # 1 global + 4 device
def createSixSpineOneLeafqfx5100_48sPlugNPlay(self, session): from test_model import createPod pod = createPod("pod1", session) from test_model import createPodDevice spine1 = createPodDevice(session, "spine1", pod) spine2 = createPodDevice(session, "spine2", pod) spine3 = createPodDevice(session, "spine3", pod) spine4 = createPodDevice(session, "spine4", pod) spine5 = createPodDevice(session, "spine5", pod) spine6 = createPodDevice(session, "spine6", pod) leaf1 = createPodDevice(session, "leaf1", pod) leaf1.role = "leaf" leaf1.family = "qfx5100-48s-6q" IFDs = [ InterfaceDefinition("et-0/0/0", spine1, "downlink"), InterfaceDefinition("et-0/0/0", spine2, "downlink"), InterfaceDefinition("et-0/0/0", spine3, "downlink"), InterfaceDefinition("et-0/0/0", spine4, "downlink"), InterfaceDefinition("et-0/0/0", spine5, "downlink"), InterfaceDefinition("et-0/0/0", spine6, "downlink"), InterfaceDefinition("et-0/0/48", leaf1, "uplink"), InterfaceDefinition("et-0/0/49", leaf1, "uplink"), InterfaceDefinition("et-0/0/50", leaf1, "uplink"), InterfaceDefinition("et-0/0/51", leaf1, "uplink"), InterfaceDefinition("et-0/0/52", leaf1, "uplink"), InterfaceDefinition("et-0/0/53", leaf1, "uplink"), ] session.add_all(IFDs) IFLs = self.createIfls(session, IFDs) IFDs[6].peer = IFDs[0] IFDs[0].peer = IFDs[6] IFDs[7].peer = IFDs[1] IFDs[1].peer = IFDs[7] IFDs[8].peer = IFDs[2] IFDs[2].peer = IFDs[8] IFDs[9].peer = IFDs[3] IFDs[3].peer = IFDs[9] IFDs[10].peer = IFDs[4] IFDs[4].peer = IFDs[10] IFDs[11].peer = IFDs[5] IFDs[5].peer = IFDs[11] return {"ifds": IFDs, "ifls": IFLs}
def createSixSpineOneLeafqfx5100_48sPlugNPlay(self, session): from test_model import createPod pod = createPod('pod1', session) from test_model import createPodDevice spine1 = createPodDevice(session, 'spine1', pod) spine2 = createPodDevice(session, 'spine2', pod) spine3 = createPodDevice(session, 'spine3', pod) spine4 = createPodDevice(session, 'spine4', pod) spine5 = createPodDevice(session, 'spine5', pod) spine6 = createPodDevice(session, 'spine6', pod) leaf1 = createPodDevice(session, 'leaf1', pod) leaf1.role = 'leaf' leaf1.family = 'qfx5100-48s-6q' IFDs = [ InterfaceDefinition('et-0/0/0', spine1, 'downlink'), InterfaceDefinition('et-0/0/0', spine2, 'downlink'), InterfaceDefinition('et-0/0/0', spine3, 'downlink'), InterfaceDefinition('et-0/0/0', spine4, 'downlink'), InterfaceDefinition('et-0/0/0', spine5, 'downlink'), InterfaceDefinition('et-0/0/0', spine6, 'downlink'), InterfaceDefinition('et-0/0/48', leaf1, 'uplink'), InterfaceDefinition('et-0/0/49', leaf1, 'uplink'), InterfaceDefinition('et-0/0/50', leaf1, 'uplink'), InterfaceDefinition('et-0/0/51', leaf1, 'uplink'), InterfaceDefinition('et-0/0/52', leaf1, 'uplink'), InterfaceDefinition('et-0/0/53', leaf1, 'uplink') ] session.add_all(IFDs) IFLs = self.createIfls(session, IFDs) IFDs[6].peer = IFDs[0] IFDs[0].peer = IFDs[6] IFDs[7].peer = IFDs[1] IFDs[1].peer = IFDs[7] IFDs[8].peer = IFDs[2] IFDs[2].peer = IFDs[8] IFDs[9].peer = IFDs[3] IFDs[3].peer = IFDs[9] IFDs[10].peer = IFDs[4] IFDs[4].peer = IFDs[10] IFDs[11].peer = IFDs[5] IFDs[5].peer = IFDs[11] return {'ifds': IFDs, 'ifls': IFLs}
def createSixSpineOneLeafqfx5100_48sPlugNPlay(self, session): from test_model import createPod pod = createPod('pod1', session) from test_model import createPodDevice spine1 = createPodDevice(session, 'spine1', pod) spine2 = createPodDevice(session, 'spine2', pod) spine3 = createPodDevice(session, 'spine3', pod) spine4 = createPodDevice(session, 'spine4', pod) spine5 = createPodDevice(session, 'spine5', pod) spine6 = createPodDevice(session, 'spine6', pod) leaf1 = createPodDevice(session, 'leaf1', pod) leaf1.role = 'leaf' leaf1.family = 'qfx5100-48s-6q' IFDs = [InterfaceDefinition('et-0/0/0', spine1, 'downlink'), InterfaceDefinition('et-0/0/0', spine2, 'downlink'), InterfaceDefinition('et-0/0/0', spine3, 'downlink'), InterfaceDefinition('et-0/0/0', spine4, 'downlink'), InterfaceDefinition('et-0/0/0', spine5, 'downlink'), InterfaceDefinition('et-0/0/0', spine6, 'downlink'), InterfaceDefinition('et-0/0/48', leaf1, 'uplink'), InterfaceDefinition('et-0/0/49', leaf1, 'uplink'), InterfaceDefinition('et-0/0/50', leaf1, 'uplink'), InterfaceDefinition('et-0/0/51', leaf1, 'uplink'), InterfaceDefinition('et-0/0/52', leaf1, 'uplink'), InterfaceDefinition('et-0/0/53', leaf1, 'uplink')] session.add_all(IFDs) IFLs = self.createIfls(session, IFDs) IFDs[6].peer = IFDs[0] IFDs[0].peer = IFDs[6] IFDs[7].peer = IFDs[1] IFDs[1].peer = IFDs[7] IFDs[8].peer = IFDs[2] IFDs[2].peer = IFDs[8] IFDs[9].peer = IFDs[3] IFDs[3].peer = IFDs[9] IFDs[10].peer = IFDs[4] IFDs[4].peer = IFDs[10] IFDs[11].peer = IFDs[5] IFDs[5].peer = IFDs[11] return {'ifds': IFDs, 'ifls': IFLs}