|
59 | 59 | import javax.xml.parsers.DocumentBuilder; |
60 | 60 | import javax.xml.parsers.ParserConfigurationException; |
61 | 61 |
|
62 | | -import com.cloud.deploy.DeploymentPlan; |
63 | | -import com.cloud.network.NetworkService; |
64 | 62 | import org.apache.cloudstack.acl.ControlledEntity; |
65 | 63 | import org.apache.cloudstack.acl.ControlledEntity.ACLType; |
66 | 64 | import org.apache.cloudstack.acl.SecurityChecker.AccessType; |
|
116 | 114 | import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProviderManager; |
117 | 115 | import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStore; |
118 | 116 | import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreDriver; |
| 117 | +import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotDataFactory; |
| 118 | +import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotInfo; |
119 | 119 | import org.apache.cloudstack.engine.subsystem.api.storage.VolumeDataFactory; |
120 | 120 | import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo; |
121 | 121 | import org.apache.cloudstack.engine.subsystem.api.storage.VolumeService; |
|
140 | 140 | import org.apache.cloudstack.userdata.UserDataManager; |
141 | 141 | import org.apache.cloudstack.utils.bytescale.ByteScaleUtils; |
142 | 142 | import org.apache.cloudstack.utils.security.ParserUtils; |
| 143 | +import org.apache.cloudstack.vm.UnmanagedVMsManager; |
143 | 144 | import org.apache.cloudstack.vm.lease.VMLeaseManager; |
144 | 145 | import org.apache.cloudstack.vm.schedule.VMScheduleManager; |
145 | | -import org.apache.cloudstack.vm.UnmanagedVMsManager; |
146 | 146 | import org.apache.commons.collections.CollectionUtils; |
147 | 147 | import org.apache.commons.collections.MapUtils; |
148 | 148 | import org.apache.commons.lang.math.NumberUtils; |
|
211 | 211 | import com.cloud.dc.dao.VlanDao; |
212 | 212 | import com.cloud.deploy.DataCenterDeployment; |
213 | 213 | import com.cloud.deploy.DeployDestination; |
| 214 | +import com.cloud.deploy.DeploymentPlan; |
214 | 215 | import com.cloud.deploy.DeploymentPlanner; |
215 | 216 | import com.cloud.deploy.DeploymentPlanner.ExcludeList; |
216 | 217 | import com.cloud.deploy.DeploymentPlanningManager; |
|
250 | 251 | import com.cloud.host.HostVO; |
251 | 252 | import com.cloud.host.Status; |
252 | 253 | import com.cloud.host.dao.HostDao; |
| 254 | +import com.cloud.hypervisor.Hypervisor; |
253 | 255 | import com.cloud.hypervisor.Hypervisor.HypervisorType; |
254 | 256 | import com.cloud.hypervisor.dao.HypervisorCapabilitiesDao; |
255 | 257 | import com.cloud.hypervisor.kvm.dpdk.DpdkHelper; |
|
261 | 263 | import com.cloud.network.Network.Provider; |
262 | 264 | import com.cloud.network.Network.Service; |
263 | 265 | import com.cloud.network.NetworkModel; |
| 266 | +import com.cloud.network.NetworkService; |
264 | 267 | import com.cloud.network.Networks.TrafficType; |
265 | 268 | import com.cloud.network.PhysicalNetwork; |
266 | 269 | import com.cloud.network.as.AutoScaleManager; |
|
397 | 400 | import com.cloud.vm.snapshot.VMSnapshotVO; |
398 | 401 | import com.cloud.vm.snapshot.dao.VMSnapshotDao; |
399 | 402 |
|
400 | | -import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotDataFactory; |
401 | | -import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotInfo; |
402 | | - |
403 | 403 |
|
404 | 404 | public class UserVmManagerImpl extends ManagerBase implements UserVmManager, VirtualMachineGuru, Configurable { |
405 | 405 |
|
@@ -967,6 +967,10 @@ public UserVm resetVMUserData(ResetVMUserDataCmd cmd) throws ResourceUnavailable |
967 | 967 | if (UserVmManager.SHAREDFSVM.equals(userVm.getUserVmType())) { |
968 | 968 | throw new InvalidParameterValueException("Operation not supported on Shared FileSystem Instance"); |
969 | 969 | } |
| 970 | + if (Hypervisor.HypervisorType.External.equals(userVm.getHypervisorType())) { |
| 971 | + throw new InvalidParameterValueException(String.format("Operation not supported for %s hypervisor Instance", |
| 972 | + Hypervisor.HypervisorType.External.name())); |
| 973 | + } |
970 | 974 | _accountMgr.checkAccess(caller, null, true, userVm); |
971 | 975 |
|
972 | 976 | VMTemplateVO template = _templateDao.findByIdIncludingRemoved(userVm.getTemplateId()); |
@@ -1014,6 +1018,10 @@ public UserVm resetVMSSHKey(ResetVMSSHKeyCmd cmd) throws ResourceUnavailableExce |
1014 | 1018 | if (UserVmManager.SHAREDFSVM.equals(userVm.getUserVmType())) { |
1015 | 1019 | throw new InvalidParameterValueException("Operation not supported on Shared FileSystem Instance"); |
1016 | 1020 | } |
| 1021 | + if (Hypervisor.HypervisorType.External.equals(userVm.getHypervisorType())) { |
| 1022 | + throw new InvalidParameterValueException(String.format("Operation not supported for %s hypervisor Instance", |
| 1023 | + Hypervisor.HypervisorType.External.name())); |
| 1024 | + } |
1017 | 1025 |
|
1018 | 1026 | VMTemplateVO template = _templateDao.findByIdIncludingRemoved(userVm.getTemplateId()); |
1019 | 1027 |
|
@@ -1945,6 +1953,10 @@ public UserVm upgradeVirtualMachine(ScaleVMCmd cmd) throws ResourceUnavailableEx |
1945 | 1953 | if (vm == null) { |
1946 | 1954 | throw new InvalidParameterValueException("Unable to find VM's UUID"); |
1947 | 1955 | } |
| 1956 | + if (Hypervisor.HypervisorType.External.equals(vm.getHypervisorType())) { |
| 1957 | + throw new InvalidParameterValueException(String.format("Operation not supported for %s hypervisor Instance", |
| 1958 | + Hypervisor.HypervisorType.External.name())); |
| 1959 | + } |
1948 | 1960 | CallContext.current().setEventDetails("Vm Id: " + vm.getUuid()); |
1949 | 1961 |
|
1950 | 1962 | Map<String, String> cmdDetails = cmd.getDetails(); |
@@ -8526,6 +8538,10 @@ public UserVm restoreVM(RestoreVMCmd cmd) throws InsufficientCapacityException, |
8526 | 8538 | if (UserVmManager.SHAREDFSVM.equals(vm.getUserVmType())) { |
8527 | 8539 | throw new InvalidParameterValueException("Operation not supported on Shared FileSystem Instance"); |
8528 | 8540 | } |
| 8541 | + if (Hypervisor.HypervisorType.External.equals(vm.getHypervisorType())) { |
| 8542 | + throw new InvalidParameterValueException(String.format("Operation not supported for %s hypervisor Instance", |
| 8543 | + Hypervisor.HypervisorType.External.name())); |
| 8544 | + } |
8529 | 8545 | _accountMgr.checkAccess(caller, null, true, vm); |
8530 | 8546 |
|
8531 | 8547 | VMTemplateVO template; |
|
0 commit comments