You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by mc...@apache.org on 2013/07/19 01:29:23 UTC

git commit: updated refs/heads/4.2 to c236645

Updated Branches:
  refs/heads/4.2 dbdab98ed -> c236645d9


CLOUDSTACK-3498:[Object_Store_Refactor] Deleting and adding back the
zone does not create NFS Cache store and Failure in Sytem VMs Start Up


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/c236645d
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/c236645d
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/c236645d

Branch: refs/heads/4.2
Commit: c236645d9a9c03de28a107a5f41bd8399354a802
Parents: dbdab98
Author: Min Chen <mi...@citrix.com>
Authored: Thu Jul 18 16:28:32 2013 -0700
Committer: Min Chen <mi...@citrix.com>
Committed: Thu Jul 18 16:28:56 2013 -0700

----------------------------------------------------------------------
 .../configuration/ConfigurationManagerImpl.java | 131 +++++++++++--------
 1 file changed, 73 insertions(+), 58 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c236645d/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
index c3ea44c..0a810bd 100755
--- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
+++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
@@ -66,7 +66,6 @@ import org.apache.cloudstack.api.command.admin.zone.CreateZoneCmd;
 import org.apache.cloudstack.api.command.admin.zone.DeleteZoneCmd;
 import org.apache.cloudstack.api.command.admin.zone.UpdateZoneCmd;
 import org.apache.cloudstack.api.command.user.network.ListNetworkOfferingsCmd;
-import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
 import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
 import org.apache.cloudstack.region.PortableIp;
 import org.apache.cloudstack.region.PortableIpDao;
@@ -129,7 +128,6 @@ import com.cloud.exception.PermissionDeniedException;
 import com.cloud.exception.ResourceAllocationException;
 import com.cloud.exception.ResourceUnavailableException;
 import com.cloud.hypervisor.Hypervisor.HypervisorType;
-import com.cloud.network.IpAddress;
 import com.cloud.network.Network;
 import com.cloud.network.Network.Capability;
 import com.cloud.network.Network.GuestType;
@@ -150,7 +148,6 @@ import com.cloud.network.dao.PhysicalNetworkDao;
 import com.cloud.network.dao.PhysicalNetworkTrafficTypeDao;
 import com.cloud.network.dao.PhysicalNetworkTrafficTypeVO;
 import com.cloud.network.dao.PhysicalNetworkVO;
-import com.cloud.network.element.DhcpServiceProvider;
 import com.cloud.network.rules.LoadBalancerContainer.Scheme;
 import com.cloud.network.vpc.VpcManager;
 import com.cloud.offering.DiskOffering;
@@ -393,16 +390,16 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
                 _alertMgr.sendAlert(AlertManager.ALERT_TYPE_MANAGMENT_NODE, 0, new Long(0),
                         "Management network CIDR is not configured originally. Set it default to " + localCidrs[0], "");
                 _configDao
-                        .update(Config.ManagementNetwork.key(), Config.ManagementNetwork.getCategory(), localCidrs[0]);
+                .update(Config.ManagementNetwork.key(), Config.ManagementNetwork.getCategory(), localCidrs[0]);
             } else {
                 s_logger.warn("Management network CIDR is not properly configured and we are not able to find a default setting");
                 _alertMgr
-                        .sendAlert(
-                                AlertManager.ALERT_TYPE_MANAGMENT_NODE,
-                                0,
-                                new Long(0),
-                                "Management network CIDR is not properly configured and we are not able to find a default setting",
-                                "");
+                .sendAlert(
+                        AlertManager.ALERT_TYPE_MANAGMENT_NODE,
+                        0,
+                        new Long(0),
+                        "Management network CIDR is not properly configured and we are not able to find a default setting",
+                        "");
             }
         }
 
@@ -1271,6 +1268,12 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
         host.add(2, "there are servers running in this zone");
         tablesToCheck.add(host);
 
+        List<String> imageStore = new ArrayList<String>();
+        host.add(0, "image_store");
+        host.add(1, "data_center_id");
+        host.add(2, "there are data store created for this zone");
+        tablesToCheck.add(imageStore);
+
         List<String> hostPodRef = new ArrayList<String>();
         hostPodRef.add(0, "host_pod_ref");
         hostPodRef.add(1, "data_center_id");
