/*
* Copyright (c) 2008-2013 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.db.server.upgrade.impl.callback;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.emc.storageos.db.client.URIUtil;
import com.emc.storageos.db.client.model.FileShare;
import com.emc.storageos.db.server.upgrade.DbMigrationTest;
import com.emc.storageos.db.server.upgrade.util.DbSchemaChanger;
/**
* Prepare data for adding new fields test
*/
public class DbTestInternalFlags extends DbMigrationTest {
private static final Logger log = LoggerFactory.getLogger(DbTestInternalFlags.class);
@Override
public String getSourceSchemaVersion() {
return "2.2";
}
@Override
public String getTargetSchemaVersion() {
return "2.5";
}
@Override
public void changeSourceSchema() throws Exception {
removeInternalFlags();
}
private void removeInternalFlags() throws Exception {
// Remove 'DataObject.internalFlags' which is added in version 1.1
changer = new DbSchemaChanger("com.emc.storageos.db.client.model.DataObject");
changer.verifyBeanPropertyExist("_internalFlags");
changer.beginChange()
.removeBeanProperty("_internalFlags")
.endChange();
}
@Override
protected void verifySourceSchema() throws Exception {
DbSchemaChanger changer2 = new DbSchemaChanger("com.emc.storageos.db.client.model.DataObject");
changer2.verifyBeanPropertyNotExist("_internalFlags");
}
@Override
public void changeTargetSchema() throws Exception {
changer.restoreClass();
}
@Override
protected void verifyTargetSchema() throws Exception {
DbSchemaChanger changer3 = new DbSchemaChanger("com.emc.storageos.db.client.model.DataObject");
changer3.verifyBeanPropertyExist("_internalFlags");
}
@Override
public void prepareData() throws Exception {
createFileShare();
}
private void createFileShare() {
// prepare FileShare objects for migration
FileShare fs = new FileShare();
fs.setId(URIUtil.createId(FileShare.class));
fs.setLabel("fileshare test");
dbClient.createObject(fs);
}
@Override
protected void verifyPreparedData() throws Exception {
}
@Override
protected void verifyResults() throws Exception {
}
}