class testcase_gbp_aci_intg_leaf_vpc_flap_3(object):
    """
    This is a GBP_ACI Integration TestCase
    """
    # Initialize logging
    #logging.basicConfig(level=logging.INFO)
    _log = logging.getLogger(__name__)
    _log.setLevel(logging.INFO)
    # create a logfile handler
    hdlr = logging.FileHandler('/tmp/testcase_gbp_aci_intg_leaf_vpc_flap_3.log')
    formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
    hdlr.setFormatter(formatter)
    # Add the handler to the logger
    _log.addHandler(hdlr)

    def __init__(self,params):

      self.gbpaci = Gbp_Aci()
      self.heat_stack_name = 'gbpvpc5'
      cntlr_ip = params['cntlr_ip']
      self.heat_temp_test = params['heat_temp_file']
      self.gbpheat = gbpHeat(cntlr_ip)
      self.gbpnova = gbpNova(cntlr_ip)
      self.apic_ip = params['apic_ip']
      self.az_comp_node = params['az_comp_node']
      self.nova_agg = params['nova_agg']
      self.nova_az = params['nova_az']
      self.network_node = params['network_node']
      self.leaf1_port_comp_node1 = params['leaf1_port1'] #This connects Leaf1 to Comp-node1
      self.leaf1_port_comp_node2 = params['leaf1_port2'] #This connects Leaf1 to Comp-node2
      self.node_id = params['leaf1_node_id']


    def test_runner(self):
        """
        Method to run the Testcase in Ordered Steps
        """
        test_name = 'VPC_DISCON_LEAF1_NODE1_NODE2'
        self._log.info("\nSteps of the TESTCASE_GBP_INTG_LEAF_VPC_3_VPC_DISCON_LEAF1_NODE1_NODE2 to be executed\n")
        testcase_steps = [self.test_step_SetUpConfig,
                          self.test_step_DisconnectLeafOneHost,
                          self.test_step_VerifyTraffic
                         ]
	status = ''
        for step in testcase_steps:
            if step()!=1:
                  self._log.info("Test Failed at Step == %s" %(step.__name__.lstrip('self')))
                  self._log.info("%s_%s == FAILED" %(self.__class__.__name__.upper(),test_name))        
                  status = 'failed'
                  break
        if status != 'failed':
           self._log.info("%s_%s == PASSED" %(self.__class__.__name__.upper(),test_name))        
        self.test_CleanUp()

    def test_step_SetUpConfig(self):
        """
        Test Step using Heat, setup the Test Config
        """
        self._log.info("\nSetupCfg: Create Aggregate & Availability Zone to be executed\n")
        self.agg_id = self.gbpnova.avail_zone('api','create',self.nova_agg,avail_zone_name=self.nova_az)
        if self.agg_id == 0:
            self._log.info("\n ABORTING THE TESTSUITE RUN,nova host aggregate creation Failed")
            sys.exit(1)
        self._log.info(" Agg %s" %(self.agg_id))
        if self.gbpnova.avail_zone('api','addhost',self.agg_id,hostname=self.az_comp_node) == 0:
            self._log.info("\n ABORTING THE TESTSUITE RUN, availability zone creation Failed")
            self.gbpnova.avail_zone('api','delete',self.nova_agg,avail_zone_name=self.nova_az) # Cleaning up
            sys.exit(1)
        sleep(3)
        if self.gbpheat.cfg_all_cli(1,self.heat_stack_name,heat_temp=self.heat_temp_test) == 0:
           self._log.info("\n ABORTING THE TESTSUITE RUN, HEAT STACK CREATE of %s Failed" %(self.heat_stack_name))
           self.test_CleanUp()
           sys.exit(1)
        print 'Enable SSH .. sleeping for 20 secs'
        create_add_filter(self.apic_ip,'demo_bd') # 'demo_bd' is the name of L2Policy in the Heat Temp
        sleep(20)
        return 1

    def test_step_DisconnectLeafOneHost(self):
        """
        Test Step to Disconnect Leaf1 Ports from both Comp-Nodes
        """
        self._log.info("\nStep to Disconnect Links between Leaf1 and Both Comp-nodes\n")
        if self.gbpaci.enable_disable_switch_port(self.apic_ip,self.node_id,'disable',self.leaf1_port_comp_node1) == 0:
           return 0
        if self.gbpaci.enable_disable_switch_port(self.apic_ip,self.node_id,'disable',self.leaf1_port_comp_node2) == 0:
           return 0
        return 1
 
    def test_step_VerifyTraffic(self):
        """
        Send and Verify traffic
        """
        self._log.info("\nSend and Verify Traffic\n")
        return verify_traff(self.network_node)

    def test_CleanUp(self):
        """
        Cleanup the Testcase setup
        """
        self._log.info("\nCleanUp to be executed\n")
        for port in [self.leaf1_port_comp_node1,self.leaf1_port_comp_node2]:
           self.gbpaci.enable_disable_switch_port(self.apic_ip,self.node_id,'enable',port)
        self.gbpnova.avail_zone('api','removehost',self.agg_id,hostname=self.az_comp_node)
        self.gbpnova.avail_zone('api','delete',self.agg_id)
        self.gbpheat.cfg_all_cli(0,self.heat_stack_name)
