def test_create_group_from_src_snap(self, mock_validate): self.mock_object(volume_api.API, "create", v3_fakes.fake_volume_create) group = utils.create_group(self.ctxt, group_type_id=fake.GROUP_TYPE_ID, volume_type_ids=[fake.VOLUME_TYPE_ID]) volume = utils.create_volume(self.ctxt, group_id=group.id, volume_type_id=fake.VOLUME_TYPE_ID) group_snapshot = utils.create_group_snapshot( self.ctxt, group_id=group.id, group_type_id=group.group_type_id) snapshot = utils.create_snapshot( self.ctxt, volume.id, group_snapshot_id=group_snapshot.id, status=fields.SnapshotStatus.AVAILABLE, volume_type_id=volume.volume_type_id) test_grp_name = 'test grp' body = { "create-from-src": { "name": test_grp_name, "description": "Group 1", "group_snapshot_id": group_snapshot.id } } req = fakes.HTTPRequest.blank('/v3/%s/groups/action' % fake.PROJECT_ID, version=GROUP_FROM_SRC_MICRO_VERSION) res_dict = self.controller.create_from_src(req, body) self.assertIn('id', res_dict['group']) self.assertEqual(test_grp_name, res_dict['group']['name']) self.assertTrue(mock_validate.called) grp_ref = objects.Group.get_by_id(self.ctxt.elevated(), res_dict['group']['id']) grp_ref.destroy() snapshot.destroy() volume.destroy() group.destroy() group_snapshot.destroy()
def test_create_group_from_src_snap(self, mock_validate): self.mock_object(volume_api.API, "create", v3_fakes.fake_volume_create) group = utils.create_group(self.ctxt, group_type_id=fake.GROUP_TYPE_ID, volume_type_ids=[fake.VOLUME_TYPE_ID]) volume = utils.create_volume( self.ctxt, group_id=group.id, volume_type_id=fake.VOLUME_TYPE_ID) group_snapshot = utils.create_group_snapshot( self.ctxt, group_id=group.id, group_type_id=group.group_type_id) snapshot = utils.create_snapshot( self.ctxt, volume.id, group_snapshot_id=group_snapshot.id, status=fields.SnapshotStatus.AVAILABLE, volume_type_id=volume.volume_type_id) test_grp_name = 'test grp' body = {"create-from-src": {"name": test_grp_name, "description": "Group 1", "group_snapshot_id": group_snapshot.id}} req = fakes.HTTPRequest.blank('/v3/%s/groups/action' % fake.PROJECT_ID, version=GROUP_FROM_SRC_MICRO_VERSION) res_dict = self.controller.create_from_src(req, body) self.assertIn('id', res_dict['group']) self.assertEqual(test_grp_name, res_dict['group']['name']) self.assertTrue(mock_validate.called) grp_ref = objects.Group.get_by_id( self.ctxt.elevated(), res_dict['group']['id']) grp_ref.destroy() snapshot.destroy() volume.destroy() group.destroy() group_snapshot.destroy()