Exemple #1
0
 def test_search_vrf(self):
     """ We should be able to execute search_vrf as read-only user
     """
     v = VRF.search({ 'val1': 'id',
         'operator': 'equals',
         'val2': 0 })
     self.assertEqual(v['result'][0].id, 0)
Exemple #2
0
    def find_vrf(self, property, value):
        """
        Find an exact match for a VRF based on property such as rt "209:123", description
        :param property:
        :param value:
        :return: a VRF instance
        """

        retVal = None
        try:
            retVal = VRF.search({'val1': property, 'operator': 'equals', 'val2': value})['result'][0]
        except (KeyError, IndexError):
            retVal = None
        return retVal
Exemple #3
0
    def get_current_vrfs(self):
        """ Return VRF filter list from session variable

            Before returning list, make a search for all VRFs currently in the
            list to verify that they still exist.
        """

        # Verify that all currently selected VRFs still exists
        cur_vrfs = session.get('current_vrfs', {}).items()
        if len(cur_vrfs) > 0:
            q = {
                'operator': 'equals',
                'val1': 'id',
                'val2': cur_vrfs[0][0]
            }

            if len(cur_vrfs) > 1:
                for vrf_id, vrf in cur_vrfs[1:]:
                    q = {
                        'operator': 'or',
                        'val1': q,
                        'val2': {
                            'operator': 'equals',
                            'val1': 'id',
                            'val2': vrf_id
                        }
                    }

            res = VRF.search(q)

            session['current_vrfs'] = {}
            for vrf in res['result']:
                session['current_vrfs'][vrf.id] = { 'id': vrf.id, 'rt': vrf.rt,
                    'name': vrf.name, 'description': vrf.description }

            session.save()

        return json.dumps(session.get('current_vrfs', {}))
Exemple #4
0
    def get_current_vrfs(self):
        """ Return VRF filter list from session variable

            Before returning list, make a search for all VRFs currently in the
            list to verify that they still exist.
        """

        # Verify that all currently selected VRFs still exists
        cur_vrfs = session.get('current_vrfs', {}).items()
        if len(cur_vrfs) > 0:
            q = {'operator': 'equals', 'val1': 'id', 'val2': cur_vrfs[0][0]}

            if len(cur_vrfs) > 1:
                for vrf_id, vrf in cur_vrfs[1:]:
                    q = {
                        'operator': 'or',
                        'val1': q,
                        'val2': {
                            'operator': 'equals',
                            'val1': 'id',
                            'val2': vrf_id
                        }
                    }

            res = VRF.search(q)

            session['current_vrfs'] = {}
            for vrf in res['result']:
                session['current_vrfs'][vrf.id] = {
                    'id': vrf.id,
                    'rt': vrf.rt,
                    'name': vrf.name,
                    'description': vrf.description
                }

            session.save()

        return json.dumps(session.get('current_vrfs', {}))