Exemplo n.º 1
0
 def setupRestWithTwoPods(self):
     from test_model import createPod
     restServer = RestServer(self.conf)
     session = restServer.dao.Session()
     self.ipFabric1 = createPod("test1", session)
     self.ipFabric2 = createPod("test2", session)
     restServer.initRest()
     return TestApp(restServer.app)
Exemplo n.º 2
0
 def setupRestWithTwoPods(self):
     from test_model import createPod
     restServer = RestServer(self.conf)
     session = restServer.dao.Session()
     self.ipFabric1 = createPod("test1", session)
     self.ipFabric2 = createPod("test2", session)
     restServer.initRest()
     return TestApp(restServer.app)
Exemplo n.º 3
0
    def testcreateLinksInGraph(self):
        testLinksInTopology = pydot.Dot(graph_type='graph')
        pod = createPod('pod1', self.dao.Session())
        cablingPlanWriter = CablingPlanWriter(self.conf, pod, self.dao)
        deviceOne = Device('spine01', "", 'admin', 'admin', 'spine', "", "",
                           pod)
        deviceOne.id = 'spine01'
        IF1 = InterfaceDefinition('IF1', deviceOne, 'downlink')
        IF1.id = 'IF1'

        deviceTwo = Device('leaf01', "", 'admin', 'admin', 'leaf', "", "", pod)
        deviceTwo.id = 'leaf01'
        IF21 = InterfaceDefinition('IF1', deviceTwo, 'uplink')
        IF21.id = 'IF21'

        IF1.peer = IF21
        IF21.peer = IF1
        linkLabel = {deviceOne.id + ':' + IF1.id: deviceTwo.id + ':' + IF21.id}
        cablingPlanWriter.createLinksInGraph(linkLabel, testLinksInTopology,
                                             'red')
        path = cablingPlanWriter.outputDir + '/testLinklabel.dot'
        testLinksInTopology.write_raw(path)
        data = open(path, 'r').read()
        #check generated label for links
        self.assertTrue('spine01:IF1 -- leaf01:IF21  [color=red];' in data)
Exemplo n.º 4
0
    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
Exemplo n.º 5
0
 def setupRestWithPodAndGenericConfig(self, session):
     from test_model import createPod
     from jnpr.openclos.model import LeafSetting
     self.pod1 = createPod("test1", session)
     leafSetting = LeafSetting('qfx5100-48s-6q', self.pod1.id, config = "testConfig abcd")
     self.pod1.leafSettings = [leafSetting]
     session.merge(self.pod1)
Exemplo n.º 6
0
 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
Exemplo n.º 7
0
    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'))
Exemplo n.º 8
0
    def testGetObjectById(self):
        from test_model import createPod
        with self.__dao.getReadWriteSession() as session:
            pod = createPod("test", session)

        with self.__dao.getReadSession() as session:
            self.assertEqual(1, len(self.__dao.getAll(session, Pod)))
Exemplo n.º 9
0
    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'))
Exemplo n.º 10
0
    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}
Exemplo n.º 11
0
 def testWrite(self):
     pod = createPod('pod1', self.dao.Session())
     device = Device('test_device', "", 'admin', 'admin', 'spine', "", "",
                     pod)
     configWriter = ConfigWriter(self.conf, pod, self.dao)
     configWriter.write(device, "dummy config")
     self.assertTrue(
         os.path.exists(configWriter.outputDir + '/test_device.conf'))
Exemplo n.º 12
0
 def testInitWithTemplate(self):
     from jinja2 import TemplateNotFound
     pod = createPod('pod1', self.dao.Session())
     cablingPlanWriter = CablingPlanWriter(self.conf, pod, self.dao)
     self.assertIsNotNone(cablingPlanWriter.template)
     with self.assertRaises(TemplateNotFound) as e:
         cablingPlanWriter.templateEnv.get_template('unknown-template')
     self.assertTrue('unknown-template' in e.exception.message)
