from __future__ import unicode_literals

import logging

from django.core.management.base import BaseCommand

from peering.models import InternetExchange


class Command(BaseCommand):
    help = ('Deploy configurations each IX having a router and a configuration'
            ' template attached.')
    logger = logging.getLogger('peering.manager.peering')

    def handle(self, *args, **options):
        self.logger.info('Deploying configurations...')

        for ix in InternetExchange.objects.all():
            if ix.configuration_template and ix.router:
                self.logger.info(
                    'Deploying configuration on {}'.format(ix.name))
                ix.router.set_napalm_configuration(ix.generate_configuration(),
                                                   commit=True)
            else:
                self.logger.info(
                    'No configuration to deploy on {}'.format(ix.name))

        self.logger.info('Configurations deployed')

from __future__ import unicode_literals

import logging

from django.core.management.base import BaseCommand

from peering.models import InternetExchange


class Command(BaseCommand):
    help = ('Deploy configurations each IX having a router and a configuration'
            ' template attached.')
    logger = logging.getLogger('peering.manager.peering')

    def handle(self, *args, **options):
        self.logger.info('Deploying configurations...')

        for ix in InternetExchange.objects.all():
            # Only deploy config if there are at least a configuration
            # template, a router and a platform for the router
            if ix.configuration_template and ix.router and ix.router.platform:
                self.logger.info(
                    'Deploying configuration on {}'.format(ix.name))
                ix.router.set_napalm_configuration(ix.generate_configuration(),
                                                   commit=True)
            else:
                self.logger.info(
                    'No configuration to deploy on {}'.format(ix.name))

        self.logger.info('Configurations deployed')

Check for router platform in auto-deploy script.
Check for router platform in auto-deploy script.

  from __future__ import unicode_literals
  
  import logging
  
  from django.core.management.base import BaseCommand
  
  from peering.models import InternetExchange
  
  
  class Command(BaseCommand):
      help = ('Deploy configurations each IX having a router and a configuration'
              ' template attached.')
      logger = logging.getLogger('peering.manager.peering')
  
      def handle(self, *args, **options):
          self.logger.info('Deploying configurations...')
  
          for ix in InternetExchange.objects.all():
+             # Only deploy config if there are at least a configuration
+             # template, a router and a platform for the router
-             if ix.configuration_template and ix.router:
+             if ix.configuration_template and ix.router and ix.router.platform:
                  self.logger.info(
                      'Deploying configuration on {}'.format(ix.name))
                  ix.router.set_napalm_configuration(ix.generate_configuration(),
                                                     commit=True)
              else:
                  self.logger.info(
                      'No configuration to deploy on {}'.format(ix.name))
  
          self.logger.info('Configurations deployed')
  
Check for router platform in auto-deploy script.
## Code Before:
from __future__ import unicode_literals

import logging

from django.core.management.base import BaseCommand

from peering.models import InternetExchange


class Command(BaseCommand):
    help = ('Deploy configurations each IX having a router and a configuration'
            ' template attached.')
    logger = logging.getLogger('peering.manager.peering')

    def handle(self, *args, **options):
        self.logger.info('Deploying configurations...')

        for ix in InternetExchange.objects.all():
            if ix.configuration_template and ix.router:
                self.logger.info(
                    'Deploying configuration on {}'.format(ix.name))
                ix.router.set_napalm_configuration(ix.generate_configuration(),
                                                   commit=True)
            else:
                self.logger.info(
                    'No configuration to deploy on {}'.format(ix.name))

        self.logger.info('Configurations deployed')

## Instruction:
Check for router platform in auto-deploy script.
## Code After:
from __future__ import unicode_literals

import logging

from django.core.management.base import BaseCommand

from peering.models import InternetExchange


class Command(BaseCommand):
    help = ('Deploy configurations each IX having a router and a configuration'
            ' template attached.')
    logger = logging.getLogger('peering.manager.peering')

    def handle(self, *args, **options):
        self.logger.info('Deploying configurations...')

        for ix in InternetExchange.objects.all():
            # Only deploy config if there are at least a configuration
            # template, a router and a platform for the router
            if ix.configuration_template and ix.router and ix.router.platform:
                self.logger.info(
                    'Deploying configuration on {}'.format(ix.name))
                ix.router.set_napalm_configuration(ix.generate_configuration(),
                                                   commit=True)
            else:
                self.logger.info(
                    'No configuration to deploy on {}'.format(ix.name))

        self.logger.info('Configurations deployed')
