diff --git a/.github/boring-cyborg.yml b/.github/boring-cyborg.yml index dfab81d0f79d..90fd24c8180a 100644 --- a/.github/boring-cyborg.yml +++ b/.github/boring-cyborg.yml @@ -46,8 +46,6 @@ labelPRBasedOnFilePath: "component:dpdk": - server/src/main/java/com/cloud/hypervisor/kvm/dpdk/* - plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/dpdk/* - "component:hyperv": - - plugins/hypervisors/hyperv/* "component:integration-test": - test/integration/* "component:ipv6": diff --git a/api/src/main/java/com/cloud/hypervisor/Hypervisor.java b/api/src/main/java/com/cloud/hypervisor/Hypervisor.java index 1f8741d3b7b2..b5b2ab8ff1ea 100644 --- a/api/src/main/java/com/cloud/hypervisor/Hypervisor.java +++ b/api/src/main/java/com/cloud/hypervisor/Hypervisor.java @@ -47,6 +47,8 @@ public enum Functionality { public static final HypervisorType XenServer = new HypervisorType("XenServer", ImageFormat.VHD, EnumSet.of(RootDiskSizeOverride, VmStorageMigration)); public static final HypervisorType KVM = new HypervisorType("KVM", ImageFormat.QCOW2, EnumSet.of(DirectDownloadTemplate, RootDiskSizeOverride, VmStorageMigration)); public static final HypervisorType VMware = new HypervisorType("VMware", ImageFormat.OVA, EnumSet.of(RootDiskSizeOverride, VmStorageMigration, VmStorageMigrationWithSnapshots)); + /** Hyper-V support has been removed; kept so existing database records can still be read. */ + @Deprecated public static final HypervisorType Hyperv = new HypervisorType("Hyperv"); public static final HypervisorType VirtualBox = new HypervisorType("VirtualBox"); public static final HypervisorType Parralels = new HypervisorType("Parralels"); diff --git a/api/src/main/java/org/apache/cloudstack/api/ApiConstants.java b/api/src/main/java/org/apache/cloudstack/api/ApiConstants.java index 7485029f22cb..266e0ab40851 100644 --- a/api/src/main/java/org/apache/cloudstack/api/ApiConstants.java +++ b/api/src/main/java/org/apache/cloudstack/api/ApiConstants.java @@ -1154,7 +1154,6 @@ public class ApiConstants { public static final String AUTOSCALE_VMGROUP_NAME = "autoscalevmgroupname"; public static final String BAREMETAL_DISCOVER_NAME = "baremetaldiscovername"; public static final String BAREMETAL_RCT_URL = "baremetalrcturl"; - public static final String UCS_DN = "ucsdn"; public static final String GSLB_PROVIDER = "gslbprovider"; public static final String EXCLUSIVE_GSLB_PROVIDER = "isexclusivegslbprovider"; public static final String GSLB_PROVIDER_PUBLIC_IP = "gslbproviderpublicip"; @@ -1171,10 +1170,6 @@ public class ApiConstants { public static final String GUEST_VM_CIDR = "guestvmcidr"; public static final String NETWORK_CIDR = "networkcidr"; public static final String RESERVED_IP_RANGE = "reservediprange"; - public static final String UCS_MANAGER_ID = "ucsmanagerid"; - public static final String UCS_PROFILE_DN = "profiledn"; - public static final String UCS_BLADE_DN = "bladedn"; - public static final String UCS_BLADE_ID = "bladeid"; public static final String VM_GUEST_IP = "vmguestip"; public static final String HEALTHCHECK_FAILED = "healthchecksfailed"; public static final String HEALTHCHECK_RESPONSE_TIMEOUT = "responsetimeout"; diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/AddClusterCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/AddClusterCmd.java index d8fa2123d228..021870ec189e 100644 --- a/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/AddClusterCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/cluster/AddClusterCmd.java @@ -65,7 +65,7 @@ public class AddClusterCmd extends BaseCmd { @Parameter(name = ApiConstants.HYPERVISOR, type = CommandType.STRING, required = true, - description = "Hypervisor type of the cluster: XenServer,KVM,VMware,Hyperv,BareMetal,Simulator,Ovm3,External") + description = "Hypervisor type of the cluster: XenServer,KVM,VMware,BareMetal,Simulator,Ovm3,External") private String hypervisor; @Parameter(name = ApiConstants.ARCH, type = CommandType.STRING, diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ListHostsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ListHostsCmd.java index 8f5e6c784d6e..0f7daed76278 100644 --- a/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ListHostsCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/host/ListHostsCmd.java @@ -104,7 +104,7 @@ public class ListHostsCmd extends BaseListCmd { @Parameter(name = ApiConstants.HA_HOST, type = CommandType.BOOLEAN, description = "If true, list only hosts dedicated to HA") private Boolean haHost; - @Parameter(name = ApiConstants.HYPERVISOR, type = CommandType.STRING, description = "Hypervisor type of host: XenServer,KVM,VMware,Hyperv,BareMetal,Simulator") + @Parameter(name = ApiConstants.HYPERVISOR, type = CommandType.STRING, description = "Hypervisor type of host: XenServer,KVM,VMware,BareMetal,Simulator") private String hypervisor; @Parameter(name = ApiConstants.MANAGEMENT_SERVER_ID, type = CommandType.UUID, entityType = ManagementServerResponse.class, description = "the id of the management server", since="4.21.0") diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/AddTrafficTypeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/AddTrafficTypeCmd.java index 50abd953e63f..a36b5f754ea7 100644 --- a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/AddTrafficTypeCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/AddTrafficTypeCmd.java @@ -67,6 +67,7 @@ public class AddTrafficTypeCmd extends BaseAsyncCreateCmd { description = "The network name label of the physical device dedicated to this traffic on a VMware host") private String vmwareLabel; + @Deprecated @Parameter(name = ApiConstants.HYPERV_NETWORK_LABEL, type = CommandType.STRING, description = "The network name label of the physical device dedicated to this traffic on a Hyperv host") @@ -108,10 +109,6 @@ public String getVmwareLabel() { return vmwareLabel; } - public String getHypervLabel() { - return hypervLabel; - } - public String getSimulatorLabel() { //simulators will have no labels return null; @@ -163,7 +160,7 @@ public void execute() { public void create() throws ResourceAllocationException { PhysicalNetworkTrafficType result = _networkService.addTrafficTypeToPhysicalNetwork(getPhysicalNetworkId(), getTrafficType(), getIsolationMethod(), getXenLabel(), getKvmLabel(), getVmwareLabel(), - getSimulatorLabel(), getVlan(), getHypervLabel(), getOvm3Label()); + getSimulatorLabel(), getVlan(), null, getOvm3Label()); if (result != null) { setEntityId(result.getId()); setEntityUuid(result.getUuid()); diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/UpdateTrafficTypeCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/UpdateTrafficTypeCmd.java index 29b06a3b5259..7d5bebd398fb 100644 --- a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/UpdateTrafficTypeCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/UpdateTrafficTypeCmd.java @@ -57,6 +57,7 @@ public class UpdateTrafficTypeCmd extends BaseAsyncCmd { description = "The network name label of the physical device dedicated to this traffic on a VMware host") private String vmwareLabel; + @Deprecated @Parameter(name = ApiConstants.HYPERV_NETWORK_LABEL, type = CommandType.STRING, description = "The network name label of the physical device dedicated to this traffic on a Hyperv host") @@ -87,10 +88,6 @@ public String getVmwareLabel() { return vmwareLabel; } - public String getHypervLabel() { - return hypervLabel; - } - public String getOvm3Label() { return ovm3Label; } @@ -106,7 +103,7 @@ public long getEntityOwnerId() { @Override public void execute() { - PhysicalNetworkTrafficType result = _networkService.updatePhysicalNetworkTrafficType(getId(), getXenLabel(), getKvmLabel(), getVmwareLabel(), getHypervLabel(), getOvm3Label()); + PhysicalNetworkTrafficType result = _networkService.updatePhysicalNetworkTrafficType(getId(), getXenLabel(), getKvmLabel(), getVmwareLabel(), null, getOvm3Label()); if (result != null) { TrafficTypeResponse response = _responseGenerator.createTrafficTypeResponse(result); response.setResponseName(getCommandName()); diff --git a/api/src/main/java/org/apache/cloudstack/api/response/TrafficTypeResponse.java b/api/src/main/java/org/apache/cloudstack/api/response/TrafficTypeResponse.java index 2b8af97f160e..33b8d2b8df4e 100644 --- a/api/src/main/java/org/apache/cloudstack/api/response/TrafficTypeResponse.java +++ b/api/src/main/java/org/apache/cloudstack/api/response/TrafficTypeResponse.java @@ -52,10 +52,6 @@ public class TrafficTypeResponse extends BaseResponse { @Param(description = "The Network name label of the physical device dedicated to this traffic on a VMware host") private String vmwareNetworkLabel; - @SerializedName(ApiConstants.HYPERV_NETWORK_LABEL) - @Param(description = "The Network name label of the physical device dedicated to this traffic on a HyperV host") - private String hypervNetworkLabel; - @SerializedName(ApiConstants.VLAN) @Param(description = "The VLAN id to be used for Management traffic by VMware host") private String vlan; @@ -105,18 +101,10 @@ public String getKvmLabel() { return kvmNetworkLabel; } - public String getHypervLabel() { - return hypervNetworkLabel; - } - public void setXenLabel(String xenLabel) { this.xenNetworkLabel = xenLabel; } - public void setHypervLabel(String hypervLabel) { - this.hypervNetworkLabel = hypervLabel; - } - public void setKvmLabel(String kvmLabel) { this.kvmNetworkLabel = kvmLabel; } diff --git a/client/pom.xml b/client/pom.xml index cc031a4912b1..6bab5ecb5c15 100644 --- a/client/pom.xml +++ b/client/pom.xml @@ -331,11 +331,6 @@ cloud-plugin-hypervisor-baremetal ${project.version} - - org.apache.cloudstack - cloud-plugin-hypervisor-ucs - ${project.version} - org.apache.cloudstack cloud-plugin-hypervisor-kvm @@ -347,11 +342,6 @@ - - org.apache.cloudstack - cloud-plugin-hypervisor-hyperv - ${project.version} - org.apache.cloudstack cloud-plugin-hypervisor-external diff --git a/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java b/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java index 8c9a1653a260..40377ea8fbb2 100755 --- a/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java +++ b/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java @@ -2075,7 +2075,7 @@ public boolean getExecuteInSequence(final HypervisorType hypervisorType) { return ExecuteInSequence.value(); } - if (Set.of(HypervisorType.KVM, HypervisorType.XenServer, HypervisorType.Hyperv, HypervisorType.LXC).contains(hypervisorType)) { + if (Set.of(HypervisorType.KVM, HypervisorType.XenServer, HypervisorType.LXC).contains(hypervisorType)) { return false; } else if (hypervisorType.equals(HypervisorType.VMware)) { return StorageManager.shouldExecuteInSequenceOnVmware(); @@ -5548,8 +5548,7 @@ private void handlePowerOffReportWithNoPendingJobsOnVM(final VMInstanceVO vm) { , vm, vm.getState(), vm.getPowerState()); if((HighAvailabilityManager.ForceHA.value() || vm.isHaEnabled()) && vm.getState() == State.Running && HaVmRestartHostUp.value() - && vm.getHypervisorType() != HypervisorType.VMware - && vm.getHypervisorType() != HypervisorType.Hyperv) { + && vm.getHypervisorType() != HypervisorType.VMware) { logger.info("Detected out-of-band stop of a HA enabled VM {}, will schedule restart.", vm); if (!_haMgr.hasPendingHaWork(vm.getId())) { _haMgr.scheduleRestart(vm, true); diff --git a/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java b/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java index 2b9b41b6e8ac..ee021484dc9c 100644 --- a/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java +++ b/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java @@ -1328,8 +1328,6 @@ private ImageFormat getSupportedImageFormatForCluster(HypervisorType hyperType) return ImageFormat.OVA; } else if (hyperType == HypervisorType.Ovm) { return ImageFormat.RAW; - } else if (hyperType == HypervisorType.Hyperv) { - return ImageFormat.VHDX; } else { return null; } @@ -1350,16 +1348,7 @@ protected ImageFormat getSupportedImageFormatForCluster(HypervisorType hyperType } private boolean isSupportedImageFormatForCluster(VolumeInfo volume, HypervisorType rootDiskHyperType) { - ImageFormat volumeFormat = volume.getFormat(); - if (rootDiskHyperType == HypervisorType.Hyperv) { - if (volumeFormat.equals(ImageFormat.VHDX) || volumeFormat.equals(ImageFormat.VHD)) { - return true; - } else { - return false; - } - } else { - return volume.getFormat().equals(getSupportedImageFormatForCluster(rootDiskHyperType)); - } + return volume.getFormat().equals(getSupportedImageFormatForCluster(rootDiskHyperType)); } private VolumeInfo copyVolume(StoragePool rootDiskPool, VolumeInfo volumeInfo, VirtualMachine vm, VirtualMachineTemplate rootDiskTmplt, DataCenter dcVO, Pod pod, DiskOffering diskVO, diff --git a/engine/schema/pom.xml b/engine/schema/pom.xml index 6e078d7ec9f8..d8f3457256fc 100644 --- a/engine/schema/pom.xml +++ b/engine/schema/pom.xml @@ -110,7 +110,6 @@ templateList.add("systemvmtemplate-${csVersion}.${patch}-x86_64-vmware") templateList.add("systemvmtemplate-${csVersion}.${patch}-x86_64-xen") templateList.add("systemvmtemplate-${csVersion}.${patch}-x86_64-ovm") - templateList.add("systemvmtemplate-${csVersion}.${patch}-x86_64-hyperv") File file = new File("./engine/schema/dist/systemvm-templates/sha512sum.txt") def lines = file.readLines() for (template in templateList) { @@ -340,41 +339,5 @@ - - download-hyperv-systemvm-template - - - systemvm-hyperv - - - - - - org.apache.maven.plugins - maven-resources-plugin - ${cs.resources-plugin.version} - - - com.googlecode.maven-download-plugin - download-maven-plugin - 1.6.3 - - - download-hyperv-template - - wget - - - true - ${project.systemvm.template.location}/${cs.version}/systemvmtemplate-${cs.version}.${patch.version}-x86_64-hyperv.vhd.zip - ${basedir}/dist/systemvm-templates/ - ${hyperv.checksum} - - - - - - - diff --git a/engine/schema/src/main/java/com/cloud/network/dao/PhysicalNetworkTrafficTypeDaoImpl.java b/engine/schema/src/main/java/com/cloud/network/dao/PhysicalNetworkTrafficTypeDaoImpl.java index fdd827ffeeef..2af47b37194a 100644 --- a/engine/schema/src/main/java/com/cloud/network/dao/PhysicalNetworkTrafficTypeDaoImpl.java +++ b/engine/schema/src/main/java/com/cloud/network/dao/PhysicalNetworkTrafficTypeDaoImpl.java @@ -127,8 +127,6 @@ public String getNetworkTag(long physicalNetworkId, TrafficType trafficType, Hyp sc = ovmAllFieldsSearch.create(); } else if (hType == HypervisorType.BareMetal || hType == HypervisorType.External) { return null; - } else if (hType == HypervisorType.Hyperv) { - sc = hypervAllFieldsSearch.create(); } else if (hType == HypervisorType.Ovm3) { sc = ovm3AllFieldsSearch.create(); } else { diff --git a/engine/schema/src/main/java/com/cloud/upgrade/SystemVmTemplateRegistration.java b/engine/schema/src/main/java/com/cloud/upgrade/SystemVmTemplateRegistration.java index 27005dfda110..2143a17668f1 100644 --- a/engine/schema/src/main/java/com/cloud/upgrade/SystemVmTemplateRegistration.java +++ b/engine/schema/src/main/java/com/cloud/upgrade/SystemVmTemplateRegistration.java @@ -309,7 +309,6 @@ public void setUpdated(Date updated) { new Pair<>(Hypervisor.HypervisorType.KVM, CPU.CPUArch.arm64), new Pair<>(Hypervisor.HypervisorType.VMware, CPU.CPUArch.amd64), new Pair<>(Hypervisor.HypervisorType.XenServer, CPU.CPUArch.amd64), - new Pair<>(Hypervisor.HypervisorType.Hyperv, CPU.CPUArch.amd64), new Pair<>(Hypervisor.HypervisorType.LXC, CPU.CPUArch.amd64), new Pair<>(Hypervisor.HypervisorType.Ovm3, CPU.CPUArch.amd64) ); @@ -321,7 +320,6 @@ public void setUpdated(Date updated) { ROUTER_TEMPLATE_CONFIGURATION_NAMES.put(Hypervisor.HypervisorType.KVM, "router.template.kvm"); ROUTER_TEMPLATE_CONFIGURATION_NAMES.put(Hypervisor.HypervisorType.VMware, "router.template.vmware"); ROUTER_TEMPLATE_CONFIGURATION_NAMES.put(Hypervisor.HypervisorType.XenServer, "router.template.xenserver"); - ROUTER_TEMPLATE_CONFIGURATION_NAMES.put(Hypervisor.HypervisorType.Hyperv, "router.template.hyperv"); ROUTER_TEMPLATE_CONFIGURATION_NAMES.put(Hypervisor.HypervisorType.LXC, "router.template.lxc"); ROUTER_TEMPLATE_CONFIGURATION_NAMES.put(Hypervisor.HypervisorType.Ovm3, "router.template.ovm3"); } @@ -331,7 +329,6 @@ public void setUpdated(Date updated) { HYPERVISOR_IMAGE_FORMAT_MAP.put(Hypervisor.HypervisorType.KVM, ImageFormat.QCOW2); HYPERVISOR_IMAGE_FORMAT_MAP.put(Hypervisor.HypervisorType.XenServer, ImageFormat.VHD); HYPERVISOR_IMAGE_FORMAT_MAP.put(Hypervisor.HypervisorType.VMware, ImageFormat.OVA); - HYPERVISOR_IMAGE_FORMAT_MAP.put(Hypervisor.HypervisorType.Hyperv, ImageFormat.VHD); HYPERVISOR_IMAGE_FORMAT_MAP.put(Hypervisor.HypervisorType.LXC, ImageFormat.QCOW2); HYPERVISOR_IMAGE_FORMAT_MAP.put(Hypervisor.HypervisorType.Ovm3, ImageFormat.RAW); } @@ -341,7 +338,6 @@ public void setUpdated(Date updated) { hypervisorGuestOsMap.put(Hypervisor.HypervisorType.KVM, LINUX_12_ID); hypervisorGuestOsMap.put(Hypervisor.HypervisorType.XenServer, OTHER_LINUX_ID); hypervisorGuestOsMap.put(Hypervisor.HypervisorType.VMware, OTHER_LINUX_ID); - hypervisorGuestOsMap.put(Hypervisor.HypervisorType.Hyperv, LINUX_12_ID); hypervisorGuestOsMap.put(Hypervisor.HypervisorType.LXC, LINUX_12_ID); hypervisorGuestOsMap.put(Hypervisor.HypervisorType.Ovm3, LINUX_12_ID); } @@ -704,7 +700,6 @@ protected void updateHypervisorGuestOsMap() { LOGGER.debug("Updating system VM Template guest OS [{}] ID", DEFAULT_SYSTEM_VM_GUEST_OS_NAME); SystemVmTemplateRegistration.LINUX_12_ID = Math.toIntExact(guestOS.getId()); hypervisorGuestOsMap.put(Hypervisor.HypervisorType.KVM, LINUX_12_ID); - hypervisorGuestOsMap.put(Hypervisor.HypervisorType.Hyperv, LINUX_12_ID); hypervisorGuestOsMap.put(Hypervisor.HypervisorType.LXC, LINUX_12_ID); hypervisorGuestOsMap.put(Hypervisor.HypervisorType.Ovm3, LINUX_12_ID); } catch (Exception e) { diff --git a/engine/schema/src/main/resources/META-INF/db/schema-42300to2400.sql b/engine/schema/src/main/resources/META-INF/db/schema-42300to2400.sql index 3365f1f855ba..7a06c1052224 100644 --- a/engine/schema/src/main/resources/META-INF/db/schema-42300to2400.sql +++ b/engine/schema/src/main/resources/META-INF/db/schema-42300to2400.sql @@ -239,3 +239,7 @@ CREATE TABLE IF NOT EXISTS `cloud`.`instance_boot_group_details` ( PRIMARY KEY (`id`), CONSTRAINT `fk_instance_boot_group_details__group_id` FOREIGN KEY (`boot_group_id`) REFERENCES `instance_boot_group` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- UCS and Hyper-V hypervisor plugins are no longer built +DELETE FROM `cloud`.`configuration` WHERE name = 'ucs.sync.blade.interval'; +DELETE FROM `cloud`.`configuration` WHERE name IN ('hyperv.public.network.device', 'hyperv.private.network.device', 'hyperv.guest.network.device', 'router.template.hyperv'); diff --git a/engine/schema/src/test/java/com/cloud/upgrade/SystemVmTemplateRegistrationTest.java b/engine/schema/src/test/java/com/cloud/upgrade/SystemVmTemplateRegistrationTest.java index dfc67b1dece3..e4ef0eddb7a4 100644 --- a/engine/schema/src/test/java/com/cloud/upgrade/SystemVmTemplateRegistrationTest.java +++ b/engine/schema/src/test/java/com/cloud/upgrade/SystemVmTemplateRegistrationTest.java @@ -1553,7 +1553,6 @@ public void updateHypervisorGuestOsMap_UpdatesGuestOsMapSuccessfully() { verify(guestOSDao).findOneByDisplayName(DEFAULT_SYSTEM_VM_GUEST_OS_NAME); assertEquals(10, SystemVmTemplateRegistration.LINUX_12_ID.intValue()); assertEquals(10, SystemVmTemplateRegistration.hypervisorGuestOsMap.get(Hypervisor.HypervisorType.KVM).intValue()); - assertEquals(10, SystemVmTemplateRegistration.hypervisorGuestOsMap.get(Hypervisor.HypervisorType.Hyperv).intValue()); assertEquals(10, SystemVmTemplateRegistration.hypervisorGuestOsMap.get(Hypervisor.HypervisorType.LXC).intValue()); assertEquals(10, SystemVmTemplateRegistration.hypervisorGuestOsMap.get(Hypervisor.HypervisorType.Ovm3).intValue()); } diff --git a/engine/schema/templateConfig.sh b/engine/schema/templateConfig.sh index 7a8283e77c1c..3c732310a228 100755 --- a/engine/schema/templateConfig.sh +++ b/engine/schema/templateConfig.sh @@ -114,7 +114,6 @@ if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then [kvm-aarch64]="aarch64-kvm.qcow2.bz2" [vmware]="x86_64-vmware.ova" [xenserver]="x86_64-xen.vhd.bz2" - [hyperv]="x86_64-hyperv.vhd.zip" [lxc]="x86_64-kvm.qcow2.bz2" [ovm3]="x86_64-ovm.raw.bz2" ) diff --git a/engine/storage/src/main/java/org/apache/cloudstack/storage/endpoint/DefaultEndPointSelector.java b/engine/storage/src/main/java/org/apache/cloudstack/storage/endpoint/DefaultEndPointSelector.java index 0ce2cedb944c..77f6ee32517d 100644 --- a/engine/storage/src/main/java/org/apache/cloudstack/storage/endpoint/DefaultEndPointSelector.java +++ b/engine/storage/src/main/java/org/apache/cloudstack/storage/endpoint/DefaultEndPointSelector.java @@ -603,7 +603,7 @@ public EndPoint select(DataObject object, StorageAction action, boolean encrypti } case MIGRATEVOLUME: { VolumeInfo volume = (VolumeInfo) object; - if (volume.getHypervisorType() == Hypervisor.HypervisorType.Hyperv || volume.getHypervisorType() == Hypervisor.HypervisorType.VMware) { + if (volume.getHypervisorType() == Hypervisor.HypervisorType.VMware) { VirtualMachine vm = volume.getAttachedVM(); if ((vm != null) && (vm.getState() == VirtualMachine.State.Running)) { Long hostId = vm.getHostId(); diff --git a/packaging/package.sh b/packaging/package.sh index 1118c4aea5e7..84080978f2cc 100755 --- a/packaging/package.sh +++ b/packaging/package.sh @@ -36,7 +36,7 @@ Optional arguments: -s, --simulator string Build package for Simulator ("default"|"DEFAULT"|"simulator"|"SIMULATOR") (default "default") -b, --brand string Set branding to be used in package name (it will override any branding string in POM version) -T, --use-timestamp Use epoch timestamp instead of SNAPSHOT in the package name (if not provided, use "SNAPSHOT") - -t --templates Passes necessary flag to package the required templates. Comma separated string - kvm,xen,vmware,ovm,hyperv + -t --templates Passes necessary flag to package the required templates. Comma separated string - kvm,xen,vmware,ovm Other arguments: -h, --help Display this help message and exit diff --git a/plugins/network-elements/internal-loadbalancer/src/main/java/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java b/plugins/network-elements/internal-loadbalancer/src/main/java/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java index cda139b5a62b..2718c5d1f4c6 100644 --- a/plugins/network-elements/internal-loadbalancer/src/main/java/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java +++ b/plugins/network-elements/internal-loadbalancer/src/main/java/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java @@ -16,7 +16,6 @@ // under the License. package org.apache.cloudstack.network.lb; -import static com.cloud.hypervisor.Hypervisor.HypervisorType.Hyperv; import static com.cloud.hypervisor.Hypervisor.HypervisorType.KVM; import static com.cloud.hypervisor.Hypervisor.HypervisorType.LXC; import static com.cloud.hypervisor.Hypervisor.HypervisorType.VMware; @@ -764,8 +763,6 @@ protected String getRouterTemplateForHypervisor(HypervisorType hypervisorType, l templateName = VirtualNetworkApplianceManager.RouterTemplateKvm.valueIn(dataCenterId); } else if (VMware.equals(hypervisorType)) { templateName = VirtualNetworkApplianceManager.RouterTemplateVmware.valueIn(dataCenterId); - } else if (Hyperv.equals(hypervisorType)) { - templateName = VirtualNetworkApplianceManager.RouterTemplateHyperV.valueIn(dataCenterId); } else if (LXC.equals(hypervisorType)) { templateName = VirtualNetworkApplianceManager.RouterTemplateLxc.valueIn(dataCenterId); } diff --git a/plugins/pom.xml b/plugins/pom.xml index 92768827f658..7367711fb146 100755 --- a/plugins/pom.xml +++ b/plugins/pom.xml @@ -87,9 +87,7 @@ hypervisors/baremetal hypervisors/external - hypervisors/hyperv hypervisors/kvm - hypervisors/ucs hypervisors/xenserver integrations/cloudian diff --git a/pom.xml b/pom.xml index fb0f593ad58c..54418ef750f0 100644 --- a/pom.xml +++ b/pom.xml @@ -1101,9 +1101,6 @@ debian/source/format dist/console-proxy/js/jquery.js engine/schema/dist/** - plugins/hypervisors/hyperv/conf/agent.properties - plugins/hypervisors/hyperv/conf/uefi.properties - plugins/hypervisors/hyperv/DotNet/ServerResource/** scripts/installer/windows/acs_license.rtf scripts/vm/systemvm/id_rsa.cloud services/console-proxy/rdpconsole/src/test/doc/rdp-key.pem diff --git a/server/src/main/java/com/cloud/api/ApiDBUtils.java b/server/src/main/java/com/cloud/api/ApiDBUtils.java index bb9867fa622c..81b84fa3bcab 100644 --- a/server/src/main/java/com/cloud/api/ApiDBUtils.java +++ b/server/src/main/java/com/cloud/api/ApiDBUtils.java @@ -1328,16 +1328,7 @@ public static HypervisorType getVolumeHyperType(long volumeId) { public static HypervisorType getHypervisorTypeFromFormat(long dcId, ImageFormat format){ HypervisorType type = s_storageMgr.getHypervisorTypeFromFormat(format); - if (format == ImageFormat.VHD) { - // Xenserver and Hyperv both support vhd format. Additionally hyperv is only supported - // in a dc/zone if there aren't any other hypervisor types present in the zone). If the - // format type is VHD check is any xenserver clusters are present. If not, we assume it - // is a hyperv zone and update the type. - List xenClusters = s_clusterDao.listByDcHyType(dcId, HypervisorType.XenServer.toString()); - if (xenClusters.isEmpty()) { - type = HypervisorType.Hyperv; - } - } if (format == ImageFormat.RAW) { + if (format == ImageFormat.RAW) { // Currently, KVM only supports RBD, PowerFlex, and FiberChannel images of type RAW. // This results in a weird collision with OVM volumes which // can only be raw, thus making KVM RBD volumes show up as OVM diff --git a/server/src/main/java/com/cloud/api/ApiResponseHelper.java b/server/src/main/java/com/cloud/api/ApiResponseHelper.java index 345f7e5f628e..1b2b3ecfad39 100644 --- a/server/src/main/java/com/cloud/api/ApiResponseHelper.java +++ b/server/src/main/java/com/cloud/api/ApiResponseHelper.java @@ -3379,7 +3379,6 @@ public TrafficTypeResponse createTrafficTypeResponse(PhysicalNetworkTrafficType response.setXenLabel(result.getXenNetworkLabel()); response.setKvmLabel(result.getKvmNetworkLabel()); response.setVmwareLabel(result.getVmwareNetworkLabel()); - response.setHypervLabel(result.getHypervNetworkLabel()); response.setOvm3Label(result.getOvm3NetworkLabel()); response.setVlan(result.getVlan()); diff --git a/server/src/main/java/com/cloud/configuration/Config.java b/server/src/main/java/com/cloud/configuration/Config.java index 2f4f7fa8ac5d..717c8ea1710c 100644 --- a/server/src/main/java/com/cloud/configuration/Config.java +++ b/server/src/main/java/com/cloud/configuration/Config.java @@ -547,7 +547,7 @@ public enum Config { ManagementServer.class, String.class, "hypervisor.list", - HypervisorType.KVM + "," + HypervisorType.VMware + "," + HypervisorType.XenServer + "," + HypervisorType.Hyperv + "," + + HypervisorType.KVM + "," + HypervisorType.VMware + "," + HypervisorType.XenServer + "," + HypervisorType.BareMetal + "," + HypervisorType.Ovm + "," + HypervisorType.LXC + "," + HypervisorType.Ovm3 + "," + HypervisorType.External, "The list of hypervisors that this deployment will use.", "hypervisorList", @@ -1056,32 +1056,6 @@ public enum Config { KvmPrivateNetwork("Hidden", ManagementServer.class, String.class, "kvm.private.network.device", null, "Specify the private bridge on host for private network", null), KvmGuestNetwork("Hidden", ManagementServer.class, String.class, "kvm.guest.network.device", null, "Specify the private bridge on host for private network", null), - // Hyperv - HypervPublicNetwork( - "Hidden", - ManagementServer.class, - String.class, - "hyperv.public.network.device", - null, - "Specify the public virtual switch on host for public network", - null), - HypervPrivateNetwork( - "Hidden", - ManagementServer.class, - String.class, - "hyperv.private.network.device", - null, - "Specify the virtual switch on host for private network", - null), - HypervGuestNetwork( - "Hidden", - ManagementServer.class, - String.class, - "hyperv.guest.network.device", - null, - "Specify the virtual switch on host for private network", - null), - // Usage UsageExecutionTimezone("Usage", ManagementServer.class, String.class, "usage.execution.timezone", null, "The timezone to use for usage job execution time", null), UsageStatsJobAggregationRange( @@ -1636,15 +1610,6 @@ public enum Config { + " If set to false, these commands become asynchronous. Default value is false.", null), - UCSSyncBladeInterval( - "Advanced", - ManagementServer.class, - Integer.class, - "ucs.sync.blade.interval", - "3600", - "the interval cloudstack sync with UCS manager for available blades in case user remove blades from chassis without notifying CloudStack", - null), - RedundantRouterVrrpInterval( "Advanced", NetworkOrchestrationService.class, diff --git a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java index 17dbced54233..8bf8027e2173 100644 --- a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java +++ b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java @@ -1741,7 +1741,7 @@ protected String validateRangePrivateIp(String name, String value) { } /** - * Valid values are XenServer, KVM, VMware, Hyperv, VirtualBox, Parralels, BareMetal, Simulator, Ovm, Ovm3, LXC. + * Valid values are XenServer, KVM, VMware, VirtualBox, Parralels, BareMetal, Simulator, Ovm, Ovm3, LXC. * Inputting "Any" will return the hypervisor type Any, other inputs will result in the hypervisor type none. * Both of these are invalid values and will return an error message. */ diff --git a/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java b/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java index 4401dc2d1529..85751267acb0 100644 --- a/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java +++ b/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java @@ -1336,9 +1336,6 @@ public boolean finalizeCommandsOnStart(Commands cmds, VirtualMachineProfile prof controlNic = managementNic; } - if(profile.getHypervisorType() == HypervisorType.Hyperv) { - controlNic = managementNic; - } CheckSshCommand check = new CheckSshCommand(profile.getInstanceName(), controlNic.getIPv4Address(), 3922); cmds.addCommand("checkSsh", check); diff --git a/server/src/main/java/com/cloud/ha/HighAvailabilityManagerImpl.java b/server/src/main/java/com/cloud/ha/HighAvailabilityManagerImpl.java index 07d51c5deb30..595077afda3b 100644 --- a/server/src/main/java/com/cloud/ha/HighAvailabilityManagerImpl.java +++ b/server/src/main/java/com/cloud/ha/HighAvailabilityManagerImpl.java @@ -331,7 +331,7 @@ public void scheduleRestartForVmsOnHost(final HostVO host, boolean investigate, return; } - if (host.getHypervisorType() == HypervisorType.VMware || host.getHypervisorType() == HypervisorType.Hyperv) { + if (host.getHypervisorType() == HypervisorType.VMware) { logger.info("Don't restart VMs on host {} as it is a {} host", host, host.getHypervisorType().toString()); return; } @@ -507,8 +507,8 @@ public void scheduleRestart(VMInstanceVO vm, boolean investigate, ReasonType rea } } - if (vm.getHypervisorType() == HypervisorType.VMware || vm.getHypervisorType() == HypervisorType.Hyperv) { - logger.info("Skip HA for VMware VM or Hyperv VM" + vm.getInstanceName()); + if (vm.getHypervisorType() == HypervisorType.VMware) { + logger.info("Skip HA for VMware VM" + vm.getInstanceName()); return; } diff --git a/server/src/main/java/com/cloud/network/NetworkModelImpl.java b/server/src/main/java/com/cloud/network/NetworkModelImpl.java index db128d72e828..82cca4524edb 100644 --- a/server/src/main/java/com/cloud/network/NetworkModelImpl.java +++ b/server/src/main/java/com/cloud/network/NetworkModelImpl.java @@ -1573,8 +1573,6 @@ public String getDefaultManagementTrafficLabel(long zoneId, HypervisorType hyper label = mgmtTraffic.getKvmNetworkLabel(); } else if (hypervisorType.equals(HypervisorType.VMware)) { label = mgmtTraffic.getVmwareNetworkLabel(); - } else if (hypervisorType.equals(HypervisorType.Hyperv)) { - label = mgmtTraffic.getHypervNetworkLabel(); } else if (hypervisorType.equals(HypervisorType.Ovm3)) { label = mgmtTraffic.getOvm3NetworkLabel(); } @@ -1603,8 +1601,6 @@ public String getDefaultStorageTrafficLabel(long zoneId, HypervisorType hypervis label = storageTraffic.getKvmNetworkLabel(); } else if (hypervisorType.equals(HypervisorType.VMware)) { label = storageTraffic.getVmwareNetworkLabel(); - } else if (hypervisorType.equals(HypervisorType.Hyperv)) { - label = storageTraffic.getHypervNetworkLabel(); } else if (hypervisorType.equals(HypervisorType.Ovm3)) { label = storageTraffic.getOvm3NetworkLabel(); } @@ -2171,8 +2167,6 @@ public String getDefaultPublicTrafficLabel(long dcId, HypervisorType hypervisorT label = publicTraffic.getKvmNetworkLabel(); } else if (hypervisorType.equals(HypervisorType.VMware)) { label = publicTraffic.getVmwareNetworkLabel(); - } else if (hypervisorType.equals(HypervisorType.Hyperv)) { - label = publicTraffic.getHypervNetworkLabel(); } else if (hypervisorType.equals(HypervisorType.Ovm3)) { label = publicTraffic.getOvm3NetworkLabel(); } @@ -2201,8 +2195,6 @@ public String getDefaultGuestTrafficLabel(long dcId, HypervisorType hypervisorTy label = guestTraffic.getKvmNetworkLabel(); } else if (hypervisorType.equals(HypervisorType.VMware)) { label = guestTraffic.getVmwareNetworkLabel(); - } else if (hypervisorType.equals(HypervisorType.Hyperv)) { - label = guestTraffic.getHypervNetworkLabel(); } else if (hypervisorType.equals(HypervisorType.Ovm3)) { label = guestTraffic.getOvm3NetworkLabel(); } diff --git a/server/src/main/java/com/cloud/network/guru/ControlNetworkGuru.java b/server/src/main/java/com/cloud/network/guru/ControlNetworkGuru.java index 9cec05446ac6..d9affc1cc7d2 100644 --- a/server/src/main/java/com/cloud/network/guru/ControlNetworkGuru.java +++ b/server/src/main/java/com/cloud/network/guru/ControlNetworkGuru.java @@ -139,9 +139,9 @@ public void reserve(NicProfile nic, Network config, VirtualMachineProfile vm, De throws InsufficientVirtualNetworkCapacityException, InsufficientAddressCapacityException { assert nic.getTrafficType() == TrafficType.Control; - // we have to get management/private ip for the control nic for vmware/hyperv due ssh issues. + // we have to get management/private ip for the control nic for vmware due ssh issues. HypervisorType hType = vm.getHypervisorType(); - if (((hType == HypervisorType.VMware) || (hType == HypervisorType.Hyperv)) && isRouterVm(vm)) { + if (hType == HypervisorType.VMware && isRouterVm(vm)) { super.reserve(nic, config, vm, dest, context); String mac = networkModel.getNextAvailableMacAddressInNetwork(config.getId()); @@ -169,7 +169,7 @@ public void reserve(NicProfile nic, Network config, VirtualMachineProfile vm, De public boolean release(NicProfile nic, VirtualMachineProfile vm, String reservationId) { assert nic.getTrafficType() == TrafficType.Control; HypervisorType hType = vm.getHypervisorType(); - if ( ( (hType == HypervisorType.VMware) || (hType == HypervisorType.Hyperv) )&& isRouterVm(vm)) { + if (hType == HypervisorType.VMware && isRouterVm(vm)) { if (!VirtualNetworkApplianceManager.RemoveControlIpOnStop.valueIn(vm.getVirtualMachine().getDataCenterId())) { if (logger.isDebugEnabled()) { logger.debug(String.format("not releasing %s from %s with reservationId %s, as systemvm.release.control.ip.on.stop is set to false for the data center.", nic, vm, reservationId)); diff --git a/server/src/main/java/com/cloud/network/router/NetworkHelperImpl.java b/server/src/main/java/com/cloud/network/router/NetworkHelperImpl.java index e5d4587f32fe..a1a3c92c2ef2 100644 --- a/server/src/main/java/com/cloud/network/router/NetworkHelperImpl.java +++ b/server/src/main/java/com/cloud/network/router/NetworkHelperImpl.java @@ -190,7 +190,6 @@ protected void setupHypervisorsMap() { hypervisorsMap.put(HypervisorType.XenServer, VirtualNetworkApplianceManager.RouterTemplateXen); hypervisorsMap.put(HypervisorType.KVM, VirtualNetworkApplianceManager.RouterTemplateKvm); hypervisorsMap.put(HypervisorType.VMware, VirtualNetworkApplianceManager.RouterTemplateVmware); - hypervisorsMap.put(HypervisorType.Hyperv, VirtualNetworkApplianceManager.RouterTemplateHyperV); hypervisorsMap.put(HypervisorType.LXC, VirtualNetworkApplianceManager.RouterTemplateLxc); hypervisorsMap.put(HypervisorType.Ovm3, VirtualNetworkApplianceManager.RouterTemplateOvm3); } diff --git a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManager.java b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManager.java index 8ef77d3fb32f..36c644d5e831 100644 --- a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManager.java +++ b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManager.java @@ -39,7 +39,6 @@ public interface VirtualNetworkApplianceManager extends Manager, VirtualNetworkA String RouterTemplateXenCK = "router.template.xenserver"; String RouterTemplateKvmCK = "router.template.kvm"; String RouterTemplateVmwareCK = "router.template.vmware"; - String RouterTemplateHyperVCK = "router.template.hyperv"; String RouterTemplateLxcCK = "router.template.lxc"; String RouterTemplateOvm3CK = "router.template.ovm3"; String SetServiceMonitorCK = "network.router.EnableServiceMonitoring"; @@ -57,8 +56,6 @@ public interface VirtualNetworkApplianceManager extends Manager, VirtualNetworkA "Name of the default router template on KVM.", true, ConfigKey.Scope.Zone, null); ConfigKey RouterTemplateVmware = new ConfigKey<>(String.class, RouterTemplateVmwareCK, "Advanced", "SystemVM Template (vSphere)", "Name of the default router template on Vmware.", true, ConfigKey.Scope.Zone, null); - ConfigKey RouterTemplateHyperV = new ConfigKey<>(String.class, RouterTemplateHyperVCK, "Advanced", "SystemVM Template (HyperV)", - "Name of the default router template on Hyperv.", true, ConfigKey.Scope.Zone, null); ConfigKey RouterTemplateLxc = new ConfigKey<>(String.class, RouterTemplateLxcCK, "Advanced", "SystemVM Template (LXC)", "Name of the default router template on LXC.", true, ConfigKey.Scope.Zone, null); ConfigKey RouterTemplateOvm3 = new ConfigKey<>(String.class, RouterTemplateOvm3CK, "Advanced", "SystemVM Template (Ovm3)", diff --git a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index fe167b7e7e76..e7283b396f23 100644 --- a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -364,7 +364,6 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V private String _dnsBasicZoneUpdates = "all"; private boolean _disableRpFilter = false; - private int _routerExtraPublicNics = 2; private int _usageAggregationRange = 1440; private String _usageTimeZone = "GMT"; private final long mgmtSrvrId = MacAddress.getMacAddress().toLong(); @@ -548,8 +547,6 @@ public boolean configure(final String name, final Map params) th int routerRamSize = NumbersUtil.parseInt(configs.get("router.ram.size"), DEFAULT_ROUTER_VM_RAMSIZE); int routerCpuMHz = NumbersUtil.parseInt(configs.get("router.cpu.mhz"), DEFAULT_ROUTER_CPU_MHZ); - _routerExtraPublicNics = NumbersUtil.parseInt(_configDao.getValue(Config.RouterExtraPublicNics.key()), 2); - String value = configs.get("router.stats.interval"); _routerStatsInterval = NumbersUtil.parseInt(value, 300); @@ -1965,7 +1962,7 @@ public boolean finalizeVirtualMachineProfile(final VirtualMachineProfile profile buf.append(createRedundantRouterArgs(controlNic, router)); // DOMR control command is sent over management server in VMware - if (dest.getHost().getHypervisorType() == HypervisorType.VMware || dest.getHost().getHypervisorType() == HypervisorType.Hyperv) { + if (dest.getHost().getHypervisorType() == HypervisorType.VMware) { logger.info("Check if we need to add management server explicit route to DomR. pod cidr: " + dest.getPod().getCidrAddress() + "/" + dest.getPod().getCidrSize() + ", pod gateway: " + dest.getPod().getGateway() + ", management host: " + ApiServiceConfiguration.ManagementServerAddresses.value()); @@ -2049,10 +2046,6 @@ public boolean finalizeVirtualMachineProfile(final VirtualMachineProfile profile buf.append(" dnssearchorder=").append(domain_suffix); } - if (profile.getHypervisorType() == HypervisorType.Hyperv) { - buf.append(" extra_pubnics=").append(_routerExtraPublicNics); - } - /* * If virtual router didn't provide DNS service but provide DHCP * service, we need to override the DHCP response to return DNS server @@ -3372,7 +3365,6 @@ public ConfigKey[] getConfigKeys() { return new ConfigKey[] { RouterTemplateKvm, RouterTemplateVmware, - RouterTemplateHyperV, RouterTemplateLxc, RouterTemplateOvm3, UseExternalDnsServers, diff --git a/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java index 1f5fe7382fc5..c0cd3ecde86c 100644 --- a/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java +++ b/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java @@ -354,7 +354,6 @@ protected void setupSupportedVpcHypervisorsList() { hTypes.add(HypervisorType.KVM); hTypes.add(HypervisorType.Simulator); hTypes.add(HypervisorType.LXC); - hTypes.add(HypervisorType.Hyperv); hTypes.add(HypervisorType.Ovm3); hTypes.add(HypervisorType.External); } diff --git a/server/src/main/java/com/cloud/server/ManagementServerImpl.java b/server/src/main/java/com/cloud/server/ManagementServerImpl.java index e48cf112806a..cad8fe7a789f 100644 --- a/server/src/main/java/com/cloud/server/ManagementServerImpl.java +++ b/server/src/main/java/com/cloud/server/ManagementServerImpl.java @@ -898,7 +898,7 @@ public class ManagementServerImpl extends MutualExclusiveIdsManagerBase implemen public static final ConfigKey exposeCloudStackVersionInApiListCapabilities = new ConfigKey<>("Advanced", Boolean.class, "expose.cloudstack.version.api.list.capabilities", "true", "Indicates whether ACS version should show in the listCapabilities API.", true, ConfigKey.Scope.Global); private static final VirtualMachine.Type []systemVmTypes = { VirtualMachine.Type.SecondaryStorageVm, VirtualMachine.Type.ConsoleProxy}; - private static final List LIVE_MIGRATION_SUPPORTING_HYPERVISORS = List.of(HypervisorType.Hyperv, HypervisorType.KVM, + private static final List LIVE_MIGRATION_SUPPORTING_HYPERVISORS = List.of(HypervisorType.KVM, HypervisorType.LXC, HypervisorType.Ovm, HypervisorType.Ovm3, HypervisorType.Simulator, HypervisorType.VMware, HypervisorType.XenServer); @Inject @@ -1463,13 +1463,13 @@ private void validateVmForHostMigration(VirtualMachine vm) { if (!LIVE_MIGRATION_SUPPORTING_HYPERVISORS.contains(vm.getHypervisorType())) { if (logger.isDebugEnabled()) { - logger.debug(vm + " is not XenServer/VMware/KVM/Ovm/Hyperv/Ovm3, cannot migrate this Instance."); + logger.debug(vm + " is not XenServer/VMware/KVM/Ovm/Ovm3, cannot migrate this Instance."); } - throw new InvalidParameterValueException("Unsupported Hypervisor Type for Instance migration, we support " + "XenServer/VMware/KVM/Ovm/Hyperv/Ovm3 only"); + throw new InvalidParameterValueException("Unsupported Hypervisor Type for Instance migration, we support " + "XenServer/VMware/KVM/Ovm/Ovm3 only"); } if (VirtualMachine.Type.User.equals(vm.getType()) && HypervisorType.LXC.equals(vm.getHypervisorType())) { - throw new InvalidParameterValueException("Unsupported Hypervisor Type for User instance migration, we support XenServer/VMware/KVM/Ovm/Hyperv/Ovm3 only"); + throw new InvalidParameterValueException("Unsupported Hypervisor Type for User instance migration, we support XenServer/VMware/KVM/Ovm/Ovm3 only"); } } diff --git a/server/src/main/java/com/cloud/storage/StorageManagerImpl.java b/server/src/main/java/com/cloud/storage/StorageManagerImpl.java index 8557b91850d7..150d1e0c2f75 100644 --- a/server/src/main/java/com/cloud/storage/StorageManagerImpl.java +++ b/server/src/main/java/com/cloud/storage/StorageManagerImpl.java @@ -445,7 +445,7 @@ public void setDiscoverers(List discoverers) { private final Map hostListeners = new HashMap<>(); private final Set zoneWidePoolSupportedHypervisorTypes = Sets.newHashSet(HypervisorType.KVM, HypervisorType.VMware, - HypervisorType.Hyperv, HypervisorType.LXC, HypervisorType.Any, HypervisorType.Simulator); + HypervisorType.LXC, HypervisorType.Any, HypervisorType.Simulator); private static final String NFS_MOUNT_OPTIONS_INCORRECT = "An incorrect mount option was specified"; @@ -3446,8 +3446,6 @@ public HypervisorType getHypervisorTypeFromFormat(ImageFormat format) { return HypervisorType.KVM; } else if (format == ImageFormat.RAW) { return HypervisorType.Ovm; - } else if (format == ImageFormat.VHDX) { - return HypervisorType.Hyperv; } else { return HypervisorType.None; } @@ -3941,8 +3939,6 @@ private String getValidTemplateName(Long zoneId, HypervisorType hType) { templateName = VirtualNetworkApplianceManager.RouterTemplateKvm.valueIn(zoneId); } else if (hType.equals(HypervisorType.VMware)) { templateName = VirtualNetworkApplianceManager.RouterTemplateVmware.valueIn(zoneId); - } else if (hType.equals(HypervisorType.Hyperv)) { - templateName = VirtualNetworkApplianceManager.RouterTemplateHyperV.valueIn(zoneId); } else if (hType.equals(HypervisorType.LXC)) { templateName = VirtualNetworkApplianceManager.RouterTemplateLxc.valueIn(zoneId); } diff --git a/server/src/main/java/com/cloud/storage/listener/StoragePoolMonitor.java b/server/src/main/java/com/cloud/storage/listener/StoragePoolMonitor.java index d7f20c03671b..c30e2d4314ee 100644 --- a/server/src/main/java/com/cloud/storage/listener/StoragePoolMonitor.java +++ b/server/src/main/java/com/cloud/storage/listener/StoragePoolMonitor.java @@ -117,7 +117,7 @@ public void processConnect(Host host, StartupCommand cmd, boolean forRebalance) StartupRoutingCommand scCmd = (StartupRoutingCommand)cmd; if (scCmd.getHypervisorType() == HypervisorType.XenServer || scCmd.getHypervisorType() == HypervisorType.KVM || scCmd.getHypervisorType() == HypervisorType.VMware || scCmd.getHypervisorType() == HypervisorType.Simulator || - scCmd.getHypervisorType() == HypervisorType.Ovm || scCmd.getHypervisorType() == HypervisorType.Hyperv || + scCmd.getHypervisorType() == HypervisorType.Ovm || scCmd.getHypervisorType() == HypervisorType.LXC || scCmd.getHypervisorType() == HypervisorType.Ovm3) { String sags[] = _storageManager.getStorageAccessGroups(null, null, null, host.getId()); diff --git a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java index d93dae9ebdec..6f3c827fc4d0 100644 --- a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java @@ -7548,12 +7548,12 @@ public VirtualMachine migrateVirtualMachine(Long vmId, Host destinationHost) thr } if (!isOnSupportedHypevisorForMigration(vm)) { - logger.error(vm + " is not XenServer/VMware/KVM/Ovm/Hyperv, cannot migrate this VM from hypervisor type " + vm.getHypervisorType()); - throw new InvalidParameterValueException("Unsupported Hypervisor Type for VM migration, we support XenServer/VMware/KVM/Ovm/Hyperv/Ovm3 only"); + logger.error(vm + " is not XenServer/VMware/KVM/Ovm, cannot migrate this VM from hypervisor type " + vm.getHypervisorType()); + throw new InvalidParameterValueException("Unsupported Hypervisor Type for VM migration, we support XenServer/VMware/KVM/Ovm/Ovm3 only"); } if (vm.getType().equals(VirtualMachine.Type.User) && vm.getHypervisorType().equals(HypervisorType.LXC)) { - throw new InvalidParameterValueException("Unsupported Hypervisor Type for User VM migration, we support XenServer/VMware/KVM/Ovm/Hyperv/Ovm3 only"); + throw new InvalidParameterValueException("Unsupported Hypervisor Type for User VM migration, we support XenServer/VMware/KVM/Ovm/Ovm3 only"); } if (isVMUsingLocalStorage(vm)) { @@ -7712,7 +7712,6 @@ private boolean isOnSupportedHypevisorForMigration(VMInstanceVO vm) { vm.getHypervisorType().equals(HypervisorType.VMware) || vm.getHypervisorType().equals(HypervisorType.KVM) || vm.getHypervisorType().equals(HypervisorType.Ovm) || - vm.getHypervisorType().equals(HypervisorType.Hyperv) || vm.getHypervisorType().equals(HypervisorType.LXC) || vm.getHypervisorType().equals(HypervisorType.Simulator) || vm.getHypervisorType().equals(HypervisorType.Ovm3)); diff --git a/server/src/test/java/com/cloud/api/ApiResponseHelperTest.java b/server/src/test/java/com/cloud/api/ApiResponseHelperTest.java index bbd7afcdd113..754ec6ea210b 100644 --- a/server/src/test/java/com/cloud/api/ApiResponseHelperTest.java +++ b/server/src/test/java/com/cloud/api/ApiResponseHelperTest.java @@ -441,11 +441,10 @@ public void testCreateTrafficTypeResponse() { String kvmLabel = "kvm"; String vmwareLabel = "vmware"; String simulatorLabel = "simulator"; - String hypervLabel = "hyperv"; String ovmLabel = "ovm"; String vlan = "vlan"; String trafficType = "Public"; - PhysicalNetworkTrafficType pnetTrafficType = new PhysicalNetworkTrafficTypeVO(pnet.getId(), Networks.TrafficType.getTrafficType(trafficType), xenLabel, kvmLabel, vmwareLabel, simulatorLabel, vlan, hypervLabel, ovmLabel); + PhysicalNetworkTrafficType pnetTrafficType = new PhysicalNetworkTrafficTypeVO(pnet.getId(), Networks.TrafficType.getTrafficType(trafficType), xenLabel, kvmLabel, vmwareLabel, simulatorLabel, vlan, null, ovmLabel); TrafficTypeResponse response = apiResponseHelper.createTrafficTypeResponse(pnetTrafficType); assertFalse(UUID.fromString(response.getId()).toString().isEmpty()); @@ -454,7 +453,6 @@ public void testCreateTrafficTypeResponse() { assertEquals(response.getXenLabel(), xenLabel); assertEquals(response.getKvmLabel(), kvmLabel); assertEquals(response.getVmwareLabel(), vmwareLabel); - assertEquals(response.getHypervLabel(), hypervLabel); assertEquals(response.getOvm3Label(), ovmLabel); assertEquals(response.getVlan(), vlan); assertEquals(response.getIsolationMethods(), "VXLAN,STT"); diff --git a/server/src/test/java/com/cloud/server/ManagementServerImplTest.java b/server/src/test/java/com/cloud/server/ManagementServerImplTest.java index d2c12b6c99dd..01547fab3162 100644 --- a/server/src/test/java/com/cloud/server/ManagementServerImplTest.java +++ b/server/src/test/java/com/cloud/server/ManagementServerImplTest.java @@ -1829,7 +1829,6 @@ public void testListHostsForMigrationOfVMWithAllSupportedHypervisors() { HypervisorType.VMware, HypervisorType.KVM, HypervisorType.Ovm, - HypervisorType.Hyperv, HypervisorType.Ovm3 }; diff --git a/services/console-proxy/rdpconsole/src/main/java/common/Client.java b/services/console-proxy/rdpconsole/src/main/java/common/Client.java index 972d5d753e8f..ab2b45edda13 100644 --- a/services/console-proxy/rdpconsole/src/main/java/common/Client.java +++ b/services/console-proxy/rdpconsole/src/main/java/common/Client.java @@ -44,7 +44,7 @@ public class Client { enum Protocol { - NONE, VNC, RDP, HYPERV + NONE, VNC, RDP } // Common options @@ -124,15 +124,6 @@ enum Protocol { } }; - private final IntOption hyperVPort = new IntOption() { - { - name = "--port"; - alias = "-p"; - value = 2179; - description = "Port of HyperV server to connect to."; - } - }; - private final StringOption password = new StringOption() { { name = "--password"; @@ -169,14 +160,6 @@ enum Protocol { } }; - private final StringOption hyperVInstanceId = new StringOption() { - { - name = "--instance"; - alias = "-i"; - required = true; - description = "HyperV instance ID to use."; - } - }; private final StringEnumerationOption sslImplementation = new StringEnumerationOption() { { name = "--ssl-implementation"; @@ -190,7 +173,6 @@ enum Protocol { private final Option[] commonOptions = new Option[] {help, debugLink, debugElement, debugPipeline, hostName, canvasWidth, canvasHeight}; private final Option[] vncOptions = new Option[] {vncPort, password}; private final Option[] rdpOptions = new Option[] {sslImplementation, rdpPort, domain, userName, rdpPassword}; - private final Option[] hyperVOptions = new Option[] {sslImplementation, hyperVPort, hyperVInstanceId, domain, userName, password}; private static Frame frame; private static SocketWrapper socket; @@ -200,11 +182,10 @@ enum Protocol { private InetSocketAddress address; private void help() { - System.out.println("Usage: \n java common.Client vnc|rdp|hyperv OPTIONS\n"); + System.out.println("Usage: \n java common.Client vnc|rdp OPTIONS\n"); System.out.println(Option.toHelp("Common options", commonOptions)); System.out.println(Option.toHelp("VNC options", vncOptions)); System.out.println(Option.toHelp("RDP options", rdpOptions)); - System.out.println(Option.toHelp("HyperV options", hyperVOptions)); } public void runClient(String[] args) { @@ -284,10 +265,6 @@ private Element setMainElementAndAddressBasedOnProtocol(Protocol protocol, SSLSt address = new InetSocketAddress(hostName.value, rdpPort.value); main = new RdpClient("client", hostName.value, domain.value, userName.value, rdpPassword.value, null, screen, canvas, sslState); break; - case HYPERV: - address = new InetSocketAddress(hostName.value, hyperVPort.value); - main = new RdpClient("client", hostName.value, domain.value, userName.value, password.value, hyperVInstanceId.value, screen, canvas, sslState); - break; default: address = null; main = null; @@ -314,9 +291,6 @@ private Protocol parseOptions(String[] args) { case RDP: options = join(commonOptions, rdpOptions); break; - case HYPERV: - options = join(commonOptions, hyperVOptions); - break; default: help(); return Protocol.NONE; diff --git a/services/secondary-storage/controller/src/main/java/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java b/services/secondary-storage/controller/src/main/java/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java index 9d4c73111595..f42bcc28c2d5 100644 --- a/services/secondary-storage/controller/src/main/java/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java +++ b/services/secondary-storage/controller/src/main/java/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java @@ -1349,10 +1349,6 @@ public boolean finalizeCommandsOnStart(Commands cmds, VirtualMachineProfile prof } protected NicProfile verifySshAccessOnManagementNicForSystemVm(VirtualMachineProfile profile, NicProfile controlNic, NicProfile managementNic) { - if (profile.getHypervisorType() == HypervisorType.Hyperv) { - return managementNic; - } - return controlNic; } diff --git a/services/secondary-storage/controller/src/test/java/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerTest.java b/services/secondary-storage/controller/src/test/java/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerTest.java index 2d48451f43e9..f3cc8404ead3 100644 --- a/services/secondary-storage/controller/src/test/java/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerTest.java +++ b/services/secondary-storage/controller/src/test/java/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerTest.java @@ -213,7 +213,7 @@ public void getDefaultNetworkForAdvancedWrongZoneType() { @Test public void validateVerifySshAccessOnManagementNicForSystemVm() { Hypervisor.HypervisorType[] hypervisorTypesArray = Hypervisor.HypervisorType.values(); - List hypervisorTypesThatMustReturnManagementNic = new ArrayList<>(Arrays.asList(Hypervisor.HypervisorType.Hyperv)); + List hypervisorTypesThatMustReturnManagementNic = new ArrayList<>(); for (Hypervisor.HypervisorType hypervisorType: hypervisorTypesArray) { VirtualMachineProfile virtualMachineProfileMock = Mockito.mock(VirtualMachineProfile.class);