Example #1
0
 def test_children_concrete_classes(self):
     """
     Test ConcreteTunnel _get_children_concrete_classes returns something list-like
     """
     node_id = '103'
     node = Node(node_id)
     concreteOverlay = ConcreteOverlay(node)
     concreteTunnel = ConcreteTunnel(concreteOverlay)
     self.assertTrue(
         isinstance(
             concreteTunnel._get_children_concrete_classes(),
             list))
     self.assertTrue(
         len(concreteTunnel._get_children_concrete_classes()) == 0)
Example #2
0
 def test_get_name_from_dn(self):
     """
     Test that ConcreteTunnel._get_name_from_dn returns the name
     derived from the dn provided
     """
     dn = 'topology/pod-1/node-201/sys/tunnel-[tunnel1]'
     self.assertEquals(ConcreteTunnel._get_name_from_dn(dn), '[tunnel1]')
Example #3
0
    def build_switch(self, switch_id=None):
        """
        Will build the pivot table data structure for a switch
        :param switch_id:
        """
        result = {}
        switch = self.switches[switch_id]
        switch.populate_children(deep=True, include_concrete=True)
        result['basic'] = switch.get_table([switch])

        children_modules = switch.get_children(ACI.Linecard)
        if children_modules:
            tables = children_modules[0].get_table(children_modules)
        else:
            tables = []
        result['linecard'] = tables

        children_modules = switch.get_children(ACI.Supervisorcard)
        if children_modules:
            tables = children_modules[0].get_table(children_modules)
        else:
            tables = []
        result['supervisorcard'] = tables

        children_modules = switch.get_children(ACI.Fantray)
        if children_modules:
            tables = children_modules[0].get_table(children_modules)
        else:
            tables = []
        result['fantray'] = tables

        children_modules = switch.get_children(ACI.Powersupply)
        if children_modules:
            tables = children_modules[0].get_table(children_modules)
        else:
            tables = []
        result['powersupply'] = tables

        children_modules = switch.get_children(ACI.ConcreteArp)
        if children_modules:
            tables = children_modules[0].get_table(children_modules)
        else:
            tables = []
        result['arp'] = tables

        result['endpoint'] = self.load_table(switch, ACI.ConcreteEp)
        result['context'] = self.load_table(switch, ACI.ConcreteContext)
        result['bridgedomain'] = self.load_table(switch, ACI.ConcreteBD)
        result['svi'] = self.load_table(switch, ACI.ConcreteSVI)
        result['accessrule'] = self.load_table(switch, ACI.ConcreteAccCtrlRule)
        result['accessrule'].extend(self.load_table(switch, ACI.ConcreteFilter))
        result['portchannel'] = self.load_table(switch, ACI.ConcretePortChannel)
        result['portchannel'].extend(self.load_table(switch, ACI.ConcreteVpc))
        overlays = switch.get_children(ACI.ConcreteOverlay)
        if overlays:
            result['overlay'] = ACI.ConcreteOverlay.get_table(overlays)
            tunnels = overlays[0].get_children(ConcreteTunnel)
            result['overlay'].extend(ConcreteTunnel.get_table(tunnels))

        return result
Example #4
0
 def test_get_table(self):
     """
     Test ConcreteTunnel create table function
     """
     node_id = '103'
     node = Node(node_id)
     concreteOverlay = ConcreteOverlay(node)
     concreteTunnel1 = ConcreteTunnel(concreteOverlay)
     node_id = '103'
     node = Node(node_id)
     concreteOverlay = ConcreteOverlay(node)
     concreteTunnel2 = ConcreteTunnel(concreteOverlay)
     concreteTunnels = [concreteTunnel1, concreteTunnel2]
     self.assertTrue(
         isinstance(
             ConcreteTunnel.get_table(concreteTunnels)[0],
             Table))
Example #5
0
 def test_get_parent_class(self):
     """
     Ensure class has the correct parent class
     """
     self.assertEquals(ConcreteTunnel._get_parent_class(), ConcreteOverlay)
Example #6
0
    def build_switch(self, switch_id=None):
        """
        Will build the pivot table data structure for a switch
        :param switch_id:
        """
        result = {}
        switch = self.switches[switch_id]
        switch.populate_children(deep=True, include_concrete=True)
        result['basic'] = switch.get_table([switch])

        children_modules = switch.get_children(ACI.Linecard)
        if children_modules:
            tables = children_modules[0].get_table(children_modules)
        else:
            tables = []
        result['linecard'] = tables

        children_modules = switch.get_children(ACI.Supervisorcard)
        if children_modules:
            tables = children_modules[0].get_table(children_modules)
        else:
            tables = []
        result['supervisorcard'] = tables

        children_modules = switch.get_children(ACI.Fantray)
        if children_modules:
            tables = children_modules[0].get_table(children_modules)
        else:
            tables = []
        result['fantray'] = tables

        children_modules = switch.get_children(ACI.Powersupply)
        if children_modules:
            tables = children_modules[0].get_table(children_modules)
        else:
            tables = []
        result['powersupply'] = tables

        children_modules = switch.get_children(ACI.ConcreteArp)
        if children_modules:
            tables = children_modules[0].get_table(children_modules)
        else:
            tables = []
        result['arp'] = tables

        result['endpoint'] = self.load_table(switch, ACI.ConcreteEp)
        result['context'] = self.load_table(switch, ACI.ConcreteContext)
        result['bridgedomain'] = self.load_table(switch, ACI.ConcreteBD)
        result['svi'] = self.load_table(switch, ACI.ConcreteSVI)
        result['accessrule'] = self.load_table(switch, ACI.ConcreteAccCtrlRule)
        result['accessrule'].extend(self.load_table(switch,
                                                    ACI.ConcreteFilter))
        result['portchannel'] = self.load_table(switch,
                                                ACI.ConcretePortChannel)
        result['portchannel'].extend(self.load_table(switch, ACI.ConcreteVpc))
        overlays = switch.get_children(ACI.ConcreteOverlay)
        if overlays:
            result['overlay'] = ACI.ConcreteOverlay.get_table(overlays)
            tunnels = overlays[0].get_children(ConcreteTunnel)
            result['overlay'].extend(ConcreteTunnel.get_table(tunnels))

        return result