mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-11-04 00:02:37 +01:00 
			
		
		
		
	Merge release branch 4.20 to main
* 4.20: systemvm: fix keystore is reset when patch a systemvm (#9900) no retrieval of null hosts (#10175) upgrade: consider multiple hypervisors and secondary storages (#10046) CheckOnHostCommand: add missing timeout setting (#9677)
This commit is contained in:
		
						commit
						bd874eaa44
					
				@ -35,8 +35,7 @@ public class CheckOnHostCommand extends Command {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public CheckOnHostCommand(Host host, boolean reportCheckFailureIfOneStorageIsDown) {
 | 
			
		||||
        super();
 | 
			
		||||
        this.host = new HostTO(host);
 | 
			
		||||
        this(host);
 | 
			
		||||
        this.reportCheckFailureIfOneStorageIsDown = reportCheckFailureIfOneStorageIsDown;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -796,12 +796,16 @@ public class SystemVmTemplateRegistration {
 | 
			
		||||
                                    Long templateId = getRegisteredTemplateId(hypervisorAndTemplateName);
 | 
			
		||||
                                    if (templateId != null) {
 | 
			
		||||
                                        VMTemplateVO templateVO = vmTemplateDao.findById(templateId);
 | 
			
		||||
                                        TemplateDataStoreVO templateDataStoreVO = templateDataStoreDao.findByTemplate(templateId, DataStoreRole.Image);
 | 
			
		||||
                                        String installPath = templateDataStoreVO.getInstallPath();
 | 
			
		||||
                                        if (validateIfSeeded(storeUrlAndId.first(), installPath, nfsVersion)) {
 | 
			
		||||
                                            continue;
 | 
			
		||||
                                        } else if (templateVO != null) {
 | 
			
		||||
                                        TemplateDataStoreVO templateDataStoreVO = templateDataStoreDao.findByStoreTemplate(storeUrlAndId.second(), templateId);
 | 
			
		||||
                                        if (templateDataStoreVO != null) {
 | 
			
		||||
                                            String installPath = templateDataStoreVO.getInstallPath();
 | 
			
		||||
                                            if (validateIfSeeded(storeUrlAndId.first(), installPath, nfsVersion)) {
 | 
			
		||||
                                                continue;
 | 
			
		||||
                                            }
 | 
			
		||||
                                        }
 | 
			
		||||
                                        if (templateVO != null) {
 | 
			
		||||
                                            registerTemplate(hypervisorAndTemplateName, storeUrlAndId, templateVO, templateDataStoreVO, filePath);
 | 
			
		||||
                                            updateRegisteredTemplateDetails(templateId, hypervisorAndTemplateName);
 | 
			
		||||
                                            continue;
 | 
			
		||||
                                        }
 | 
			
		||||
                                    }
 | 
			
		||||
@ -825,6 +829,11 @@ public class SystemVmTemplateRegistration {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void updateRegisteredTemplateDetails(Long templateId, Map.Entry<Hypervisor.HypervisorType, String> hypervisorAndTemplateName) {
 | 
			
		||||
        Pair<Hypervisor.HypervisorType, String> entry = new Pair<>(hypervisorAndTemplateName.getKey(), hypervisorAndTemplateName.getValue());
 | 
			
		||||
        updateRegisteredTemplateDetails(templateId, entry);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void updateRegisteredTemplateDetails(Long templateId, Pair<Hypervisor.HypervisorType, String> hypervisorAndTemplateName) {
 | 
			
		||||
        VMTemplateVO templateVO = vmTemplateDao.findById(templateId);
 | 
			
		||||
        templateVO.setTemplateType(Storage.TemplateType.SYSTEM);
 | 
			
		||||
        boolean updated = vmTemplateDao.update(templateVO.getId(), templateVO);
 | 
			
		||||
@ -834,11 +843,11 @@ public class SystemVmTemplateRegistration {
 | 
			
		||||
            throw new CloudRuntimeException(errMsg);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        updateSystemVMEntries(templateId, hypervisorAndTemplateName.getKey());
 | 
			
		||||
        updateSystemVMEntries(templateId, hypervisorAndTemplateName.first());
 | 
			
		||||
 | 
			
		||||
        // Change value of global configuration parameter router.template.* for the corresponding hypervisor and minreq.sysvmtemplate.version for the ACS version
 | 
			
		||||
        Map<String, String> configParams = new HashMap<>();
 | 
			
		||||
        configParams.put(RouterTemplateConfigurationNames.get(hypervisorAndTemplateName.getKey()), hypervisorAndTemplateName.getValue());
 | 
			
		||||
        configParams.put(RouterTemplateConfigurationNames.get(hypervisorAndTemplateName.first()), hypervisorAndTemplateName.second());
 | 
			
		||||
        configParams.put("minreq.sysvmtemplate.version", getSystemVmTemplateVersion());
 | 
			
		||||
        updateConfigurationParams(configParams);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -3530,7 +3530,7 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
 | 
			
		||||
                                    TemplateDataStoreVO templateVO = null;
 | 
			
		||||
                                    if (templateId != null) {
 | 
			
		||||
                                        vmTemplateVO = _templateDao.findById(templateId);
 | 
			
		||||
                                        templateVO = _templateStoreDao.findByTemplate(templateId, DataStoreRole.Image);
 | 
			
		||||
                                        templateVO = _templateStoreDao.findByStoreTemplate(store.getId(), templateId);
 | 
			
		||||
                                        if (templateVO != null) {
 | 
			
		||||
                                            try {
 | 
			
		||||
                                                if (SystemVmTemplateRegistration.validateIfSeeded(
 | 
			
		||||
 | 
			
		||||
@ -124,6 +124,9 @@ patch_systemvm() {
 | 
			
		||||
    echo "Restored keystore file and certs using backup" >> $logfile 2>&1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  # Import global cacerts into 'cloud' service's keystore
 | 
			
		||||
  keytool -importkeystore -srckeystore /etc/ssl/certs/java/cacerts -destkeystore /usr/local/cloud/systemvm/certs/realhostip.keystore -srcstorepass changeit -deststorepass vmops.com -noprompt || true
 | 
			
		||||
 | 
			
		||||
  update_checksum $newpath/cloud-scripts.tgz
 | 
			
		||||
 | 
			
		||||
  if [ -f /opt/cloud/bin/setup/patch.sh ];then
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user