@@ -1334,7 +1337,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
                 selectSql += " AND taken IS NOT NULL";
             }
 
-            if (tableName.equals("host_pod_ref") || tableName.equals("host") || tableName.equals("volumes")
+            if (tableName.equals("host_pod_ref") || tableName.equals("host") || tableName.equals("image_store") || tableName.equals("volumes")
                     || tableName.equals("physical_network")) {
                 selectSql += " AND removed is NULL";
             }
@@ -1461,10 +1464,12 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
         List<HostPodVO> podsInZone = _podDao.listByDataCenterId(zoneId);
         for (HostPodVO hostPod : podsInZone) {
             String[] IpRange = hostPod.getDescription().split("-");
-            if (IpRange[0] == null || IpRange[1] == null)
+            if (IpRange[0] == null || IpRange[1] == null) {
                 continue;
-            if (!NetUtils.isValidIp(IpRange[0]) || !NetUtils.isValidIp(IpRange[1]))
+            }
+            if (!NetUtils.isValidIp(IpRange[0]) || !NetUtils.isValidIp(IpRange[1])) {
                 continue;
+            }
             if (NetUtils.ipRangesOverlap(startIp, endIp, IpRange[0], IpRange[1])) {
                 throw new InvalidParameterValueException(
                         "The Start IP and endIP address range overlap with private IP :" + IpRange[0] + ":"
@@ -1810,8 +1815,8 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
         boolean checkForDuplicates = !zoneName.equals(oldZoneName);
         checkZoneParameters(zoneName, dns1, dns2, internalDns1, internalDns2, checkForDuplicates, null,
                 allocationStateStr, ip6Dns1, ip6Dns2);// not allowing updating
-                                                      // domain associated with
-                                                      // a zone, once created
+        // domain associated with
+        // a zone, once created
 
         zone.setName(zoneName);
         zone.setDns1(dns1);
@@ -2057,7 +2062,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
 
         return createZone(userId, zoneName, dns1, dns2, internalDns1, internalDns2, guestCidr,
                 domainVO != null ? domainVO.getName() : null, domainId, zoneType, allocationState, networkDomain,
-                isSecurityGroupEnabled, isLocalStorageEnabled, ip6Dns1, ip6Dns2);
+                        isSecurityGroupEnabled, isLocalStorageEnabled, ip6Dns1, ip6Dns2);
     }
 
     @Override
@@ -2172,14 +2177,18 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
                 limitResourceUse, volatileVm, displayText, localStorageRequired, false, tags, isSystem, vm_type,
                 domainId, hostTag, deploymentPlanner);
 
-        if ((bytesReadRate != null) && (bytesReadRate > 0))
+        if ((bytesReadRate != null) && (bytesReadRate > 0)) {
             offering.setBytesReadRate(bytesReadRate);
-        if ((bytesWriteRate != null) && (bytesWriteRate > 0))
+        }
+        if ((bytesWriteRate != null) && (bytesWriteRate > 0)) {
             offering.setBytesWriteRate(bytesWriteRate);
-        if ((iopsReadRate != null) && (iopsReadRate > 0))
+        }
+        if ((iopsReadRate != null) && (iopsReadRate > 0)) {
             offering.setIopsReadRate(iopsReadRate);
-        if ((iopsWriteRate != null) && (iopsWriteRate > 0))
+        }
+        if ((iopsWriteRate != null) && (iopsWriteRate > 0)) {
             offering.setIopsWriteRate(iopsWriteRate);
+        }
 
         if ((offering = _serviceOfferingDao.persist(offering)) != null) {
             if (details != null) {
@@ -2267,8 +2276,8 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
     @Override
     @ActionEvent(eventType = EventTypes.EVENT_DISK_OFFERING_CREATE, eventDescription = "creating disk offering")
     public DiskOfferingVO createDiskOffering(Long domainId, String name, String description, Long numGibibytes, String tags, boolean isCustomized,
-    		boolean localStorageRequired, boolean isDisplayOfferingEnabled, Boolean isCustomizedIops, Long minIops, Long maxIops,
-    		Long bytesReadRate, Long bytesWriteRate, Long iopsReadRate, Long iopsWriteRate) {
+            boolean localStorageRequired, boolean isDisplayOfferingEnabled, Boolean isCustomizedIops, Long minIops, Long maxIops,
+            Long bytesReadRate, Long bytesWriteRate, Long iopsReadRate, Long iopsWriteRate) {
         long diskSize = 0;// special case for custom disk offerings
         if (numGibibytes != null && (numGibibytes <= 0)) {
             throw new InvalidParameterValueException("Please specify a disk size of at least 1 Gb.");
@@ -2291,8 +2300,8 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
             iopsWriteRate = null;
 
             if (isCustomizedIops) {
-            	minIops = null;
-            	maxIops = null;
+                minIops = null;
+                maxIops = null;
             }
             else {
                 if (minIops == null && maxIops == null) {
@@ -2300,17 +2309,17 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
                     maxIops = 0L;
                 }
                 else {
-                	if (minIops == null || minIops <= 0) {
-                	    throw new InvalidParameterValueException("The min IOPS must be greater than 0.");
-        	        }
+                    if (minIops == null || minIops <= 0) {
+                        throw new InvalidParameterValueException("The min IOPS must be greater than 0.");
+                    }
 
-                	if (maxIops == null) {
-        	        	maxIops = 0L;
-        	        }
+                    if (maxIops == null) {
+                        maxIops = 0L;
+                    }
 
-                	if (minIops > maxIops) {
-                		throw new InvalidParameterValueException("The min IOPS must be less than or equal to the max IOPS.");
-                	}
+                    if (minIops > maxIops) {
+                        throw new InvalidParameterValueException("The min IOPS must be less than or equal to the max IOPS.");
+                    }
                 }
             }
         }
@@ -2321,18 +2330,22 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
 
         tags = cleanupTags(tags);
         DiskOfferingVO newDiskOffering = new DiskOfferingVO(domainId, name, description, diskSize, tags, isCustomized,
-        		isCustomizedIops, minIops, maxIops);
+                isCustomizedIops, minIops, maxIops);
         newDiskOffering.setUseLocalStorage(localStorageRequired);
         newDiskOffering.setDisplayOffering(isDisplayOfferingEnabled);
 
-        if (bytesReadRate != null && (bytesReadRate > 0))
+        if (bytesReadRate != null && (bytesReadRate > 0)) {
             newDiskOffering.setBytesReadRate(bytesReadRate);
-        if (bytesWriteRate != null && (bytesWriteRate > 0))
+        }
+        if (bytesWriteRate != null && (bytesWriteRate > 0)) {
             newDiskOffering.setBytesWriteRate(bytesWriteRate);
-        if (iopsReadRate != null && (iopsReadRate > 0))
+        }
+        if (iopsReadRate != null && (iopsReadRate > 0)) {
             newDiskOffering.setIopsReadRate(iopsReadRate);
-        if (iopsWriteRate != null && (iopsWriteRate > 0))
+        }
+        if (iopsWriteRate != null && (iopsWriteRate > 0)) {
             newDiskOffering.setIopsWriteRate(iopsWriteRate);
+        }
 
         UserContext.current().setEventDetails("Disk offering id=" + newDiskOffering.getId());
         DiskOfferingVO offering = _diskOfferingDao.persist(newDiskOffering);
@@ -2351,8 +2364,8 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
         Long numGibibytes = cmd.getDiskSize();
         boolean isDisplayOfferingEnabled = cmd.getDisplayOffering() != null ? cmd.getDisplayOffering() : true;
         boolean isCustomized = cmd.isCustomized() != null ? cmd.isCustomized() : false; // false
-                                                                                        // by
-                                                                                        // default
+        // by
+        // default
         String tags = cmd.getTags();
         // Long domainId = cmd.getDomainId() != null ? cmd.getDomainId() :
         // Long.valueOf(DomainVO.ROOT_DOMAIN); // disk offering
@@ -2384,8 +2397,8 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
         Long iopsWriteRate = cmd.getIopsWriteRate();
 
         return createDiskOffering(domainId, name, description, numGibibytes, tags, isCustomized,
-        		localStorageRequired, isDisplayOfferingEnabled, isCustomizedIops, minIops, maxIops,
-        		bytesReadRate, bytesWriteRate, iopsReadRate, iopsWriteRate);
+                localStorageRequired, isDisplayOfferingEnabled, isCustomizedIops, minIops, maxIops,
+                bytesReadRate, bytesWriteRate, iopsReadRate, iopsWriteRate);
     }
 
     @Override
@@ -2506,9 +2519,9 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
     @Override
     @DB
     @ActionEvent(eventType = EventTypes.EVENT_VLAN_IP_RANGE_CREATE, eventDescription = "creating vlan ip range",
-            async = false)
+    async = false)
     public Vlan createVlanAndPublicIpRange(CreateVlanIpRangeCmd cmd) throws InsufficientCapacityException,
