Skip to content

Commit

Permalink
Upgrade: Make VMware and SAN class imports dynamic
Browse files Browse the repository at this point in the history
This prevents upgrades from 2.0 to 3.1 from failing due
to missing plugins.  Note that 3.0 to 3.1 upgrade still
require the VMware and SAN plugins at this time.
  • Loading branch information
a13m committed Jun 13, 2012
1 parent 301bc89 commit 1e8af71
Showing 1 changed file with 17 additions and 26 deletions.
43 changes: 17 additions & 26 deletions clc/modules/core/conf/upgrade/upgrade_30_31.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -142,18 +142,6 @@ import com.eucalyptus.images.KernelImageInfo;
import com.eucalyptus.images.MachineImageInfo;
import com.eucalyptus.images.RamdiskImageInfo;

//VMware
import com.eucalyptus.cloud.ws.BrokerGroupInfo;
import com.eucalyptus.cloud.ws.BrokerVolumeInfo;
import com.eucalyptus.broker.vmware.VMwareBrokerInfo;
import com.eucalyptus.broker.vmware.VMwareBrokerConfiguration;

// SAN
import edu.ucsb.eucalyptus.cloud.entities.SANInfo;
import edu.ucsb.eucalyptus.cloud.entities.DASInfo;
import edu.ucsb.eucalyptus.cloud.entities.IgroupInfo;
import edu.ucsb.eucalyptus.cloud.entities.SANVolumeInfo;
import edu.ucsb.eucalyptus.cloud.entities.NetappInfo;
import com.eucalyptus.util.BlockStorageUtil;

class upgrade_30_31 extends AbstractUpgradeScript {
Expand Down Expand Up @@ -192,6 +180,18 @@ class upgrade_30_31 extends AbstractUpgradeScript {
public void upgrade(File oldEucaHome, File newEucaHome) {
buildConnectionMap();

// VMware
entities.add(Class.forName("com.eucalyptus.cloud.ws.BrokerVolumeInfo"));
entities.add(Class.forName("com.eucalyptus.cloud.ws.BrokerGroupInfo"));
entities.add(Class.forName("com.eucalyptus.broker.vmware.VMwareBrokerInfo"));

// SAN
entities.add(Class.forName("edu.ucsb.eucalyptus.cloud.entities.SANInfo"));
entities.add(Class.forName("edu.ucsb.eucalyptus.cloud.entities.DASInfo"));
entities.add(Class.forName("edu.ucsb.eucalyptus.cloud.entities.IgroupInfo"));
entities.add(Class.forName("edu.ucsb.eucalyptus.cloud.entities.SANVolumeInfo"));
entities.add(Class.forName("edu.ucsb.eucalyptus.cloud.entities.NetappInfo"));

// Do object upgrades which follow the entity map / setter map pattern
buildEntityMap();

Expand Down Expand Up @@ -705,10 +705,12 @@ class upgrade_30_31 extends AbstractUpgradeScript {
private void upgradeSANVolumeInfo() {
def conn = connMap['eucalyptus_storage'];
def sviSetterMap = buildSetterMap(conn, "EquallogicVolumeInfo");
EntityWrapper<SANVolumeInfo> db = EntityWrapper.get(SANVolumeInfo.class);
def sviClass = Class.forName("edu.ucsb.eucalyptus.cloud.entities.SANVolumeInfo");
EntityWrapper<AbstractPersistent> db = EntityWrapper.get(sviClass);
db.recast(sviClass);
conn.rows("""select * from EquallogicVolumeInfo""").each { row ->
SANVolumeInfo svi = new SANVolumeInfo();
initMetaClass(svi, svi.class);
def svi = sviClass.newInstance();
initMetaClass(svi, sviClass);
svi = convertRowToObject(sviSetterMap, row, svi);
// Missing column decorators for this class
svi.setScName(row.scName);
Expand Down Expand Up @@ -1044,16 +1046,5 @@ class upgrade_30_31 extends AbstractUpgradeScript {
entities.add(WalrusStatsInfo.class)
entities.add(ZoneInfo.class)

// VMware
entities.add(BrokerVolumeInfo.class);
entities.add(BrokerGroupInfo.class);
entities.add(VMwareBrokerInfo.class);

// SAN
entities.add(SANInfo.class);
entities.add(DASInfo.class);
entities.add(IgroupInfo.class);
entities.add(SANVolumeInfo.class);
entities.add(NetappInfo.class);
}
}

0 comments on commit 1e8af71

Please sign in to comment.