Example #1
0
    def generateConfig(self, session, pod):
        configWriter = ConfigWriter(self._conf, pod, self._dao)
        modifiedObjects = []
        
        for device in pod.devices:
            if device.role == 'leaf' and (self.isZtpStaged or device.family == 'unknown'):
                # leaf configs will get created when they are plugged in after 2Stage ztp
                continue
            
            config = self._createBaseConfig(device)
            config += self._createInterfaces(session, device)
            config += self._createRoutingOptionsStatic(session, device)
            config += self._createRoutingOptionsBgp(session, device)
            config += self._createProtocolBgp(session, device)
            config += self._createProtocolLldp(device)
            config += self._createPolicyOption(session, device)
            config += self._createSnmpTrapAndEvent(session, device)
            config += self._createVlan(device)
            device.config = DeviceConfig(device.id, config)
            modifiedObjects.append(device)
            logger.debug('Generated config for device name: %s, id: %s, storing in DB' % (device.name, device.id))
            configWriter.write(device)

        if self.isZtpStaged:
            pod.leafSettings = self._createLeafGenericConfigsFor2Stage(session, pod)
            modifiedObjects.append(pod)
            logger.debug('Generated %d leaf generic configs for pod: %s, storing in DB' % (len(pod.leafSettings), pod.name))
            configWriter.writeGenericLeaf(pod)
        
        self._dao.updateObjects(session, modifiedObjects)
 def generateConfig(self, pod):
     configWriter = ConfigWriter(self.conf, pod, self.dao)
     for device in pod.devices:
         config = self.createBaseConfig(device)
         config += self.createInterfaces(device)
         config += self.createRoutingOption(device)
         config += self.createProtocols(device)
         config += self.createPolicyOption(device)
         config += self.createVlan(device)
         configWriter.write(device, config)
Example #3
0
 def createLeafConfigFor2Stage(self, device):
     configWriter = ConfigWriter(self._conf, device.pod, self._dao)
     
     with self._dao.getReadWriteSession() as session:
         config = self._createBaseConfig(device)
         config += self._createInterfaces(session, device)
         config += self._createRoutingOptionsStatic(session, device)
         config += self._createRoutingOptionsBgp(session, device)
         config += self._createProtocolBgp(session, device)
         config += self._createProtocolLldp(device)
         config += self._createPolicyOption(session, device)
         config += self._createSnmpTrapAndEventForLeafFor2ndStage(session, device)
         config += self._createVlan(device)
         device.config = DeviceConfig(device.id, config)
         self._dao.updateObjects(session, [device])
     logger.debug('Generated config for device name: %s, id: %s, storing in DB' % (device.name, device.id))
     configWriter.write(device)
     return config