-            ConcurrentOperationException, ResourceUnavailableException, ResourceAllocationException {
+    ConcurrentOperationException, ResourceUnavailableException, ResourceAllocationException {
         Long zoneId = cmd.getZoneId();
         Long podId = cmd.getPodId();
         String startIP = cmd.getStartIp();
@@ -2742,7 +2755,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
             Map<Capability, String> dhcpCapabilities = _networkSvc.getNetworkOfferingServiceCapabilities(_networkOfferingDao.findById(network.getNetworkOfferingId()), Service.Dhcp);
             String supportsMultipleSubnets = dhcpCapabilities.get(Capability.DhcpAccrossMultipleSubnets);
             if (supportsMultipleSubnets == null || !Boolean.valueOf(supportsMultipleSubnets)) {
-                       throw new  InvalidParameterValueException("The Dhcp serivice provider for this network dose not support the dhcp  across multiple subnets");
+                throw new  InvalidParameterValueException("The Dhcp serivice provider for this network dose not support the dhcp  across multiple subnets");
             }
             s_logger.info("adding a new subnet to the network " + network.getId());
         } else if (sameSubnet != null)  {
@@ -2824,7 +2837,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
                         sameSubnet = true;
                         //check if the gateway provided by the user is same as that of the subnet.
                         if (newVlanGateway != null && !newVlanGateway.equals(vlanGateway)) {
-                             throw new InvalidParameterValueException("The gateway of the subnet should be unique. The subnet alreaddy has a gateway "+ vlanGateway);
+                            throw new InvalidParameterValueException("The gateway of the subnet should be unique. The subnet alreaddy has a gateway "+ vlanGateway);
                         }
                         break;
                     }
@@ -3031,7 +3044,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
                 if (otherVlanGateway == null) {
                     continue;
                 }
-                 String otherVlanSubnet = NetUtils.getSubNet(vlan.getVlanGateway(), vlan.getVlanNetmask());
+                String otherVlanSubnet = NetUtils.getSubNet(vlan.getVlanGateway(), vlan.getVlanNetmask());
                 String[] otherVlanIpRange = vlan.getIpRange().split("\\-");
                 String otherVlanStartIP = otherVlanIpRange[0];
                 String otherVlanEndIP = null;
@@ -3100,7 +3113,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
             }
         }
 