Ejemplo n.º 2
0
class testcase_gbp_aci_intg_leaf_vpc_flap_5(object):
    """
    This is a GBP_ACI Integration TestCase
    """

    # Initialize logging
    #logging.basicConfig(level=logging.INFO)
    _log = logging.getLogger(__name__)
    _log.setLevel(logging.INFO)
    # create a logfile handler
    hdlr = logging.FileHandler(
        '/tmp/testcase_gbp_aci_intg_leaf_vpc_flap_5.log')
    formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
    hdlr.setFormatter(formatter)
    # Add the handler to the logger
    _log.addHandler(hdlr)

    def __init__(self, params):

        self.gbpaci = Gbp_Aci()
        self.heat_stack_name = 'gbpvpc7'
        cntlr_ip = params['cntlr_ip']
        self.heat_temp_test = params['heat_temp_file']
        self.gbpheat = gbpHeat(cntlr_ip)
        self.gbpnova = gbpNova(cntlr_ip)
        self.apic_ip = params['apic_ip']
        self.az_comp_node = params['az_comp_node']
        self.nova_agg = params['nova_agg']
        self.nova_az = params['nova_az']
        self.network_node = params['network_node']
        self.leaf1_port_comp_node1 = params[
            'leaf1_port1']  #This connects Leaf1 to Comp-node1
        self.leaf2_port_comp_node2 = params[
            'leaf2_port2']  #This connects Leaf2 to Comp-node2
        self.leaf1_node_id = params['leaf1_node_id']
        self.leaf2_node_id = params['leaf2_node_id']
        self.debug = params['pausetodebug']

    def test_runner(self):
        """
        Method to run the Testcase in Ordered Steps
        """
        test_name = 'VPC_DISCON_LEAF1_NODE1_LEAF2_NODE2'
        self._log.info(
            "\nSteps of the TESTCASE_GBP_INTG_LEAF_VPC_5_VPC_DISCON_LEAF1_NODE1_LEAF2_NODE2 to be executed\n"
        )
        testcase_steps = [
            self.test_step_SetUpConfig,
            self.test_step_DisconnectLeafsFromHosts,
            self.test_step_VerifyTraffic
        ]
        status = ''
        for step in testcase_steps:
            if step() != 1:
                self._log.info("Test Failed at Step == %s" %
                               (step.__name__.lstrip('self')))
                if self.debug == True:
                    PauseToDebug()
                self._log.info("%s_%s == FAILED" %
                               (self.__class__.__name__.upper(), test_name))
                status = 'failed'
                break
        if status != 'failed':
            self._log.info("%s_%s == PASSED" %
                           (self.__class__.__name__.upper(), test_name))
        self.test_CleanUp()

    def test_step_SetUpConfig(self):
        """
        Test Step using Heat, setup the Test Config
        """
        self._log.info(
            "\nSetupCfg: Create Aggregate & Availability Zone to be executed\n"
        )
        self.agg_id = self.gbpnova.avail_zone('api',
                                              'create',
                                              self.nova_agg,
                                              avail_zone_name=self.nova_az)
        if self.agg_id == 0:
            self._log.info(
                "\n ABORTING THE TESTSUITE RUN,nova host aggregate creation Failed"
            )
            sys.exit(1)
        self._log.info(" Agg %s" % (self.agg_id))
        if self.gbpnova.avail_zone('api',
                                   'addhost',
                                   self.agg_id,
                                   hostname=self.az_comp_node) == 0:
            self._log.info(
                "\n ABORTING THE TESTSUITE RUN, availability zone creation Failed"
            )
            self.gbpnova.avail_zone(
                'api', 'delete', self.nova_agg,
                avail_zone_name=self.nova_az)  # Cleaning up
            sys.exit(1)
        sleep(3)
        if self.gbpheat.cfg_all_cli(1,
                                    self.heat_stack_name,
                                    heat_temp=self.heat_temp_test) == 0:
            self._log.info(
                "\n ABORTING THE TESTSUITE RUN, HEAT STACK CREATE of %s Failed"
                % (self.heat_stack_name))
            self.test_CleanUp()
            sys.exit(1)
        print 'Enable SSH .. sleeping for 20 secs'
        create_add_filter(
            self.apic_ip,
            'demo_bd')  # 'demo_bd' is the name of L2Policy in the Heat Temp
        sleep(20)
        return 1

    def test_step_DisconnectLeafsFromHosts(self):
        """
        Test Step to Disconnect Links b/w Leaf1-CompNode1,Leaf2-CompNode2
        """
        self._log.info(
            "\nStep to Disconnect Links b/w Leaf1-CompNode1,Leaf2-CompNode2\n")
        if self.gbpaci.enable_disable_switch_port(
                self.apic_ip, self.leaf1_node_id, 'disable',
                self.leaf1_port_comp_node1) == 0:
            return 0
        if self.gbpaci.enable_disable_switch_port(
                self.apic_ip, self.leaf2_node_id, 'disable',
                self.leaf2_port_comp_node2) == 0:
            return 0
        return 1

    def test_step_VerifyTraffic(self):
        """
        Send and Verify traffic
        """
        self._log.info("\nSend and Verify Traffic\n")
        return verify_traff(self.network_node)

    def test_CleanUp(self):
        """
        Cleanup the Testcase setup
        """
        self._log.info("\nCleanUp to be executed\n")
        self.gbpaci.enable_disable_switch_port(self.apic_ip,
                                               self.leaf1_node_id, 'enable',
                                               self.leaf1_port_comp_node1)
        self.gbpaci.enable_disable_switch_port(self.apic_ip,
                                               self.leaf2_node_id, 'enable',
                                               self.leaf2_port_comp_node2)
        self.gbpnova.avail_zone('api',
                                'removehost',
                                self.agg_id,
                                hostname=self.az_comp_node)
        self.gbpnova.avail_zone('api', 'delete', self.agg_id)
        self.gbpheat.cfg_all_cli(0, self.heat_stack_name)
