def test_it_can_update_resource_class_racks_and_flavors(self):
     #get a pecan resource_class:
     pecan_rc = utils.get_test_resource_class(
         name='resource_class_update_racks_flavs', service_type='compute')
     #create racks in database:
     db_rack1 = self.db.create_rack(utils.get_test_rack(name='rack1'))
     db_rack2 = self.db.create_rack(utils.get_test_rack(name='rack2'))
     #add racks to resource class:
     pecan_rc.racks = [
         utils.get_test_resource_class_rack(id=db_rack1.id),
         utils.get_test_resource_class_rack(id=db_rack2.id)
     ]
     #give it a couple of flavors too:
     pecan_rc.flavors = [
         utils.get_test_flavor(name='flav1', value='1'),
         utils.get_test_flavor(name='flav2', value='2')
     ]
     #create rc in db:
     db_rc = self.db.create_resource_class(pecan_rc)
     #update racks and flavors:
     pecan_rc.flavors = [
         utils.get_test_flavor(name='flav3', value='3'),
         utils.get_test_flavor(name='flav4', value='4')
     ]
     db_rack3 = self.db.create_rack(utils.get_test_rack(name='rack3'))
     db_rack4 = self.db.create_rack(utils.get_test_rack(name='rack4'))
     pecan_rc.racks = [
         utils.get_test_resource_class_rack(id=db_rack3.id),
         utils.get_test_resource_class_rack(id=db_rack4.id)
     ]
     #update the resource class:
     updated_db_rc = self.db.update_resource_class(db_rc.id, pecan_rc)
     #check:
     #FIXME: THERE IS A BUG IN UPDATE RESOURCECLASS - it doesn't remove
     #the old racks in update operation - adding all ids here so test passes
     self.__check_resource_class(
         updated_db_rc,
         'resource_class_update_racks_flavs',
         'compute',
         flavor_names=['flav3', 'flav4'],
         flavor_values=['3', '4'],
         rack_ids=[db_rack1.id, db_rack2.id, db_rack3.id, db_rack4.id])
     #FIXME: i.e. remove db_rack1.id and db_rack2.id above
     #as they shouldn't be there
     #delete:
     self.db.delete_resource_class(updated_db_rc.id)
     for rack in [db_rack1, db_rack2, db_rack3, db_rack4]:
         self.db.delete_rack(rack.id)
Beispiel #2
0
 def test_it_can_create_a_rack_with_nodes(self):
     #define pecan rack with nodes
     pecan_rack = utils.get_test_rack(name='rack_with_nodes', nodes=True)
     #create:
     db_rack = self.db.create_rack(pecan_rack)
     self.__check_racks([db_rack], ['rack_with_nodes'])
     #cleanup
     self.db.delete_rack(db_rack.id)
Beispiel #3
0
 def test_it_can_create_a_rack_without_nodes(self):
     #get rack without nodes:
     pecan_rack = utils.get_test_rack(name='rack_without_nodes')
     #create it:
     db_rack = self.db.create_rack(pecan_rack)
     self.__check_racks([db_rack], ['rack_without_nodes'])
     #cleanup
     self.db.delete_rack(db_rack.id)
