def __init__(self):
     """constructor"""
     self.logger = logging.getLogger(__name__)
     OpenStackMap.load_filters = False
     osmap = OpenStackMap(objects_strategy=OpenStackMap.NO_CACHE_OBJECTS,
                          auto_load=False)
     osmap.load_keystone()
     osmap.load_neutron()
     self.map = osmap
     self.neutron = self.map.osclients.get_neutronclient()
 def __init__(self):
     """constructor"""
     self.logger = logging.getLogger(__name__)
     OpenStackMap.load_filters = False
     osmap = OpenStackMap(objects_strategy=OpenStackMap.NO_CACHE_OBJECTS,
                          auto_load=False)
     osmap.load_keystone()
     osmap.load_neutron()
     self.map = osmap
     self.neutron = self.map.osclients.get_neutronclient()
Exemple #3
0
class TestOpenstackMapCacheOnly(TestCase):
    keystone_objects = [
        'users', 'users_by_name', 'tenants', 'tenants_by_name', 'roles_a',
        'filters', 'filters_by_project', 'roles', 'roles_by_user',
        'roles_by_project'
    ]

    def setUp(self):
        """Create fake pickle objects to be used as cache"""
        self.tmpdir = tempfile.mkdtemp()
        os.mkdir(self.tmpdir + os.path.sep + 'keystone')
        os.mkdir(self.tmpdir + os.path.sep + 'region1')
        os.mkdir(self.tmpdir + os.path.sep + 'region2')
        sample_dict = {id: 'value1'}
        for resource in self.keystone_objects:
            with open(self.tmpdir + '/keystone/' + resource + '.pickle',
                      'wb') as f:
                pickle.dump(sample_dict, f, protocol=-1)

        for resource in OpenStackMap.resources_region:
            with open(self.tmpdir + '/region1/' + resource + '.pickle',
                      'wb') as f:
                pickle.dump(sample_dict, f, protocol=-1)

        with open(self.tmpdir + '/region2/vms.pickle', 'wb') as f:
            pickle.dump(sample_dict, f, protocol=-1)

        self.map = OpenStackMap(
            self.tmpdir,
            region='region1',
            auto_load=False,
            objects_strategy=OpenStackMap.USE_CACHE_OBJECTS_ONLY)

    def tearDown(self):
        for dir in os.listdir(self.tmpdir):
            for name in os.listdir(self.tmpdir + os.path.sep + dir):
                print self.tmpdir + os.path.sep + dir + os.path.sep + name
                os.unlink(self.tmpdir + os.path.sep + dir + os.path.sep + name)
        os.rmdir(self.tmpdir + '/keystone')
        os.rmdir(self.tmpdir + '/region1')
        os.rmdir(self.tmpdir + '/region2')
        os.rmdir(self.tmpdir)

    def test_load_all(self):
        """test the load_all method"""
        self.map.load_all()
        for resource in OpenStackMap.resources_region:
            data = getattr(self.map, resource)
            self.assertTrue(data)

        for resource in self.keystone_objects:
            data = getattr(self.map, resource)
            self.assertTrue(data)

    def test_load_nova_region2(self):
        """test the load_nova in region2"""
        self.map.change_region('region2', False)
        self.map.load_nova()
        self.assertTrue(self.map.vms)

    def test_load_all_region2(self):
        """test the load_all in region2 (is invoked by change_region)"""
        self.map.change_region('region2')
        self.assertTrue(self.map.vms)
        # region2 has vms, but not other resources as networks
        self.assertFalse(self.map.networks)

    def test_load_neutron_region2_failed(self):
        """test the load_neutron in region2: it must fail"""
        self.map.change_region('region2', False)
        with self.assertRaises(Exception):
            self.map.load_neutron()

    def test_preload_regions(self):
        """test the preload_regions method"""
        self.map.preload_regions()
        self.assertEquals(len(self.map.region_map), 2)
        self.assertTrue(self.map.region_map['region2']['vms'])
class TestOpenstackMapCacheOnly(TestCase):
    keystone_objects = ['users', 'users_by_name', 'tenants', 'tenants_by_name', 'roles_a',
                        'filters', 'filters_by_project', 'roles', 'roles_by_user', 'roles_by_project']

    def setUp(self):
        """Create fake pickle objects to be used as cache"""
        self.tmpdir = tempfile.mkdtemp()
        os.mkdir(self.tmpdir + os.path.sep + 'keystone')
        os.mkdir(self.tmpdir + os.path.sep + 'region1')
        os.mkdir(self.tmpdir + os.path.sep + 'region2')
        sample_dict = {id: 'value1'}
        for resource in self.keystone_objects:
            with open(self.tmpdir + '/keystone/' + resource + '.pickle', 'wb') as f:
                pickle.dump(sample_dict, f, protocol=-1)

        for resource in OpenStackMap.resources_region:
            with open(self.tmpdir + '/region1/' + resource + '.pickle', 'wb') as f:
                pickle.dump(sample_dict, f, protocol=-1)

        with open(self.tmpdir + '/region2/vms.pickle', 'wb') as f:
            pickle.dump(sample_dict, f, protocol=-1)

        self.map = OpenStackMap(
            self.tmpdir, region='region1', auto_load=False, objects_strategy=OpenStackMap.USE_CACHE_OBJECTS_ONLY)

    def tearDown(self):
        for dir in os.listdir(self.tmpdir):
            for name in os.listdir(self.tmpdir + os.path.sep + dir):
                print self.tmpdir + os.path.sep + dir + os.path.sep + name
                os.unlink(self.tmpdir + os.path.sep + dir + os.path.sep + name)
        os.rmdir(self.tmpdir + '/keystone')
        os.rmdir(self.tmpdir + '/region1')
        os.rmdir(self.tmpdir + '/region2')
        os.rmdir(self.tmpdir)

    def test_load_all(self):
        """test the load_all method"""
        self.map.load_all()
        for resource in OpenStackMap.resources_region:
            data = getattr(self.map, resource)
            self.assertTrue(data)

        for resource in self.keystone_objects:
            data = getattr(self.map, resource)
            self.assertTrue(data)

    def test_load_nova_region2(self):
        """test the load_nova in region2"""
        self.map.change_region('region2', False)
        self.map.load_nova()
        self.assertTrue(self.map.vms)

    def test_load_all_region2(self):
        """test the load_all in region2 (is invoked by change_region)"""
        self.map.change_region('region2')
        self.assertTrue(self.map.vms)
        # region2 has vms, but not other resources as networks
        self.assertFalse(self.map.networks)

    def test_load_neutron_region2_failed(self):
        """test the load_neutron in region2: it must fail"""
        self.map.change_region('region2', False)
        with self.assertRaises(Exception):
            self.map.load_neutron()

    def test_preload_regions(self):
        """test the preload_regions method"""
        self.map.preload_regions()
        self.assertEquals(len(self.map.region_map), 2)
        self.assertTrue(self.map.region_map['region2']['vms'])