bug 7204: adding an upgrade step. This updates all zones to basic networking if direct.attach.untagged.vlan.enabled is true, else to advanced.

status 7204: resolved fixed
This commit is contained in:
abhishek 2010-12-08 10:34:45 -08:00
parent 8fa364e4d5
commit f2b2066afb
1 changed files with 38 additions and 1 deletions

View File

@ -8,14 +8,20 @@ import java.util.List;
import org.apache.log4j.xml.DOMConfigurator;
import com.cloud.configuration.ResourceCount.ResourceType;
import com.cloud.configuration.ConfigurationVO;
import com.cloud.configuration.ResourceCountVO;
import com.cloud.configuration.dao.ConfigurationDao;
import com.cloud.configuration.dao.ResourceCountDao;
import com.cloud.dc.DataCenterVO;
import com.cloud.dc.DataCenter.NetworkType;
import com.cloud.dc.dao.DataCenterDao;
import com.cloud.domain.DomainVO;
import com.cloud.domain.dao.DomainDao;
import com.cloud.user.Account;
import com.cloud.user.dao.AccountDao;
import com.cloud.utils.PropertiesUtil;
import com.cloud.utils.component.ComponentLocator;
import com.cloud.utils.db.DB;
import com.cloud.utils.db.SearchBuilder;
import com.cloud.utils.db.SearchCriteria;
import com.cloud.utils.db.Transaction;
@ -30,7 +36,9 @@ public class Db21to22MigrationUtil {
private ResourceCountDao _resourceCountDao;
private InstanceGroupDao _vmGroupDao;
private InstanceGroupVMMapDao _groupVMMapDao;
private ConfigurationDao _configurationDao;
private DataCenterDao _zoneDao;
private void doMigration() {
setupComponents();
@ -38,9 +46,36 @@ public class Db21to22MigrationUtil {
setupInstanceGroups();
migrateZones();
System.out.println("Migration done");
}
/**
* This method migrates the zones based on bug: 7204
* based on the param direct.attach.untagged.vlan.enabled, we update zone to basic or advanced for 2.2
*/
@DB
private void migrateZones(){
try {
System.out.println("Migrating zones");
String val = _configurationDao.getValue("direct.attach.untagged.vlan.enabled");
NetworkType networkType;
if(val == null || val.equalsIgnoreCase("true")){
networkType = NetworkType.Basic;
}else{
networkType = NetworkType.Advanced;
}
List<DataCenterVO> existingZones = _zoneDao.listAll();
for(DataCenterVO zone : existingZones){
zone.setNetworkType(networkType);
_zoneDao.update(zone.getId(), zone);
}
} catch (Exception e) {
System.out.println("Unhandled exception in migrateZones()" + e);
}
}
private void migrateResourceCounts() {
System.out.println("migrating resource counts");
SearchBuilder<ResourceCountVO> sb = _resourceCountDao.createSearchBuilder();
@ -74,6 +109,8 @@ public class Db21to22MigrationUtil {
_resourceCountDao = locator.getDao(ResourceCountDao.class);
_vmGroupDao = locator.getDao(InstanceGroupDao.class);
_groupVMMapDao = locator.getDao(InstanceGroupVMMapDao.class);
_configurationDao = locator.getDao(ConfigurationDao.class);
_zoneDao = locator.getDao(DataCenterDao.class);
}
private void setupInstanceGroups() {