mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	changed back so everyone else can start the old way
This commit is contained in:
		
							parent
							
								
									9bb05d3ef8
								
							
						
					
					
						commit
						0fdca8be9a
					
				| @ -25,6 +25,7 @@ import com.cloud.resource.Resource; | ||||
|  * Nic represents one nic on the VM. | ||||
|  */ | ||||
| public interface Nic extends Resource { | ||||
|     boolean isDefaultNic(); | ||||
| 
 | ||||
|     String getIp4Address(); | ||||
|      | ||||
|  | ||||
| @ -194,6 +194,10 @@ public class NicProfile { | ||||
|         this.macAddress = nic.getMacAddress(); | ||||
|         this.reservationId = nic.getReservationId(); | ||||
|         this.strategy = nic.getReservationStrategy(); | ||||
|         this.deviceId = nic.getDeviceId(); | ||||
|         this.defaultNic = nic.isDefaultNic(); | ||||
|         this.broadcastUri = broadcastUri; | ||||
|         this.isolationUri = isolationUri; | ||||
|     } | ||||
| 
 | ||||
|     public NicProfile(long id, BroadcastDomainType type, Mode mode, long vmId) { | ||||
|  | ||||
| @ -531,7 +531,7 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, VirtualMach | ||||
|     @Override | ||||
|     public ConsoleProxyVO startProxy(long proxyVmId, long startEventId) { | ||||
|         try { | ||||
|             return start2(proxyVmId, startEventId); | ||||
|             return start(proxyVmId, startEventId); | ||||
|         } catch (StorageUnavailableException e) { | ||||
|             s_logger.warn("Exception while trying to start console proxy", e); | ||||
|             return null; | ||||
| @ -887,7 +887,7 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, VirtualMach | ||||
|         if (s_logger.isDebugEnabled()) | ||||
|             s_logger.debug("Assign console proxy from a newly started instance for request from data center : " + dataCenterId); | ||||
| 
 | ||||
|         Map<String, Object> context = createProxyInstance2(dataCenterId); | ||||
|         Map<String, Object> context = createProxyInstance(dataCenterId); | ||||
| 
 | ||||
|         long proxyVmId = (Long) context.get("proxyVmId"); | ||||
|         if (proxyVmId == 0) { | ||||
| @ -927,7 +927,7 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, VirtualMach | ||||
|         if (s_logger.isDebugEnabled()) | ||||
|             s_logger.debug("Assign console proxy from a newly started instance for request from data center : " + dataCenterId); | ||||
| 
 | ||||
|         Map<String, Object> context = createProxyInstance2(dataCenterId); | ||||
|         Map<String, Object> context = createProxyInstance(dataCenterId); | ||||
| 
 | ||||
|         long proxyVmId = (Long) context.get("proxyVmId"); | ||||
|         if (proxyVmId == 0) { | ||||
| @ -1468,7 +1468,7 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, VirtualMach | ||||
|                                 try { | ||||
|                                     if (proxyLock.lock(ACQUIRE_GLOBAL_LOCK_TIMEOUT_FOR_SYNC)) { | ||||
|                                         try { | ||||
|                                             readyProxy = start2(readyProxy.getId(), 0); | ||||
|                                             readyProxy = start(readyProxy.getId(), 0); | ||||
|                                         } finally { | ||||
|                                             proxyLock.unlock(); | ||||
|                                         } | ||||
|  | ||||
| @ -57,7 +57,8 @@ public abstract class HypervisorGuruBase extends AdapterBase implements Hypervis | ||||
|         ServiceOffering offering = vmProfile.getServiceOffering();   | ||||
|         VirtualMachine vm = vmProfile.getVirtualMachine(); | ||||
|          | ||||
|         VirtualMachineTO to = new VirtualMachineTO(vm.getId(), vm.getInstanceName(), vm.getType(), offering.getCpu(), offering.getSpeed(), offering.getRamSize(), offering.getRamSize(), null, vmProfile.getOs()); | ||||
|         VirtualMachineTO to = new VirtualMachineTO(vm.getId(), vm.getInstanceName(), vm.getType(), offering.getCpu(), offering.getSpeed(), offering.getRamSize() * 1024l * 1024l, offering.getRamSize() * 1024l * 1024l, null, vmProfile.getOs()); | ||||
|         to.setBootArgs(vmProfile.getBootArgs()); | ||||
|          | ||||
|         List<NicProfile> nicProfiles = vmProfile.getNics(); | ||||
|         NicTO[] nics = new NicTO[nicProfiles.size()]; | ||||
|  | ||||
| @ -302,9 +302,9 @@ public interface NetworkManager extends Manager { | ||||
|      | ||||
|     List<NetworkOfferingVO> getSystemAccountNetworkOfferings(String... offeringNames); | ||||
|      | ||||
|     List<NicProfile> allocate(VirtualMachineProfile<? extends VMInstanceVO> vm, List<Pair<NetworkConfigurationVO, NicProfile>> networks) throws InsufficientCapacityException; | ||||
|     void allocate(VirtualMachineProfile<? extends VMInstanceVO> vm, List<Pair<NetworkConfigurationVO, NicProfile>> networks) throws InsufficientCapacityException; | ||||
| 
 | ||||
|     List<NicProfile> prepare(VirtualMachineProfile<? extends VMInstanceVO> profile, DeployDestination dest, ReservationContext context) throws InsufficientNetworkCapacityException, ConcurrentOperationException, ResourceUnavailableException; | ||||
|     void prepare(VirtualMachineProfile<? extends VMInstanceVO> profile, DeployDestination dest, ReservationContext context) throws InsufficientNetworkCapacityException, ConcurrentOperationException, ResourceUnavailableException; | ||||
|     void release(VirtualMachineProfile<? extends VMInstanceVO> vmProfile); | ||||
|      | ||||
|     DomainRouter upgradeRouter(UpgradeRouterCmd cmd); | ||||
|  | ||||
| @ -17,6 +17,7 @@ | ||||
|  */ | ||||
| package com.cloud.network; | ||||
| 
 | ||||
| import java.net.URI; | ||||
| import java.util.ArrayList; | ||||
| import java.util.Arrays; | ||||
| import java.util.HashMap; | ||||
| @ -1759,9 +1760,7 @@ public class NetworkManagerImpl implements NetworkManager, DomainRouterService { | ||||
|     } | ||||
|      | ||||
|     @Override @DB | ||||
|     public List<NicProfile> allocate(VirtualMachineProfile<? extends VMInstanceVO> vm, List<Pair<NetworkConfigurationVO, NicProfile>> networks) throws InsufficientCapacityException { | ||||
|         List<NicProfile> nicProfiles = new ArrayList<NicProfile>(networks.size()); | ||||
|          | ||||
|     public void allocate(VirtualMachineProfile<? extends VMInstanceVO> vm, List<Pair<NetworkConfigurationVO, NicProfile>> networks) throws InsufficientCapacityException { | ||||
|         Transaction txn = Transaction.currentTxn(); | ||||
|         txn.start(); | ||||
|          | ||||
| @ -1809,7 +1808,7 @@ public class NetworkManagerImpl implements NetworkManager, DomainRouterService { | ||||
|              | ||||
|             deviceIds[devId] = true; | ||||
|             nics.add(vo); | ||||
|             nicProfiles.add(new NicProfile(vo, network.first(), vo.getBroadcastUri(), vo.getIsolationUri())); | ||||
|             vm.addNic(new NicProfile(vo, network.first(), vo.getBroadcastUri(), vo.getIsolationUri())); | ||||
|         } | ||||
|          | ||||
|         if (defaultNic == null && nics.size() > 2) { | ||||
| @ -1819,8 +1818,6 @@ public class NetworkManagerImpl implements NetworkManager, DomainRouterService { | ||||
|         } | ||||
|          | ||||
|         txn.commit(); | ||||
|          | ||||
|         return nicProfiles; | ||||
|     } | ||||
|      | ||||
|     protected Integer applyProfileToNic(NicVO vo, NicProfile profile, Integer deviceId) { | ||||
| @ -1933,7 +1930,7 @@ public class NetworkManagerImpl implements NetworkManager, DomainRouterService { | ||||
|     } | ||||
|      | ||||
|     @Override | ||||
|     public List<NicProfile> prepare(VirtualMachineProfile<? extends VMInstanceVO> vmProfile, DeployDestination dest, ReservationContext context) throws InsufficientNetworkCapacityException, ConcurrentOperationException, ResourceUnavailableException { | ||||
|     public void prepare(VirtualMachineProfile<? extends VMInstanceVO> vmProfile, DeployDestination dest, ReservationContext context) throws InsufficientNetworkCapacityException, ConcurrentOperationException, ResourceUnavailableException { | ||||
|         List<NicVO> nics = _nicDao.listBy(vmProfile.getId()); | ||||
|         for (NicVO nic : nics) { | ||||
|             Pair<NetworkGuru, NetworkConfigurationVO> implemented = implementNetworkConfiguration(nic.getNetworkConfigurationId(), dest, context); | ||||
| @ -1943,7 +1940,14 @@ public class NetworkManagerImpl implements NetworkManager, DomainRouterService { | ||||
|             if (nic.getReservationStrategy() == ReservationStrategy.Start) { | ||||
|                 nic.setState(Resource.State.Reserving); | ||||
|                 _nicDao.update(nic.getId(), nic); | ||||
|                 profile = toNicProfile(nic); | ||||
|                 URI broadcastUri = nic.getBroadcastUri(); | ||||
|                 if (broadcastUri == null) { | ||||
|                     config.getBroadcastUri(); | ||||
|                 } | ||||
|                  | ||||
|                 URI isolationUri = nic.getIsolationUri(); | ||||
|                       | ||||
|                 profile = new NicProfile(nic, config, broadcastUri, isolationUri); | ||||
|                 String reservationId = concierge.reserve(profile, config, vmProfile, dest); | ||||
|                 nic.setIp4Address(profile.getIp4Address()); | ||||
|                 nic.setIp6Address(profile.getIp6Address()); | ||||
| @ -1967,7 +1971,6 @@ public class NetworkManagerImpl implements NetworkManager, DomainRouterService { | ||||
| 
 | ||||
|             vmProfile.addNic(profile); | ||||
|         } | ||||
|         return vmProfile.getNics(); | ||||
|     } | ||||
|      | ||||
|     @Override | ||||
| @ -1984,12 +1987,6 @@ public class NetworkManagerImpl implements NetworkManager, DomainRouterService { | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     NicProfile toNicProfile(NicVO nic) { | ||||
|         NetworkConfiguration config = _networkConfigDao.findById(nic.getNetworkConfigurationId()); | ||||
|         NicProfile profile = new NicProfile(nic, config, nic.getBroadcastUri(), nic.getIsolationUri()); | ||||
|         return profile; | ||||
|     } | ||||
|      | ||||
|     public void release(long vmId) { | ||||
|         List<NicVO> nics = _nicDao.listBy(vmId); | ||||
|          | ||||
|  | ||||
| @ -140,7 +140,7 @@ public class GuestNetworkGuru extends AdapterBase implements NetworkGuru { | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public NicProfile allocate(NetworkConfiguration config, NicProfile nic, VirtualMachineProfile vm) | ||||
|     public NicProfile allocate(NetworkConfiguration config, NicProfile nic, VirtualMachineProfile<? extends VirtualMachine> vm) | ||||
|             throws InsufficientVirtualNetworkCapcityException, InsufficientAddressCapacityException { | ||||
|         if (config.getTrafficType() != TrafficType.Guest) { | ||||
|             return null; | ||||
|  | ||||
| @ -86,7 +86,7 @@ public class PublicNetworkGuru extends AdapterBase implements NetworkGuru { | ||||
|         DataCenter dc = dest.getDataCenter(); | ||||
|         long dcId = dc.getId(); | ||||
|          | ||||
|         if (ch.getIp4Address() != null) { | ||||
|         if (ch.getIp4Address() == null) { | ||||
|             Pair<String, VlanVO> ipAndVlan = _vlanDao.assignIpAddress(dcId, vm.getVirtualMachine().getAccountId(), vm.getVirtualMachine().getDomainId(), VlanType.VirtualNetwork, true); | ||||
|             if (ipAndVlan == null) { | ||||
|                 throw new InsufficientVirtualNetworkCapcityException("Unable to get public ip address in " + dcId); | ||||
|  | ||||
| @ -71,6 +71,7 @@ public class ItWorkVO { | ||||
|         this.managementServerId = managementServerId; | ||||
|         this.type = type; | ||||
|         this.threadName = Thread.currentThread().getName(); | ||||
|         this.state = State.Working; | ||||
|     } | ||||
| 
 | ||||
|     public String getId() { | ||||
|  | ||||
| @ -150,8 +150,7 @@ public class MauriceMoss implements VmManager, ClusterManagerListener { | ||||
|         if (s_logger.isDebugEnabled()) { | ||||
|             s_logger.debug("Allocating nics for " + vm); | ||||
|         } | ||||
|         List<NicProfile> nics = _networkMgr.allocate(vmProfile, networks); | ||||
|         vmProfile.setNics(nics); | ||||
|         _networkMgr.allocate(vmProfile, networks); | ||||
| 
 | ||||
|         if (dataDiskOfferings == null) { | ||||
|             dataDiskOfferings = new ArrayList<Pair<DiskOfferingVO, Long>>(0); | ||||
| @ -161,14 +160,13 @@ public class MauriceMoss implements VmManager, ClusterManagerListener { | ||||
|             s_logger.debug("Allocaing disks for " + vm); | ||||
|         } | ||||
|          | ||||
|         List<DiskProfile> disks = new ArrayList<DiskProfile>(dataDiskOfferings.size() + 1); | ||||
|         if (template.getFormat() == ImageFormat.ISO) { | ||||
|             disks.add(_storageMgr.allocateRawVolume(VolumeType.ROOT, "ROOT-" + vm.getId(), rootDiskOffering.first(), rootDiskOffering.second(), vm, owner)); | ||||
|             _storageMgr.allocateRawVolume(VolumeType.ROOT, "ROOT-" + vm.getId(), rootDiskOffering.first(), rootDiskOffering.second(), vm, owner); | ||||
|         } else { | ||||
|             disks.add(_storageMgr.allocateTemplatedVolume(VolumeType.ROOT, "ROOT-" + vm.getId(), rootDiskOffering.first(), template, vm, owner)); | ||||
|             _storageMgr.allocateTemplatedVolume(VolumeType.ROOT, "ROOT-" + vm.getId(), rootDiskOffering.first(), template, vm, owner); | ||||
|         } | ||||
|         for (Pair<DiskOfferingVO, Long> offering : dataDiskOfferings) { | ||||
|             disks.add(_storageMgr.allocateRawVolume(VolumeType.DATADISK, "DATA-" + vm.getId(), offering.first(), offering.second(), vm, owner)); | ||||
|             _storageMgr.allocateRawVolume(VolumeType.DATADISK, "DATA-" + vm.getId(), offering.first(), offering.second(), vm, owner); | ||||
|         } | ||||
| 
 | ||||
|         _vmDao.updateIf(vm, Event.OperationSucceeded, null); | ||||
| @ -284,10 +282,12 @@ public class MauriceMoss implements VmManager, ClusterManagerListener { | ||||
|         DataCenterDeployment plan = new DataCenterDeployment(vm.getDataCenterId(), vm.getPodId(), null, null); | ||||
|          | ||||
|         HypervisorGuru hvGuru = _hvGurus.get(template.getHypervisorType()); | ||||
|         @SuppressWarnings("unchecked") | ||||
|         VirtualMachineGuru<T> vmGuru = (VirtualMachineGuru<T>)_vmGurus.get(vm.getType()); | ||||
|          | ||||
|          | ||||
|         // Determine the VM's OS description | ||||
|         GuestOSVO guestOS = _guestOsDao.findById(vm.getGuestOSId()); | ||||
|         VirtualMachineProfileImpl<T> vmProfile = new VirtualMachineProfileImpl<T>(vm, guestOS.getDisplayName(), template, offering, null, params); | ||||
|         if (!_vmDao.updateIf(vm, Event.StartRequested, null)) { | ||||
|             throw new ConcurrentOperationException("Unable to start vm "  + vm + " due to concurrent operations"); | ||||
|         } | ||||
| @ -295,6 +295,7 @@ public class MauriceMoss implements VmManager, ClusterManagerListener { | ||||
|         ExcludeList avoids = new ExcludeList(); | ||||
|         int retry = _retry; | ||||
|         while (retry-- != 0) { // It's != so that it can match -1. | ||||
|             VirtualMachineProfileImpl<T> vmProfile = new VirtualMachineProfileImpl<T>(vm, guestOS.getDisplayName(), template, offering, null, params); | ||||
|             DeployDestination dest = null; | ||||
|             for (DeploymentPlanner planner : _planners) { | ||||
|                 dest = planner.plan(vmProfile, plan, avoids); | ||||
| @ -323,15 +324,13 @@ public class MauriceMoss implements VmManager, ClusterManagerListener { | ||||
|             } | ||||
|             _networkMgr.prepare(vmProfile, dest, context); | ||||
|              | ||||
|             vmGuru.finalizeVirtualMachineProfile(vmProfile, dest, context); | ||||
|              | ||||
|             VirtualMachineTO vmTO = hvGuru.implement(vmProfile); | ||||
|              | ||||
|             Commands cmds = new Commands(OnError.Revert); | ||||
|             cmds.addCommand(new Start2Command(vmTO)); | ||||
|              | ||||
|             @SuppressWarnings("unchecked") | ||||
|             VirtualMachineGuru<T> vmGuru = (VirtualMachineGuru<T>)_vmGurus.get(vm.getType()); | ||||
|              | ||||
|             vmGuru.finalizeDeployment(cmds, vmProfile, dest, context); | ||||
|             try { | ||||
|                 Answer[] answers = _agentMgr.send(dest.getHost().getId(), cmds); | ||||
| @ -352,7 +351,7 @@ public class MauriceMoss implements VmManager, ClusterManagerListener { | ||||
|         } | ||||
|          | ||||
|         if (s_logger.isDebugEnabled()) { | ||||
|             s_logger.debug("Creation complete for VM " + vmProfile); | ||||
|             s_logger.debug("Creation complete for VM " + vm); | ||||
|         } | ||||
|          | ||||
|         return null; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user