-        // Check if the vlan is being used 
+        // Check if the vlan is being used
         if (_zoneDao.findVnet(zoneId, physicalNetworkId, vlanId).size() > 0) {
             throw new InvalidParameterValueException("The VLAN tag " + vlanId
                     + " is already being used for dynamic vlan allocation for the guest network in zone " + zone.getName());
@@ -3261,7 +3274,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
     @Override
     @DB
     @ActionEvent(eventType = EventTypes.EVENT_VLAN_IP_RANGE_DEDICATE, eventDescription = "dedicating vlan ip range",
-            async = false)
+    async = false)
     public Vlan dedicatePublicIpRange(DedicatePublicIpRangeCmd cmd) throws ResourceAllocationException {
         Long vlanDbId = cmd.getId();
         String accountName = cmd.getAccountName();
@@ -3325,9 +3338,10 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
             Long allocatedToAccountId = ip.getAllocatedToAccountId();
             if (allocatedToAccountId != null) {
                 Account accountAllocatedTo = _accountMgr.getActiveAccountById(allocatedToAccountId);
-                if (!accountAllocatedTo.getAccountName().equalsIgnoreCase(accountName))
+                if (!accountAllocatedTo.getAccountName().equalsIgnoreCase(accountName)) {
                     throw new InvalidParameterValueException(ip.getAddress()
                             + " Public IP address in range is allocated to another account ");
+                }
             }
         }
 