Exemplo n.º 13
0
 def testInitWithTemplate(self):
     from jinja2 import TemplateNotFound
     pod = createPod('pod1', self.dao.Session())
     cablingPlanWriter = CablingPlanWriter(self.conf, pod, self.dao)
     self.assertIsNotNone(cablingPlanWriter.template)
     with self.assertRaises(TemplateNotFound) as e:
         cablingPlanWriter.templateEnv.get_template('unknown-template')
     self.assertTrue('unknown-template' in e.exception.message)
Exemplo n.º 14
0
    def testGetInterconnectAllocation(self):
        from test_model import createPod
        pod = createPod("test", self.session)
        pod.allocatedInterConnectBlock = '1.2.3.4/24'
        pod.interConnectPrefix = '1.2.0.0'

        interconnectAllocation = self.report.getInterconnectAllocation("test")
        self.assertEqual('1.2.0.0', interconnectAllocation['block'])
        self.assertEqual('1.2.3.4/24', interconnectAllocation['allocated'])
Exemplo n.º 15
0
 def setupRestWithPodAndGenericConfig(self, session):
     from test_model import createPod
     from jnpr.openclos.model import LeafSetting
     self.pod1 = createPod("test1", session)
     leafSetting = LeafSetting('qfx5100-48s-6q',
                               self.pod1.id,
                               config="testConfig abcd")
     self.pod1.leafSettings = [leafSetting]
     session.merge(self.pod1)
Exemplo n.º 16
0
 def testGetInterconnectAllocation(self):
     from test_model import createPod
     pod = createPod("test", self.session)
     pod.allocatedInterConnectBlock = '1.2.3.4/24'
     pod.interConnectPrefix = '1.2.0.0'
     
     interconnectAllocation = self.report.getInterconnectAllocation("test")
     self.assertEqual('1.2.0.0', interconnectAllocation['block'])
     self.assertEqual('1.2.3.4/24', interconnectAllocation['allocated'])
Exemplo n.º 17
0
 def testCreateLeafAndIfds(self):
     with self._dao.getReadSession() as session:
         from test_model import createPod
         pod = createPod('test', session)
         pod.spineCount = 6
         leaves = [{ "name" : "leaf-01", "family" : "ex4300-24p", "macAddress" : "88:e0:f3:1c:d6:01", "deployStatus": "deploy" }]
 
         self.l3ClosMediation._createLeafAndIfds(session, pod, leaves)
         interfaces = session.query(InterfaceDefinition).all()
         self.assertEqual(6, len(interfaces))
Exemplo n.º 18
0
 def testWriteConfigInFile(self):
     from jnpr.openclos.model import DeviceConfig
     self._conf['writeConfigInFile'] = True
     with self._dao.getReadWriteSession() as session:
         pod = createPod('pod1', session)
         device = Device('test_device', "",'admin', 'admin', 'spine', "", "", pod)
         device.config = DeviceConfig(device.id, "dummy config")
         configWriter = ConfigWriter(self._conf, pod, self._dao)
         configWriter.write(device)
         self.assertTrue(os.path.exists(os.path.join(configWriter.outputDir, device.id+'__test_device.conf')))
Exemplo n.º 19
0
 def testCreateAccessInterface(self):
     with self._dao.getReadSession() as session:
         from test_model import createPod
         pod = createPod('test', session)
         device = Device("test", "qfx5100-48s-6q", "user", "pwd", "leaf", "mac", "mgmtIp", pod)
         configlet = self.l3ClosMediation._createAccessPortInterfaces(session, device)
         self.assertEquals(96, configlet.count('family ethernet-switching'))
         self.assertTrue('xe-0/0/0' in configlet)
         self.assertTrue('xe-0/0/47' in configlet)
         self.assertTrue('ge-0/0/0' in configlet)
         self.assertTrue('ge-0/0/47' in configlet)
Exemplo n.º 20
0
    def testCreateAccessInterfaceEx4300(self):
        self._conf["deviceFamily"]["ex4300-48p"] = {"uplinkPorts": "et-0/0/[48-51]", "downlinkPorts": "ge-0/0/[0-47]"}
        self.l3ClosMediation = L3ClosMediation(self._conf, InMemoryDao)
        with self._dao.getReadSession() as session:
            from test_model import createPod

            pod = createPod("test", session)
            device = Device("test", "ex4300-48p", "user", "pwd", "leaf", "mac", "mgmtIp", pod)
            configlet = self.l3ClosMediation._createAccessPortInterfaces(session, device)
            self.assertEquals(48, configlet.count("family ethernet-switching"))
            self.assertTrue("ge-0/0/0" in configlet)
            self.assertTrue("ge-0/0/47" in configlet)