class  testcase_gbp_aci_intg_leaf_2(object):
    """
    This is a GBP_ACI Integration TestCase
    """
    # Initialize logging
    logging.basicConfig(format='%(asctime)s [%(levelname)s] %(name)s - %(message)s', level=logging.WARNING)
    _log = logging.getLogger( __name__ )
    hdlr = logging.FileHandler('/tmp/testcase_gbp_aci_intg_leaf_2.log')
    formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
    hdlr.setFormatter(formatter)
    _log.addHandler(hdlr)
    _log.setLevel(logging.INFO)
    _log.setLevel(logging.DEBUG)

    def __init__(self,params):

      self.gbpaci = Gbp_Aci()
      self.heat_stack_name = 'gbpleaf3'
      cntlr_ip = params['cntlr_ip']
      self.heat_temp_test = params['heat_temp_file']
      self.gbpheat = gbpHeat(cntlr_ip)
      self.gbpnova = gbpNova(cntlr_ip)
      self.leaf_ip = params['leaf1_ip']
      self.apic_ip = params['apic_ip']
      self.network_node = params['network_node']
      self.az_comp_node = params['az_comp_node']
      self.nova_agg = params['nova_agg']
      self.nova_az = params['nova_az']
      self.leaf_port_comp_node1 = params['leaf1_port1'] #This connects Leaf1 to Comp-node1
      self.leaf_port_comp_node2 = params['leaf1_port2'] #This connects Leaf1 to Comp-node2
      self.node_id = params['leaf1_node_id']


    def test_runner(self):
        """
        Method to run the Testcase in Ordered Steps
        """
        test_name = 'SETUPCFG_WITH_OFFLINE_BOTH_COMP_NODES'
        self._log.info("\nSteps of the TESTCASE_GBP_INTG_LEAF_3_SETUPCFG_WITH_OFFLINE_BOTH_COMP_NODES to be executed\n")
        testcase_steps = [self.test_step_DisconnectLeaf,
                          self.test_step_SetUpConfig,
                          self.test_step_ReconnectLeaf,
                          self.test_step_VerifyTraffic
                         ]
	status = ''
        for step in testcase_steps:
            if step()!=1:
                  self._log.info("Test Failed at Step == %s" %(step.__name__.lstrip('self')))
                  self._log.info("%s_%s == FAILED" %(self.__class__.__name__.upper(),test_name))        
                  status = 'failed'
                  break
        if status != 'failed':
           self._log.info("%s_%s == PASSED" %(self.__class__.__name__.upper(),test_name))        
        self.test_CleanUp()

    def test_step_SetUpConfig(self):
        """
        Test Step using Heat, setup the Test Config
        """
        self._log.info("\nSetupCfg: Create Aggregate & Availability Zone to be executed\n")
        self.agg_id = self.gbpnova.avail_zone('api','create',self.nova_agg,avail_zone_name=self.nova_az)
        if self.agg_id == 0:
            self._log.info("\n ABORTING THE TESTSUITE RUN,nova host aggregate creation Failed")
            sys.exit(1)
        self._log.info(" Agg %s" %(self.agg_id))
        if self.gbpnova.avail_zone('api','addhost',self.agg_id,hostname=self.az_comp_node) == 0:
            self._log.info("\n ABORTING THE TESTSUITE RUN, availability zone creation Failed")
            self.gbpnova.avail_zone('api','delete',self.nova_agg,avail_zone_name=self.nova_az) # Cleaning up
            sys.exit(1)
        sleep(3)
        if self.gbpheat.cfg_all_cli(1,self.heat_stack_name,heat_temp=self.heat_temp_test) == 0:
           self._log.info("\n ABORTING THE TESTSUITE RUN, HEAT STACK CREATE of %s Failed" %(self.heat_stack_name))
           self.test_CleanUp()
           sys.exit(1)
        print 'Enable SSH .. sleeping for 20 secs'
        create_add_filter(self.apic_ip,'demo_bd') # 'demo_bd' is the name of L2Policy in the Heat Temp
        sleep(20)
        return 1

    def test_step_DisconnectLeaf(self):
        """
        Test Step to Disconnect Leaf Port from two Comp-nodes
        """
        self._log.info("\nStep to Disconnect Leaf Port from Two Comp-nodes= CompNode1 & CompNode2\n")
        for port in [self.leaf_port_comp_node1,self.leaf_port_comp_node2]:
          if self.gbpaci.enable_disable_switch_port(self.apic_ip,self.node_id,'disable',port) == 0:
           return 0
        return 1

    def test_step_ReconnectLeaf(self):
        """
        Test Step to Reconnect Leaf Port to two Comp-nodes
        """
        self._log.info("\nStep to RE-connect Leaf Ports to both Comp-nodes= CompNode1 & CompNode2\n")
        for port in [self.leaf_port_comp_node1,self.leaf_port_comp_node2]:
          if self.gbpaci.enable_disable_switch_port(self.apic_ip,self.node_id,'enable',port) == 0:
           return 0
        sleep(20)  ##For Opflex to re-converge
        return 1

    def test_step_VerifyTraffic(self):
        """
        Send and Verify traffic
        """
        self._log.info("\nSend and Verify Traffic\n")
        return verify_traff(self.network_node)

    def test_CleanUp(self):
        """
        Cleanup the Testcase setup
        """
        self._log.info("\nCleanUp to be executed\n")
        self.gbpnova.avail_zone('api','removehost',self.agg_id,hostname=self.az_comp_node)
        self.gbpnova.avail_zone('api','delete',self.agg_id)
        self.gbpheat.cfg_all_cli(0,self.heat_stack_name)