You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ed...@apache.org on 2013/06/20 09:20:10 UTC

[37/50] [abbrv] merge to master

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f41c800d/server/src/com/cloud/storage/VolumeManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f41c800d/server/src/com/cloud/storage/VolumeManagerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f41c800d/server/src/com/cloud/storage/download/DownloadMonitorImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/storage/download/DownloadMonitorImpl.java
index f5ce55f,f72a563..2b1aa4e
--- a/server/src/com/cloud/storage/download/DownloadMonitorImpl.java
+++ b/server/src/com/cloud/storage/download/DownloadMonitorImpl.java
@@@ -159,40 -266,128 +159,39 @@@ public class DownloadMonitorImpl extend
          }
  
          Long maxTemplateSizeInBytes = getMaxTemplateSizeInBytes();
 -        if (srcTmpltHost.getSize() > maxTemplateSizeInBytes){
 -        	throw new CloudRuntimeException("Cant copy the template as the template's size " +srcTmpltHost.getSize()+
 -        			" is greater than max.template.iso.size " + maxTemplateSizeInBytes);
 -        }
 -        
 -		if(destTmpltHost != null) {
 -		    start();
 -            String sourceChecksum = this.templateMgr.getChecksum(srcTmpltHost.getHostId(), srcTmpltHost.getInstallPath());
 -			DownloadCommand dcmd =  
 -              new DownloadCommand(destServer.getStorageUrl(), url, template, TemplateConstants.DEFAULT_HTTP_AUTH_USER, _copyAuthPasswd, maxTemplateSizeInBytes); 
 -			if (downloadJobExists) {
 -				dcmd = new DownloadProgressCommand(dcmd, destTmpltHost.getJobId(), RequestType.GET_OR_RESTART);
 -	 		}
 +        if (vmTemplateStore != null) {
 +            start();
 +            VirtualMachineTemplate tmpl = this._templateDao.findById(template.getId());
 +            DownloadCommand dcmd = new DownloadCommand((TemplateObjectTO)(template.getTO()), maxTemplateSizeInBytes);
              dcmd.setProxy(getHttpProxy());
 -			dcmd.setChecksum(sourceChecksum); // We need to set the checksum as the source template might be a compressed url and have cksum for compressed image. Bug #10775
 -            HostVO ssAhost = _ssvmMgr.pickSsvmHost(destServer);
 -            if( ssAhost == null ) {
 -                 s_logger.warn("There is no secondary storage VM for secondary storage host " + destServer.getName());
 -                 return false;
 -            }
 -            DownloadListener dl = new DownloadListener(ssAhost, destServer, template, _timer, _vmTemplateHostDao, destTmpltHost.getId(), this, dcmd, _templateDao, _resourceLimitMgr, _alertMgr, _accountMgr);
              if (downloadJobExists) {
 -                dl.setCurrState(destTmpltHost.getDownloadState());
 +                dcmd = new DownloadProgressCommand(dcmd, vmTemplateStore.getJobId(), RequestType.GET_OR_RESTART);
              }
 -			DownloadListener old = null;
 -			synchronized (_listenerMap) {
 -			    old = _listenerMap.put(destTmpltHost, dl);
 -			}
 -			if( old != null ) {
 -			    old.abandon();
 -			}
 -			
 -            try {
 -	            send(ssAhost.getId(), dcmd, dl);
 -	            return true;
 -            } catch (AgentUnavailableException e) {
 -				s_logger.warn("Unable to start /resume COPY of template " + template.getUniqueName() + " to " + destServer.getName(), e);
 -				dl.setDisconnected();
 -				dl.scheduleStatusCheck(RequestType.GET_OR_RESTART);
 -	            e.printStackTrace();
 +            if (vmTemplateStore.isCopy()) {
 +                dcmd.setCreds(TemplateConstants.DEFAULT_HTTP_AUTH_USER, _copyAuthPasswd);
 +            }
 +            EndPoint ep = _epSelector.select(template);
 +            if (ep == null) {
 +                s_logger.warn("There is no secondary storage VM for downloading template to image store " + store.getName());
 +                return;
 +            }
 +            DownloadListener dl = new DownloadListener(ep, store, template, _timer, this, dcmd,
 +                     callback);
 +            ComponentContext.inject(dl);  // initialize those auto-wired field in download listener.
 +            if (downloadJobExists) {
 +                // due to handling existing download job issues, we still keep
 +                // downloadState in template_store_ref to avoid big change in
 +                // DownloadListener to use
 +                // new ObjectInDataStore.State transition. TODO: fix this later
 +                // to be able to remove downloadState from template_store_ref.
 +                dl.setCurrState(vmTemplateStore.getDownloadState());
              }
 -		}
 -		
 -		return false;
 -	}
 -	
 -	private String generateCopyUrl(String ipAddress, String dir, String path){
 -		String hostname = ipAddress;
 -		String scheme = "http";
 -		if (_sslCopy) {
 -            hostname = ipAddress.replace(".", "-");
 -            scheme = "https";
 -            
 -            // Code for putting in custom certificates.
 -            if(_ssvmUrlDomain != null && _ssvmUrlDomain.length() > 0){
 -                hostname = hostname + "." + _ssvmUrlDomain;
 -            }else{
 -                hostname = hostname + ".realhostip.com";
 -            }	
 -		}
 -		return scheme + "://" + hostname + "/copy/SecStorage/" + dir + "/" + path; 
 -	}
 -	
 -	private String generateCopyUrl(HostVO sourceServer, VMTemplateHostVO srcTmpltHost) {
 -		List<SecondaryStorageVmVO> ssVms = _secStorageVmDao.getSecStorageVmListInStates(SecondaryStorageVm.Role.templateProcessor, sourceServer.getDataCenterId(), State.Running);
 -		if (ssVms.size() > 0) {
 -			SecondaryStorageVmVO ssVm = ssVms.get(0);
 -			if (ssVm.getPublicIpAddress() == null) {
 -				s_logger.warn("A running secondary storage vm has a null public ip?");
 -				return null;
 -			}
 -			return generateCopyUrl(ssVm.getPublicIpAddress(), sourceServer.getParent(), srcTmpltHost.getInstallPath());
 -		}
 -		
 -		VMTemplateVO tmplt = _templateDao.findById(srcTmpltHost.getTemplateId());
 -		HypervisorType hyperType = tmplt.getHypervisorType();
 -		/*No secondary storage vm yet*/
 -		if (hyperType != null && hyperType == HypervisorType.KVM) {
 -			return "file://" + sourceServer.getParent() + "/" + srcTmpltHost.getInstallPath();
 -		}
 -		return null;
 -	}
 -
 -	private void downloadTemplateToStorage(VMTemplateVO template, HostVO sserver) {
 -		boolean downloadJobExists = false;
 -        VMTemplateHostVO vmTemplateHost = null;
  
- 
 -        vmTemplateHost = _vmTemplateHostDao.findByHostTemplate(sserver.getId(), template.getId());
 -        if (vmTemplateHost == null) {
 -            vmTemplateHost = new VMTemplateHostVO(sserver.getId(), template.getId(), new Date(), 0, VMTemplateStorageResourceAssoc.Status.NOT_DOWNLOADED, null, null, "jobid0000", null, template.getUrl());
 -            _vmTemplateHostDao.persist(vmTemplateHost);
 -        } else if ((vmTemplateHost.getJobId() != null) && (vmTemplateHost.getJobId().length() > 2)) {
 -            downloadJobExists = true;
 -        }
 -                
 -        Long maxTemplateSizeInBytes = getMaxTemplateSizeInBytes();
 -        String secUrl = sserver.getStorageUrl();
 -		if(vmTemplateHost != null) {
 -		    start();
 -			DownloadCommand dcmd =
 -             new DownloadCommand(secUrl, template, maxTemplateSizeInBytes);
 -	        if (downloadJobExists) {
 -	            dcmd = new DownloadProgressCommand(dcmd, vmTemplateHost.getJobId(), RequestType.GET_OR_RESTART);
 -	        }
 -            dcmd.setProxy(getHttpProxy());
 -			if (vmTemplateHost.isCopy()) {
 -				dcmd.setCreds(TemplateConstants.DEFAULT_HTTP_AUTH_USER, _copyAuthPasswd);
 -			}
 -			HostVO ssAhost = _ssvmMgr.pickSsvmHost(sserver);
 -			if( ssAhost == null ) {
 -	             s_logger.warn("There is no secondary storage VM for secondary storage host " + sserver.getName());
 -	             return;
 -			}
 -			DownloadListener dl = new DownloadListener(ssAhost, sserver, template, _timer, _vmTemplateHostDao, vmTemplateHost.getId(), this, dcmd, _templateDao, _resourceLimitMgr, _alertMgr, _accountMgr);
 -			if (downloadJobExists) {
 -				dl.setCurrState(vmTemplateHost.getDownloadState());
 -	 		}
              DownloadListener old = null;
 -            synchronized (_listenerMap) {
 -                old = _listenerMap.put(vmTemplateHost, dl);
 +            synchronized (_listenerTemplateMap) {
 +                old = _listenerTemplateMap.put(vmTemplateStore, dl);
              }
 -            if( old != null ) {
 +            if (old != null) {
                  old.abandon();
              }
  

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f41c800d/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java
index a1a4c90,02e3428..7e1e3d4
--- a/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java
+++ b/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java
@@@ -537,7 -574,8 +537,7 @@@ public class SnapshotManagerImpl extend
          String intervalTypeStr = cmd.getIntervalType();
          String zoneType = cmd.getZoneType();
          Map<String, String> tags = cmd.getTags();
- 
+         Long zoneId = cmd.getZoneId();
 -        
          Account caller = UserContext.current().getCaller();
          List<Long> permittedAccounts = new ArrayList<Long>();
  
@@@ -604,9 -641,13 +605,13 @@@
          }
  
          if(zoneType != null) {
 -            sc.setJoinParameters("zoneSb", "zoneNetworkType", zoneType);          
 +            sc.setJoinParameters("zoneSb", "zoneNetworkType", zoneType);
          }
  
+         if (zoneId != null) {
+             sc.setParameters("dataCenterId", zoneId);
+         }
+         
          if (name != null) {
              sc.setParameters("name", "%" + name + "%");
          }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f41c800d/server/src/com/cloud/storage/snapshot/SnapshotSchedulerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f41c800d/server/src/com/cloud/storage/upload/UploadMonitorImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/storage/upload/UploadMonitorImpl.java
index 7d75599,31f3e74..d46db0c
--- a/server/src/com/cloud/storage/upload/UploadMonitorImpl.java
+++ b/server/src/com/cloud/storage/upload/UploadMonitorImpl.java
@@@ -330,26 -330,32 +331,34 @@@ public class UploadMonitorImpl extends 
  	        String scheme = "http";
  	        if (_sslCopy) {
  	            hostname = ipAddress.replace(".", "-");
- 	            hostname = hostname + ".realhostip.com";
  	            scheme = "https";
+ 	            
+ 	            // Code for putting in custom certificates.
+ 	            if(_ssvmUrlDomain != null && _ssvmUrlDomain.length() > 0){
+ 	            	hostname = hostname + "." + _ssvmUrlDomain;
+ 	            }else{
+ 	            	hostname = hostname + ".realhostip.com";
+ 	            }	            
  	        }
 -	        return scheme + "://" + hostname + "/userdata/" + uuid; 
 +	        return scheme + "://" + hostname + "/userdata/" + uuid;
  	    }
 -	
  
  
 -	public void send(Long hostId, Command cmd, Listener listener) throws AgentUnavailableException {
 -		_agentMgr.send(hostId, new Commands(cmd), listener);
 -	}
 +
  
  	@Override
  	public boolean configure(String name, Map<String, Object> params)
  			throws ConfigurationException {
          final Map<String, String> configs = _configDao.getConfiguration("ManagementServer", params);
          _sslCopy = Boolean.parseBoolean(configs.get("secstorage.encrypt.copy"));
 -        
 +
 +        String cert = configs.get("secstorage.secure.copy.cert");
 +        if ("realhostip.com".equalsIgnoreCase(cert)) {
 +        	s_logger.warn("Only realhostip.com ssl cert is supported, ignoring self-signed and other certs");
 +        }
 +
+         _ssvmUrlDomain = configs.get("secstorage.ssl.cert.domain");      
+         
          _agentMgr.registerForHostEvents(new UploadListener(this), true, false, false);
          String cleanupInterval = configs.get("extract.url.cleanup.interval");
          _cleanupInterval = NumbersUtil.parseInt(cleanupInterval, 7200);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f41c800d/server/src/com/cloud/vm/UserVmManagerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f41c800d/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f41c800d/ui/scripts/system.js
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f41c800d/ui/scripts/zoneWizard.js
----------------------------------------------------------------------