class TestCopyImage(TestCase): """ Creating a flatten copy of an image """ @trace def setUp(self): self.db = Database() self.db.project.insert(PROJECT) self.good_bmi = BMI(CORRECT_HIL_USERNAME, CORRECT_HIL_PASSWORD, PROJECT) self.good_bmi.import_ceph_image(EXIST_IMG_NAME) def runTest(self): response = self.good_bmi.copy_image(EXIST_IMG_NAME, PROJECT, IMG2) self.assertEqual(response[constants.STATUS_CODE_KEY], 200) images = self.db.image.fetch_images_from_project(PROJECT) exists_image = False for image in images: if IMG2 == image: exists_image = True break self.assertTrue(exists_image) with ceph.RBD(_cfg.fs, _cfg.iscsi.password) as fs: img_id = self.good_bmi.get_ceph_image_name_from_project( IMG2, PROJECT) fs.get_image(img_id) def tearDown(self): self.good_bmi.remove_image(IMG2) self.good_bmi.remove_image(EXIST_IMG_NAME) self.db.project.delete_with_name(PROJECT) self.db.close() self.good_bmi.shutdown()
class TestCreateSnapshot(TestCase): """ Calls provision like TestProvision then creates a snapshot using rest call """ @trace def setUp(self): self.db = Database() self.db.project.insert(PROJECT) self.good_bmi = BMI(CORRECT_HIL_USERNAME, CORRECT_HIL_PASSWORD, PROJECT) self.good_bmi.import_ceph_image(EXIST_IMG_NAME) self.good_bmi.create_disk(NEW_DISK, EXIST_IMG_NAME) time.sleep(constants.HIL_CALL_TIMEOUT) def runTest(self): data = { constants.PROJECT_PARAMETER: PROJECT, constants.DISK_NAME_PARAMETER: NEW_DISK, constants.SNAP_NAME_PARAMETER: NEW_SNAP_NAME } res = requests.put(PICASSO_URL + "create_snapshot/", data=data, auth=(CORRECT_HIL_USERNAME, CORRECT_HIL_PASSWORD)) self.assertEqual(res.status_code, 200) snaps = self.db.image.fetch_snapshots_from_project(PROJECT) has_image = False for snapshot in snaps: if NEW_SNAP_NAME == snapshot[0]: has_image = True self.assertTrue(has_image) with ceph.RBD(_cfg.fs, _cfg.iscsi.password) as fs: img_id = self.good_bmi.get_ceph_image_name_from_project( NEW_SNAP_NAME, PROJECT) fs.get_image(img_id) def tearDown(self): self.good_bmi.delete_disk(NEW_DISK) self.good_bmi.remove_image(NEW_SNAP_NAME) self.good_bmi.remove_image(EXIST_IMG_NAME) self.db.project.delete_with_name(PROJECT) self.db.close() self.good_bmi.shutdown() time.sleep(constants.HIL_CALL_TIMEOUT)
class TestCreateSnapshot(TestCase): """ Provisions an imported image and creates snapshot """ @trace def setUp(self): self.db = Database() self.db.project.insert(PROJECT, NETWORK) self.good_bmi = BMI(CORRECT_HIL_USERNAME, CORRECT_HIL_PASSWORD, PROJECT) self.good_bmi.import_ceph_image(EXIST_IMG_NAME) self.good_bmi.provision(NODE_NAME, EXIST_IMG_NAME, NETWORK, NIC) time.sleep(constants.HIL_CALL_TIMEOUT) def runTest(self): response = self.good_bmi.create_snapshot(NODE_NAME, NEW_SNAP_NAME) self.assertEqual(response[constants.STATUS_CODE_KEY], 200) snaps = self.db.image.fetch_snapshots_from_project(PROJECT) has_image = False for snapshot in snaps: if NEW_SNAP_NAME == snapshot[0]: has_image = True self.assertTrue(has_image) with ceph.RBD(_cfg.fs, _cfg.iscsi.password) as fs: img_id = self.good_bmi.get_ceph_image_name_from_project( NEW_SNAP_NAME, PROJECT) fs.get_image(img_id) def tearDown(self): self.good_bmi.deprovision(NODE_NAME, NETWORK, NIC) self.good_bmi.remove_image(NEW_SNAP_NAME) self.good_bmi.remove_image(EXIST_IMG_NAME) self.db.project.delete_with_name(PROJECT) self.db.close() self.good_bmi.shutdown() time.sleep(constants.HIL_CALL_TIMEOUT)
class TestCreateSnapshot(TestCase): @trace def setUp(self): self.db = Database() self.db.project.insert(PROJECT, NETWORK) self.good_bmi = BMI(CORRECT_HAAS_USERNAME, CORRECT_HAAS_PASSWORD, PROJECT) self.good_bmi.import_ceph_image(EXIST_IMG_NAME) self.good_bmi.provision(NODE_NAME, EXIST_IMG_NAME, NETWORK,NIC) time.sleep(constants.HAAS_CALL_TIMEOUT) def test_run(self): data = {constants.PROJECT_PARAMETER: PROJECT, constants.NODE_NAME_PARAMETER: NODE_NAME, constants.SNAP_NAME_PARAMETER: NEW_SNAP_NAME} res = requests.put(url + "create_snapshot/", data=data, auth=(CORRECT_HAAS_USERNAME, CORRECT_HAAS_PASSWORD)) self.assertEqual(res.status_code, 200) snaps = self.db.image.fetch_snapshots_from_project(PROJECT) has_image = False for snapshot in snaps: if NEW_SNAP_NAME == snapshot[0]: has_image = True self.assertTrue(has_image) with ceph.RBD(_cfg.fs[constants.CEPH_CONFIG_SECTION_NAME],_cfg.iscsi_update_password) as fs: img_id = self.good_bmi.get_ceph_image_name_from_project( NEW_SNAP_NAME, PROJECT) fs.get_image(img_id) def tearDown(self): self.good_bmi.deprovision(NODE_NAME, NETWORK, NIC) self.good_bmi.remove_image(NEW_SNAP_NAME) self.good_bmi.remove_image(EXIST_IMG_NAME) self.db.project.delete_with_name(PROJECT) self.db.close() self.good_bmi.shutdown() time.sleep(constants.HAAS_CALL_TIMEOUT)