Beispiel #4
0
 def setUp(self):
     super(TestDbRacks, self).setUp()
     #need two resource classes - one for each rack:
     pecan_rc1 = utils.get_test_resource_class(name='rc1', type='compute')
     pecan_rc2 = utils.get_test_resource_class(name='rc2', type='control')
     #create the rc in the db
     self.db_rc1 = self.db.create_resource_class(pecan_rc1)
     self.db_rc2 = self.db.create_resource_class(pecan_rc2)
     #define 2 pecan racks, one without nodes:
     pecan_rack1 = utils.get_test_rack(name='rack_no_nodes',
                                       resource_class=True,
                                       rc_id=self.db_rc1.id)
     pecan_rack2 = utils.get_test_rack(name='rack_has_nodes',
                                       nodes=True,
                                       resource_class=True,
                                       rc_id=self.db_rc2.id)
     #create them in db
     self.rack1 = self.db.create_rack(pecan_rack1)
     self.rack2 = self.db.create_rack(pecan_rack2)
 def test_it_can_update_resource_class_racks_and_flavors(self):
     #get a pecan resource_class:
     pecan_rc = utils.get_test_resource_class(
         name='resource_class_update_racks_flavs',
         service_type='compute')
     #create racks in database:
     db_rack1 = self.db.create_rack(utils.get_test_rack(name='rack1'))
     db_rack2 = self.db.create_rack(utils.get_test_rack(name='rack2'))
     #add racks to resource class:
     pecan_rc.racks = [utils.get_test_resource_class_rack(id=db_rack1.id),
                       utils.get_test_resource_class_rack(id=db_rack2.id)]
     #give it a couple of flavors too:
     pecan_rc.flavors = [utils.get_test_flavor(name='flav1', value='1'),
                         utils.get_test_flavor(name='flav2', value='2')]
     #create rc in db:
     db_rc = self.db.create_resource_class(pecan_rc)
     #update racks and flavors:
     pecan_rc.flavors = [utils.get_test_flavor(name='flav3', value='3'),
                         utils.get_test_flavor(name='flav4', value='4')]
     db_rack3 = self.db.create_rack(utils.get_test_rack(name='rack3'))
     db_rack4 = self.db.create_rack(utils.get_test_rack(name='rack4'))
     pecan_rc.racks = [utils.get_test_resource_class_rack(id=db_rack3.id),
                       utils.get_test_resource_class_rack(id=db_rack4.id)]
     #update the resource class:
     updated_db_rc = self.db.update_resource_class(db_rc.id, pecan_rc)
     #check:
     #FIXME: THERE IS A BUG IN UPDATE RESOURCECLASS - it doesn't remove
     #the old racks in update operation - adding all ids here so test passes
     self.__check_resource_class(updated_db_rc,
                                 'resource_class_update_racks_flavs',
                                 'compute',
                                 flavor_names=['flav3', 'flav4'],
                                 flavor_values=['3', '4'],
                                 rack_ids=[db_rack1.id, db_rack2.id,
                                           db_rack3.id, db_rack4.id])
     #FIXME: i.e. remove db_rack1.id and db_rack2.id above
     #as they shouldn't be there
     #delete:
     self.db.delete_resource_class(updated_db_rc.id)
     for rack in [db_rack1, db_rack2, db_rack3, db_rack4]:
         self.db.delete_rack(rack.id)
 def test_it_can_create_and_delete_resource_class_with_racks(self):
     #get a pecan resource_class:
     pecan_rc = utils.get_test_resource_class(
         name='resource_class_with_racks',
         service_type='compute')
     #first create racks in database (ids 1 and 2):
     db_rack1 = self.db.create_rack(utils.get_test_rack(name='rack1'))
     db_rack2 = self.db.create_rack(utils.get_test_rack(name='rack2'))
     #add racks to resource class:
     pecan_rc.racks = [utils.get_test_resource_class_rack(id=db_rack1.id),
                       utils.get_test_resource_class_rack(id=db_rack2.id)]
     #create rc with racks in db:
     db_rc = self.db.create_resource_class(pecan_rc)
     #check it:
     self.__check_resource_class(db_rc,
                                 'resource_class_with_racks',
                                 'compute',
                                 rack_ids=[db_rack1.id, db_rack2.id])
     #delete:
     self.db.delete_resource_class(db_rc.id)
     self.db.delete_rack(db_rack1.id)
     self.db.delete_rack(db_rack2.id)
 def test_it_can_create_and_delete_resource_class_with_racks(self):
     #get a pecan resource_class:
     pecan_rc = utils.get_test_resource_class(
         name='resource_class_with_racks', service_type='compute')
     #first create racks in database (ids 1 and 2):
     db_rack1 = self.db.create_rack(utils.get_test_rack(name='rack1'))
     db_rack2 = self.db.create_rack(utils.get_test_rack(name='rack2'))
     #add racks to resource class:
     pecan_rc.racks = [
         utils.get_test_resource_class_rack(id=db_rack1.id),
         utils.get_test_resource_class_rack(id=db_rack2.id)
     ]
     #create rc with racks in db:
     db_rc = self.db.create_resource_class(pecan_rc)
     #check it:
     self.__check_resource_class(db_rc,
                                 'resource_class_with_racks',
                                 'compute',
                                 rack_ids=[db_rack1.id, db_rack2.id])
     #delete:
     self.db.delete_resource_class(db_rc.id)
     self.db.delete_rack(db_rack1.id)
     self.db.delete_rack(db_rack2.id)
Beispiel #8
0
 def test_it_can_update_rack_nodes(self):
     #define a pecan rack with nodes:
     pecan_rack = utils.get_test_rack(name='rack_1', nodes=True)
     #create in db
     db_rack = self.db.create_rack(pecan_rack)
     #update nodes:
     pecan_rack.nodes = []
     for i in range(1, 11):
         pecan_rack.nodes.append(utils.get_test_rack_node(id=str(i)))
     db_rack = self.db.update_rack(db_rack.id, pecan_rack)
     self.__check_racks([db_rack], ['rack_1'])
     self.assertTrue(len(db_rack.nodes) == 10)
     #cleanup
     self.db.delete_rack(db_rack.id)
Beispiel #9
0
 def test_it_can_update_rack_basic_attributes(self):
     #define a pecan rack:
     pecan_rack = utils.get_test_rack(name='a_rack',
                                      slots=1,
                                      subnet='192.168.0.0/16')
     #create in db:
     db_rack = self.db.create_rack(pecan_rack)
     #now update it
     pecan_rack.name = 'b_rack'
     pecan_rack.slots = 2
     pecan_rack.subnet = '10.0.0.0/24'
     db_rack = self.db.update_rack(db_rack.id, pecan_rack)
     self.__check_racks([db_rack], ['b_rack'])
     self.assertTrue(db_rack.slots == 2)
     self.assertTrue(db_rack.subnet == '10.0.0.0/24')
     #cleanup
     self.db.delete_rack(db_rack.id)