Exemplo n.º 21
0
 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)
Exemplo n.º 22
0
 def testcreateDOTFile(self):
     # create pod
     # create device
     #create interface
     with self._dao.getReadWriteSession() as session:
         pod = createPod('pod1', session)
         cablingPlanWriter = CablingPlanWriter(self._conf, pod, self._dao)
         #check the DOT file is generated
         cablingPlanWriter.writeDOT()
         data = open(cablingPlanWriter.outputDir + '/cablingPlan.dot', 'r').read()
         #check generated label for links
         self.assertTrue('splines=polyline;' in data)
Exemplo n.º 23
0
 def testCreateAccessInterface(self):
     with self._dao.getReadSession() as session:
         from test_model import createPod
         pod = createPod('test', session)
         device = Device("test", "qfx5100-48s-6q", "user", "pwd", "leaf",
                         "mac", "mgmtIp", pod)
         configlet = self.l3ClosMediation._createAccessPortInterfaces(
             session, device)
         self.assertEquals(96, configlet.count('family ethernet-switching'))
         self.assertTrue('xe-0/0/0' in configlet)
         self.assertTrue('xe-0/0/47' in configlet)
         self.assertTrue('ge-0/0/0' in configlet)
         self.assertTrue('ge-0/0/47' in configlet)
Exemplo n.º 24
0
    def testcreateDOTFile(self):
        # create pod
        # create device
        #create interface
        session = self.dao.Session()
        pod = createPod('pod1', session)
        cablingPlanWriter = CablingPlanWriter(self.conf, pod, self.dao)
        deviceOne = Device('spine01', "", 'admin', 'admin', 'spine', "", "",
                           pod)
        session.add(deviceOne)
        IF1 = InterfaceDefinition('IF1', deviceOne, 'downlink')
        session.add(IF1)
        IF2 = InterfaceDefinition('IF2', deviceOne, 'downlink')
        session.add(IF2)

        deviceTwo = Device('leaf01', "", 'admin', 'admin', 'leaf', "", "", pod)
        session.add(deviceTwo)
        IF21 = InterfaceDefinition('IF1', deviceTwo, 'uplink')
        session.add(IF21)
        IF22 = InterfaceDefinition('IF2', deviceTwo, 'uplink')
        session.add(IF22)
        IF23 = InterfaceDefinition('IF3', deviceTwo, 'downlink')
        session.add(IF23)
        IF24 = InterfaceDefinition('IF3', deviceTwo, 'downlink')
        session.add(IF24)

        deviceThree = Device('Access01', "", 'admin', 'admin', 'leaf', "", "",
                             pod)
        session.add(deviceThree)
        IF31 = InterfaceDefinition('IF1', deviceThree, 'uplink')
        session.add(IF31)
        IF32 = InterfaceDefinition('IF2', deviceThree, 'uplink')
        session.add(IF32)

        IF1.peer = IF21
        IF2.peer = IF22
        IF21.peer = IF1
        IF22.peer = IF2
        IF23.peer = IF31
        IF31.peer = IF23
        IF24.peer = IF32
        IF32.peer = IF24

        session.commit()
        devices = session.query(Device).all()
        #check the DOT file is generated
        cablingPlanWriter.writeDOT()
        data = open(cablingPlanWriter.outputDir + '/cablingPlan.dot',
                    'r').read()
        #check generated label for links
        self.assertTrue('splines=polyline;' in data)
