remove some extra stuff

This commit is contained in:
Daan Hoogland 2026-01-27 16:50:20 +01:00
parent 135eb8042c
commit 0e42c76c6e
51 changed files with 655 additions and 964 deletions

View File

@ -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":

View File

@ -47,7 +47,6 @@ public class Hypervisor {
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));
public static final HypervisorType Hyperv = new HypervisorType("Hyperv");
public static final HypervisorType VirtualBox = new HypervisorType("VirtualBox");
public static final HypervisorType Parralels = new HypervisorType("Parralels");
public static final HypervisorType BareMetal = new HypervisorType("BareMetal");

View File

@ -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,External")
private String hypervisor;
@Parameter(name = ApiConstants.ARCH, type = CommandType.STRING,

View File

@ -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")

View File

@ -67,11 +67,13 @@ 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")
private String hypervLabel;
@Deprecated
@Parameter(name = ApiConstants.OVM3_NETWORK_LABEL,
type = CommandType.STRING,
description = "The network name of the physical device dedicated to this traffic on an OVM3 host")
@ -108,19 +110,11 @@ public class AddTrafficTypeCmd extends BaseAsyncCreateCmd {
return vmwareLabel;
}
public String getHypervLabel() {
return hypervLabel;
}
public String getSimulatorLabel() {
//simulators will have no labels
return null;
}
public String getOvm3Label() {
return ovm3Label;
}
public void setVlan(String vlan) {
this.vlan = vlan;
}
@ -163,7 +157,7 @@ public class AddTrafficTypeCmd extends BaseAsyncCreateCmd {
public void create() throws ResourceAllocationException {
PhysicalNetworkTrafficType result =
_networkService.addTrafficTypeToPhysicalNetwork(getPhysicalNetworkId(), getTrafficType(), getIsolationMethod(), getXenLabel(), getKvmLabel(), getVmwareLabel(),
getSimulatorLabel(), getVlan(), getHypervLabel(), getOvm3Label());
getSimulatorLabel(), getVlan(), null, null);
if (result != null) {
setEntityId(result.getId());
setEntityUuid(result.getUuid());

View File

@ -57,11 +57,13 @@ 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")
private String hypervLabel;
@Deprecated
@Parameter(name = ApiConstants.OVM3_NETWORK_LABEL,
type = CommandType.STRING,
description = "The network name of the physical device dedicated to this traffic on an OVM3 host")
@ -87,14 +89,6 @@ public class UpdateTrafficTypeCmd extends BaseAsyncCmd {
return vmwareLabel;
}
public String getHypervLabel() {
return hypervLabel;
}
public String getOvm3Label() {
return ovm3Label;
}
/////////////////////////////////////////////////////
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////
@ -106,7 +100,7 @@ public class UpdateTrafficTypeCmd extends BaseAsyncCmd {
@Override
public void execute() {
PhysicalNetworkTrafficType result = _networkService.updatePhysicalNetworkTrafficType(getId(), getXenLabel(), getKvmLabel(), getVmwareLabel(), getHypervLabel(), getOvm3Label());
PhysicalNetworkTrafficType result = _networkService.updatePhysicalNetworkTrafficType(getId(), getXenLabel(), getKvmLabel(), getVmwareLabel(), null, null);
if (result != null) {
TrafficTypeResponse response = _responseGenerator.createTrafficTypeResponse(result);
response.setResponseName(getCommandName());

View File

@ -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;
@ -64,10 +60,6 @@ public class TrafficTypeResponse extends BaseResponse {
@Param(description = "isolation methods for the physical network traffic")
private String isolationMethods;
@SerializedName(ApiConstants.OVM3_NETWORK_LABEL)
@Param(description = "The Network name of the physical device dedicated to this traffic on an OVM3 host")
private String ovm3NetworkLabel;
@Override
public String getObjectId() {
return this.id;
@ -105,18 +97,10 @@ public class TrafficTypeResponse extends BaseResponse {
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;
}
@ -129,14 +113,6 @@ public class TrafficTypeResponse extends BaseResponse {
return vmwareNetworkLabel;
}
public String getOvm3Label() {
return ovm3NetworkLabel;
}
public void setOvm3Label(String ovm3Label) {
this.ovm3NetworkLabel = ovm3Label;
}
public String getIsolationMethods() {
return isolationMethods;
}

View File

@ -78,6 +78,12 @@
<artifactId>cloud-plugin-hypervisor-external</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-api</artifactId>
<version>4.23.0.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>

View File

@ -2010,7 +2010,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
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();
@ -5406,8 +5406,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
, 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);

View File

@ -1156,8 +1156,6 @@ public class VolumeOrchestrator extends ManagerBase implements VolumeOrchestrati
return ImageFormat.OVA;
} else if (hyperType == HypervisorType.Ovm) {
return ImageFormat.RAW;
} else if (hyperType == HypervisorType.Hyperv) {
return ImageFormat.VHDX;
} else {
return null;
}
@ -1165,15 +1163,7 @@ public class VolumeOrchestrator extends ManagerBase implements VolumeOrchestrati
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,

View File

@ -57,6 +57,12 @@
<artifactId>ini4j</artifactId>
<version>${cs.ini.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-api</artifactId>
<version>4.23.0.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
@ -105,7 +111,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) {
@ -321,41 +326,5 @@
</plugins>
</build>
</profile>
<profile>
<id>download-hyperv-systemvm-template</id>
<activation>
<property>
<name>systemvm-hyperv</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>${cs.resources-plugin.version}</version>
</plugin>
<plugin>
<groupId>com.googlecode.maven-download-plugin</groupId>
<artifactId>download-maven-plugin</artifactId>
<version>1.6.3</version>
<executions>
<execution>
<id>download-hyperv-template</id>
<goals>
<goal>wget</goal>
</goals>
<configuration>
<checkSignature>true</checkSignature>
<url>${project.systemvm.template.location}/${cs.version}/systemvmtemplate-${cs.version}.${patch.version}-x86_64-hyperv.vhd.zip</url>
<outputDirectory>${basedir}/dist/systemvm-templates/</outputDirectory>
<sha512>${hyperv.checksum}</sha512>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

View File

@ -123,14 +123,8 @@ public class PhysicalNetworkTrafficTypeDaoImpl extends GenericDaoBase<PhysicalNe
sc = vmWareAllFieldsSearch.create();
} else if (hType == HypervisorType.Simulator) {
sc = simulatorAllFieldsSearch.create();
} else if (hType == HypervisorType.Ovm) {
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 {
assert (false) : "We don't handle this hypervisor type";
return null;

View File

@ -309,9 +309,7 @@ public class SystemVmTemplateRegistration {
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)
new Pair<>(Hypervisor.HypervisorType.LXC, CPU.CPUArch.amd64)
);
protected static final List<MetadataTemplateDetails> METADATA_TEMPLATE_LIST = new ArrayList<>();
@ -321,9 +319,7 @@ public class SystemVmTemplateRegistration {
put(Hypervisor.HypervisorType.KVM, "router.template.kvm");
put(Hypervisor.HypervisorType.VMware, "router.template.vmware");
put(Hypervisor.HypervisorType.XenServer, "router.template.xenserver");
put(Hypervisor.HypervisorType.Hyperv, "router.template.hyperv");
put(Hypervisor.HypervisorType.LXC, "router.template.lxc");
put(Hypervisor.HypervisorType.Ovm3, "router.template.ovm3");
}
};
@ -332,20 +328,16 @@ public class SystemVmTemplateRegistration {
put(Hypervisor.HypervisorType.KVM, ImageFormat.QCOW2);
put(Hypervisor.HypervisorType.XenServer, ImageFormat.VHD);
put(Hypervisor.HypervisorType.VMware, ImageFormat.OVA);
put(Hypervisor.HypervisorType.Hyperv, ImageFormat.VHD);
put(Hypervisor.HypervisorType.LXC, ImageFormat.QCOW2);
put(Hypervisor.HypervisorType.Ovm3, ImageFormat.RAW);
}
};
protected static Map<Hypervisor.HypervisorType, Integer> hypervisorGuestOsMap = new HashMap<>() {
public static Map<Hypervisor.HypervisorType, Integer> hypervisorGuestOsMap = new HashMap<>() {
{
put(Hypervisor.HypervisorType.KVM, LINUX_12_ID);
put(Hypervisor.HypervisorType.XenServer, OTHER_LINUX_ID);
put(Hypervisor.HypervisorType.VMware, OTHER_LINUX_ID);
put(Hypervisor.HypervisorType.Hyperv, LINUX_12_ID);
put(Hypervisor.HypervisorType.LXC, LINUX_12_ID);
put(Hypervisor.HypervisorType.Ovm3, LINUX_12_ID);
}
};
@ -400,7 +392,7 @@ public class SystemVmTemplateRegistration {
}
protected static void cleanupStore(Long templateId, String filePath) {
String destTempFolder = filePath + PARTIAL_TEMPLATE_FOLDER + String.valueOf(templateId);
String destTempFolder = filePath + PARTIAL_TEMPLATE_FOLDER + templateId;
try {
Files.deleteIfExists(Paths.get(destTempFolder));
} catch (IOException e) {
@ -411,8 +403,8 @@ public class SystemVmTemplateRegistration {
protected static Pair<Long, Long> readTemplatePropertiesSizes(String path) {
File tmpFile = new File(path);
Long size = null;
Long physicalSize = 0L;
try (FileReader fr = new FileReader(tmpFile); BufferedReader brf = new BufferedReader(fr);) {
long physicalSize = 0L;
try (FileReader fr = new FileReader(tmpFile); BufferedReader brf = new BufferedReader(fr)) {
String line = null;
while ((line = brf.readLine()) != null) {
if (line.startsWith("size=")) {
@ -543,7 +535,7 @@ public class SystemVmTemplateRegistration {
try {
Files.deleteIfExists(Paths.get(filePath));
} catch (IOException e) {
LOGGER.error(String.format("Failed to cleanup mounted store at: %s", filePath), e);
LOGGER.error("Failed to cleanup mounted store at: {}", filePath, e);
}
} catch (Exception e) {
String msg = String.format("Failed to unmount store mounted at %s", filePath);
@ -597,7 +589,7 @@ public class SystemVmTemplateRegistration {
Long templateId = vmTemplateDao.getNextInSequence(Long.class, "id");
VMTemplateVO template = new VMTemplateVO();
template.setUuid(details.getUuid());
template.setUniqueName(String.format("routing-%s" , String.valueOf(templateId)));
template.setUniqueName(String.format("routing-%s" , templateId));
template.setName(details.getName());
template.setPublicTemplate(false);
template.setFeatured(false);
@ -707,9 +699,7 @@ public class SystemVmTemplateRegistration {
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) {
LOGGER.warn("Couldn't update System VM template guest OS ID, due to {}", e.getMessage());
}
@ -932,7 +922,6 @@ public class SystemVmTemplateRegistration {
/**
* Validate that templates for the provided hypervisor/architecture pairs which are in use and are valid.
*
* If a template is missing or validation fails for any required pair, a
* {@link CloudRuntimeException} is thrown to abort the upgrade. If system VM Template for a hypervisor/arch is
* not considered available then validation is skipped for that pair.
@ -965,7 +954,6 @@ public class SystemVmTemplateRegistration {
/**
* Register or ensure system VM Templates are present on the NFS store for a given zone.
*
* Mounts the zone image store, enumerates hypervisors and architectures in the zone,
* and for each template either adds an existing template to the store or registers
* a new template as required.
@ -1263,7 +1251,6 @@ public class SystemVmTemplateRegistration {
/**
* Update or register system VM Templates based on metadata.
*
* Runs the registration logic inside a database transaction: obtains the
* set of hypervisors/architectures in use, iterates over metadata entries
* and attempts to register or update each template.

View File

@ -31,7 +31,6 @@ import java.util.Set;
import com.cloud.hypervisor.Hypervisor;
import com.cloud.utils.exception.CloudRuntimeException;
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.Ovm3;
@ -85,12 +84,8 @@ public class Upgrade41500to41510 extends DbUpgradeAbstractImpl implements DbUpgr
hypervisorsListInUse.add(KVM);
} else if (type.equals(VMware)) {
hypervisorsListInUse.add(VMware);
} else if (type.equals(Hyperv)) {
hypervisorsListInUse.add(Hyperv);
} else if (type.equals(LXC)) {
hypervisorsListInUse.add(LXC);
} else if (type.equals(Ovm3)) {
hypervisorsListInUse.add(Ovm3);
}
}
} catch (final SQLException e) {
@ -103,7 +98,6 @@ public class Upgrade41500to41510 extends DbUpgradeAbstractImpl implements DbUpgr
put(KVM, "systemvm-kvm-4.15.1");
put(VMware, "systemvm-vmware-4.15.1");
put(XenServer, "systemvm-xenserver-4.15.1");
put(Hyperv, "systemvm-hyperv-4.15.1");
put(LXC, "systemvm-lxc-4.15.1");
put(Ovm3, "systemvm-ovm3-4.15.1");
}
@ -114,7 +108,6 @@ public class Upgrade41500to41510 extends DbUpgradeAbstractImpl implements DbUpgr
put(KVM, "router.template.kvm");
put(VMware, "router.template.vmware");
put(XenServer, "router.template.xenserver");
put(Hyperv, "router.template.hyperv");
put(LXC, "router.template.lxc");
put(Ovm3, "router.template.ovm3");
}
@ -125,7 +118,6 @@ public class Upgrade41500to41510 extends DbUpgradeAbstractImpl implements DbUpgr
put(KVM, "https://download.cloudstack.org/systemvm/4.15/systemvmtemplate-4.15.1-kvm.qcow2.bz2");
put(VMware, "https://download.cloudstack.org/systemvm/4.15/systemvmtemplate-4.15.1-vmware.ova");
put(XenServer, "https://download.cloudstack.org/systemvm/4.15/systemvmtemplate-4.15.1-xen.vhd.bz2");
put(Hyperv, "https://download.cloudstack.org/systemvm/4.15/systemvmtemplate-4.15.1-hyperv.vhd.zip");
put(LXC, "https://download.cloudstack.org/systemvm/4.15/systemvmtemplate-4.15.1-kvm.qcow2.bz2");
put(Ovm3, "https://download.cloudstack.org/systemvm/4.15/systemvmtemplate-4.15.1-ovm.raw.bz2");
}
@ -136,7 +128,6 @@ public class Upgrade41500to41510 extends DbUpgradeAbstractImpl implements DbUpgr
put(KVM, "0e9f9a7d0957c3e0a2088e41b2da2cec");
put(XenServer, "86373992740b1eca8aff8b08ebf3aea5");
put(VMware, "4006982765846d373eb3719b2fe4d720");
put(Hyperv, "0b9514e4b6cba1f636fea2125f0f7a5f");
put(LXC, "0e9f9a7d0957c3e0a2088e41b2da2cec");
put(Ovm3, "ae3977e696b3e6c81bdcbb792d514d29");
}

View File

@ -2187,7 +2187,6 @@ INSERT IGNORE INTO `cloud`.`configuration` VALUES ('Advanced', 'DEFAULT', 'manag
INSERT IGNORE INTO `cloud`.`configuration` VALUES ('Advanced', 'DEFAULT', 'management-server', 'interval.baremetal.securitygroup.agent.echo', 10, 'Interval to echo baremetal security group agent, in seconds');
INSERT IGNORE INTO `cloud`.`configuration` VALUES ('Advanced', 'DEFAULT', 'management-server', 'timeout.baremetal.securitygroup.agent.echo', 3600, 'Timeout to echo baremetal security group agent, in seconds, the provisioning process will be treated as a failure');
INSERT IGNORE INTO `cloud`.`configuration` VALUES ('Advanced', 'DEFAULT', 'NetworkManager', 'router.template.hyperv', 'SystemVM Template (HyperV)', 'Name of the default router template on Hyperv.');
INSERT IGNORE INTO `cloud`.`configuration` VALUES ('Advanced', 'DEFAULT', 'NetworkManager', 'router.template.kvm', 'SystemVM Template (KVM)', 'Name of the default router template on KVM.');
INSERT IGNORE INTO `cloud`.`configuration` VALUES ('Advanced', 'DEFAULT', 'NetworkManager', 'router.template.lxc', 'SystemVM Template (LXC)', 'Name of the default router template on LXC.');
INSERT IGNORE INTO `cloud`.`configuration` VALUES ('Advanced', 'DEFAULT', 'NetworkManager', 'router.template.vmware', 'SystemVM Template (vSphere)', 'Name of the default router template on Vmware.');

View File

@ -24,7 +24,7 @@ ALTER TABLE `cloud`.`user_vm` ADD COLUMN `user_vm_type` varchar(255) DEFAULT "Us
-- This is set, so as to ensure that the controller details from the ovf template are adhered to
UPDATE `cloud`.`vm_template` set deploy_as_is = 1 where id = 8;
DELETE FROM `cloud`.`configuration` WHERE name IN ("cloud.kubernetes.cluster.template.name.kvm", "cloud.kubernetes.cluster.template.name.vmware", "cloud.kubernetes.cluster.template.name.xenserver", "cloud.kubernetes.cluster.template.name.hyperv");
DELETE FROM `cloud`.`configuration` WHERE name IN ("cloud.kubernetes.cluster.template.name.kvm", "cloud.kubernetes.cluster.template.name.vmware", "cloud.kubernetes.cluster.template.name.xenserver");
ALTER TABLE `cloud`.`kubernetes_cluster` ADD COLUMN `autoscaling_enabled` tinyint(1) unsigned NOT NULL DEFAULT 0;
ALTER TABLE `cloud`.`kubernetes_cluster` ADD COLUMN `minsize` bigint;

View File

@ -28,4 +28,13 @@ CALL `cloud_usage`.`IDEMPOTENT_ADD_COLUMN`('cloud_usage.usage_volume','vm_id', '
DELETE FROM `cloud`.`configuration` WHERE name = 'ucs.sync.blade.interval';
UPDATE `cloud`.`configuration` SET value = 'KVM,VMware,XenServer,Hyperv,BareMetal,Ovm,LXC,Ovm3,External' WHERE name = 'hypervisor.list';
UPDATE `cloud`.`configuration` SET value = 'Hypervisor type used to create system vm, valid values are: XenServer, KVM, VMware, VirtualBox, Parralels, BareMetal, Any' WHERE name = 'system.vm.default.hypervisor';
DELETE FROM `cloud`.`configuration` WHERE name = 'hyperv.public.network.device';
DELETE FROM `cloud`.`configuration` WHERE name = 'hyperv.private.network.device'
DELETE FROM `cloud`.`configuration` WHERE name = 'hyperv.guest.network.device'
DELETE FROM `cloud`.`configuration` WHERE name = 'router.template.hyperv';
DELETE FROM `cloud`.`configuration` WHERE name = 'router.template.ovm3';
ALTER TABLE `cloud`.`template_store_ref` MODIFY COLUMN `download_url` varchar(2048);

View File

@ -1551,9 +1551,7 @@ public class SystemVmTemplateRegistrationTest {
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());
}
@Test

View File

@ -88,9 +88,7 @@ declare -A template_specs=(
[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"
)
templates=()

View File

@ -65,5 +65,11 @@
<artifactId>cloud-engine-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-api</artifactId>
<version>4.23.0.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@ -482,7 +482,7 @@ public class DefaultEndPointSelector implements EndPointSelector {
}
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();

View File

@ -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
Other arguments:
-h, --help Display this help message and exit

View File

@ -21,6 +21,14 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>cloud-plugin-network-internallb</artifactId>
<name>Apache CloudStack Plugin - Network Internal Load Balancer</name>
<dependencies>
<dependency>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-api</artifactId>
<version>4.23.0.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
<parent>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloudstack-plugins</artifactId>

View File

@ -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;
@ -763,8 +762,6 @@ public class InternalLoadBalancerVMManagerImpl extends ManagerBase implements In
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);
}

View File

@ -1051,9 +1051,6 @@
<exclude>debian/source/format</exclude>
<exclude>dist/console-proxy/js/jquery.js</exclude>
<exclude>engine/schema/dist/**</exclude>
<exclude>plugins/hypervisors/hyperv/conf/agent.properties</exclude>
<exclude>plugins/hypervisors/hyperv/conf/uefi.properties</exclude>
<exclude>plugins/hypervisors/hyperv/DotNet/ServerResource/**</exclude>
<exclude>scripts/installer/windows/acs_license.rtf</exclude>
<exclude>scripts/vm/systemvm/id_rsa.cloud</exclude>
<exclude>services/console-proxy/server/conf/agent.properties</exclude>

View File

@ -1312,14 +1312,8 @@ public class ApiDBUtils {
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.
// Only Xenserver supports vhd format. hyperv is no longer supported natively
List<ClusterVO> xenClusters = s_clusterDao.listByDcHyType(dcId, HypervisorType.XenServer.toString());
if (xenClusters.isEmpty()) {
type = HypervisorType.Hyperv;
}
} 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

View File

@ -18,6 +18,7 @@ package com.cloud.api;
import static com.cloud.utils.NumbersUtil.toHumanReadableSize;
import java.lang.reflect.InvocationTargetException;
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
import java.text.DecimalFormat;
@ -190,7 +191,6 @@ import org.apache.cloudstack.backup.BackupOffering;
import org.apache.cloudstack.backup.BackupRepository;
import org.apache.cloudstack.backup.BackupSchedule;
import org.apache.cloudstack.backup.dao.BackupOfferingDao;
import org.apache.cloudstack.backup.dao.BackupRepositoryDao;
import org.apache.cloudstack.config.Configuration;
import org.apache.cloudstack.config.ConfigurationGroup;
import org.apache.cloudstack.config.ConfigurationSubGroup;
@ -404,7 +404,6 @@ import com.cloud.storage.Volume;
import com.cloud.storage.VolumeVO;
import com.cloud.storage.dao.GuestOSCategoryDao;
import com.cloud.storage.dao.GuestOSDao;
import com.cloud.storage.dao.VolumeDao;
import com.cloud.storage.snapshot.SnapshotPolicy;
import com.cloud.storage.snapshot.SnapshotSchedule;
import com.cloud.tags.dao.ResourceTagDao;
@ -446,6 +445,7 @@ import com.cloud.vm.snapshot.VMSnapshot;
import com.cloud.vm.snapshot.VMSnapshotVO;
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
import org.jetbrains.annotations.NotNull;
import sun.security.x509.X509CertImpl;
public class ApiResponseHelper implements ResponseGenerator {
@ -468,8 +468,6 @@ public class ApiResponseHelper implements ResponseGenerator {
@Inject
SnapshotDataFactory snapshotfactory;
@Inject
private VolumeDao _volumeDao;
@Inject
private DataStoreManager _dataStoreMgr;
@Inject
private SnapshotDataStoreDao _snapshotStoreDao;
@ -514,8 +512,6 @@ public class ApiResponseHelper implements ResponseGenerator {
@Inject
VlanDetailsDao vlanDetailsDao;
@Inject
BackupRepositoryDao backupRepositoryDao;
@Inject
private ASNumberRangeDao asNumberRangeDao;
@Inject
private ASNumberDao asNumberDao;
@ -756,7 +752,7 @@ public class ApiResponseHelper implements ResponseGenerator {
}
if (snapshotInfo == null) {
logger.debug("Unable to find info for image store snapshot with uuid " + snapshot.getUuid());
logger.debug("Unable to find info for image store snapshot with uuid {}", snapshot.getUuid());
snapshotResponse.setRevertable(false);
} else {
snapshotResponse.setRevertable(snapshotInfo.isRevertable());
@ -765,7 +761,7 @@ public class ApiResponseHelper implements ResponseGenerator {
// set tag information
List<? extends ResourceTag> tags = ApiDBUtils.listByResourceTypeAndId(ResourceObjectType.Snapshot, snapshot.getId());
List<ResourceTagResponse> tagResponses = new ArrayList<ResourceTagResponse>();
List<ResourceTagResponse> tagResponses = new ArrayList<>();
for (ResourceTag tag : tags) {
ResourceTagResponse tagResponse = createResourceTagResponse(tag, true);
CollectionUtils.addIgnoreNull(tagResponses, tagResponse);
@ -795,7 +791,7 @@ public class ApiResponseHelper implements ResponseGenerator {
if (mapCapabilities != null) {
String value = mapCapabilities.get(DataStoreCapabilities.STORAGE_SYSTEM_SNAPSHOT.toString());
Boolean supportsStorageSystemSnapshots = new Boolean(value);
boolean supportsStorageSystemSnapshots = Boolean.parseBoolean(value);
if (supportsStorageSystemSnapshots) {
return DataStoreRole.Primary;
@ -835,7 +831,7 @@ public class ApiResponseHelper implements ResponseGenerator {
populateOwner(vmSnapshotResponse, vmSnapshot);
List<? extends ResourceTag> tags = _resourceTagDao.listBy(vmSnapshot.getId(), ResourceObjectType.VMSnapshot);
List<ResourceTagResponse> tagResponses = new ArrayList<ResourceTagResponse>();
List<ResourceTagResponse> tagResponses = new ArrayList<>();
for (ResourceTag tag : tags) {
ResourceTagResponse tagResponse = createResourceTagResponse(tag, false);
CollectionUtils.addIgnoreNull(tagResponses, tagResponse);
@ -867,7 +863,7 @@ public class ApiResponseHelper implements ResponseGenerator {
policyResponse.setObjectName("snapshotpolicy");
List<? extends ResourceTag> tags = _resourceTagDao.listBy(policy.getId(), ResourceObjectType.SnapshotPolicy);
List<ResourceTagResponse> tagResponses = new ArrayList<ResourceTagResponse>();
List<ResourceTagResponse> tagResponses = new ArrayList<>();
for (ResourceTag tag : tags) {
ResourceTagResponse tagResponse = createResourceTagResponse(tag, false);
CollectionUtils.addIgnoreNull(tagResponses, tagResponse);
@ -932,7 +928,7 @@ public class ApiResponseHelper implements ResponseGenerator {
try {
Long podId = ApiDBUtils.getPodIdForVlan(vlan.getId());
VlanIpRangeResponse vlanResponse = subClass.newInstance();
VlanIpRangeResponse vlanResponse = subClass.getDeclaredConstructor().newInstance();
vlanResponse.setId(vlan.getUuid());
if (vlan.getVlanType() != null) {
vlanResponse.setForVirtualNetwork(vlan.getVlanType().equals(VlanType.VirtualNetwork));
@ -996,7 +992,7 @@ public class ApiResponseHelper implements ResponseGenerator {
if (networkId != null) {
Network network = _ntwkModel.getNetwork(networkId);
if (network != null && TrafficType.Guest.equals(network.getTrafficType())) {
Long accountId = network.getAccountId();
long accountId = network.getAccountId();
populateAccount(vlanResponse, accountId);
populateDomain(vlanResponse, ApiDBUtils.findAccountById(accountId).getDomainId());
}
@ -1014,7 +1010,7 @@ public class ApiResponseHelper implements ResponseGenerator {
vlanResponse.setProvider(getProviderFromVlanDetailKey(vlan));
vlanResponse.setObjectName("vlan");
return vlanResponse;
} catch (InstantiationException | IllegalAccessException e) {
} catch (InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e) {
throw new CloudRuntimeException("Failed to create Vlan IP Range response", e);
}
}
@ -1203,7 +1199,7 @@ public class ApiResponseHelper implements ResponseGenerator {
//set tag information
List<? extends ResourceTag> tags = ApiDBUtils.listByResourceTypeAndId(ResourceObjectType.PublicIpAddress, ipAddr.getId());
List<ResourceTagResponse> tagResponses = new ArrayList<ResourceTagResponse>();
List<ResourceTagResponse> tagResponses = new ArrayList<>();
for (ResourceTag tag : tags) {
ResourceTagResponse tagResponse = createResourceTagResponse(tag, true);
CollectionUtils.addIgnoreNull(tagResponses, tagResponse);
@ -1309,7 +1305,7 @@ public class ApiResponseHelper implements ResponseGenerator {
//set tag information
List<? extends ResourceTag> tags = ApiDBUtils.listByResourceTypeAndId(ResourceObjectType.LoadBalancer, loadBalancer.getId());
List<ResourceTagResponse> tagResponses = new ArrayList<ResourceTagResponse>();
List<ResourceTagResponse> tagResponses = new ArrayList<>();
for (ResourceTag tag : tags) {
ResourceTagResponse tagResponse = createResourceTagResponse(tag, true);
CollectionUtils.addIgnoreNull(tagResponses, tagResponse);
@ -1339,7 +1335,7 @@ public class ApiResponseHelper implements ResponseGenerator {
populateOwner(response, globalLoadBalancerRule);
response.setObjectName("globalloadbalancer");
List<LoadBalancerResponse> siteLbResponses = new ArrayList<LoadBalancerResponse>();
List<LoadBalancerResponse> siteLbResponses = new ArrayList<>();
List<? extends LoadBalancer> siteLoadBalaners = ApiDBUtils.listSiteLoadBalancers(globalLoadBalancerRule.getId());
for (LoadBalancer siteLb : siteLoadBalaners) {
LoadBalancerResponse siteLbResponse = createLoadBalancerResponse(siteLb);
@ -1360,15 +1356,14 @@ public class ApiResponseHelper implements ResponseGenerator {
@Override
public PodResponse createPodResponse(Pod pod, Boolean showCapacities) {
String[] ipRange = new String[2];
List<String> startIps = new ArrayList<String>();
List<String> endIps = new ArrayList<String>();
List<String> forSystemVms = new ArrayList<String>();
List<String> vlanIds = new ArrayList<String>();
List<String> startIps = new ArrayList<>();
List<String> endIps = new ArrayList<>();
List<String> forSystemVms = new ArrayList<>();
List<String> vlanIds = new ArrayList<>();
List<IpRangeResponse> ipRanges = new ArrayList<>();
if (pod.getDescription() != null && pod.getDescription().length() > 0) {
if (pod.getDescription() != null && !pod.getDescription().isEmpty()) {
final String[] existingPodIpRanges = pod.getDescription().split(",");
for(String podIpRange: existingPodIpRanges) {
@ -1418,7 +1413,7 @@ public class ApiResponseHelper implements ResponseGenerator {
podResponse.setZoneStorageAccessGroups(zone.getStorageAccessGroups());
if (showCapacities != null && showCapacities) {
List<SummedCapacity> capacities = ApiDBUtils.getCapacityByClusterPodZone(null, pod.getId(), null);
Set<CapacityResponse> capacityResponses = new HashSet<CapacityResponse>();
Set<CapacityResponse> capacityResponses = new HashSet<>();
for (SummedCapacity capacity : capacities) {
CapacityResponse capacityResponse = new CapacityResponse();
capacityResponse.setCapacityType(capacity.getCapacityType());
@ -1440,7 +1435,7 @@ public class ApiResponseHelper implements ResponseGenerator {
}
// Do it for stats as well.
capacityResponses.addAll(getStatsCapacityresponse(null, null, pod.getId(), pod.getDataCenterId()));
podResponse.setCapacities(new ArrayList<CapacityResponse>(capacityResponses));
podResponse.setCapacities(new ArrayList<>(capacityResponses));
}
podResponse.setHasAnnotation(annotationDao.hasAnnotations(pod.getUuid(), AnnotationService.EntityType.POD.name(),
@ -1457,7 +1452,7 @@ public class ApiResponseHelper implements ResponseGenerator {
public static List<CapacityResponse> getDataCenterCapacityResponse(Long zoneId) {
List<SummedCapacity> capacities = ApiDBUtils.getCapacityByClusterPodZone(zoneId, null, null);
Set<CapacityResponse> capacityResponses = new HashSet<CapacityResponse>();
Set<CapacityResponse> capacityResponses = new HashSet<>();
for (SummedCapacity capacity : capacities) {
CapacityResponse capacityResponse = new CapacityResponse();
@ -1481,18 +1476,18 @@ public class ApiResponseHelper implements ResponseGenerator {
// Do it for stats as well.
capacityResponses.addAll(getStatsCapacityresponse(null, null, null, zoneId));
return new ArrayList<CapacityResponse>(capacityResponses);
return new ArrayList<>(capacityResponses);
}
private static List<CapacityResponse> getStatsCapacityresponse(Long poolId, Long clusterId, Long podId, Long zoneId) {
List<CapacityVO> capacities = new ArrayList<CapacityVO>();
List<CapacityVO> capacities = new ArrayList<>();
capacities.add(ApiDBUtils.getStoragePoolUsedStats(poolId, clusterId, podId, zoneId));
if (clusterId == null && podId == null) {
capacities.add(ApiDBUtils.getSecondaryStorageUsedStats(poolId, zoneId));
capacities.add(ApiDBUtils.getObjectStorageUsedStats(zoneId));
}
List<CapacityResponse> capacityResponses = new ArrayList<CapacityResponse>();
List<CapacityResponse> capacityResponses = new ArrayList<>();
for (CapacityVO capacity : capacities) {
CapacityResponse capacityResponse = new CapacityResponse();
capacityResponse.setCapacityType(capacity.getCapacityType());
@ -1610,7 +1605,7 @@ public class ApiResponseHelper implements ResponseGenerator {
if (showCapacities != null && showCapacities) {
List<SummedCapacity> capacities = ApiDBUtils.getCapacityByClusterPodZone(null, null, cluster.getId());
Set<CapacityResponse> capacityResponses = new HashSet<CapacityResponse>();
Set<CapacityResponse> capacityResponses = new HashSet<>();
for (SummedCapacity capacity : capacities) {
CapacityResponse capacityResponse = new CapacityResponse();
@ -1634,7 +1629,7 @@ public class ApiResponseHelper implements ResponseGenerator {
}
// Do it for stats as well.
capacityResponses.addAll(getStatsCapacityresponse(null, cluster.getId(), pod.getId(), pod.getDataCenterId()));
clusterResponse.setCapacities(new ArrayList<CapacityResponse>(capacityResponses));
clusterResponse.setCapacities(new ArrayList<>(capacityResponses));
}
clusterResponse.setHasAnnotation(annotationDao.hasAnnotations(cluster.getUuid(), AnnotationService.EntityType.CLUSTER.name(),
_accountMgr.isRootAdmin(CallContext.current().getCallingAccount().getId())));
@ -1688,7 +1683,7 @@ public class ApiResponseHelper implements ResponseGenerator {
// set tag information
List<? extends ResourceTag> tags = ApiDBUtils.listByResourceTypeAndId(ResourceObjectType.PortForwardingRule, fwRule.getId());
List<ResourceTagResponse> tagResponses = new ArrayList<ResourceTagResponse>();
List<ResourceTagResponse> tagResponses = new ArrayList<>();
for (ResourceTag tag : tags) {
ResourceTagResponse tagResponse = createResourceTagResponse(tag, true);
CollectionUtils.addIgnoreNull(tagResponses, tagResponse);
@ -1739,18 +1734,6 @@ public class ApiResponseHelper implements ResponseGenerator {
return response;
}
/*
@Override
public List<UserVmResponse> createUserVmResponse(String objectName, UserVm... userVms) {
return createUserVmResponse(null, objectName, userVms);
}
@Override
public List<UserVmResponse> createUserVmResponse(String objectName, EnumSet<VMDetails> details, UserVm... userVms) {
return createUserVmResponse(null, objectName, userVms);
}
*/
@Override
public List<UserVmResponse> createUserVmResponse(ResponseView view, String objectName, EnumSet<VMDetails> details, UserVm... userVms) {
List<UserVmJoinVO> viewVms = ApiDBUtils.newUserVmView(userVms);
@ -2146,7 +2129,7 @@ public class ApiResponseHelper implements ResponseGenerator {
@Override
public List<CapacityResponse> createCapacityResponse(List<? extends Capacity> result, DecimalFormat format) {
List<CapacityResponse> capacityResponses = new ArrayList<CapacityResponse>();
List<CapacityResponse> capacityResponses = new ArrayList<>();
for (Capacity summedCapacity : result) {
if (summedCapacity.getTotalCapacity() == 0 &&
@ -2273,12 +2256,12 @@ public class ApiResponseHelper implements ResponseGenerator {
}
// Set accounts
List<String> projectIds = new ArrayList<String>();
List<String> regularAccounts = new ArrayList<String>();
List<String> projectIds = new ArrayList<>();
List<String> regularAccounts = new ArrayList<>();
for (String accountName : accountNames) {
Account account = ApiDBUtils.findAccountByNameDomain(accountName, templateOwner.getDomainId());
if (account == null) {
logger.error("Missing Account " + accountName + " in domain " + templateOwner.getDomainId());
logger.error("Missing Account {} in domain {}", accountName, templateOwner.getDomainId());
continue;
}
@ -2341,7 +2324,6 @@ public class ApiResponseHelper implements ResponseGenerator {
@Override
public SecurityGroupResponse createSecurityGroupResponseFromSecurityGroupRule(List<? extends SecurityRule> securityRules) {
SecurityGroupResponse response = new SecurityGroupResponse();
Map<Long, Account> securiytGroupAccounts = new HashMap<Long, Account>();
if ((securityRules != null) && !securityRules.isEmpty()) {
SecurityGroupJoinVO securityGroup = ApiDBUtils.findSecurityGroupViewById(securityRules.get(0).getSecurityGroupId()).get(0);
@ -2367,7 +2349,7 @@ public class ApiResponseHelper implements ResponseGenerator {
Long allowedSecurityGroupId = securityRule.getAllowedNetworkId();
if (allowedSecurityGroupId != null) {
List<SecurityGroupJoinVO> sgs = ApiDBUtils.findSecurityGroupViewById(allowedSecurityGroupId);
if (sgs != null && sgs.size() > 0) {
if (sgs != null && !sgs.isEmpty()) {
SecurityGroupJoinVO sg = sgs.get(0);
securityGroupData.setSecurityGroupName(sg.getName());
securityGroupData.setAccountName(sg.getAccountName());
@ -2410,7 +2392,7 @@ public class ApiResponseHelper implements ResponseGenerator {
}
}
Map<Service, Set<Provider>> serviceProviderMap = ApiDBUtils.listNetworkOfferingServices(offering.getId());
List<ServiceResponse> serviceResponses = new ArrayList<ServiceResponse>();
List<ServiceResponse> serviceResponses = new ArrayList<>();
for (Map.Entry<Service,Set<Provider>> entry : serviceProviderMap.entrySet()) {
Service service = entry.getKey();
Set<Provider> srvc_providers = entry.getValue();
@ -2420,7 +2402,7 @@ public class ApiResponseHelper implements ResponseGenerator {
continue;
}
svcRsp.setName(service.getName());
List<ProviderResponse> providers = new ArrayList<ProviderResponse>();
List<ProviderResponse> providers = new ArrayList<>();
for (Provider provider : srvc_providers) {
if (provider != null) {
ProviderResponse providerRsp = new ProviderResponse();
@ -2430,54 +2412,15 @@ public class ApiResponseHelper implements ResponseGenerator {
}
svcRsp.setProviders(providers);
if (Service.Lb == service) {
List<CapabilityResponse> lbCapResponse = new ArrayList<CapabilityResponse>();
CapabilityResponse lbIsoaltion = new CapabilityResponse();
lbIsoaltion.setName(Capability.SupportedLBIsolation.getName());
lbIsoaltion.setValue(offering.isDedicatedLB() ? "dedicated" : "shared");
lbCapResponse.add(lbIsoaltion);
CapabilityResponse eLb = new CapabilityResponse();
eLb.setName(Capability.ElasticLb.getName());
eLb.setValue(offering.isElasticLb() ? "true" : "false");
lbCapResponse.add(eLb);
CapabilityResponse inline = new CapabilityResponse();
inline.setName(Capability.InlineMode.getName());
inline.setValue(offering.isInline() ? "true" : "false");
lbCapResponse.add(inline);
CapabilityResponse vmAutoScaling = new CapabilityResponse();
vmAutoScaling.setName(Capability.VmAutoScaling.getName());
vmAutoScaling.setValue(offering.isSupportsVmAutoScaling() ? "true" : "false");
lbCapResponse.add(vmAutoScaling);
List<CapabilityResponse> lbCapResponse = getCapabilityResponses(offering);
svcRsp.setCapabilities(lbCapResponse);
} else if (Service.SourceNat == service) {
List<CapabilityResponse> capabilities = new ArrayList<CapabilityResponse>();
CapabilityResponse sharedSourceNat = new CapabilityResponse();
sharedSourceNat.setName(Capability.SupportedSourceNatTypes.getName());
sharedSourceNat.setValue(offering.isSharedSourceNat() ? "perzone" : "peraccount");
capabilities.add(sharedSourceNat);
CapabilityResponse redundantRouter = new CapabilityResponse();
redundantRouter.setName(Capability.RedundantRouter.getName());
redundantRouter.setValue(offering.isRedundantRouter() ? "true" : "false");
capabilities.add(redundantRouter);
List<CapabilityResponse> capabilities = getResponses(offering);
svcRsp.setCapabilities(capabilities);
} else if (service == Service.StaticNat) {
List<CapabilityResponse> staticNatCapResponse = new ArrayList<CapabilityResponse>();
CapabilityResponse eIp = new CapabilityResponse();
eIp.setName(Capability.ElasticIp.getName());
eIp.setValue(offering.isElasticIp() ? "true" : "false");
staticNatCapResponse.add(eIp);
CapabilityResponse associatePublicIp = new CapabilityResponse();
associatePublicIp.setName(Capability.AssociatePublicIP.getName());
associatePublicIp.setValue(offering.isAssociatePublicIP() ? "true" : "false");
staticNatCapResponse.add(associatePublicIp);
List<CapabilityResponse> staticNatCapResponse = getCapabilityResponseList(offering);
svcRsp.setCapabilities(staticNatCapResponse);
}
@ -2500,6 +2443,63 @@ public class ApiResponseHelper implements ResponseGenerator {
return response;
}
@NotNull
private static List<CapabilityResponse> getCapabilityResponseList(NetworkOffering offering) {
List<CapabilityResponse> staticNatCapResponse = new ArrayList<>();
CapabilityResponse eIp = new CapabilityResponse();
eIp.setName(Capability.ElasticIp.getName());
eIp.setValue(offering.isElasticIp() ? "true" : "false");
staticNatCapResponse.add(eIp);
CapabilityResponse associatePublicIp = new CapabilityResponse();
associatePublicIp.setName(Capability.AssociatePublicIP.getName());
associatePublicIp.setValue(offering.isAssociatePublicIP() ? "true" : "false");
staticNatCapResponse.add(associatePublicIp);
return staticNatCapResponse;
}
@NotNull
private static List<CapabilityResponse> getResponses(NetworkOffering offering) {
List<CapabilityResponse> capabilities = new ArrayList<>();
CapabilityResponse sharedSourceNat = new CapabilityResponse();
sharedSourceNat.setName(Capability.SupportedSourceNatTypes.getName());
sharedSourceNat.setValue(offering.isSharedSourceNat() ? "perzone" : "peraccount");
capabilities.add(sharedSourceNat);
CapabilityResponse redundantRouter = new CapabilityResponse();
redundantRouter.setName(Capability.RedundantRouter.getName());
redundantRouter.setValue(offering.isRedundantRouter() ? "true" : "false");
capabilities.add(redundantRouter);
return capabilities;
}
@NotNull
private static List<CapabilityResponse> getCapabilityResponses(NetworkOffering offering) {
List<CapabilityResponse> lbCapResponse = new ArrayList<>();
CapabilityResponse lbIsoaltion = new CapabilityResponse();
lbIsoaltion.setName(Capability.SupportedLBIsolation.getName());
lbIsoaltion.setValue(offering.isDedicatedLB() ? "dedicated" : "shared");
lbCapResponse.add(lbIsoaltion);
CapabilityResponse eLb = new CapabilityResponse();
eLb.setName(Capability.ElasticLb.getName());
eLb.setValue(offering.isElasticLb() ? "true" : "false");
lbCapResponse.add(eLb);
CapabilityResponse inline = new CapabilityResponse();
inline.setName(Capability.InlineMode.getName());
inline.setValue(offering.isInline() ? "true" : "false");
lbCapResponse.add(inline);
CapabilityResponse vmAutoScaling = new CapabilityResponse();
vmAutoScaling.setName(Capability.VmAutoScaling.getName());
vmAutoScaling.setValue(offering.isSupportsVmAutoScaling() ? "true" : "false");
lbCapResponse.add(vmAutoScaling);
return lbCapResponse;
}
private void createCapabilityResponse(List<CapabilityResponse> capabilityResponses,
String name,
String value,
@ -2571,8 +2571,8 @@ public class ApiResponseHelper implements ResponseGenerator {
String[] guestVmCidrPair = cidr.split("\\/");
String[] guestCidrPair = network.getNetworkCidr().split("\\/");
Long guestVmCidrSize = Long.valueOf(guestVmCidrPair[1]);
Long guestCidrSize = Long.valueOf(guestCidrPair[1]);
long guestVmCidrSize = Long.parseLong(guestVmCidrPair[1]);
long guestCidrSize = Long.parseLong(guestCidrPair[1]);
String[] guestVmIpRange = NetUtils.getIpRangeFromCidr(guestVmCidrPair[0], guestVmCidrSize);
String[] guestIpRange = NetUtils.getIpRangeFromCidr(guestCidrPair[0], guestCidrSize);
@ -2669,7 +2669,7 @@ public class ApiResponseHelper implements ResponseGenerator {
// populate capability
Map<Service, Map<Capability, String>> serviceCapabilitiesMap = ApiDBUtils.getNetworkCapabilities(network.getId(), network.getDataCenterId());
Map<Service, Set<Provider>> serviceProviderMap = ApiDBUtils.listNetworkOfferingServices(network.getNetworkOfferingId());
List<ServiceResponse> serviceResponses = new ArrayList<ServiceResponse>();
List<ServiceResponse> serviceResponses = new ArrayList<>();
if (serviceCapabilitiesMap != null) {
for (Map.Entry<Service, Map<Capability, String>>entry : serviceCapabilitiesMap.entrySet()) {
Service service = entry.getKey();
@ -2766,7 +2766,7 @@ public class ApiResponseHelper implements ResponseGenerator {
// set tag information
List<? extends ResourceTag> tags = ApiDBUtils.listByResourceTypeAndId(ResourceObjectType.Network, network.getId());
List<ResourceTagResponse> tagResponses = new ArrayList<ResourceTagResponse>();
List<ResourceTagResponse> tagResponses = new ArrayList<>();
for (ResourceTag tag : tags) {
ResourceTagResponse tagResponse = createResourceTagResponse(tag, true);
CollectionUtils.addIgnoreNull(tagResponses, tagResponse);
@ -2785,8 +2785,8 @@ public class ApiResponseHelper implements ResponseGenerator {
response.setStrechedL2Subnet(network.isStrechedL2Network());
if (network.isStrechedL2Network()) {
Set<String> networkSpannedZones = new HashSet<String>();
List<VMInstanceVO> vmInstances = new ArrayList<VMInstanceVO>();
Set<String> networkSpannedZones = new HashSet<>();
List<VMInstanceVO> vmInstances = new ArrayList<>();
vmInstances.addAll(ApiDBUtils.listUserVMsByNetworkId(network.getId()));
vmInstances.addAll(ApiDBUtils.listDomainRoutersByNetworkId(network.getId()));
for (VirtualMachine vm : vmInstances) {
@ -2800,8 +2800,8 @@ public class ApiResponseHelper implements ResponseGenerator {
response.setCreated(network.getCreated());
response.setSupportsVmAutoScaling(networkOfferingDao.findByIdIncludingRemoved(network.getNetworkOfferingId()).isSupportsVmAutoScaling());
Long bytesReceived = 0L;
Long bytesSent = 0L;
long bytesReceived = 0L;
long bytesSent = 0L;
SearchBuilder<UserStatisticsVO> sb = userStatsDao.createSearchBuilder();
sb.and("networkId", sb.entity().getNetworkId(), Op.EQ);
SearchCriteria<UserStatisticsVO> sc = sb.create();
@ -2856,7 +2856,7 @@ public class ApiResponseHelper implements ResponseGenerator {
private void setResponseAssociatedNetworkInformation(BaseResponseWithAssociatedNetwork response, Long networkId) {
final NetworkDetailVO detail = networkDetailsDao.findDetail(networkId, Network.AssociatedNetworkId);
if (detail != null) {
Long associatedNetworkId = Long.valueOf(detail.getValue());
long associatedNetworkId = Long.parseLong(detail.getValue());
NetworkVO associatedNetwork = ApiDBUtils.findNetworkById(associatedNetworkId);
if (associatedNetwork != null) {
response.setAssociatedNetworkId(associatedNetwork.getUuid());
@ -2927,7 +2927,7 @@ public class ApiResponseHelper implements ResponseGenerator {
// set tag information
List<? extends ResourceTag> tags = ApiDBUtils.listByResourceTypeAndId(ResourceObjectType.FirewallRule, fwRule.getId());
List<ResourceTagResponse> tagResponses = new ArrayList<ResourceTagResponse>();
List<ResourceTagResponse> tagResponses = new ArrayList<>();
for (ResourceTag tag : tags) {
ResourceTagResponse tagResponse = createResourceTagResponse(tag, true);
CollectionUtils.addIgnoreNull(tagResponses, tagResponse);
@ -2979,7 +2979,7 @@ public class ApiResponseHelper implements ResponseGenerator {
//set tag information
List<? extends ResourceTag> tags = ApiDBUtils.listByResourceTypeAndId(ResourceObjectType.NetworkACL, aclItem.getId());
List<ResourceTagResponse> tagResponses = new ArrayList<ResourceTagResponse>();
List<ResourceTagResponse> tagResponses = new ArrayList<>();
for (ResourceTag tag : tags) {
ResourceTagResponse tagResponse = createResourceTagResponse(tag, true);
CollectionUtils.addIgnoreNull(tagResponses, tagResponse);
@ -3068,7 +3068,7 @@ public class ApiResponseHelper implements ResponseGenerator {
private void populateAccount(ControlledEntityResponse response, long accountId) {
Account account = ApiDBUtils.findAccountById(accountId);
if (account == null) {
logger.debug("Unable to find account with id: " + accountId);
logger.debug("Unable to find account with id: {}", accountId);
} else if (account.getType() == Account.Type.PROJECT) {
// find the project
Project project = ApiDBUtils.findProjectByProjectAccountId(account.getId());
@ -3077,7 +3077,7 @@ public class ApiResponseHelper implements ResponseGenerator {
response.setProjectName(project.getName());
response.setAccountName(account.getAccountName());
} else {
logger.debug("Unable to find project with id: " + account.getId());
logger.debug("Unable to find project with id: {}", account.getId());
}
} else {
response.setAccountName(account.getAccountName());
@ -3201,7 +3201,26 @@ public class ApiResponseHelper implements ResponseGenerator {
response.setName(service.getName());
// set list of capabilities required for the service
List<CapabilityResponse> capabilityResponses = new ArrayList<CapabilityResponse>();
List<CapabilityResponse> capabilityResponses = getCapabilityResponses(service);
response.setCapabilities(capabilityResponses);
// set list of providers providing this service
List<? extends Network.Provider> serviceProviders = ApiDBUtils.getProvidersForService(service);
List<ProviderResponse> serviceProvidersResponses = new ArrayList<>();
for (Network.Provider serviceProvider : serviceProviders) {
ProviderResponse serviceProviderResponse = createServiceProviderResponse(serviceProvider);
serviceProvidersResponses.add(serviceProviderResponse);
}
response.setProviders(serviceProvidersResponses);
response.setObjectName("networkservice");
return response;
}
@NotNull
private static List<CapabilityResponse> getCapabilityResponses(Service service) {
List<CapabilityResponse> capabilityResponses = new ArrayList<>();
Capability[] capabilities = service.getCapabilities();
for (Capability cap : capabilities) {
CapabilityResponse capabilityResponse = new CapabilityResponse();
@ -3215,20 +3234,7 @@ public class ApiResponseHelper implements ResponseGenerator {
}
capabilityResponses.add(capabilityResponse);
}
response.setCapabilities(capabilityResponses);
// set list of providers providing this service
List<? extends Network.Provider> serviceProviders = ApiDBUtils.getProvidersForService(service);
List<ProviderResponse> serviceProvidersResponses = new ArrayList<ProviderResponse>();
for (Network.Provider serviceProvider : serviceProviders) {
ProviderResponse serviceProviderResponse = createServiceProviderResponse(serviceProvider);
serviceProvidersResponses.add(serviceProviderResponse);
}
response.setProviders(serviceProvidersResponses);
response.setObjectName("networkservice");
return response;
return capabilityResponses;
}
private ProviderResponse createServiceProviderResponse(Provider serviceProvider) {
@ -3255,7 +3261,7 @@ public class ApiResponseHelper implements ResponseGenerator {
response.setState(result.getState().toString());
// set enabled services
List<String> services = new ArrayList<String>();
List<String> services = new ArrayList<>();
for (Service service : result.getEnabledServices()) {
services.add(service.getName());
}
@ -3287,8 +3293,6 @@ public class ApiResponseHelper implements ResponseGenerator {
response.setXenLabel(result.getXenNetworkLabel());
response.setKvmLabel(result.getKvmNetworkLabel());
response.setVmwareLabel(result.getVmwareNetworkLabel());
response.setHypervLabel(result.getHypervNetworkLabel());
response.setOvm3Label(result.getOvm3NetworkLabel());
response.setVlan(result.getVlan());
response.setObjectName("traffictype");
@ -3343,7 +3347,7 @@ public class ApiResponseHelper implements ResponseGenerator {
}
}
List<LBStickinessPolicyResponse> responses = new ArrayList<LBStickinessPolicyResponse>();
List<LBStickinessPolicyResponse> responses = new ArrayList<>();
LBStickinessPolicyResponse ruleResponse = new LBStickinessPolicyResponse(stickinessPolicy);
responses.add(ruleResponse);
@ -3371,7 +3375,7 @@ public class ApiResponseHelper implements ResponseGenerator {
}
}
List<LBStickinessPolicyResponse> responses = new ArrayList<LBStickinessPolicyResponse>();
List<LBStickinessPolicyResponse> responses = new ArrayList<>();
for (StickinessPolicy stickinessPolicy : stickinessPolicies) {
LBStickinessPolicyResponse ruleResponse = new LBStickinessPolicyResponse(stickinessPolicy);
responses.add(ruleResponse);
@ -3400,7 +3404,7 @@ public class ApiResponseHelper implements ResponseGenerator {
}
}
List<LBHealthCheckPolicyResponse> responses = new ArrayList<LBHealthCheckPolicyResponse>();
List<LBHealthCheckPolicyResponse> responses = new ArrayList<>();
for (HealthCheckPolicy healthcheckPolicy : healthcheckPolicies) {
LBHealthCheckPolicyResponse ruleResponse = new LBHealthCheckPolicyResponse(healthcheckPolicy);
responses.add(ruleResponse);
@ -3426,7 +3430,7 @@ public class ApiResponseHelper implements ResponseGenerator {
}
}
List<LBHealthCheckPolicyResponse> responses = new ArrayList<LBHealthCheckPolicyResponse>();
List<LBHealthCheckPolicyResponse> responses = new ArrayList<>();
LBHealthCheckPolicyResponse ruleResponse = new LBHealthCheckPolicyResponse(healthcheckPolicy);
responses.add(ruleResponse);
hcResponse.setRules(responses);
@ -3477,29 +3481,7 @@ public class ApiResponseHelper implements ResponseGenerator {
}
VpcOfferingResponse response = ApiDBUtils.newVpcOfferingResponse(offering);
Map<Service, Set<Provider>> serviceProviderMap = ApiDBUtils.listVpcOffServices(offering.getId());
List<ServiceResponse> serviceResponses = new ArrayList<ServiceResponse>();
for (Map.Entry<Service, Set<Provider>> entry : serviceProviderMap.entrySet()) {
Service service = entry.getKey();
Set<Provider> srvc_providers = entry.getValue();
ServiceResponse svcRsp = new ServiceResponse();
// skip gateway service
if (service == Service.Gateway) {
continue;
}
svcRsp.setName(service.getName());
List<ProviderResponse> providers = new ArrayList<ProviderResponse>();
for (Provider provider : srvc_providers) {
if (provider != null) {
ProviderResponse providerRsp = new ProviderResponse();
providerRsp.setName(provider.getName());
providers.add(providerRsp);
}
}
svcRsp.setProviders(providers);
serviceResponses.add(svcRsp);
}
List<ServiceResponse> serviceResponses = getServiceResponses(serviceProviderMap);
response.setServices(serviceResponses);
return response;
}
@ -3530,30 +3512,9 @@ public class ApiResponseHelper implements ResponseGenerator {
response.setAsNumber(asNumberVO.getAsNumber());
}
Map<Service, Set<Provider>> serviceProviderMap = ApiDBUtils.listVpcOffServices(vpc.getVpcOfferingId());
List<ServiceResponse> serviceResponses = new ArrayList<ServiceResponse>();
for (Map.Entry<Service,Set<Provider>>entry : serviceProviderMap.entrySet()) {
Service service = entry.getKey();
Set<Provider> serviceProviders = entry.getValue();
ServiceResponse svcRsp = new ServiceResponse();
// skip gateway service
if (service == Service.Gateway) {
continue;
}
svcRsp.setName(service.getName());
List<ProviderResponse> providers = new ArrayList<ProviderResponse>();
for (Provider provider : serviceProviders) {
if (provider != null) {
ProviderResponse providerRsp = new ProviderResponse();
providerRsp.setName(provider.getName());
providers.add(providerRsp);
}
}
svcRsp.setProviders(providers);
List<ServiceResponse> serviceResponses = getServiceResponses(serviceProviderMap);
serviceResponses.add(svcRsp);
}
List<NetworkResponse> networkResponses = new ArrayList<NetworkResponse>();
List<NetworkResponse> networkResponses = new ArrayList<>();
List<? extends Network> networks = ApiDBUtils.listVpcNetworks(vpc.getId());
for (Network network : networks) {
NetworkResponse ntwkRsp = createNetworkResponse(view, network);
@ -3573,7 +3534,7 @@ public class ApiResponseHelper implements ResponseGenerator {
// set tag information
List<? extends ResourceTag> tags = ApiDBUtils.listByResourceTypeAndId(ResourceObjectType.Vpc, vpc.getId());
List<ResourceTagResponse> tagResponses = new ArrayList<ResourceTagResponse>();
List<ResourceTagResponse> tagResponses = new ArrayList<>();
for (ResourceTag tag : tags) {
ResourceTagResponse tagResponse = createResourceTagResponse(tag, true);
CollectionUtils.addIgnoreNull(tagResponses, tagResponse);
@ -3615,6 +3576,33 @@ public class ApiResponseHelper implements ResponseGenerator {
return response;
}
@NotNull
private static List<ServiceResponse> getServiceResponses(Map<Service, Set<Provider>> serviceProviderMap) {
List<ServiceResponse> serviceResponses = new ArrayList<>();
for (Map.Entry<Service,Set<Provider>>entry : serviceProviderMap.entrySet()) {
Service service = entry.getKey();
Set<Provider> serviceProviders = entry.getValue();
ServiceResponse svcRsp = new ServiceResponse();
// skip gateway service
if (service == Service.Gateway) {
continue;
}
svcRsp.setName(service.getName());
List<ProviderResponse> providers = new ArrayList<>();
for (Provider provider : serviceProviders) {
if (provider != null) {
ProviderResponse providerRsp = new ProviderResponse();
providerRsp.setName(provider.getName());
providers.add(providerRsp);
}
}
svcRsp.setProviders(providers);
serviceResponses.add(svcRsp);
}
return serviceResponses;
}
@Override
public PrivateGatewayResponse createPrivateGatewayResponse(ResponseView view, PrivateGateway result) {
PrivateGatewayResponse response = new PrivateGatewayResponse();
@ -3744,7 +3732,7 @@ public class ApiResponseHelper implements ResponseGenerator {
response.setQuietTime(policy.getQuietTime());
response.setAction(policy.getAction().toString());
List<ConditionVO> vos = ApiDBUtils.getAutoScalePolicyConditions(policy.getId());
ArrayList<ConditionResponse> conditions = new ArrayList<ConditionResponse>(vos.size());
ArrayList<ConditionResponse> conditions = new ArrayList<>(vos.size());
for (ConditionVO vo : vos) {
conditions.add(createConditionResponse(vo));
}
@ -3800,15 +3788,15 @@ public class ApiResponseHelper implements ResponseGenerator {
}
}
List<AutoScalePolicyResponse> scaleUpPoliciesResponse = new ArrayList<AutoScalePolicyResponse>();
List<AutoScalePolicyResponse> scaleDownPoliciesResponse = new ArrayList<AutoScalePolicyResponse>();
List<AutoScalePolicyResponse> scaleUpPoliciesResponse = new ArrayList<>();
List<AutoScalePolicyResponse> scaleDownPoliciesResponse = new ArrayList<>();
response.setScaleUpPolicies(scaleUpPoliciesResponse);
response.setScaleDownPolicies(scaleDownPoliciesResponse);
response.setObjectName("autoscalevmgroup");
// Fetch policies for vmgroup
List<AutoScalePolicy> scaleUpPolicies = new ArrayList<AutoScalePolicy>();
List<AutoScalePolicy> scaleDownPolicies = new ArrayList<AutoScalePolicy>();
List<AutoScalePolicy> scaleUpPolicies = new ArrayList<>();
List<AutoScalePolicy> scaleDownPolicies = new ArrayList<>();
ApiDBUtils.getAutoScaleVmGroupPolicies(vmGroup.getId(), scaleUpPolicies, scaleDownPolicies);
// populate policies
for (AutoScalePolicy autoScalePolicy : scaleUpPolicies) {
@ -3857,7 +3845,7 @@ public class ApiResponseHelper implements ResponseGenerator {
// set tag information
List<? extends ResourceTag> tags = ApiDBUtils.listByResourceTypeAndId(ResourceObjectType.StaticRoute, result.getId());
List<ResourceTagResponse> tagResponses = new ArrayList<ResourceTagResponse>();
List<ResourceTagResponse> tagResponses = new ArrayList<>();
for (ResourceTag tag : tags) {
ResourceTagResponse tagResponse = createResourceTagResponse(tag, true);
CollectionUtils.addIgnoreNull(tagResponses,tagResponse);
@ -4138,7 +4126,7 @@ public class ApiResponseHelper implements ResponseGenerator {
Long resourceId = null;
if (usageRecord.getUsageType() == UsageTypes.RUNNING_VM || usageRecord.getUsageType() == UsageTypes.ALLOCATED_VM) {
ServiceOfferingVO svcOffering = _entityMgr.findByIdIncludingRemoved(ServiceOfferingVO.class, usageRecord.getOfferingId().toString());
//Service Offering Id
//Service Offering ID
if(svcOffering != null) {
usageRecResponse.setOfferingId(svcOffering.getUuid());
}
@ -4213,9 +4201,9 @@ public class ApiResponseHelper implements ResponseGenerator {
usageRecResponse.setUsageId(ip.getUuid());
}
//isSourceNAT
usageRecResponse.setSourceNat((usageRecord.getType().equals("SourceNat")) ? true : false);
usageRecResponse.setSourceNat(usageRecord.getType().equals("SourceNat"));
//isSystem
usageRecResponse.setSystem((usageRecord.getSize() == 1) ? true : false);
usageRecResponse.setSystem(usageRecord.getSize() == 1);
} else if (usageRecord.getUsageType() == UsageTypes.NETWORK_BYTES_SENT || usageRecord.getUsageType() == UsageTypes.NETWORK_BYTES_RECEIVED) {
//Device Type
resourceType = ResourceObjectType.UserVm;
@ -4223,14 +4211,14 @@ public class ApiResponseHelper implements ResponseGenerator {
VMInstanceVO vm = null;
HostVO host = null;
if (usageRecord.getType().equals("DomainRouter") || usageRecord.getType().equals("UserVm")) {
//Domain Router Id
//Domain Router ID
vm = _entityMgr.findByIdIncludingRemoved(VMInstanceVO.class, usageRecord.getUsageId().toString());
if (vm != null) {
resourceId = vm.getId();
usageRecResponse.setUsageId(vm.getUuid());
}
} else {
//External Device Host Id
//External Device Host ID
host = _entityMgr.findByIdIncludingRemoved(HostVO.class, usageRecord.getUsageId().toString());
if (host != null) {
usageRecResponse.setUsageId(host.getUuid());
@ -4268,7 +4256,7 @@ public class ApiResponseHelper implements ResponseGenerator {
if (network.getUuid() != null){
builder.append(" (").append(network.getUuid()).append(") ");
}
builder.append(" " + toHumanReadableSize(usageRecord.getRawUsage().longValue()) + " ");
builder.append(" ").append(toHumanReadableSize(usageRecord.getRawUsage().longValue())).append(" ");
}
if (vm != null) {
builder.append("using router ").append(vm.getInstanceName()).append(" (").append(vm.getUuid()).append(")");
@ -4306,7 +4294,7 @@ public class ApiResponseHelper implements ResponseGenerator {
builder.append(" and volume ").append(volume.getName()).append(" (").append(volume.getUuid()).append(")");
}
if (usageRecord.getRawUsage()!= null){
builder.append(" " + toHumanReadableSize(usageRecord.getRawUsage().longValue()));
builder.append(" ").append(toHumanReadableSize(usageRecord.getRawUsage().longValue()));
}
usageRecResponse.setDescription(builder.toString());
}
@ -4342,7 +4330,7 @@ public class ApiResponseHelper implements ResponseGenerator {
builder.append(" and template ").append(template.getName()).append(" (").append(template.getUuid()).append(")");
}
if (usageRecord.getSize() != null) {
builder.append(" and size " + toHumanReadableSize(usageRecord.getSize()));
builder.append(" and size ").append(toHumanReadableSize(usageRecord.getSize()));
}
usageRecResponse.setDescription(builder.toString());
}
@ -4427,7 +4415,7 @@ public class ApiResponseHelper implements ResponseGenerator {
usageRecResponse.setDescription(builder.toString());
}
} else if (usageRecord.getUsageType() == UsageTypes.NETWORK_OFFERING) {
//Network Offering Id
//Network Offering ID
NetworkOfferingVO netOff = _entityMgr.findByIdIncludingRemoved(NetworkOfferingVO.class, usageRecord.getOfferingId().toString());
usageRecResponse.setOfferingId(netOff.getUuid());
//is Default
@ -4458,7 +4446,7 @@ public class ApiResponseHelper implements ResponseGenerator {
usageRecResponse.setDescription(builder.toString());
}
} else if (usageRecord.getUsageType() == UsageTypes.SECURITY_GROUP) {
//Security Group Id
//Security Group ID
SecurityGroupVO sg = _entityMgr.findByIdIncludingRemoved(SecurityGroupVO.class, usageRecord.getUsageId().toString());
resourceType = ResourceObjectType.SecurityGroup;
if (sg != null) {
@ -4538,7 +4526,7 @@ public class ApiResponseHelper implements ResponseGenerator {
builder.append(" using disk offering ").append(diskOff.getName()).append(" (").append(diskOff.getUuid()).append(")");
}
if (usageRecord.getSize() != null){
builder.append(" and size " + toHumanReadableSize(usageRecord.getSize()));
builder.append(" and size ").append(toHumanReadableSize(usageRecord.getSize()));
}
usageRecResponse.setDescription(builder.toString());
}
@ -4788,7 +4776,7 @@ public class ApiResponseHelper implements ResponseGenerator {
if (result.getSecondaryIp()) {
List<NicSecondaryIpVO> secondaryIps = ApiDBUtils.findNicSecondaryIps(result.getId());
if (secondaryIps != null) {
List<NicSecondaryIpResponse> ipList = new ArrayList<NicSecondaryIpResponse>();
List<NicSecondaryIpResponse> ipList = new ArrayList<>();
for (NicSecondaryIpVO ip : secondaryIps) {
NicSecondaryIpResponse ipRes = new NicSecondaryIpResponse();
ipRes.setId(ip.getUuid());
@ -4851,21 +4839,30 @@ public class ApiResponseHelper implements ResponseGenerator {
}
//set load balancer rules information (only one rule per load balancer in this release)
List<ApplicationLoadBalancerRuleResponse> ruleResponses = new ArrayList<ApplicationLoadBalancerRuleResponse>();
ApplicationLoadBalancerRuleResponse ruleResponse = new ApplicationLoadBalancerRuleResponse();
ruleResponse.setInstancePort(lb.getDefaultPortStart());
ruleResponse.setSourcePort(lb.getSourcePortStart());
FirewallRule.State stateToSet = lb.getState();
if (stateToSet.equals(FirewallRule.State.Revoke)) {
stateToSet = FirewallRule.State.Deleting;
}
ruleResponse.setState(stateToSet.toString());
ruleResponse.setObjectName("loadbalancerrule");
ruleResponses.add(ruleResponse);
List<ApplicationLoadBalancerRuleResponse> ruleResponses = getApplicationLoadBalancerRuleResponses(lb);
lbResponse.setLbRules(ruleResponses);
//set Lb instances information
List<ApplicationLoadBalancerInstanceResponse> instanceResponses = new ArrayList<ApplicationLoadBalancerInstanceResponse>();
List<ApplicationLoadBalancerInstanceResponse> instanceResponses = getApplicationLoadBalancerInstanceResponses(lbInstances);
lbResponse.setLbInstances(instanceResponses);
//set tag information
List<? extends ResourceTag> tags = ApiDBUtils.listByResourceTypeAndId(ResourceObjectType.LoadBalancer, lb.getId());
List<ResourceTagResponse> tagResponses = new ArrayList<>();
for (ResourceTag tag : tags) {
ResourceTagResponse tagResponse = createResourceTagResponse(tag, true);
CollectionUtils.addIgnoreNull(tagResponses,tagResponse);
}
lbResponse.setTags(tagResponses);
lbResponse.setObjectName("loadbalancer");
return lbResponse;
}
@NotNull
private static List<ApplicationLoadBalancerInstanceResponse> getApplicationLoadBalancerInstanceResponses(Map<Ip, UserVm> lbInstances) {
List<ApplicationLoadBalancerInstanceResponse> instanceResponses = new ArrayList<>();
for (Map.Entry<Ip,UserVm> entry : lbInstances.entrySet()) {
Ip ip = entry.getKey();
UserVm vm = entry.getValue();
@ -4876,20 +4873,23 @@ public class ApiResponseHelper implements ResponseGenerator {
instanceResponse.setObjectName("loadbalancerinstance");
instanceResponses.add(instanceResponse);
}
return instanceResponses;
}
lbResponse.setLbInstances(instanceResponses);
//set tag information
List<? extends ResourceTag> tags = ApiDBUtils.listByResourceTypeAndId(ResourceObjectType.LoadBalancer, lb.getId());
List<ResourceTagResponse> tagResponses = new ArrayList<ResourceTagResponse>();
for (ResourceTag tag : tags) {
ResourceTagResponse tagResponse = createResourceTagResponse(tag, true);
CollectionUtils.addIgnoreNull(tagResponses,tagResponse);
@NotNull
private static List<ApplicationLoadBalancerRuleResponse> getApplicationLoadBalancerRuleResponses(ApplicationLoadBalancerRule lb) {
List<ApplicationLoadBalancerRuleResponse> ruleResponses = new ArrayList<>();
ApplicationLoadBalancerRuleResponse ruleResponse = new ApplicationLoadBalancerRuleResponse();
ruleResponse.setInstancePort(lb.getDefaultPortStart());
ruleResponse.setSourcePort(lb.getSourcePortStart());
FirewallRule.State stateToSet = lb.getState();
if (stateToSet.equals(FirewallRule.State.Revoke)) {
stateToSet = FirewallRule.State.Deleting;
}
lbResponse.setTags(tagResponses);
lbResponse.setObjectName("loadbalancer");
return lbResponse;
ruleResponse.setState(stateToSet.toString());
ruleResponse.setObjectName("loadbalancerrule");
ruleResponses.add(ruleResponse);
return ruleResponses;
}
@Override
@ -5026,8 +5026,8 @@ public class ApiResponseHelper implements ResponseGenerator {
@Override
public ListResponse<UpgradeRouterTemplateResponse> createUpgradeRouterTemplateResponse(List<Long> jobIds) {
ListResponse<UpgradeRouterTemplateResponse> response = new ListResponse<UpgradeRouterTemplateResponse>();
List<UpgradeRouterTemplateResponse> responses = new ArrayList<UpgradeRouterTemplateResponse>();
ListResponse<UpgradeRouterTemplateResponse> response = new ListResponse<>();
List<UpgradeRouterTemplateResponse> responses = new ArrayList<>();
for (Long jobId : jobIds) {
UpgradeRouterTemplateResponse routerResponse = new UpgradeRouterTemplateResponse();
AsyncJob job = _entityMgr.findById(AsyncJob.class, jobId);
@ -5175,11 +5175,7 @@ public class ApiResponseHelper implements ResponseGenerator {
guestVlanResponse.setPhysicalNetworkId(pnw.getUuid());
guestVlanResponse.setPhysicalNetworkName(pnw.getName());
}
if (guestVlan.getAccountGuestVlanMapId() != null) {
guestVlanResponse.setDedicated(true);
} else {
guestVlanResponse.setDedicated(false);
}
guestVlanResponse.setDedicated(guestVlan.getAccountGuestVlanMapId() != null);
if (guestVlan.getTakenAt() != null) {
guestVlanResponse.setAllocationState("Allocated");
guestVlanResponse.setTaken(guestVlan.getTakenAt());
@ -5188,7 +5184,7 @@ public class ApiResponseHelper implements ResponseGenerator {
}
List<NetworkVO> networks = networkDao.listByZoneAndUriAndGuestType(guestVlan.getDataCenterId(), guestVlan.getVnet(), null);
List<NetworkResponse> networkResponses = new ArrayList<NetworkResponse>();
List<NetworkResponse> networkResponses = new ArrayList<>();
for (Network network : networks) {
NetworkResponse ntwkRsp = createNetworkResponse(ResponseView.Full, network);
networkResponses.add(ntwkRsp);
@ -5249,7 +5245,7 @@ public class ApiResponseHelper implements ResponseGenerator {
response.setValidity(String.format("From: [%s] - To: [%s]", certificate.getNotBefore(), certificate.getNotAfter()));
}
} catch (CertificateException e) {
logger.error("Error parsing direct download certificate: " + certStr, e);
logger.error("Error parsing direct download certificate: {}", certStr, e);
}
}
@ -5345,7 +5341,7 @@ public class ApiResponseHelper implements ResponseGenerator {
// set tag information
List<? extends ResourceTag> tags = ApiDBUtils.listByResourceTypeAndId(ResourceObjectType.FirewallRule, fwRule.getId());
List<ResourceTagResponse> tagResponses = new ArrayList<ResourceTagResponse>();
List<ResourceTagResponse> tagResponses = new ArrayList<>();
for (ResourceTag tag : tags) {
ResourceTagResponse tagResponse = createResourceTagResponse(tag, true);
CollectionUtils.addIgnoreNull(tagResponses, tagResponse);
@ -5533,7 +5529,7 @@ public class ApiResponseHelper implements ResponseGenerator {
String rangeText = String.format("%s-%s", range.getStartASNumber(), range.getEndASNumber());
response.setAsNumberRange(rangeText);
} else {
logger.info("Range is null for AS number: "+ asn.getAsNumber());
logger.info("Range is null for AS number: {}", asn.getAsNumber());
}
response.setAllocated(asn.getAllocatedTime());
response.setAllocationState(asn.isAllocated() ? "Allocated" : "Free");
@ -5617,7 +5613,7 @@ protected Map<String, ResourceIcon> getResourceIconsUsingOsCategory(List<Templat
public GuiThemeResponse createGuiThemeResponse(GuiThemeJoin guiThemeJoin) {
GuiThemeResponse guiThemeResponse = new GuiThemeResponse();
Long callerId = CallContext.current().getCallingAccount().getAccountId();
long callerId = CallContext.current().getCallingAccount().getAccountId();
if (callerId != Account.ACCOUNT_ID_SYSTEM && _accountMgr.isRootAdmin(callerId)) {
guiThemeResponse.setId(guiThemeJoin.getUuid());
guiThemeResponse.setName(guiThemeJoin.getName());

View File

@ -556,8 +556,8 @@ public enum Config {
ManagementServer.class,
String.class,
"hypervisor.list",
HypervisorType.KVM + "," + HypervisorType.VMware + "," + HypervisorType.XenServer + "," + HypervisorType.Hyperv + "," +
HypervisorType.BareMetal + "," + HypervisorType.Ovm + "," + HypervisorType.LXC + "," + HypervisorType.Ovm3 + "," + HypervisorType.External,
HypervisorType.KVM + "," + HypervisorType.VMware + "," + HypervisorType.XenServer + "," +
HypervisorType.BareMetal + "," + HypervisorType.External,
"The list of hypervisors that this deployment will use.",
"hypervisorList",
ConfigKey.Kind.CSV,
@ -1065,31 +1065,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),

View File

@ -1683,7 +1683,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
}
/**
* Valid values are XenServer, KVM, VMware, Hyperv, VirtualBox, Parralels, BareMetal, Simulator, Ovm, Ovm3, LXC.
* Valid values are XenServer, KVM, VMware, VirtualBox, Parralels, BareMetal, Simulator, 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.
*/

View File

@ -1335,9 +1335,6 @@ public class ConsoleProxyManagerImpl extends ManagerBase implements ConsoleProxy
controlNic = managementNic;
}
if(profile.getHypervisorType() == HypervisorType.Hyperv) {
controlNic = managementNic;
}
CheckSshCommand check = new CheckSshCommand(profile.getInstanceName(), controlNic.getIPv4Address(), 3922);
cmds.addCommand("checkSsh", check);

View File

@ -291,7 +291,7 @@ public class HighAvailabilityManagerImpl extends ManagerBase implements Configur
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;
}
@ -460,8 +460,8 @@ public class HighAvailabilityManagerImpl extends ManagerBase implements Configur
}
}
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;
}

View File

@ -1336,10 +1336,6 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel, Confi
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();
}
return label;
}
@ -1366,10 +1362,6 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel, Confi
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();
}
return label;
}
@ -1892,10 +1884,6 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel, Confi
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();
}
return label;
}
@ -1922,10 +1910,6 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel, Confi
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();
}
return label;
}

View File

@ -139,9 +139,9 @@ public class ControlNetworkGuru extends PodBasedNetworkGuru implements NetworkGu
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 class ControlNetworkGuru extends PodBasedNetworkGuru implements NetworkGu
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));

View File

@ -190,9 +190,7 @@ public class NetworkHelperImpl implements NetworkHelper {
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);
}
@Override

View File

@ -39,9 +39,7 @@ 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";
String RouterAlertsCheckIntervalCK = "router.alerts.check.interval";
String VirtualRouterServiceOfferingCK = "router.service.offering";
@ -57,12 +55,8 @@ public interface VirtualNetworkApplianceManager extends Manager, VirtualNetworkA
"Name of the default router template on KVM.", true, ConfigKey.Scope.Zone, null);
ConfigKey<String> RouterTemplateVmware = new ConfigKey<>(String.class, RouterTemplateVmwareCK, "Advanced", "SystemVM Template (vSphere)",
"Name of the default router template on Vmware.", true, ConfigKey.Scope.Zone, null);
ConfigKey<String> RouterTemplateHyperV = new ConfigKey<>(String.class, RouterTemplateHyperVCK, "Advanced", "SystemVM Template (HyperV)",
"Name of the default router template on Hyperv.", true, ConfigKey.Scope.Zone, null);
ConfigKey<String> RouterTemplateLxc = new ConfigKey<>(String.class, RouterTemplateLxcCK, "Advanced", "SystemVM Template (LXC)",
"Name of the default router template on LXC.", true, ConfigKey.Scope.Zone, null);
ConfigKey<String> RouterTemplateOvm3 = new ConfigKey<>(String.class, RouterTemplateOvm3CK, "Advanced", "SystemVM Template (Ovm3)",
"Name of the default router template on Ovm3.", true, ConfigKey.Scope.Zone, null);
ConfigKey<String> VirtualRouterUserData = new ConfigKey<>(String.class, "virtual.router.userdata",
ConfigKey.CATEGORY_ADVANCED, "",

View File

@ -1954,7 +1954,7 @@ Configurable, StateListener<VirtualMachine.State, VirtualMachine.Event, VirtualM
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 (HypervisorType.VMware.equals(dest.getHost().getHypervisorType())) {
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());
@ -2036,10 +2036,6 @@ Configurable, StateListener<VirtualMachine.State, VirtualMachine.Event, VirtualM
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
@ -3353,9 +3349,7 @@ Configurable, StateListener<VirtualMachine.State, VirtualMachine.Event, VirtualM
return new ConfigKey<?>[] {
RouterTemplateKvm,
RouterTemplateVmware,
RouterTemplateHyperV,
RouterTemplateLxc,
RouterTemplateOvm3,
UseExternalDnsServers,
RouterVersionCheckEnabled,
SetServiceMonitor,

View File

@ -346,8 +346,6 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
hTypes.add(HypervisorType.KVM);
hTypes.add(HypervisorType.Simulator);
hTypes.add(HypervisorType.LXC);
hTypes.add(HypervisorType.Hyperv);
hTypes.add(HypervisorType.Ovm3);
hTypes.add(HypervisorType.External);
}

View File

@ -887,8 +887,8 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
public static final ConfigKey<Boolean> 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<HypervisorType> LIVE_MIGRATION_SUPPORTING_HYPERVISORS = List.of(HypervisorType.Hyperv, HypervisorType.KVM,
HypervisorType.LXC, HypervisorType.Ovm, HypervisorType.Ovm3, HypervisorType.Simulator, HypervisorType.VMware, HypervisorType.XenServer);
private static final List<HypervisorType> LIVE_MIGRATION_SUPPORTING_HYPERVISORS = List.of(HypervisorType.KVM,
HypervisorType.LXC, HypervisorType.Simulator, HypervisorType.VMware, HypervisorType.XenServer);
@Inject
public AccountManager _accountMgr;
@ -1456,13 +1456,13 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
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, 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 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 only");
}
}

View File

@ -441,7 +441,7 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
private final Map<String, HypervisorHostListener> hostListeners = new HashMap<>();
private final Set<HypervisorType> 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";
@ -3418,10 +3418,8 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
return HypervisorType.VMware;
} else if (format == ImageFormat.QCOW2) {
return HypervisorType.KVM;
} else if (format == ImageFormat.RAW) {
} else if (format == ImageFormat.RAW) { // bad guess, needs revising (TODO)
return HypervisorType.Ovm;
} else if (format == ImageFormat.VHDX) {
return HypervisorType.Hyperv;
} else {
return HypervisorType.None;
}
@ -3906,8 +3904,6 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
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);
}

View File

@ -116,8 +116,7 @@ public class StoragePoolMonitor implements Listener {
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.LXC || scCmd.getHypervisorType() == HypervisorType.Ovm3) {
scCmd.getHypervisorType() == HypervisorType.LXC) {
String sags[] = _storageManager.getStorageAccessGroups(null, null, null, host.getId());
List<StoragePoolVO> pools = new ArrayList<>();

View File

@ -7157,12 +7157,12 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
}
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, cannot migrate this VM from hypervisor type " + vm.getHypervisorType());
throw new InvalidParameterValueException("Unsupported Hypervisor Type for VM migration, we support XenServer/VMware/KVM 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 only");
}
if (isVMUsingLocalStorage(vm)) {
@ -7320,11 +7320,8 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
return (vm.getHypervisorType().equals(HypervisorType.XenServer) ||
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));
vm.getHypervisorType().equals(HypervisorType.Simulator));
}
private boolean checkIfHostIsDedicated(HostVO host) {

View File

@ -181,7 +181,7 @@ public class AffinityGroupServiceImpl extends ManagerBase implements AffinityGro
final Long affinityGroupDomainId = getDomainIdBasedOnDomainLevel(owner, domainLevel, domainId);
return Transaction.execute(new TransactionCallback<AffinityGroupVO>() {
return Transaction.execute(new TransactionCallback<>() {
@Override
public AffinityGroupVO doInTransaction(TransactionStatus status) {
AffinityGroupVO group = new AffinityGroupVO(affinityGroupName, affinityGroupType, description, affinityGroupDomainId, owner.getId(), aclType);
@ -194,7 +194,7 @@ public class AffinityGroupServiceImpl extends ManagerBase implements AffinityGro
subDomainAccess);
_affinityGroupDomainMapDao.persist(domainMap);
//send event for storing the domain wide resource access
Map<String, Object> params = new HashMap<String, Object>();
Map<String, Object> params = new HashMap<>();
params.put(ApiConstants.ENTITY_TYPE, AffinityGroup.class);
params.put(ApiConstants.ENTITY_ID, group.getId());
params.put(ApiConstants.DOMAIN_ID, affinityGroupDomainId);
@ -257,7 +257,7 @@ public class AffinityGroupServiceImpl extends ManagerBase implements AffinityGro
deleteAffinityGroup(affinityGroupIdFinal);
// remove its related ACL permission
Pair<Class<?>, Long> params = new Pair<Class<?>, Long>(AffinityGroup.class, affinityGroupIdFinal);
Pair<Class<?>, Long> params = new Pair<>(AffinityGroup.class, affinityGroupIdFinal);
_messageBus.publish(_name, EntityManager.MESSAGE_REMOVE_ENTITY_EVENT, PublishScope.LOCAL, params);
if (logger.isDebugEnabled()) {
@ -338,7 +338,7 @@ public class AffinityGroupServiceImpl extends ManagerBase implements AffinityGro
@Override
public List<String> listAffinityGroupTypes() {
List<String> types = new ArrayList<String>();
List<String> types = new ArrayList<>();
for (AffinityGroupProcessor processor : _affinityProcessors) {
if (processor.isAdminControlledGroup()) {
@ -352,7 +352,7 @@ public class AffinityGroupServiceImpl extends ManagerBase implements AffinityGro
}
protected Map<String, AffinityGroupProcessor> getAffinityTypeToProcessorMap() {
Map<String, AffinityGroupProcessor> typeProcessorMap = new HashMap<String, AffinityGroupProcessor>();
Map<String, AffinityGroupProcessor> typeProcessorMap = new HashMap<>();
for (AffinityGroupProcessor processor : _affinityProcessors) {
typeProcessorMap.put(processor.getType(), processor);
@ -444,8 +444,8 @@ public class AffinityGroupServiceImpl extends ManagerBase implements AffinityGro
// Check that the VM is stopped
if (!vmInstance.getState().equals(State.Stopped)) {
logger.warn("Unable to update affinity groups of the virtual machine " + vmInstance.toString() + " in state " + vmInstance.getState());
throw new InvalidParameterValueException("Unable update affinity groups of the virtual machine " + vmInstance.toString() + " " + "in state " +
logger.warn("Unable to update affinity groups of the virtual machine {} in state {}", vmInstance, vmInstance.getState());
throw new InvalidParameterValueException("Unable update affinity groups of the virtual machine " + vmInstance + " " + "in state " +
vmInstance.getState() + "; make sure the virtual machine is stopped and not in an error state before updating.");
}
@ -521,15 +521,13 @@ public class AffinityGroupServiceImpl extends ManagerBase implements AffinityGro
groupDomainId = domainMap.getDomainId();
}
if (domainId == groupDomainId.longValue()) {
if (domainId == groupDomainId) {
return true;
}
if (domainMap.subdomainAccess) {
Set<Long> parentDomains = _domainMgr.getDomainParentIds(domainId);
if (parentDomains.contains(groupDomainId)) {
return true;
}
return parentDomains.contains(groupDomainId);
}
return false;

View File

@ -437,11 +437,9 @@ public class ApiResponseHelperTest {
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, null);
TrafficTypeResponse response = apiResponseHelper.createTrafficTypeResponse(pnetTrafficType);
assertFalse(UUID.fromString(response.getId()).toString().isEmpty());
@ -450,8 +448,6 @@ public class ApiResponseHelperTest {
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");

View File

@ -344,15 +344,8 @@ public class VolumeApiServiceImplTest {
stoppedVm.setDataCenterId(1L);
when(userVmDaoMock.findById(2L)).thenReturn(stoppedVm);
// volume of hyperV vm id=3
UserVmVO hyperVVm = new UserVmVO(3L, "vm", "vm", 1, HypervisorType.Hyperv, 1L, false, false, 1L, 1L, 1, 1L, null, null, null, "vm");
hyperVVm.setState(State.Stopped);
hyperVVm.setDataCenterId(1L);
when(userVmDaoMock.findById(3L)).thenReturn(hyperVVm);
VolumeVO volumeOfStoppeHyperVVm = new VolumeVO("root", 1L, 1L, 1L, 1L, 3L, "root", "root", Storage.ProvisioningType.THIN, 1, null, null, "root", Volume.Type.ROOT);
volumeOfStoppeHyperVVm.setPoolId(1L);
when(volumeDaoMock.findById(3L)).thenReturn(volumeOfStoppeHyperVVm);
StoragePoolVO unmanagedPool = new StoragePoolVO();
@ -479,14 +472,6 @@ public class VolumeApiServiceImplTest {
volumeApiServiceImpl.detachVolumeFromVM(detachCmd);
}
@Test(expected = InvalidParameterValueException.class)
public void testDetachVolumeFromStoppedHyperVVm() throws NoSuchFieldException, IllegalAccessException {
Field dedicateIdField = _detachCmdClass.getDeclaredField("id");
dedicateIdField.setAccessible(true);
dedicateIdField.set(detachCmd, 3L);
volumeApiServiceImpl.detachVolumeFromVM(detachCmd);
}
@Test(expected = InvalidParameterValueException.class)
public void testDetachVolumeOfManagedDataStore() throws NoSuchFieldException, IllegalAccessException {
Field dedicateIdField = _detachCmdClass.getDeclaredField("id");

View File

@ -4094,14 +4094,14 @@ public class UserVmManagerImplTest {
when(userVmDao.findById(vmId)).thenReturn(userVmVoMock);
when(userVmDao.acquireInLockTable(vmId)).thenReturn(userVmVoMock);
when(userVmVoMock.getState()).thenReturn(VirtualMachine.State.Stopped);
when(userVmVoMock.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.Hyperv);
unmanagedVMsManagerMockedStatic.when(() -> UnmanagedVMsManager.isSupported(Hypervisor.HypervisorType.Hyperv)).thenReturn(false);
when(userVmVoMock.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.XenServer);
unmanagedVMsManagerMockedStatic.when(() -> UnmanagedVMsManager.isSupported(Hypervisor.HypervisorType.XenServer)).thenReturn(false);
CloudRuntimeException exception = assertThrows(CloudRuntimeException.class, () -> {
userVmManagerImpl.unmanageUserVM(vmId, null);
});
assertEquals("Unmanaging a VM is currently not supported on hypervisor Hyperv", exception.getMessage());
assertEquals("Unmanaging a VM is currently not supported on hypervisor XenServer", exception.getMessage());
verify(userVmDao, times(1)).releaseFromLockTable(vmId);
}

View File

@ -545,32 +545,6 @@ public class ConsoleAccessManagerImplTest {
Assert.assertEquals(port, result.getPort());
}
@Test
public void getConsoleConnectionDetailsReturnsDetailsWithRDPForHyperV() {
VirtualMachine vm = Mockito.mock(VirtualMachine.class);
HostVO host = Mockito.mock(HostVO.class);
String hostAddress = "192.168.1.100";
Pair<String, Integer> hostPortInfo = new Pair<>(hostAddress, -9);
Mockito.when(vm.getUuid()).thenReturn("vm-uuid");
Mockito.when(vm.getHostName()).thenReturn("vm-hostname");
Mockito.when(vm.getVncPassword()).thenReturn("vnc-password");
Mockito.when(host.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.Hyperv);
Mockito.when(vmInstanceDetailsDao.listDetailsKeyPairs(Mockito.anyLong(), Mockito.anyList())).thenReturn(Map.of());
Mockito.when(managementServer.getVncPort(vm)).thenReturn(hostPortInfo);
int port = 3389;
DetailVO detailVO = Mockito.mock(DetailVO.class);
Mockito.when(detailVO.getValue()).thenReturn(String.valueOf(port));
Mockito.when(managementServer.findDetail(Mockito.anyLong(), Mockito.eq("rdp.server.port"))).thenReturn(detailVO);
Mockito.doReturn(new Ternary<>(hostAddress, null, null)).when(consoleAccessManager).parseHostInfo(Mockito.anyString());
ConsoleConnectionDetails result = consoleAccessManager.getConsoleConnectionDetails(vm, host);
Assert.assertNotNull(result);
Assert.assertTrue(result.isUsingRDP());
Assert.assertEquals(port, result.getPort());
}
@Test
public void getConsoleConnectionDetailsReturnsNullHostInvalidPortWhenVncPortInfoIsMissing() {
VirtualMachine vm = Mockito.mock(VirtualMachine.class);

View File

@ -44,7 +44,7 @@ import common.opt.StringOption;
public class Client {
enum Protocol {
NONE, VNC, RDP, HYPERV
NONE, VNC, RDP
}
// Common options
@ -124,15 +124,6 @@ public class Client {
}
};
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 @@ public class Client {
}
};
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,7 @@ public class Client {
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 final Option[] hyperVOptions = new Option[] {sslImplementation, domain, userName, password};
private static Frame frame;
private static SocketWrapper socket;
@ -200,11 +183,10 @@ public class Client {
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) {
@ -285,10 +267,6 @@ public class Client {
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;
@ -308,9 +286,6 @@ public class Client {
} else if (protocolName.equals("rdp")) {
protocol = Protocol.RDP;
options = join(commonOptions, rdpOptions);
} else if (protocolName.equals("hyperv")) {
protocol = Protocol.HYPERV;
options = join(commonOptions, hyperVOptions);
} else {
help();
return Protocol.NONE;

View File

@ -47,5 +47,11 @@
<artifactId>cloud-server</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-api</artifactId>
<version>4.23.0.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@ -1349,10 +1349,6 @@ public class SecondaryStorageManagerImpl extends ManagerBase implements Secondar
}
protected NicProfile verifySshAccessOnManagementNicForSystemVm(VirtualMachineProfile profile, NicProfile controlNic, NicProfile managementNic) {
if (profile.getHypervisorType() == HypervisorType.Hyperv) {
return managementNic;
}
return controlNic;
}

View File

@ -213,7 +213,7 @@ public class SecondaryStorageManagerTest {
@Test
public void validateVerifySshAccessOnManagementNicForSystemVm() {
Hypervisor.HypervisorType[] hypervisorTypesArray = Hypervisor.HypervisorType.values();
List<Hypervisor.HypervisorType> hypervisorTypesThatMustReturnManagementNic = new ArrayList<>(Arrays.asList(Hypervisor.HypervisorType.Hyperv));
List<Hypervisor.HypervisorType> hypervisorTypesThatMustReturnManagementNic = new ArrayList<>(Arrays.asList());
for (Hypervisor.HypervisorType hypervisorType: hypervisorTypesArray) {
VirtualMachineProfile virtualMachineProfileMock = Mockito.mock(VirtualMachineProfile.class);