mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Inject hypervisor type and volume format on Quota tariffs (#8138)
This commit is contained in:
parent
05b9b6e2e7
commit
df4cd2aae4
@ -455,7 +455,7 @@ public class QuotaManagerImpl extends ManagerBase implements QuotaManager {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
jsInterpreter.injectVariable("resourceType", presetVariables.getResourceType());
|
jsInterpreter.injectStringVariable("resourceType", presetVariables.getResourceType());
|
||||||
jsInterpreter.injectVariable("value", presetVariables.getValue().toString());
|
jsInterpreter.injectVariable("value", presetVariables.getValue().toString());
|
||||||
jsInterpreter.injectVariable("zone", presetVariables.getZone().toString());
|
jsInterpreter.injectVariable("zone", presetVariables.getZone().toString());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,6 +27,7 @@ import java.util.stream.Collectors;
|
|||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import com.cloud.hypervisor.Hypervisor;
|
||||||
import org.apache.cloudstack.acl.RoleVO;
|
import org.apache.cloudstack.acl.RoleVO;
|
||||||
import org.apache.cloudstack.acl.dao.RoleDao;
|
import org.apache.cloudstack.acl.dao.RoleDao;
|
||||||
import org.apache.cloudstack.backup.BackupOfferingVO;
|
import org.apache.cloudstack.backup.BackupOfferingVO;
|
||||||
@ -65,6 +66,7 @@ import com.cloud.storage.DiskOfferingVO;
|
|||||||
import com.cloud.storage.GuestOSVO;
|
import com.cloud.storage.GuestOSVO;
|
||||||
import com.cloud.storage.Snapshot;
|
import com.cloud.storage.Snapshot;
|
||||||
import com.cloud.storage.SnapshotVO;
|
import com.cloud.storage.SnapshotVO;
|
||||||
|
import com.cloud.storage.Storage.ImageFormat;
|
||||||
import com.cloud.storage.VMTemplateVO;
|
import com.cloud.storage.VMTemplateVO;
|
||||||
import com.cloud.storage.VolumeVO;
|
import com.cloud.storage.VolumeVO;
|
||||||
import com.cloud.storage.dao.DiskOfferingDao;
|
import com.cloud.storage.dao.DiskOfferingDao;
|
||||||
@ -318,6 +320,10 @@ public class PresetVariableHelper {
|
|||||||
|
|
||||||
value.setTags(getPresetVariableValueResourceTags(vmId, ResourceObjectType.UserVm));
|
value.setTags(getPresetVariableValueResourceTags(vmId, ResourceObjectType.UserVm));
|
||||||
value.setTemplate(getPresetVariableValueTemplate(vmVo.getTemplateId()));
|
value.setTemplate(getPresetVariableValueTemplate(vmVo.getTemplateId()));
|
||||||
|
Hypervisor.HypervisorType hypervisorType = vmVo.getHypervisorType();
|
||||||
|
if (hypervisorType != null) {
|
||||||
|
value.setHypervisorType(hypervisorType.name());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void logNotLoadingMessageInTrace(String resource, int usageType) {
|
protected void logNotLoadingMessageInTrace(String resource, int usageType) {
|
||||||
@ -470,6 +476,11 @@ public class PresetVariableHelper {
|
|||||||
|
|
||||||
value.setTags(getPresetVariableValueResourceTags(volumeId, ResourceObjectType.Volume));
|
value.setTags(getPresetVariableValueResourceTags(volumeId, ResourceObjectType.Volume));
|
||||||
value.setSize(ByteScaleUtils.bytesToMebibytes(volumeVo.getSize()));
|
value.setSize(ByteScaleUtils.bytesToMebibytes(volumeVo.getSize()));
|
||||||
|
|
||||||
|
ImageFormat format = volumeVo.getFormat();
|
||||||
|
if (format != null) {
|
||||||
|
value.setVolumeFormat(format.name());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected GenericPresetVariable getPresetVariableValueDiskOffering(Long diskOfferingId) {
|
protected GenericPresetVariable getPresetVariableValueDiskOffering(Long diskOfferingId) {
|
||||||
@ -558,6 +569,10 @@ public class PresetVariableHelper {
|
|||||||
value.setSnapshotType(Snapshot.Type.values()[snapshotVo.getSnapshotType()]);
|
value.setSnapshotType(Snapshot.Type.values()[snapshotVo.getSnapshotType()]);
|
||||||
value.setStorage(getPresetVariableValueStorage(getSnapshotDataStoreId(snapshotId, usageRecord.getZoneId()), usageType));
|
value.setStorage(getPresetVariableValueStorage(getSnapshotDataStoreId(snapshotId, usageRecord.getZoneId()), usageType));
|
||||||
value.setTags(getPresetVariableValueResourceTags(snapshotId, ResourceObjectType.Snapshot));
|
value.setTags(getPresetVariableValueResourceTags(snapshotId, ResourceObjectType.Snapshot));
|
||||||
|
Hypervisor.HypervisorType hypervisorType = snapshotVo.getHypervisorType();
|
||||||
|
if (hypervisorType != null) {
|
||||||
|
value.setHypervisorType(hypervisorType.name());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected SnapshotDataStoreVO getSnapshotImageStoreRef(long snapshotId, long zoneId) {
|
protected SnapshotDataStoreVO getSnapshotImageStoreRef(long snapshotId, long zoneId) {
|
||||||
@ -621,6 +636,11 @@ public class PresetVariableHelper {
|
|||||||
value.setName(vmSnapshotVo.getName());
|
value.setName(vmSnapshotVo.getName());
|
||||||
value.setTags(getPresetVariableValueResourceTags(vmSnapshotId, ResourceObjectType.VMSnapshot));
|
value.setTags(getPresetVariableValueResourceTags(vmSnapshotId, ResourceObjectType.VMSnapshot));
|
||||||
value.setVmSnapshotType(vmSnapshotVo.getType());
|
value.setVmSnapshotType(vmSnapshotVo.getType());
|
||||||
|
|
||||||
|
VMInstanceVO vmVo = vmInstanceDao.findByIdIncludingRemoved(vmSnapshotVo.getVmId());
|
||||||
|
if (vmVo != null && vmVo.getHypervisorType() != null) {
|
||||||
|
value.setHypervisorType(vmVo.getHypervisorType().name());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void loadPresetVariableValueForBackup(UsageVO usageRecord, Value value) {
|
protected void loadPresetVariableValueForBackup(UsageVO usageRecord, Value value) {
|
||||||
|
|||||||
@ -41,6 +41,8 @@ public class Value extends GenericPresetVariable {
|
|||||||
private Storage storage;
|
private Storage storage;
|
||||||
private ComputingResources computingResources;
|
private ComputingResources computingResources;
|
||||||
private BackupOffering backupOffering;
|
private BackupOffering backupOffering;
|
||||||
|
private String hypervisorType;
|
||||||
|
private String volumeFormat;
|
||||||
|
|
||||||
public Host getHost() {
|
public Host getHost() {
|
||||||
return host;
|
return host;
|
||||||
@ -185,4 +187,22 @@ public class Value extends GenericPresetVariable {
|
|||||||
this.backupOffering = backupOffering;
|
this.backupOffering = backupOffering;
|
||||||
fieldNamesToIncludeInToString.add("backupOffering");
|
fieldNamesToIncludeInToString.add("backupOffering");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setHypervisorType(String hypervisorType) {
|
||||||
|
this.hypervisorType = hypervisorType;
|
||||||
|
fieldNamesToIncludeInToString.add("hypervisorType");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getHypervisorType() {
|
||||||
|
return hypervisorType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVolumeFormat(String volumeFormat) {
|
||||||
|
this.volumeFormat = volumeFormat;
|
||||||
|
fieldNamesToIncludeInToString.add("volumeFormat");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getVolumeFormat() {
|
||||||
|
return volumeFormat;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -267,7 +267,7 @@ public class QuotaManagerImplTest {
|
|||||||
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("account"), Mockito.anyString());
|
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("account"), Mockito.anyString());
|
||||||
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("domain"), Mockito.anyString());
|
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("domain"), Mockito.anyString());
|
||||||
Mockito.verify(jsInterpreterMock, Mockito.never()).injectVariable(Mockito.eq("project"), Mockito.anyString());
|
Mockito.verify(jsInterpreterMock, Mockito.never()).injectVariable(Mockito.eq("project"), Mockito.anyString());
|
||||||
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("resourceType"), Mockito.anyString());
|
Mockito.verify(jsInterpreterMock).injectStringVariable(Mockito.eq("resourceType"), Mockito.anyString());
|
||||||
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("value"), Mockito.anyString());
|
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("value"), Mockito.anyString());
|
||||||
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("zone"), Mockito.anyString());
|
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("zone"), Mockito.anyString());
|
||||||
}
|
}
|
||||||
@ -288,7 +288,7 @@ public class QuotaManagerImplTest {
|
|||||||
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("account"), Mockito.anyString());
|
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("account"), Mockito.anyString());
|
||||||
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("domain"), Mockito.anyString());
|
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("domain"), Mockito.anyString());
|
||||||
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("project"), Mockito.anyString());
|
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("project"), Mockito.anyString());
|
||||||
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("resourceType"), Mockito.anyString());
|
Mockito.verify(jsInterpreterMock).injectStringVariable(Mockito.eq("resourceType"), Mockito.anyString());
|
||||||
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("value"), Mockito.anyString());
|
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("value"), Mockito.anyString());
|
||||||
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("zone"), Mockito.anyString());
|
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("zone"), Mockito.anyString());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,6 +27,7 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import com.cloud.hypervisor.Hypervisor;
|
||||||
import org.apache.cloudstack.acl.RoleType;
|
import org.apache.cloudstack.acl.RoleType;
|
||||||
import org.apache.cloudstack.acl.RoleVO;
|
import org.apache.cloudstack.acl.RoleVO;
|
||||||
import org.apache.cloudstack.acl.dao.RoleDao;
|
import org.apache.cloudstack.acl.dao.RoleDao;
|
||||||
@ -70,6 +71,7 @@ import com.cloud.storage.GuestOSVO;
|
|||||||
import com.cloud.storage.ScopeType;
|
import com.cloud.storage.ScopeType;
|
||||||
import com.cloud.storage.Snapshot;
|
import com.cloud.storage.Snapshot;
|
||||||
import com.cloud.storage.SnapshotVO;
|
import com.cloud.storage.SnapshotVO;
|
||||||
|
import com.cloud.storage.Storage.ImageFormat;
|
||||||
import com.cloud.storage.Storage.ProvisioningType;
|
import com.cloud.storage.Storage.ProvisioningType;
|
||||||
import com.cloud.storage.VMTemplateVO;
|
import com.cloud.storage.VMTemplateVO;
|
||||||
import com.cloud.storage.VolumeVO;
|
import com.cloud.storage.VolumeVO;
|
||||||
@ -485,38 +487,42 @@ public class PresetVariableHelperTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void loadPresetVariableValueForRunningAndAllocatedVmTestRecordIsRunningOrAllocatedVmSetFields() {
|
public void loadPresetVariableValueForRunningAndAllocatedVmTestRecordIsRunningOrAllocatedVmSetFields() {
|
||||||
Value expected = getValueForTests();
|
for (Hypervisor.HypervisorType hypervisorType : Hypervisor.HypervisorType.values()) {
|
||||||
|
Value expected = getValueForTests();
|
||||||
|
|
||||||
Mockito.doReturn(vmInstanceVoMock).when(vmInstanceDaoMock).findByIdIncludingRemoved(Mockito.anyLong());
|
Mockito.doReturn(vmInstanceVoMock).when(vmInstanceDaoMock).findByIdIncludingRemoved(Mockito.anyLong());
|
||||||
|
|
||||||
mockMethodValidateIfObjectIsNull();
|
mockMethodValidateIfObjectIsNull();
|
||||||
|
|
||||||
Mockito.doNothing().when(presetVariableHelperSpy).setPresetVariableHostInValueIfUsageTypeIsRunningVm(Mockito.any(Value.class), Mockito.anyInt(),
|
Mockito.doNothing().when(presetVariableHelperSpy).setPresetVariableHostInValueIfUsageTypeIsRunningVm(Mockito.any(Value.class), Mockito.anyInt(),
|
||||||
Mockito.any(VMInstanceVO.class));
|
Mockito.any(VMInstanceVO.class));
|
||||||
|
|
||||||
Mockito.doReturn(expected.getId()).when(vmInstanceVoMock).getUuid();
|
Mockito.doReturn(expected.getId()).when(vmInstanceVoMock).getUuid();
|
||||||
Mockito.doReturn(expected.getName()).when(vmInstanceVoMock).getHostName();
|
Mockito.doReturn(expected.getName()).when(vmInstanceVoMock).getHostName();
|
||||||
Mockito.doReturn(expected.getOsName()).when(presetVariableHelperSpy).getPresetVariableValueOsName(Mockito.anyLong());
|
Mockito.doReturn(expected.getOsName()).when(presetVariableHelperSpy).getPresetVariableValueOsName(Mockito.anyLong());
|
||||||
Mockito.doNothing().when(presetVariableHelperSpy).setPresetVariableValueServiceOfferingAndComputingResources(Mockito.any(), Mockito.anyInt(), Mockito.any());
|
Mockito.doNothing().when(presetVariableHelperSpy).setPresetVariableValueServiceOfferingAndComputingResources(Mockito.any(), Mockito.anyInt(), Mockito.any());
|
||||||
Mockito.doReturn(expected.getTags()).when(presetVariableHelperSpy).getPresetVariableValueResourceTags(Mockito.anyLong(), Mockito.any(ResourceObjectType.class));
|
Mockito.doReturn(expected.getTags()).when(presetVariableHelperSpy).getPresetVariableValueResourceTags(Mockito.anyLong(), Mockito.any(ResourceObjectType.class));
|
||||||
Mockito.doReturn(expected.getTemplate()).when(presetVariableHelperSpy).getPresetVariableValueTemplate(Mockito.anyLong());
|
Mockito.doReturn(expected.getTemplate()).when(presetVariableHelperSpy).getPresetVariableValueTemplate(Mockito.anyLong());
|
||||||
|
Mockito.doReturn(hypervisorType).when(vmInstanceVoMock).getHypervisorType();
|
||||||
|
|
||||||
runningAndAllocatedVmUsageTypes.forEach(type -> {
|
runningAndAllocatedVmUsageTypes.forEach(type -> {
|
||||||
Mockito.doReturn(type).when(usageVoMock).getUsageType();
|
Mockito.doReturn(type).when(usageVoMock).getUsageType();
|
||||||
|
|
||||||
Value result = new Value();
|
Value result = new Value();
|
||||||
presetVariableHelperSpy.loadPresetVariableValueForRunningAndAllocatedVm(usageVoMock, result);
|
presetVariableHelperSpy.loadPresetVariableValueForRunningAndAllocatedVm(usageVoMock, result);
|
||||||
|
|
||||||
assertPresetVariableIdAndName(expected, result);
|
assertPresetVariableIdAndName(expected, result);
|
||||||
Assert.assertEquals(expected.getOsName(), result.getOsName());
|
Assert.assertEquals(expected.getOsName(), result.getOsName());
|
||||||
Assert.assertEquals(expected.getTags(), result.getTags());
|
Assert.assertEquals(expected.getTags(), result.getTags());
|
||||||
Assert.assertEquals(expected.getTemplate(), result.getTemplate());
|
Assert.assertEquals(expected.getTemplate(), result.getTemplate());
|
||||||
|
Assert.assertEquals(hypervisorType.name(), result.getHypervisorType());
|
||||||
|
|
||||||
validateFieldNamesToIncludeInToString(Arrays.asList("id", "name", "osName", "tags", "template"), result);
|
validateFieldNamesToIncludeInToString(Arrays.asList("id", "name", "osName", "tags", "template", "hypervisorType"), result);
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
Mockito.verify(presetVariableHelperSpy, Mockito.times(runningAndAllocatedVmUsageTypes.size())).getPresetVariableValueResourceTags(Mockito.anyLong(),
|
Mockito.verify(presetVariableHelperSpy, Mockito.times(runningAndAllocatedVmUsageTypes.size() * Hypervisor.HypervisorType.values().length))
|
||||||
Mockito.eq(ResourceObjectType.UserVm));
|
.getPresetVariableValueResourceTags(Mockito.anyLong(), Mockito.eq(ResourceObjectType.UserVm));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -636,75 +642,85 @@ public class PresetVariableHelperTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void loadPresetVariableValueForVolumeTestRecordIsVolumeAndHasStorageSetFields() {
|
public void loadPresetVariableValueForVolumeTestRecordIsVolumeAndHasStorageSetFields() {
|
||||||
Value expected = getValueForTests();
|
for (ImageFormat imageFormat : ImageFormat.values()) {
|
||||||
|
Value expected = getValueForTests();
|
||||||
|
|
||||||
VolumeVO volumeVoMock = Mockito.mock(VolumeVO.class);
|
VolumeVO volumeVoMock = Mockito.mock(VolumeVO.class);
|
||||||
Mockito.doReturn(volumeVoMock).when(volumeDaoMock).findByIdIncludingRemoved(Mockito.anyLong());
|
Mockito.doReturn(volumeVoMock).when(volumeDaoMock).findByIdIncludingRemoved(Mockito.anyLong());
|
||||||
Mockito.doReturn(1l).when(volumeVoMock).getPoolId();
|
Mockito.doReturn(1l).when(volumeVoMock).getPoolId();
|
||||||
|
|
||||||
mockMethodValidateIfObjectIsNull();
|
mockMethodValidateIfObjectIsNull();
|
||||||
|
|
||||||
Mockito.doReturn(expected.getId()).when(volumeVoMock).getUuid();
|
Mockito.doReturn(expected.getId()).when(volumeVoMock).getUuid();
|
||||||
Mockito.doReturn(expected.getName()).when(volumeVoMock).getName();
|
Mockito.doReturn(expected.getName()).when(volumeVoMock).getName();
|
||||||
Mockito.doReturn(expected.getDiskOffering()).when(presetVariableHelperSpy).getPresetVariableValueDiskOffering(Mockito.anyLong());
|
Mockito.doReturn(expected.getDiskOffering()).when(presetVariableHelperSpy).getPresetVariableValueDiskOffering(Mockito.anyLong());
|
||||||
Mockito.doReturn(expected.getProvisioningType()).when(volumeVoMock).getProvisioningType();
|
Mockito.doReturn(expected.getProvisioningType()).when(volumeVoMock).getProvisioningType();
|
||||||
Mockito.doReturn(expected.getStorage()).when(presetVariableHelperSpy).getPresetVariableValueStorage(Mockito.anyLong(), Mockito.anyInt());
|
Mockito.doReturn(expected.getStorage()).when(presetVariableHelperSpy).getPresetVariableValueStorage(Mockito.anyLong(), Mockito.anyInt());
|
||||||
Mockito.doReturn(expected.getTags()).when(presetVariableHelperSpy).getPresetVariableValueResourceTags(Mockito.anyLong(), Mockito.any(ResourceObjectType.class));
|
Mockito.doReturn(expected.getTags()).when(presetVariableHelperSpy).getPresetVariableValueResourceTags(Mockito.anyLong(), Mockito.any(ResourceObjectType.class));
|
||||||
Mockito.doReturn(expected.getSize()).when(volumeVoMock).getSize();
|
Mockito.doReturn(expected.getSize()).when(volumeVoMock).getSize();
|
||||||
|
Mockito.doReturn(imageFormat).when(volumeVoMock).getFormat();
|
||||||
|
|
||||||
Mockito.doReturn(UsageTypes.VOLUME).when(usageVoMock).getUsageType();
|
Mockito.doReturn(UsageTypes.VOLUME).when(usageVoMock).getUsageType();
|
||||||
|
|
||||||
Value result = new Value();
|
Value result = new Value();
|
||||||
presetVariableHelperSpy.loadPresetVariableValueForVolume(usageVoMock, result);
|
presetVariableHelperSpy.loadPresetVariableValueForVolume(usageVoMock, result);
|
||||||
|
|
||||||
Long expectedSize = ByteScaleUtils.bytesToMebibytes(expected.getSize());
|
Long expectedSize = ByteScaleUtils.bytesToMebibytes(expected.getSize());
|
||||||
|
|
||||||
assertPresetVariableIdAndName(expected, result);
|
assertPresetVariableIdAndName(expected, result);
|
||||||
Assert.assertEquals(expected.getDiskOffering(), result.getDiskOffering());
|
Assert.assertEquals(expected.getDiskOffering(), result.getDiskOffering());
|
||||||
Assert.assertEquals(expected.getProvisioningType(), result.getProvisioningType());
|
Assert.assertEquals(expected.getProvisioningType(), result.getProvisioningType());
|
||||||
Assert.assertEquals(expected.getStorage(), result.getStorage());
|
Assert.assertEquals(expected.getStorage(), result.getStorage());
|
||||||
Assert.assertEquals(expected.getTags(), result.getTags());
|
Assert.assertEquals(expected.getTags(), result.getTags());
|
||||||
Assert.assertEquals(expectedSize, result.getSize());
|
Assert.assertEquals(expectedSize, result.getSize());
|
||||||
|
Assert.assertEquals(imageFormat.name(), result.getVolumeFormat());
|
||||||
|
|
||||||
validateFieldNamesToIncludeInToString(Arrays.asList("id", "name", "diskOffering", "provisioningType", "storage", "tags", "size"), result);
|
validateFieldNamesToIncludeInToString(Arrays.asList("id", "name", "diskOffering", "provisioningType", "storage", "tags", "size", "volumeFormat"), result);
|
||||||
|
}
|
||||||
|
|
||||||
Mockito.verify(presetVariableHelperSpy).getPresetVariableValueResourceTags(Mockito.anyLong(), Mockito.eq(ResourceObjectType.Volume));
|
Mockito.verify(presetVariableHelperSpy, Mockito.times(ImageFormat.values().length)).getPresetVariableValueResourceTags(Mockito.anyLong(),
|
||||||
|
Mockito.eq(ResourceObjectType.Volume));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void loadPresetVariableValueForVolumeTestRecordIsVolumeAndDoesNotHaveStorageSetFields() {
|
public void loadPresetVariableValueForVolumeTestRecordIsVolumeAndDoesNotHaveStorageSetFields() {
|
||||||
Value expected = getValueForTests();
|
for (ImageFormat imageFormat : ImageFormat.values()) {
|
||||||
|
Value expected = getValueForTests();
|
||||||
|
|
||||||
VolumeVO volumeVoMock = Mockito.mock(VolumeVO.class);
|
VolumeVO volumeVoMock = Mockito.mock(VolumeVO.class);
|
||||||
Mockito.doReturn(volumeVoMock).when(volumeDaoMock).findByIdIncludingRemoved(Mockito.anyLong());
|
Mockito.doReturn(volumeVoMock).when(volumeDaoMock).findByIdIncludingRemoved(Mockito.anyLong());
|
||||||
Mockito.doReturn(null).when(volumeVoMock).getPoolId();
|
Mockito.doReturn(null).when(volumeVoMock).getPoolId();
|
||||||
|
|
||||||
mockMethodValidateIfObjectIsNull();
|
mockMethodValidateIfObjectIsNull();
|
||||||
|
|
||||||
Mockito.doReturn(expected.getId()).when(volumeVoMock).getUuid();
|
Mockito.doReturn(expected.getId()).when(volumeVoMock).getUuid();
|
||||||
Mockito.doReturn(expected.getName()).when(volumeVoMock).getName();
|
Mockito.doReturn(expected.getName()).when(volumeVoMock).getName();
|
||||||
Mockito.doReturn(expected.getDiskOffering()).when(presetVariableHelperSpy).getPresetVariableValueDiskOffering(Mockito.anyLong());
|
Mockito.doReturn(expected.getDiskOffering()).when(presetVariableHelperSpy).getPresetVariableValueDiskOffering(Mockito.anyLong());
|
||||||
Mockito.doReturn(expected.getProvisioningType()).when(volumeVoMock).getProvisioningType();
|
Mockito.doReturn(expected.getProvisioningType()).when(volumeVoMock).getProvisioningType();
|
||||||
Mockito.doReturn(expected.getTags()).when(presetVariableHelperSpy).getPresetVariableValueResourceTags(Mockito.anyLong(), Mockito.any(ResourceObjectType.class));
|
Mockito.doReturn(expected.getTags()).when(presetVariableHelperSpy).getPresetVariableValueResourceTags(Mockito.anyLong(), Mockito.any(ResourceObjectType.class));
|
||||||
Mockito.doReturn(expected.getSize()).when(volumeVoMock).getSize();
|
Mockito.doReturn(expected.getSize()).when(volumeVoMock).getSize();
|
||||||
|
Mockito.doReturn(imageFormat).when(volumeVoMock).getFormat();
|
||||||
|
|
||||||
Mockito.doReturn(UsageTypes.VOLUME).when(usageVoMock).getUsageType();
|
Mockito.doReturn(UsageTypes.VOLUME).when(usageVoMock).getUsageType();
|
||||||
|
|
||||||
Value result = new Value();
|
Value result = new Value();
|
||||||
presetVariableHelperSpy.loadPresetVariableValueForVolume(usageVoMock, result);
|
presetVariableHelperSpy.loadPresetVariableValueForVolume(usageVoMock, result);
|
||||||
|
|
||||||
Long expectedSize = ByteScaleUtils.bytesToMebibytes(expected.getSize());
|
Long expectedSize = ByteScaleUtils.bytesToMebibytes(expected.getSize());
|
||||||
|
|
||||||
assertPresetVariableIdAndName(expected, result);
|
assertPresetVariableIdAndName(expected, result);
|
||||||
Assert.assertEquals(expected.getDiskOffering(), result.getDiskOffering());
|
Assert.assertEquals(expected.getDiskOffering(), result.getDiskOffering());
|
||||||
Assert.assertEquals(expected.getProvisioningType(), result.getProvisioningType());
|
Assert.assertEquals(expected.getProvisioningType(), result.getProvisioningType());
|
||||||
Assert.assertEquals(null, result.getStorage());
|
Assert.assertNull(result.getStorage());
|
||||||
Assert.assertEquals(expected.getTags(), result.getTags());
|
Assert.assertEquals(expected.getTags(), result.getTags());
|
||||||
Assert.assertEquals(expectedSize, result.getSize());
|
Assert.assertEquals(expectedSize, result.getSize());
|
||||||
|
Assert.assertEquals(imageFormat.name(), result.getVolumeFormat());
|
||||||
|
|
||||||
validateFieldNamesToIncludeInToString(Arrays.asList("id", "name", "diskOffering", "provisioningType", "tags", "size"), result);
|
validateFieldNamesToIncludeInToString(Arrays.asList("id", "name", "diskOffering", "provisioningType", "tags", "size", "volumeFormat"), result);
|
||||||
|
}
|
||||||
|
|
||||||
Mockito.verify(presetVariableHelperSpy).getPresetVariableValueResourceTags(Mockito.anyLong(), Mockito.eq(ResourceObjectType.Volume));
|
Mockito.verify(presetVariableHelperSpy, Mockito.times(ImageFormat.values().length)).getPresetVariableValueResourceTags(Mockito.anyLong(),
|
||||||
|
Mockito.eq(ResourceObjectType.Volume));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -852,37 +868,42 @@ public class PresetVariableHelperTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void loadPresetVariableValueForSnapshotTestRecordIsSnapshotSetFields() {
|
public void loadPresetVariableValueForSnapshotTestRecordIsSnapshotSetFields() {
|
||||||
Value expected = getValueForTests();
|
for (Hypervisor.HypervisorType hypervisorType : Hypervisor.HypervisorType.values()) {
|
||||||
|
Value expected = getValueForTests();
|
||||||
|
|
||||||
SnapshotVO snapshotVoMock = Mockito.mock(SnapshotVO.class);
|
SnapshotVO snapshotVoMock = Mockito.mock(SnapshotVO.class);
|
||||||
Mockito.doReturn(snapshotVoMock).when(snapshotDaoMock).findByIdIncludingRemoved(Mockito.anyLong());
|
Mockito.doReturn(snapshotVoMock).when(snapshotDaoMock).findByIdIncludingRemoved(Mockito.anyLong());
|
||||||
|
|
||||||
mockMethodValidateIfObjectIsNull();
|
mockMethodValidateIfObjectIsNull();
|
||||||
|
|
||||||
Mockito.doReturn(expected.getId()).when(snapshotVoMock).getUuid();
|
Mockito.doReturn(expected.getId()).when(snapshotVoMock).getUuid();
|
||||||
Mockito.doReturn(expected.getName()).when(snapshotVoMock).getName();
|
Mockito.doReturn(expected.getName()).when(snapshotVoMock).getName();
|
||||||
Mockito.doReturn(expected.getSize()).when(snapshotVoMock).getSize();
|
Mockito.doReturn(expected.getSize()).when(snapshotVoMock).getSize();
|
||||||
Mockito.doReturn((short) 3).when(snapshotVoMock).getSnapshotType();
|
Mockito.doReturn((short) 3).when(snapshotVoMock).getSnapshotType();
|
||||||
Mockito.doReturn(1l).when(presetVariableHelperSpy).getSnapshotDataStoreId(Mockito.anyLong(), Mockito.anyLong());
|
Mockito.doReturn(1l).when(presetVariableHelperSpy).getSnapshotDataStoreId(Mockito.anyLong(), Mockito.anyLong());
|
||||||
Mockito.doReturn(expected.getStorage()).when(presetVariableHelperSpy).getPresetVariableValueStorage(Mockito.anyLong(), Mockito.anyInt());
|
Mockito.doReturn(expected.getStorage()).when(presetVariableHelperSpy).getPresetVariableValueStorage(Mockito.anyLong(), Mockito.anyInt());
|
||||||
Mockito.doReturn(expected.getTags()).when(presetVariableHelperSpy).getPresetVariableValueResourceTags(Mockito.anyLong(), Mockito.any(ResourceObjectType.class));
|
Mockito.doReturn(expected.getTags()).when(presetVariableHelperSpy).getPresetVariableValueResourceTags(Mockito.anyLong(), Mockito.any(ResourceObjectType.class));
|
||||||
|
Mockito.doReturn(hypervisorType).when(snapshotVoMock).getHypervisorType();
|
||||||
|
|
||||||
Mockito.doReturn(UsageTypes.SNAPSHOT).when(usageVoMock).getUsageType();
|
Mockito.doReturn(UsageTypes.SNAPSHOT).when(usageVoMock).getUsageType();
|
||||||
|
|
||||||
Value result = new Value();
|
Value result = new Value();
|
||||||
presetVariableHelperSpy.loadPresetVariableValueForSnapshot(usageVoMock, result);
|
presetVariableHelperSpy.loadPresetVariableValueForSnapshot(usageVoMock, result);
|
||||||
|
|
||||||
Long expectedSize = ByteScaleUtils.bytesToMebibytes(expected.getSize());
|
Long expectedSize = ByteScaleUtils.bytesToMebibytes(expected.getSize());
|
||||||
|
|
||||||
assertPresetVariableIdAndName(expected, result);
|
assertPresetVariableIdAndName(expected, result);
|
||||||
Assert.assertEquals(expected.getSnapshotType(), result.getSnapshotType());
|
Assert.assertEquals(expected.getSnapshotType(), result.getSnapshotType());
|
||||||
Assert.assertEquals(expected.getStorage(), result.getStorage());
|
Assert.assertEquals(expected.getStorage(), result.getStorage());
|
||||||
Assert.assertEquals(expected.getTags(), result.getTags());
|
Assert.assertEquals(expected.getTags(), result.getTags());
|
||||||
Assert.assertEquals(expectedSize, result.getSize());
|
Assert.assertEquals(expectedSize, result.getSize());
|
||||||
|
Assert.assertEquals(hypervisorType.name(), result.getHypervisorType());
|
||||||
|
|
||||||
validateFieldNamesToIncludeInToString(Arrays.asList("id", "name", "snapshotType", "storage", "tags", "size"), result);
|
validateFieldNamesToIncludeInToString(Arrays.asList("id", "name", "snapshotType", "storage", "tags", "size", "hypervisorType"), result);
|
||||||
|
}
|
||||||
|
|
||||||
Mockito.verify(presetVariableHelperSpy).getPresetVariableValueResourceTags(Mockito.anyLong(), Mockito.eq(ResourceObjectType.Snapshot));
|
Mockito.verify(presetVariableHelperSpy, Mockito.times(Hypervisor.HypervisorType.values().length)).getPresetVariableValueResourceTags(Mockito.anyLong(),
|
||||||
|
Mockito.eq(ResourceObjectType.Snapshot));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -136,4 +136,18 @@ public class ValueTest {
|
|||||||
variable.setBackupOffering(null);
|
variable.setBackupOffering(null);
|
||||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("backupOffering"));
|
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("backupOffering"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setHypervisorTypeTestAddFieldHypervisorTypeToCollection() {
|
||||||
|
Value variable = new Value();
|
||||||
|
variable.setHypervisorType(null);
|
||||||
|
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("hypervisorType"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setVolumeFormatTestAddFieldVolumeFormatToCollection() {
|
||||||
|
Value variable = new Value();
|
||||||
|
variable.setVolumeFormat(null);
|
||||||
|
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("volumeFormat"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -78,7 +78,7 @@ public class JsInterpreter implements Closeable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds the parameters to a Map that will be converted to JS variables right before executing the scripts..
|
* Adds the parameters to a Map that will be converted to JS variables right before executing the script.
|
||||||
* @param key The name of the variable.
|
* @param key The name of the variable.
|
||||||
* @param value The value of the variable.
|
* @param value The value of the variable.
|
||||||
*/
|
*/
|
||||||
@ -87,6 +87,21 @@ public class JsInterpreter implements Closeable {
|
|||||||
variables.put(key, value);
|
variables.put(key, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds the parameter, surrounded by double quotes, to a Map that will be converted to a JS variable right before executing the script.
|
||||||
|
* @param key The name of the variable.
|
||||||
|
* @param value The value of the variable.
|
||||||
|
*/
|
||||||
|
public void injectStringVariable(String key, String value) {
|
||||||
|
if (value == null) {
|
||||||
|
logger.trace(String.format("Not injecting [%s] because its value is null.", key));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
value = String.format("\"%s\"", value);
|
||||||
|
logger.trace(String.format(injectingLogMessage, key, value));
|
||||||
|
variables.put(key, value);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Injects the variables to the script and execute it.
|
* Injects the variables to the script and execute it.
|
||||||
* @param script Code to be executed.
|
* @param script Code to be executed.
|
||||||
|
|||||||
@ -179,4 +179,22 @@ public class JsInterpreterTest {
|
|||||||
Assert.assertEquals(scriptEngineMock, jsInterpreterSpy.interpreter);
|
Assert.assertEquals(scriptEngineMock, jsInterpreterSpy.interpreter);
|
||||||
Mockito.verify(nashornScriptEngineFactoryMock).getScriptEngine("--no-java");
|
Mockito.verify(nashornScriptEngineFactoryMock).getScriptEngine("--no-java");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void injectStringVariableTestNullValueDoNothing() {
|
||||||
|
jsInterpreterSpy.variables = new LinkedHashMap<>();
|
||||||
|
|
||||||
|
jsInterpreterSpy.injectStringVariable("a", null);
|
||||||
|
|
||||||
|
Assert.assertTrue(jsInterpreterSpy.variables.isEmpty());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void injectStringVariableTestNotNullValueSurroundWithDoubleQuotes() {
|
||||||
|
jsInterpreterSpy.variables = new LinkedHashMap<>();
|
||||||
|
|
||||||
|
jsInterpreterSpy.injectStringVariable("a", "b");
|
||||||
|
|
||||||
|
Assert.assertEquals(jsInterpreterSpy.variables.get("a"), "\"b\"");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user