@@ -3355,7 +3369,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
 
     @Override
     @ActionEvent(eventType = EventTypes.EVENT_VLAN_IP_RANGE_RELEASE, eventDescription = "releasing a public ip range",
-            async = false)
+    async = false)
     public boolean releasePublicIpRange(ReleasePublicIpRangeCmd cmd) {
         Long vlanDbId = cmd.getId();
 
@@ -3633,7 +3647,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
                     if (podName.equals("newPod")) {
                         throw new InvalidParameterValueException(
                                 "The subnet of the pod you are adding conflicts with the subnet of pod " + otherPodName
-                                        + " in zone " + zoneName + ". Please specify a different CIDR.");
+                                + " in zone " + zoneName + ". Please specify a different CIDR.");
                     } else {
                         throw new InvalidParameterValueException("Warning: The pods " + podName + " and "
                                 + otherPodName + " in zone " + zoneName
@@ -3694,7 +3708,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
 
     @Override
     @ActionEvent(eventType = EventTypes.EVENT_VLAN_IP_RANGE_DELETE, eventDescription = "deleting vlan ip range",
-            async = false)
+    async = false)
     public boolean deleteVlanIpRange(DeleteVlanIpRangeCmd cmd) {
         Long vlanDbId = cmd.getId();
 
@@ -4244,7 +4258,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
                 }
             }
         }
-        
+
         if (serviceProviderMap != null && serviceProviderMap.containsKey(Service.Lb) && !internalLb && !publicLb) {
             //if not specified, default public lb to true
             publicLb = true;
@@ -4417,7 +4431,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
         }
         if (specifyVlan != null) {
             sc.addAnd("specifyVlan", SearchCriteria.Op.EQ, specifyVlan);
-        } 
+        }
 
         if (availability != null) {
             sc.addAnd("availability", SearchCriteria.Op.EQ, availability);
@@ -4966,7 +4980,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
     @Override
     @DB
     @ActionEvent(eventType = EventTypes.EVENT_PORTABLE_IP_RANGE_CREATE,
-            eventDescription = "creating portable ip range", async = false)
+    eventDescription = "creating portable ip range", async = false)
     public PortableIpRange createPortableIpRange(CreatePortableIpRangeCmd cmd) throws ConcurrentOperationException {
         Integer regionId = cmd.getRegionId();
         String startIP = cmd.getStartIp();
@@ -5010,9 +5024,10 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
             List<DataCenterVO> zones= _zoneDao.listAllZones();
             if (zones != null && !zones.isEmpty()) {
                 for (DataCenterVO zone: zones) {
-                    if (_vlanDao.findByZoneAndVlanId(zone.getId(), vlanId) != null)
+                    if (_vlanDao.findByZoneAndVlanId(zone.getId(), vlanId) != null) {
                         throw new InvalidParameterValueException("Found a VLAN id " + vlanId + " already existing in"
                                 + " zone " + zone.getUuid() + " that conflicts with VLAN id of the portable ip range being configured");
+                    }
                 }
             }
 
@@ -5042,7 +5057,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
     @Override
     @DB
     @ActionEvent(eventType = EventTypes.EVENT_PORTABLE_IP_RANGE_DELETE,
-            eventDescription = "deleting portable ip range", async = false)
+    eventDescription = "deleting portable ip range", async = false)
     public boolean deletePortableIpRange(DeletePortableIpRangeCmd cmd) {
         long rangeId = cmd.getId();
         PortableIpRangeVO portableIpRange = _portableIpRangeDao.findById(rangeId);