Exemplo n.º 25
0
    def testStoreBgpLinks(self):
        device_id = None
        with self._dao.getReadWriteSession() as session:
            from test_model import createPod

            pod = createPod("pod1", session)
            session.add(pod)
            device = Device("leaf1", "qfx5100-48s-6q", "", "", "leaf", "11:12:13:14:15:16", "1.2.3.4/24", pod)
            device_id = device.id
            session.add(device)

        with self._dao.getReadSession() as session:
            dataCollector = L3DataCollector(device_id, {}, InMemoryDao)
            dataCollector.manualInit()
            dataCollector._session = session

            bgpLinks = [
                {
                    "device1": "leaf1",
                    "device1as1": 401,
                    "device1Ip": "192.169.0.3+179",
                    "device2": None,
                    "device2as": 300,
                    "device2Ip": "192.169.0.2+57574",
                    "inputMsgCount": 16764,
                    "outputMsgCount": 16811,
                    "outQueueCount": 0,
                    "linkState": "Established",
                    "active/receive/acceptCount": "3/3/3",
                },
                {
                    "device1": "leaf1",
                    "device1as1": 401,
                    "device1Ip": "192.169.0.11+179",
                    "device2": None,
                    "device2as": 301,
                    "device2Ip": "192.169.0.10+49383",
                    "inputMsgCount": 16816,
                    "outputMsgCount": 16810,
                    "outQueueCount": 0,
                    "linkState": "Established",
                    "active/receive/acceptCount": "2/2/2",
                },
            ]
            dataCollector.persistBgpLinks(bgpLinks)

            bgpLinks = session.query(BgpLink).filter(BgpLink.device_id == device_id).all()
            self.assertEqual("192.169.0.3+179", bgpLinks[0].device1Ip)
            self.assertEqual("192.169.0.11+179", bgpLinks[1].device1Ip)
Exemplo n.º 26
0
 def testcreateDOTFile(self):
     # create pod
     # create device
     #create interface
     session = self.dao.Session()
     pod = createPod('pod1', session)
     cablingPlanWriter = CablingPlanWriter(self.conf, pod, self.dao)
     deviceOne = Device('spine01',"", 'admin', 'admin',  'spine', "", "", pod)
     session.add(deviceOne)
     IF1 = InterfaceDefinition('IF1', deviceOne, 'downlink')
     session.add(IF1)
     IF2 = InterfaceDefinition('IF2', deviceOne, 'downlink')
     session.add(IF2)
     
     deviceTwo = Device('leaf01',"", 'admin', 'admin',  'leaf', "", "", pod)
     session.add(deviceTwo)
     IF21 = InterfaceDefinition('IF1', deviceTwo, 'uplink')
     session.add(IF21)
     IF22 = InterfaceDefinition('IF2', deviceTwo, 'uplink')
     session.add(IF22)
     IF23 = InterfaceDefinition('IF3', deviceTwo, 'downlink')
     session.add(IF23)
     IF24 = InterfaceDefinition('IF3', deviceTwo, 'downlink')
     session.add(IF24)
     
     deviceThree = Device('Access01', "",'admin', 'admin',  'leaf', "", "", pod)
     session.add(deviceThree)
     IF31 = InterfaceDefinition('IF1', deviceThree, 'uplink')
     session.add(IF31)
     IF32 = InterfaceDefinition('IF2', deviceThree, 'uplink')
     session.add(IF32)
     
     IF1.peer = IF21
     IF2.peer = IF22
     IF21.peer = IF1
     IF22.peer = IF2
     IF23.peer = IF31
     IF31.peer = IF23
     IF24.peer = IF32
     IF32.peer = IF24   
     
     session.commit()
     devices = session.query(Device).all()
     #check the DOT file is generated
     cablingPlanWriter.writeDOT()
     data = open(cablingPlanWriter.outputDir + '/cablingPlan.dot', 'r').read()
     #check generated label for links
     self.assertTrue('splines=polyline;' in data)
     
Exemplo n.º 27
0
    def testCreateLeafAndIfds(self):
        with self._dao.getReadSession() as session:
            from test_model import createPod
            pod = createPod('test', session)
            pod.spineCount = 6
            leaves = [{
                "name": "leaf-01",
                "family": "ex4300-24p",
                "macAddress": "88:e0:f3:1c:d6:01",
                "deployStatus": "deploy"
            }]

            self.l3ClosMediation._createLeafAndIfds(session, pod, leaves)
            interfaces = session.query(InterfaceDefinition).all()
            self.assertEqual(6, len(interfaces))
