mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	Merge remote-tracking branch 'origin/4.18'
This commit is contained in:
		
						commit
						0d6674e3b3
					
				| @ -34,8 +34,6 @@ import java.util.TreeSet; | |||||||
| import javax.inject.Inject; | import javax.inject.Inject; | ||||||
| import javax.naming.ConfigurationException; | import javax.naming.ConfigurationException; | ||||||
| 
 | 
 | ||||||
| import com.cloud.domain.Domain; |  | ||||||
| import com.cloud.vm.VirtualMachineManager; |  | ||||||
| import org.apache.cloudstack.acl.ControlledEntity.ACLType; | import org.apache.cloudstack.acl.ControlledEntity.ACLType; | ||||||
| import org.apache.cloudstack.context.CallContext; | import org.apache.cloudstack.context.CallContext; | ||||||
| import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService; | import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService; | ||||||
| @ -60,6 +58,7 @@ import com.cloud.dc.VlanVO; | |||||||
| import com.cloud.dc.dao.DataCenterDao; | import com.cloud.dc.dao.DataCenterDao; | ||||||
| import com.cloud.dc.dao.PodVlanMapDao; | import com.cloud.dc.dao.PodVlanMapDao; | ||||||
| import com.cloud.dc.dao.VlanDao; | import com.cloud.dc.dao.VlanDao; | ||||||
|  | import com.cloud.domain.Domain; | ||||||
| import com.cloud.domain.DomainVO; | import com.cloud.domain.DomainVO; | ||||||
| import com.cloud.domain.dao.DomainDao; | import com.cloud.domain.dao.DomainDao; | ||||||
| import com.cloud.exception.InsufficientAddressCapacityException; | import com.cloud.exception.InsufficientAddressCapacityException; | ||||||
| @ -142,6 +141,7 @@ import com.cloud.vm.NicVO; | |||||||
| import com.cloud.vm.VMInstanceVO; | import com.cloud.vm.VMInstanceVO; | ||||||
| import com.cloud.vm.VirtualMachine; | import com.cloud.vm.VirtualMachine; | ||||||
| import com.cloud.vm.VirtualMachine.Type; | import com.cloud.vm.VirtualMachine.Type; | ||||||
|  | import com.cloud.vm.VirtualMachineManager; | ||||||
| import com.cloud.vm.dao.NicDao; | import com.cloud.vm.dao.NicDao; | ||||||
| import com.cloud.vm.dao.NicSecondaryIpDao; | import com.cloud.vm.dao.NicSecondaryIpDao; | ||||||
| import com.cloud.vm.dao.VMInstanceDao; | import com.cloud.vm.dao.VMInstanceDao; | ||||||
| @ -2674,10 +2674,8 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel, Confi | |||||||
|             String[] keyValuePairs = userDataDetails.split(","); |             String[] keyValuePairs = userDataDetails.split(","); | ||||||
|             for(String pair : keyValuePairs) |             for(String pair : keyValuePairs) | ||||||
|             { |             { | ||||||
|                 String[] entry = pair.split("="); |                 final Pair<String, String> keyValue = StringUtils.getKeyValuePairWithSeparator(pair, "="); | ||||||
|                 String key = entry[0].trim(); |                 vmData.add(new String[]{METATDATA_DIR, keyValue.first(), StringUtils.unicodeEscape(keyValue.second())}); | ||||||
|                 String value = entry[1].trim(); |  | ||||||
|                 vmData.add(new String[]{METATDATA_DIR, key, StringUtils.unicodeEscape(value)}); |  | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -23,7 +23,6 @@ import java.util.Set; | |||||||
| 
 | 
 | ||||||
| import javax.inject.Inject; | import javax.inject.Inject; | ||||||
| 
 | 
 | ||||||
| import com.cloud.host.HostVO; |  | ||||||
| import org.apache.cloudstack.engine.subsystem.api.storage.DataStore; | import org.apache.cloudstack.engine.subsystem.api.storage.DataStore; | ||||||
| import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager; | import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager; | ||||||
| import org.apache.cloudstack.engine.subsystem.api.storage.EndPoint; | import org.apache.cloudstack.engine.subsystem.api.storage.EndPoint; | ||||||
| @ -49,6 +48,7 @@ import com.cloud.exception.ConcurrentOperationException; | |||||||
| import com.cloud.exception.InsufficientCapacityException; | import com.cloud.exception.InsufficientCapacityException; | ||||||
| import com.cloud.exception.ResourceUnavailableException; | import com.cloud.exception.ResourceUnavailableException; | ||||||
| import com.cloud.exception.UnsupportedServiceException; | import com.cloud.exception.UnsupportedServiceException; | ||||||
|  | import com.cloud.host.HostVO; | ||||||
| import com.cloud.host.dao.HostDao; | import com.cloud.host.dao.HostDao; | ||||||
| import com.cloud.hypervisor.HypervisorGuruManager; | import com.cloud.hypervisor.HypervisorGuruManager; | ||||||
| import com.cloud.network.Network; | import com.cloud.network.Network; | ||||||
| @ -69,6 +69,8 @@ import com.cloud.storage.VolumeVO; | |||||||
| import com.cloud.storage.dao.GuestOSCategoryDao; | import com.cloud.storage.dao.GuestOSCategoryDao; | ||||||
| import com.cloud.storage.dao.GuestOSDao; | import com.cloud.storage.dao.GuestOSDao; | ||||||
| import com.cloud.storage.dao.VolumeDao; | import com.cloud.storage.dao.VolumeDao; | ||||||
|  | import com.cloud.utils.Pair; | ||||||
|  | import com.cloud.utils.StringUtils; | ||||||
| import com.cloud.utils.component.AdapterBase; | import com.cloud.utils.component.AdapterBase; | ||||||
| import com.cloud.utils.crypt.DBEncryptionUtil; | import com.cloud.utils.crypt.DBEncryptionUtil; | ||||||
| import com.cloud.utils.db.EntityManager; | import com.cloud.utils.db.EntityManager; | ||||||
| @ -624,8 +626,8 @@ public class ConfigDriveNetworkElement extends AdapterBase implements NetworkEle | |||||||
|             String[] keyValuePairs = userDataDetails.split(","); |             String[] keyValuePairs = userDataDetails.split(","); | ||||||
|             for(String pair : keyValuePairs) |             for(String pair : keyValuePairs) | ||||||
|             { |             { | ||||||
|                 String[] entry = pair.split("="); |                 final Pair<String, String> keyValue = StringUtils.getKeyValuePairWithSeparator(pair, "="); | ||||||
|                 customUserdataParamMap.put(entry[0].trim(), entry[1].trim()); |                 customUserdataParamMap.put(keyValue.first(), keyValue.second()); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -27,11 +27,6 @@ import java.util.Set; | |||||||
| 
 | 
 | ||||||
| import javax.inject.Inject; | import javax.inject.Inject; | ||||||
| 
 | 
 | ||||||
| import com.cloud.agent.api.routing.UpdateNetworkCommand; |  | ||||||
| import com.cloud.network.dao.VirtualRouterProviderDao; |  | ||||||
| import com.cloud.network.vpc.VpcVO; |  | ||||||
| import com.cloud.domain.Domain; |  | ||||||
| import com.cloud.domain.dao.DomainDao; |  | ||||||
| import org.apache.cloudstack.api.ApiConstants; | import org.apache.cloudstack.api.ApiConstants; | ||||||
| import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService; | import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService; | ||||||
| import org.apache.cloudstack.framework.config.dao.ConfigurationDao; | import org.apache.cloudstack.framework.config.dao.ConfigurationDao; | ||||||
| @ -60,6 +55,7 @@ import com.cloud.agent.api.routing.SetSourceNatCommand; | |||||||
| import com.cloud.agent.api.routing.SetStaticNatRulesCommand; | import com.cloud.agent.api.routing.SetStaticNatRulesCommand; | ||||||
| import com.cloud.agent.api.routing.SetStaticRouteCommand; | import com.cloud.agent.api.routing.SetStaticRouteCommand; | ||||||
| import com.cloud.agent.api.routing.Site2SiteVpnCfgCommand; | import com.cloud.agent.api.routing.Site2SiteVpnCfgCommand; | ||||||
|  | import com.cloud.agent.api.routing.UpdateNetworkCommand; | ||||||
| import com.cloud.agent.api.routing.VmDataCommand; | import com.cloud.agent.api.routing.VmDataCommand; | ||||||
| import com.cloud.agent.api.routing.VpnUsersCfgCommand; | import com.cloud.agent.api.routing.VpnUsersCfgCommand; | ||||||
| import com.cloud.agent.api.to.DhcpTO; | import com.cloud.agent.api.to.DhcpTO; | ||||||
| @ -78,6 +74,8 @@ import com.cloud.dc.DataCenter.NetworkType; | |||||||
| import com.cloud.dc.DataCenterVO; | import com.cloud.dc.DataCenterVO; | ||||||
| import com.cloud.dc.dao.DataCenterDao; | import com.cloud.dc.dao.DataCenterDao; | ||||||
| import com.cloud.dc.dao.VlanDao; | import com.cloud.dc.dao.VlanDao; | ||||||
|  | import com.cloud.domain.Domain; | ||||||
|  | import com.cloud.domain.dao.DomainDao; | ||||||
| import com.cloud.host.Host; | import com.cloud.host.Host; | ||||||
| import com.cloud.host.dao.HostDao; | import com.cloud.host.dao.HostDao; | ||||||
| import com.cloud.hypervisor.Hypervisor; | import com.cloud.hypervisor.Hypervisor; | ||||||
| @ -105,6 +103,7 @@ import com.cloud.network.dao.Site2SiteCustomerGatewayDao; | |||||||
| import com.cloud.network.dao.Site2SiteCustomerGatewayVO; | import com.cloud.network.dao.Site2SiteCustomerGatewayVO; | ||||||
| import com.cloud.network.dao.Site2SiteVpnGatewayDao; | import com.cloud.network.dao.Site2SiteVpnGatewayDao; | ||||||
| import com.cloud.network.dao.Site2SiteVpnGatewayVO; | import com.cloud.network.dao.Site2SiteVpnGatewayVO; | ||||||
|  | import com.cloud.network.dao.VirtualRouterProviderDao; | ||||||
| import com.cloud.network.dao.VpnUserDao; | import com.cloud.network.dao.VpnUserDao; | ||||||
| import com.cloud.network.lb.LoadBalancingRule; | import com.cloud.network.lb.LoadBalancingRule; | ||||||
| import com.cloud.network.lb.LoadBalancingRule.LbDestination; | import com.cloud.network.lb.LoadBalancingRule.LbDestination; | ||||||
| @ -120,6 +119,7 @@ import com.cloud.network.vpc.PrivateIpAddress; | |||||||
| import com.cloud.network.vpc.StaticRouteProfile; | import com.cloud.network.vpc.StaticRouteProfile; | ||||||
| import com.cloud.network.vpc.Vpc; | import com.cloud.network.vpc.Vpc; | ||||||
| import com.cloud.network.vpc.VpcGateway; | import com.cloud.network.vpc.VpcGateway; | ||||||
|  | import com.cloud.network.vpc.VpcVO; | ||||||
| import com.cloud.network.vpc.dao.VpcDao; | import com.cloud.network.vpc.dao.VpcDao; | ||||||
| import com.cloud.offering.NetworkOffering; | import com.cloud.offering.NetworkOffering; | ||||||
| import com.cloud.offerings.NetworkOfferingVO; | import com.cloud.offerings.NetworkOfferingVO; | ||||||
| @ -1269,10 +1269,8 @@ public class CommandSetupHelper { | |||||||
|             String[] keyValuePairs = userDataDetails.split(","); |             String[] keyValuePairs = userDataDetails.split(","); | ||||||
|             for(String pair : keyValuePairs) |             for(String pair : keyValuePairs) | ||||||
|             { |             { | ||||||
|                 String[] entry = pair.split("="); |                 final Pair<String, String> keyValue = StringUtils.getKeyValuePairWithSeparator(pair, "="); | ||||||
|                 String key = entry[0].trim(); |                 cmd.addVmData("metadata", keyValue.first(), keyValue.second()); | ||||||
|                 String value = entry[1].trim(); |  | ||||||
|                 cmd.addVmData("metadata", key, value); |  | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -275,4 +275,11 @@ public class StringUtils { | |||||||
|     public static String toCSVList(final List<String> csvList) { |     public static String toCSVList(final List<String> csvList) { | ||||||
|         return org.apache.commons.lang3.StringUtils.defaultString(org.apache.commons.lang3.StringUtils.join(csvList, ",")); |         return org.apache.commons.lang3.StringUtils.defaultString(org.apache.commons.lang3.StringUtils.join(csvList, ",")); | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     public static Pair<String, String> getKeyValuePairWithSeparator(String keyValuePair, String separator) { | ||||||
|  |         final int index = keyValuePair.indexOf(separator); | ||||||
|  |         final String key = keyValuePair.substring(0, index); | ||||||
|  |         final String value = keyValuePair.substring(index + 1); | ||||||
|  |         return new Pair<>(key.trim(), value.trim()); | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -252,4 +252,14 @@ public class StringUtilsTest { | |||||||
|         String output = StringUtils.toCSVList(Arrays.asList(input.split(","))); |         String output = StringUtils.toCSVList(Arrays.asList(input.split(","))); | ||||||
|         assertTrue(input.equals(output)); |         assertTrue(input.equals(output)); | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     public void testGetKeyValuePairWithSeparator() { | ||||||
|  |         String key = "ssh"; | ||||||
|  |         String value = "ABCD=="; | ||||||
|  |         String kp = String.format("%s=%s", key, value); | ||||||
|  |         Pair<String, String> output = StringUtils.getKeyValuePairWithSeparator(kp, "="); | ||||||
|  |         assertEquals(key, output.first()); | ||||||
|  |         assertEquals(value, output.second()); | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user