Exemplo n.º 28
0
    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
Exemplo n.º 29
0
    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}
Exemplo n.º 30
0
 def testCreateAccessInterfaceEx4300(self):
     self._conf['deviceFamily']['ex4300-48p'] = {
         "uplinkPorts": 'et-0/0/[48-51]',
         "downlinkPorts": 'ge-0/0/[0-47]'
     }
     self.l3ClosMediation = L3ClosMediation(self._conf, InMemoryDao)
     with self._dao.getReadSession() as session:
         from test_model import createPod
         pod = createPod('test', session)
         device = Device("test", "ex4300-48p", "user", "pwd", "leaf", "mac",
                         "mgmtIp", pod)
         configlet = self.l3ClosMediation._createAccessPortInterfaces(
             session, device)
         self.assertEquals(48, configlet.count('family ethernet-switching'))
         self.assertTrue('ge-0/0/0' in configlet)
         self.assertTrue('ge-0/0/47' in configlet)
Exemplo n.º 31
0
    def testStoreBgpLinks(self):
        device_id = None
        with self._dao.getReadWriteSession() as session:
            from test_model import createPod
            pod = createPod('pod1', session)
            session.add(pod)
            device = Device("leaf1", "qfx5100-48s-6q", "", "", "leaf",
                            "11:12:13:14:15:16", "1.2.3.4/24", pod)
            device_id = device.id
            session.add(device)

        with self._dao.getReadSession() as session:
            dataCollector = L3DataCollector(device_id, {}, InMemoryDao)
            dataCollector.manualInit()
            dataCollector._session = session

            bgpLinks = [{
                'device1': 'leaf1',
                'device1as1': 401,
                'device1Ip': '192.169.0.3+179',
                'device2': None,
                'device2as': 300,
                'device2Ip': '192.169.0.2+57574',
                'inputMsgCount': 16764,
                'outputMsgCount': 16811,
                'outQueueCount': 0,
                'linkState': 'Established',
                'active/receive/acceptCount': '3/3/3'
            }, {
                'device1': 'leaf1',
                'device1as1': 401,
                'device1Ip': '192.169.0.11+179',
                'device2': None,
                'device2as': 301,
                'device2Ip': '192.169.0.10+49383',
                'inputMsgCount': 16816,
                'outputMsgCount': 16810,
                'outQueueCount': 0,
                'linkState': 'Established',
                'active/receive/acceptCount': '2/2/2'
            }]
            dataCollector.persistBgpLinks(bgpLinks)

            bgpLinks = session.query(BgpLink).filter(
                BgpLink.device_id == device_id).all()
            self.assertEqual('192.169.0.3+179', bgpLinks[0].device1Ip)
            self.assertEqual('192.169.0.11+179', bgpLinks[1].device1Ip)
Exemplo n.º 32
0
    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
Exemplo n.º 33
0
    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}
Exemplo n.º 34
0
    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
Exemplo n.º 35
0
    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}
Exemplo n.º 36
0
    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
Exemplo n.º 37
0
    def testStoreBgpLinks(self):
        device_id = None
        with self._dao.getReadWriteSession() as session:
            from test_model import createPod
            pod = createPod('pod1', session)
            session.add(pod)
            device = Device("leaf1", "qfx5100-48s-6q", "", "", "leaf", "11:12:13:14:15:16", "1.2.3.4/24", pod)
            device_id = device.id
            session.add(device)
            
        with self._dao.getReadSession() as session:
            dataCollector = L3DataCollector(device_id, {}, InMemoryDao)
            dataCollector.manualInit()
            dataCollector._session = session
            
            bgpLinks = [{'device1': 'leaf1', 'device1as1': 401, 'device1Ip': '192.169.0.3+179', 'device2': None, 'device2as': 300, 'device2Ip': '192.169.0.2+57574', 'inputMsgCount': 16764, 'outputMsgCount': 16811, 'outQueueCount': 0 , 'linkState' : 'Established', 'active/receive/acceptCount': '3/3/3'},
                        {'device1': 'leaf1', 'device1as1': 401, 'device1Ip': '192.169.0.11+179', 'device2': None, 'device2as': 301, 'device2Ip': '192.169.0.10+49383','inputMsgCount': 16816, 'outputMsgCount': 16810, 'outQueueCount': 0 , 'linkState' : 'Established', 'active/receive/acceptCount': '2/2/2'}]
            dataCollector.persistBgpLinks(bgpLinks)

            bgpLinks = session.query(BgpLink).filter(BgpLink.device_id == device_id).all()
            self.assertEqual('192.169.0.3+179', bgpLinks[0].device1Ip)
            self.assertEqual('192.169.0.11+179', bgpLinks[1].device1Ip)
Exemplo n.º 38
0
    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
Exemplo n.º 39
0
    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
Exemplo n.º 40
0
    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}
Exemplo n.º 41
0
    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}
Exemplo n.º 42
0
 def testcreateLinksInGraph(self):
     testLinksInTopology = pydot.Dot(graph_type='graph')
     pod = createPod('pod1', self.dao.Session())
     cablingPlanWriter = CablingPlanWriter(self.conf, pod, self.dao)
     deviceOne = Device('spine01',"", 'admin', 'admin',  'spine', "", "", pod)
     deviceOne.id = 'spine01'
     IF1 = InterfaceDefinition('IF1', deviceOne, 'downlink')
     IF1.id = 'IF1'
     
     deviceTwo = Device('leaf01',"", 'admin', 'admin',  'leaf', "", "", pod)
     deviceTwo.id = 'leaf01'
     IF21 = InterfaceDefinition('IF1', deviceTwo, 'uplink')
     IF21.id = 'IF21'
     
     IF1.peer = IF21
     IF21.peer = IF1
     linkLabel = {deviceOne.id + ':' + IF1.id : deviceTwo.id + ':' + IF21.id}
     cablingPlanWriter.createLinksInGraph(linkLabel, testLinksInTopology, 'red')
     path = cablingPlanWriter.outputDir + '/testLinklabel.dot'
     testLinksInTopology.write_raw(path)
     data = open(path, 'r').read()
     #check generated label for links
     self.assertTrue('spine01:IF1 -- leaf01:IF21  [color=red];' in data)
    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 testGetObjectById(self):
     from test_model import createPod
     #self.conf['debugSql'] = True
     dao = Dao(self.conf)
     session = dao.Session()
     pod = createPod("test", session)
Exemplo n.º 45
0
 def testWrite(self):
     pod = createPod('pod1', self.dao.Session())
     device = Device('test_device', "",'admin', 'admin',  'spine', "", "", pod)
     configWriter = ConfigWriter(self.conf, pod, self.dao)
     configWriter.write(device, "dummy config")
     self.assertTrue(os.path.exists(os.path.join(configWriter.outputDir, device.id+'-test_device.conf')))
Exemplo n.º 46
0
 def setupRestWithTwoPods(self, session):
     from test_model import createPod
     self.pod1 = createPod("test1", session)
     self.pod2 = createPod("test2", session)
Exemplo n.º 47
0
 def testGenerateL3Report(self):
     l3Report = L3Report(self.__conf, self._dao)
     from test_model import createPod
     with self._dao.getReadSession() as session:
         pod = createPod("test", session)
         l3Report.generateReport(pod.id, True, False)
Exemplo n.º 48
0
 def setupRestWithTwoPods(self, session):
     from test_model import createPod
     self.pod1 = createPod("test1", session)
     self.pod2 = createPod("test2", session)
Exemplo n.º 49
0
 def testGetObjectById(self):
     from test_model import createPod
     #self.conf['debugSql'] = True
     dao = Dao(self.conf)
     session = dao.Session()
     pod = createPod("test", session)
Exemplo n.º 50
0
 def testGenerateL3Report(self):
     l3Report = L3Report(self.__conf, self._dao)
     from test_model import createPod
     with self._dao.getReadSession() as session:
         pod = createPod("test", session)
         l3Report.generateReport(pod.id, True, False)