mirror of https://github.com/apache/cloudstack.git
Fix injection of preset variables into the JS interpreter (#12515)
This commit is contained in:
parent
b7c970f45f
commit
34f6f413a1
|
|
@ -428,7 +428,7 @@ public class QuotaManagerImpl extends ManagerBase implements QuotaManager {
|
|||
}
|
||||
|
||||
injectPresetVariablesIntoJsInterpreter(jsInterpreter, presetVariables);
|
||||
jsInterpreter.injectVariable("lastTariffs", lastAppliedTariffsList.toString());
|
||||
jsInterpreter.injectVariable("lastTariffs", lastAppliedTariffsList);
|
||||
|
||||
String scriptResult = jsInterpreter.executeScript(activationRule).toString();
|
||||
|
||||
|
|
@ -458,18 +458,18 @@ public class QuotaManagerImpl extends ManagerBase implements QuotaManager {
|
|||
protected void injectPresetVariablesIntoJsInterpreter(JsInterpreter jsInterpreter, PresetVariables presetVariables) {
|
||||
jsInterpreter.discardCurrentVariables();
|
||||
|
||||
jsInterpreter.injectVariable("account", presetVariables.getAccount().toString());
|
||||
jsInterpreter.injectVariable("domain", presetVariables.getDomain().toString());
|
||||
jsInterpreter.injectVariable("account", presetVariables.getAccount());
|
||||
jsInterpreter.injectVariable("domain", presetVariables.getDomain());
|
||||
|
||||
GenericPresetVariable project = presetVariables.getProject();
|
||||
if (project != null) {
|
||||
jsInterpreter.injectVariable("project", project.toString());
|
||||
jsInterpreter.injectVariable("project", project);
|
||||
|
||||
}
|
||||
|
||||
jsInterpreter.injectVariable("resourceType", presetVariables.getResourceType());
|
||||
jsInterpreter.injectVariable("value", presetVariables.getValue().toString());
|
||||
jsInterpreter.injectVariable("zone", presetVariables.getZone().toString());
|
||||
jsInterpreter.injectVariable("value", presetVariables.getValue());
|
||||
jsInterpreter.injectVariable("zone", presetVariables.getZone());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@ public class Account extends GenericPresetVariable {
|
|||
|
||||
public void setRole(Role role) {
|
||||
this.role = role;
|
||||
fieldNamesToIncludeInToString.add("role");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,6 +29,5 @@ public class BackupOffering extends GenericPresetVariable {
|
|||
|
||||
public void setExternalId(String externalId) {
|
||||
this.externalId = externalId;
|
||||
fieldNamesToIncludeInToString.add("externalId");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@ public class ComputeOffering extends GenericPresetVariable {
|
|||
|
||||
public void setCustomized(boolean customized) {
|
||||
this.customized = customized;
|
||||
fieldNamesToIncludeInToString.add("customized");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@ public class Domain extends GenericPresetVariable {
|
|||
|
||||
public void setPath(String path) {
|
||||
this.path = path;
|
||||
fieldNamesToIncludeInToString.add("path");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,10 +17,8 @@
|
|||
|
||||
package org.apache.cloudstack.quota.activationrule.presetvariables;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.cloudstack.utils.reflectiontostringbuilderutils.ReflectionToStringBuilderUtils;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
||||
public class GenericPresetVariable {
|
||||
@PresetVariableDefinition(description = "ID of the resource.")
|
||||
|
|
@ -29,15 +27,12 @@ public class GenericPresetVariable {
|
|||
@PresetVariableDefinition(description = "Name of the resource.")
|
||||
private String name;
|
||||
|
||||
protected transient Set<String> fieldNamesToIncludeInToString = new HashSet<>();
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
fieldNamesToIncludeInToString.add("id");
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
|
|
@ -46,15 +41,10 @@ public class GenericPresetVariable {
|
|||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
fieldNamesToIncludeInToString.add("name");
|
||||
}
|
||||
|
||||
/***
|
||||
* Converts the preset variable into a valid JSON object that will be injected into the JS interpreter.
|
||||
* This method should not be overridden or changed.
|
||||
*/
|
||||
@Override
|
||||
public final String toString() {
|
||||
return ReflectionToStringBuilderUtils.reflectOnlySelectedFields(this, fieldNamesToIncludeInToString.toArray(new String[0]));
|
||||
public String toString() {
|
||||
return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ public class Host extends GenericPresetVariable {
|
|||
|
||||
public void setTags(List<String> tags) {
|
||||
this.tags = tags;
|
||||
fieldNamesToIncludeInToString.add("tags");
|
||||
}
|
||||
|
||||
public Boolean getIsTagARule() {
|
||||
|
|
@ -41,6 +40,5 @@ public class Host extends GenericPresetVariable {
|
|||
|
||||
public void setIsTagARule(Boolean isTagARule) {
|
||||
this.isTagARule = isTagARule;
|
||||
fieldNamesToIncludeInToString.add("isTagARule");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -243,7 +243,7 @@ public class PresetVariableHelper {
|
|||
Role role = new Role();
|
||||
role.setId(roleVo.getUuid());
|
||||
role.setName(roleVo.getName());
|
||||
role.setType(roleVo.getRoleType());
|
||||
role.setType(roleVo.getRoleType().toString());
|
||||
|
||||
return role;
|
||||
}
|
||||
|
|
@ -490,7 +490,7 @@ public class PresetVariableHelper {
|
|||
value.setDiskOffering(getPresetVariableValueDiskOffering(volumeVo.getDiskOfferingId()));
|
||||
value.setId(volumeVo.getUuid());
|
||||
value.setName(volumeVo.getName());
|
||||
value.setProvisioningType(volumeVo.getProvisioningType());
|
||||
value.setProvisioningType(volumeVo.getProvisioningType().toString());
|
||||
|
||||
Long poolId = volumeVo.getPoolId();
|
||||
if (poolId == null) {
|
||||
|
|
@ -533,7 +533,7 @@ public class PresetVariableHelper {
|
|||
storage = new Storage();
|
||||
storage.setId(storagePoolVo.getUuid());
|
||||
storage.setName(storagePoolVo.getName());
|
||||
storage.setScope(storagePoolVo.getScope());
|
||||
storage.setScope(storagePoolVo.getScope().toString());
|
||||
List<StoragePoolTagVO> storagePoolTagVOList = storagePoolTagsDao.findStoragePoolTags(storageId);
|
||||
List<String> storageTags = new ArrayList<>();
|
||||
boolean isTagARule = false;
|
||||
|
|
@ -602,7 +602,7 @@ public class PresetVariableHelper {
|
|||
value.setId(snapshotVo.getUuid());
|
||||
value.setName(snapshotVo.getName());
|
||||
value.setSize(ByteScaleUtils.bytesToMebibytes(snapshotVo.getSize()));
|
||||
value.setSnapshotType(Snapshot.Type.values()[snapshotVo.getSnapshotType()]);
|
||||
value.setSnapshotType(Snapshot.Type.values()[snapshotVo.getSnapshotType()].toString());
|
||||
value.setStorage(getPresetVariableValueStorage(getSnapshotDataStoreId(snapshotId, usageRecord.getZoneId()), usageType));
|
||||
value.setTags(getPresetVariableValueResourceTags(snapshotId, ResourceObjectType.Snapshot));
|
||||
Hypervisor.HypervisorType hypervisorType = snapshotVo.getHypervisorType();
|
||||
|
|
@ -671,7 +671,7 @@ public class PresetVariableHelper {
|
|||
value.setId(vmSnapshotVo.getUuid());
|
||||
value.setName(vmSnapshotVo.getName());
|
||||
value.setTags(getPresetVariableValueResourceTags(vmSnapshotId, ResourceObjectType.VMSnapshot));
|
||||
value.setVmSnapshotType(vmSnapshotVo.getType());
|
||||
value.setVmSnapshotType(vmSnapshotVo.getType().toString());
|
||||
|
||||
VMInstanceVO vmVo = vmInstanceDao.findByIdIncludingRemoved(vmSnapshotVo.getVmId());
|
||||
if (vmVo != null && vmVo.getHypervisorType() != null) {
|
||||
|
|
|
|||
|
|
@ -17,19 +17,16 @@
|
|||
|
||||
package org.apache.cloudstack.quota.activationrule.presetvariables;
|
||||
|
||||
import org.apache.cloudstack.acl.RoleType;
|
||||
|
||||
public class Role extends GenericPresetVariable {
|
||||
@PresetVariableDefinition(description = "Role type of the resource's owner.")
|
||||
private RoleType type;
|
||||
private String type;
|
||||
|
||||
public RoleType getType() {
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(RoleType type) {
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
fieldNamesToIncludeInToString.add("type");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,8 +19,6 @@ package org.apache.cloudstack.quota.activationrule.presetvariables;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import com.cloud.storage.ScopeType;
|
||||
|
||||
public class Storage extends GenericPresetVariable {
|
||||
@PresetVariableDefinition(description = "List of string representing the tags of the storage where the volume is (i.e.: [\"a\", \"b\"]).")
|
||||
private List<String> tags;
|
||||
|
|
@ -29,7 +27,7 @@ public class Storage extends GenericPresetVariable {
|
|||
private Boolean isTagARule;
|
||||
|
||||
@PresetVariableDefinition(description = "Scope of the storage where the volume is. Values can be: ZONE, CLUSTER or HOST. Applicable only for primary storages.")
|
||||
private ScopeType scope;
|
||||
private String scope;
|
||||
|
||||
public List<String> getTags() {
|
||||
return tags;
|
||||
|
|
@ -37,7 +35,6 @@ public class Storage extends GenericPresetVariable {
|
|||
|
||||
public void setTags(List<String> tags) {
|
||||
this.tags = tags;
|
||||
fieldNamesToIncludeInToString.add("tags");
|
||||
}
|
||||
|
||||
public Boolean getIsTagARule() {
|
||||
|
|
@ -46,16 +43,14 @@ public class Storage extends GenericPresetVariable {
|
|||
|
||||
public void setIsTagARule(Boolean isTagARule) {
|
||||
this.isTagARule = isTagARule;
|
||||
fieldNamesToIncludeInToString.add("isTagARule");
|
||||
}
|
||||
|
||||
public ScopeType getScope() {
|
||||
public String getScope() {
|
||||
return scope;
|
||||
}
|
||||
|
||||
public void setScope(ScopeType scope) {
|
||||
public void setScope(String scope) {
|
||||
this.scope = scope;
|
||||
fieldNamesToIncludeInToString.add("scope");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,6 +28,5 @@ public class Tariff extends GenericPresetVariable {
|
|||
|
||||
public void setValue(BigDecimal value) {
|
||||
this.value = value;
|
||||
fieldNamesToIncludeInToString.add("value");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,9 +20,6 @@ package org.apache.cloudstack.quota.activationrule.presetvariables;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.cloud.storage.Snapshot;
|
||||
import com.cloud.storage.Storage.ProvisioningType;
|
||||
import com.cloud.vm.snapshot.VMSnapshot;
|
||||
import org.apache.cloudstack.quota.constant.QuotaTypes;
|
||||
|
||||
public class Value extends GenericPresetVariable {
|
||||
|
|
@ -60,13 +57,13 @@ public class Value extends GenericPresetVariable {
|
|||
private Long virtualSize;
|
||||
|
||||
@PresetVariableDefinition(description = "Provisioning type of the resource. Values can be: thin, sparse or fat.", supportedTypes = {QuotaTypes.VOLUME})
|
||||
private ProvisioningType provisioningType;
|
||||
private String provisioningType;
|
||||
|
||||
@PresetVariableDefinition(description = "Type of the snapshot. Values can be: MANUAL, RECURRING, HOURLY, DAILY, WEEKLY and MONTHLY.", supportedTypes = {QuotaTypes.SNAPSHOT})
|
||||
private Snapshot.Type snapshotType;
|
||||
private String snapshotType;
|
||||
|
||||
@PresetVariableDefinition(description = "Type of the VM snapshot. Values can be: Disk or DiskAndMemory.", supportedTypes = {QuotaTypes.VM_SNAPSHOT})
|
||||
private VMSnapshot.Type vmSnapshotType;
|
||||
private String vmSnapshotType;
|
||||
|
||||
@PresetVariableDefinition(description = "Computing offering of the VM.", supportedTypes = {QuotaTypes.RUNNING_VM, QuotaTypes.ALLOCATED_VM})
|
||||
private ComputeOffering computeOffering;
|
||||
|
|
@ -101,7 +98,6 @@ public class Value extends GenericPresetVariable {
|
|||
|
||||
public void setHost(Host host) {
|
||||
this.host = host;
|
||||
fieldNamesToIncludeInToString.add("host");
|
||||
}
|
||||
|
||||
public String getOsName() {
|
||||
|
|
@ -110,7 +106,6 @@ public class Value extends GenericPresetVariable {
|
|||
|
||||
public void setOsName(String osName) {
|
||||
this.osName = osName;
|
||||
fieldNamesToIncludeInToString.add("osName");
|
||||
}
|
||||
|
||||
public List<Resource> getAccountResources() {
|
||||
|
|
@ -119,7 +114,6 @@ public class Value extends GenericPresetVariable {
|
|||
|
||||
public void setAccountResources(List<Resource> accountResources) {
|
||||
this.accountResources = accountResources;
|
||||
fieldNamesToIncludeInToString.add("accountResources");
|
||||
}
|
||||
|
||||
public Map<String, String> getTags() {
|
||||
|
|
@ -128,7 +122,6 @@ public class Value extends GenericPresetVariable {
|
|||
|
||||
public void setTags(Map<String, String> tags) {
|
||||
this.tags = tags;
|
||||
fieldNamesToIncludeInToString.add("tags");
|
||||
}
|
||||
|
||||
public String getTag() {
|
||||
|
|
@ -137,7 +130,6 @@ public class Value extends GenericPresetVariable {
|
|||
|
||||
public void setTag(String tag) {
|
||||
this.tag = tag;
|
||||
fieldNamesToIncludeInToString.add("tag");
|
||||
}
|
||||
|
||||
public Long getSize() {
|
||||
|
|
@ -146,34 +138,30 @@ public class Value extends GenericPresetVariable {
|
|||
|
||||
public void setSize(Long size) {
|
||||
this.size = size;
|
||||
fieldNamesToIncludeInToString.add("size");
|
||||
}
|
||||
|
||||
public ProvisioningType getProvisioningType() {
|
||||
public String getProvisioningType() {
|
||||
return provisioningType;
|
||||
}
|
||||
|
||||
public void setProvisioningType(ProvisioningType provisioningType) {
|
||||
public void setProvisioningType(String provisioningType) {
|
||||
this.provisioningType = provisioningType;
|
||||
fieldNamesToIncludeInToString.add("provisioningType");
|
||||
}
|
||||
|
||||
public Snapshot.Type getSnapshotType() {
|
||||
public String getSnapshotType() {
|
||||
return snapshotType;
|
||||
}
|
||||
|
||||
public void setSnapshotType(Snapshot.Type snapshotType) {
|
||||
public void setSnapshotType(String snapshotType) {
|
||||
this.snapshotType = snapshotType;
|
||||
fieldNamesToIncludeInToString.add("snapshotType");
|
||||
}
|
||||
|
||||
public VMSnapshot.Type getVmSnapshotType() {
|
||||
public String getVmSnapshotType() {
|
||||
return vmSnapshotType;
|
||||
}
|
||||
|
||||
public void setVmSnapshotType(VMSnapshot.Type vmSnapshotType) {
|
||||
public void setVmSnapshotType(String vmSnapshotType) {
|
||||
this.vmSnapshotType = vmSnapshotType;
|
||||
fieldNamesToIncludeInToString.add("vmSnapshotType");
|
||||
}
|
||||
|
||||
public ComputeOffering getComputeOffering() {
|
||||
|
|
@ -182,7 +170,6 @@ public class Value extends GenericPresetVariable {
|
|||
|
||||
public void setComputeOffering(ComputeOffering computeOffering) {
|
||||
this.computeOffering = computeOffering;
|
||||
fieldNamesToIncludeInToString.add("computeOffering");
|
||||
}
|
||||
|
||||
public GenericPresetVariable getTemplate() {
|
||||
|
|
@ -191,7 +178,6 @@ public class Value extends GenericPresetVariable {
|
|||
|
||||
public void setTemplate(GenericPresetVariable template) {
|
||||
this.template = template;
|
||||
fieldNamesToIncludeInToString.add("template");
|
||||
}
|
||||
|
||||
public GenericPresetVariable getDiskOffering() {
|
||||
|
|
@ -200,7 +186,6 @@ public class Value extends GenericPresetVariable {
|
|||
|
||||
public void setDiskOffering(GenericPresetVariable diskOffering) {
|
||||
this.diskOffering = diskOffering;
|
||||
fieldNamesToIncludeInToString.add("diskOffering");
|
||||
}
|
||||
|
||||
public Storage getStorage() {
|
||||
|
|
@ -209,7 +194,6 @@ public class Value extends GenericPresetVariable {
|
|||
|
||||
public void setStorage(Storage storage) {
|
||||
this.storage = storage;
|
||||
fieldNamesToIncludeInToString.add("storage");
|
||||
}
|
||||
|
||||
public ComputingResources getComputingResources() {
|
||||
|
|
@ -218,7 +202,6 @@ public class Value extends GenericPresetVariable {
|
|||
|
||||
public void setComputingResources(ComputingResources computingResources) {
|
||||
this.computingResources = computingResources;
|
||||
fieldNamesToIncludeInToString.add("computingResources");
|
||||
}
|
||||
|
||||
public Long getVirtualSize() {
|
||||
|
|
@ -227,7 +210,6 @@ public class Value extends GenericPresetVariable {
|
|||
|
||||
public void setVirtualSize(Long virtualSize) {
|
||||
this.virtualSize = virtualSize;
|
||||
fieldNamesToIncludeInToString.add("virtualSize");
|
||||
}
|
||||
|
||||
public BackupOffering getBackupOffering() {
|
||||
|
|
@ -236,12 +218,10 @@ public class Value extends GenericPresetVariable {
|
|||
|
||||
public void setBackupOffering(BackupOffering backupOffering) {
|
||||
this.backupOffering = backupOffering;
|
||||
fieldNamesToIncludeInToString.add("backupOffering");
|
||||
}
|
||||
|
||||
public void setHypervisorType(String hypervisorType) {
|
||||
this.hypervisorType = hypervisorType;
|
||||
fieldNamesToIncludeInToString.add("hypervisorType");
|
||||
}
|
||||
|
||||
public String getHypervisorType() {
|
||||
|
|
@ -250,7 +230,6 @@ public class Value extends GenericPresetVariable {
|
|||
|
||||
public void setVolumeFormat(String volumeFormat) {
|
||||
this.volumeFormat = volumeFormat;
|
||||
fieldNamesToIncludeInToString.add("volumeFormat");
|
||||
}
|
||||
|
||||
public String getVolumeFormat() {
|
||||
|
|
@ -263,6 +242,5 @@ public class Value extends GenericPresetVariable {
|
|||
|
||||
public void setState(String state) {
|
||||
this.state = state;
|
||||
fieldNamesToIncludeInToString.add("state");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -267,12 +267,12 @@ public class QuotaManagerImplTest {
|
|||
|
||||
quotaManagerImplSpy.injectPresetVariablesIntoJsInterpreter(jsInterpreterMock, presetVariablesMock);
|
||||
|
||||
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("account"), 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).injectVariable(Mockito.eq("resourceType"), 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("account"), Mockito.any());
|
||||
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("domain"), Mockito.any());
|
||||
Mockito.verify(jsInterpreterMock, Mockito.never()).injectVariable(Mockito.eq("project"), Mockito.any());
|
||||
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("resourceType"), Mockito.any());
|
||||
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("value"), Mockito.any());
|
||||
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("zone"), Mockito.any());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -288,12 +288,12 @@ public class QuotaManagerImplTest {
|
|||
|
||||
quotaManagerImplSpy.injectPresetVariablesIntoJsInterpreter(jsInterpreterMock, presetVariablesMock);
|
||||
|
||||
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("account"), 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("resourceType"), 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("account"), Mockito.any());
|
||||
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("domain"), Mockito.any());
|
||||
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("project"), Mockito.any());
|
||||
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("resourceType"), Mockito.any());
|
||||
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("value"), Mockito.any());
|
||||
Mockito.verify(jsInterpreterMock).injectVariable(Mockito.eq("zone"), Mockito.any());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
|||
|
|
@ -1,34 +0,0 @@
|
|||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.cloudstack.quota.activationrule.presetvariables;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class AccountTest {
|
||||
|
||||
@Test
|
||||
public void setRoleTestAddFieldRoleToCollection() {
|
||||
Account variable = new Account();
|
||||
variable.setRole(null);
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("role"));
|
||||
}
|
||||
}
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.cloudstack.quota.activationrule.presetvariables;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class BackupOfferingTest {
|
||||
@Test
|
||||
public void setExternalIdTestAddFieldExternalIdToCollection() {
|
||||
BackupOffering backupOffering = new BackupOffering();
|
||||
backupOffering.setExternalId("any-external-id");
|
||||
Assert.assertTrue(backupOffering.fieldNamesToIncludeInToString.contains("externalId"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.cloudstack.quota.activationrule.presetvariables;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class ComputeOfferingTest {
|
||||
|
||||
@Test
|
||||
public void setCustomizedTestAddFieldCustomizedToCollection() {
|
||||
ComputeOffering variable = new ComputeOffering();
|
||||
variable.setCustomized(true);
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("customized"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.cloudstack.quota.activationrule.presetvariables;
|
||||
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class ComputingResourcesTest {
|
||||
|
||||
@Test
|
||||
public void toStringTestReturnAJson() {
|
||||
ComputingResources variable = new ComputingResources();
|
||||
|
||||
String expected = ToStringBuilder.reflectionToString(variable, ToStringStyle.JSON_STYLE);
|
||||
String result = variable.toString();
|
||||
|
||||
Assert.assertEquals(expected, result);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.cloudstack.quota.activationrule.presetvariables;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class DomainTest {
|
||||
|
||||
@Test
|
||||
public void setPathTestAddFieldPathToCollection() {
|
||||
Domain variable = new Domain();
|
||||
variable.setPath("test path");
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("path"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,73 +0,0 @@
|
|||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.cloudstack.quota.activationrule.presetvariables;
|
||||
|
||||
import org.apache.cloudstack.utils.reflectiontostringbuilderutils.ReflectionToStringBuilderUtils;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class GenericPresetVariableTest {
|
||||
|
||||
@Test
|
||||
public void setIdTestAddFieldIdToCollection() {
|
||||
GenericPresetVariable variable = new GenericPresetVariable();
|
||||
variable.setId("test");
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("id"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setNameTestAddFieldNameToCollection() {
|
||||
GenericPresetVariable variable = new GenericPresetVariable();
|
||||
variable.setName("test");
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("name"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toStringTestSetAllFieldsAndReturnAJson() {
|
||||
GenericPresetVariable variable = new GenericPresetVariable();
|
||||
variable.setId("test id");
|
||||
variable.setName("test name");
|
||||
|
||||
String expected = ReflectionToStringBuilderUtils.reflectOnlySelectedFields(variable, "id", "name");
|
||||
String result = variable.toString();
|
||||
|
||||
Assert.assertEquals(expected, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toStringTestSetSomeFieldsAndReturnAJson() {
|
||||
GenericPresetVariable variable = new GenericPresetVariable();
|
||||
variable.setId("test id");
|
||||
|
||||
String expected = ReflectionToStringBuilderUtils.reflectOnlySelectedFields(variable, "id");
|
||||
String result = variable.toString();
|
||||
|
||||
Assert.assertEquals(expected, result);
|
||||
|
||||
variable = new GenericPresetVariable();
|
||||
variable.setName("test name");
|
||||
|
||||
expected = ReflectionToStringBuilderUtils.reflectOnlySelectedFields(variable, "name");
|
||||
result = variable.toString();
|
||||
|
||||
Assert.assertEquals(expected, result);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.cloudstack.quota.activationrule.presetvariables;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class HostTest {
|
||||
|
||||
@Test
|
||||
public void setTagsTestAddFieldTagsToCollection() {
|
||||
Host variable = new Host();
|
||||
variable.setTags(null);
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("tags"));
|
||||
}
|
||||
}
|
||||
|
|
@ -209,12 +209,12 @@ public class PresetVariableHelperTest {
|
|||
value.setTags(Collections.singletonMap("tag1", "value1"));
|
||||
value.setTemplate(getGenericPresetVariableForTests());
|
||||
value.setDiskOffering(getGenericPresetVariableForTests());
|
||||
value.setProvisioningType(ProvisioningType.THIN);
|
||||
value.setProvisioningType(ProvisioningType.THIN.toString());
|
||||
value.setStorage(getStorageForTests());
|
||||
value.setSize(ByteScaleUtils.GiB);
|
||||
value.setSnapshotType(Snapshot.Type.HOURLY);
|
||||
value.setSnapshotType(Snapshot.Type.HOURLY.toString());
|
||||
value.setTag("tag_test");
|
||||
value.setVmSnapshotType(VMSnapshot.Type.Disk);
|
||||
value.setVmSnapshotType(VMSnapshot.Type.Disk.toString());
|
||||
value.setComputingResources(getComputingResourcesForTests());
|
||||
return value;
|
||||
}
|
||||
|
|
@ -256,7 +256,7 @@ public class PresetVariableHelperTest {
|
|||
storage.setId("storage_id");
|
||||
storage.setName("storage_name");
|
||||
storage.setTags(Arrays.asList("tag1", "tag2"));
|
||||
storage.setScope(ScopeType.ZONE);
|
||||
storage.setScope(ScopeType.ZONE.toString());
|
||||
return storage;
|
||||
}
|
||||
|
||||
|
|
@ -293,13 +293,6 @@ public class PresetVariableHelperTest {
|
|||
Assert.assertEquals(expected.getName(), result.getName());
|
||||
}
|
||||
|
||||
private void validateFieldNamesToIncludeInToString(List<String> expected, GenericPresetVariable resultObject) {
|
||||
List<String> result = new ArrayList<>(resultObject.fieldNamesToIncludeInToString);
|
||||
Collections.sort(expected);
|
||||
Collections.sort(result);
|
||||
Assert.assertEquals(expected, result);
|
||||
}
|
||||
|
||||
private BackupOffering getBackupOfferingForTests() {
|
||||
BackupOffering backupOffering = new BackupOffering();
|
||||
backupOffering.setId("backup_offering_id");
|
||||
|
|
@ -362,7 +355,6 @@ public class PresetVariableHelperTest {
|
|||
|
||||
Assert.assertNotNull(result.getProject());
|
||||
assertPresetVariableIdAndName(account, result.getProject());
|
||||
validateFieldNamesToIncludeInToString(Arrays.asList("id", "name"), result.getProject());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -379,7 +371,6 @@ public class PresetVariableHelperTest {
|
|||
Account result = presetVariableHelperSpy.getPresetVariableAccount(1l);
|
||||
|
||||
assertPresetVariableIdAndName(account, result);
|
||||
validateFieldNamesToIncludeInToString(Arrays.asList("id", "name"), result);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -409,18 +400,16 @@ public class PresetVariableHelperTest {
|
|||
Role role = new Role();
|
||||
role.setId("test_id");
|
||||
role.setName("test_name");
|
||||
role.setType(roleType);
|
||||
role.setType(roleType.toString());
|
||||
|
||||
Mockito.doReturn(role.getId()).when(roleVoMock).getUuid();
|
||||
Mockito.doReturn(role.getName()).when(roleVoMock).getName();
|
||||
Mockito.doReturn(role.getType()).when(roleVoMock).getRoleType();
|
||||
Mockito.doReturn(RoleType.fromString(role.getType())).when(roleVoMock).getRoleType();
|
||||
|
||||
Role result = presetVariableHelperSpy.getPresetVariableRole(1l);
|
||||
|
||||
assertPresetVariableIdAndName(role, result);
|
||||
Assert.assertEquals(role.getType(), result.getType());
|
||||
|
||||
validateFieldNamesToIncludeInToString(Arrays.asList("id", "name", "type"), result);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -439,8 +428,6 @@ public class PresetVariableHelperTest {
|
|||
|
||||
assertPresetVariableIdAndName(domain, result);
|
||||
Assert.assertEquals(domain.getPath(), result.getPath());
|
||||
|
||||
validateFieldNamesToIncludeInToString(Arrays.asList("id", "name", "path"), result);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -456,7 +443,6 @@ public class PresetVariableHelperTest {
|
|||
GenericPresetVariable result = presetVariableHelperSpy.getPresetVariableZone(1l);
|
||||
|
||||
assertPresetVariableIdAndName(expected, result);
|
||||
validateFieldNamesToIncludeInToString(Arrays.asList("id", "name"), result);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -477,7 +463,6 @@ public class PresetVariableHelperTest {
|
|||
Value result = presetVariableHelperSpy.getPresetVariableValue(usageVoMock);
|
||||
|
||||
Assert.assertEquals(resources, result.getAccountResources());
|
||||
validateFieldNamesToIncludeInToString(Arrays.asList("accountResources"), result);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -536,8 +521,6 @@ public class PresetVariableHelperTest {
|
|||
Assert.assertEquals(expected.getTags(), result.getTags());
|
||||
Assert.assertEquals(expected.getTemplate(), result.getTemplate());
|
||||
Assert.assertEquals(hypervisorType.name(), result.getHypervisorType());
|
||||
|
||||
validateFieldNamesToIncludeInToString(Arrays.asList("id", "name", "osName", "tags", "template", "hypervisorType"), result);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -569,7 +552,6 @@ public class PresetVariableHelperTest {
|
|||
|
||||
assertPresetVariableIdAndName(expectedHost, result.getHost());
|
||||
Assert.assertEquals(expectedHost.getTags(), result.getHost().getTags());
|
||||
validateFieldNamesToIncludeInToString(Arrays.asList("host"), result);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -588,7 +570,6 @@ public class PresetVariableHelperTest {
|
|||
|
||||
assertPresetVariableIdAndName(expected, result);
|
||||
Assert.assertEquals(expected.getTags(), result.getTags());
|
||||
validateFieldNamesToIncludeInToString(Arrays.asList("id", "isTagARule", "name", "tags"), result);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -608,7 +589,6 @@ public class PresetVariableHelperTest {
|
|||
assertPresetVariableIdAndName(expected, result);
|
||||
Assert.assertEquals(new ArrayList<>(), result.getTags());
|
||||
Assert.assertTrue(result.getIsTagARule());
|
||||
validateFieldNamesToIncludeInToString(Arrays.asList("id", "isTagARule", "name", "tags"), result);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -636,7 +616,6 @@ public class PresetVariableHelperTest {
|
|||
|
||||
assertPresetVariableIdAndName(expected, result);
|
||||
Assert.assertEquals(expected.isCustomized(), result.isCustomized());
|
||||
validateFieldNamesToIncludeInToString(Arrays.asList("id", "name", "customized"), result);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -652,7 +631,6 @@ public class PresetVariableHelperTest {
|
|||
GenericPresetVariable result = presetVariableHelperSpy.getPresetVariableValueTemplate(1l);
|
||||
|
||||
assertPresetVariableIdAndName(expected, result);
|
||||
validateFieldNamesToIncludeInToString(Arrays.asList("id", "name"), result);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -696,7 +674,7 @@ public class PresetVariableHelperTest {
|
|||
Mockito.doReturn(expected.getId()).when(volumeVoMock).getUuid();
|
||||
Mockito.doReturn(expected.getName()).when(volumeVoMock).getName();
|
||||
Mockito.doReturn(expected.getDiskOffering()).when(presetVariableHelperSpy).getPresetVariableValueDiskOffering(Mockito.anyLong());
|
||||
Mockito.doReturn(expected.getProvisioningType()).when(volumeVoMock).getProvisioningType();
|
||||
Mockito.doReturn(ProvisioningType.getProvisioningType(expected.getProvisioningType())).when(volumeVoMock).getProvisioningType();
|
||||
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.getSize()).when(volumeVoMock).getSize();
|
||||
|
|
@ -716,8 +694,6 @@ public class PresetVariableHelperTest {
|
|||
Assert.assertEquals(expected.getTags(), result.getTags());
|
||||
Assert.assertEquals(expectedSize, result.getSize());
|
||||
Assert.assertEquals(imageFormat.name(), result.getVolumeFormat());
|
||||
|
||||
validateFieldNamesToIncludeInToString(Arrays.asList("id", "name", "diskOffering", "provisioningType", "storage", "tags", "size", "volumeFormat"), result);
|
||||
}
|
||||
|
||||
Mockito.verify(presetVariableHelperSpy, Mockito.times(ImageFormat.values().length)).getPresetVariableValueResourceTags(Mockito.anyLong(),
|
||||
|
|
@ -738,7 +714,7 @@ public class PresetVariableHelperTest {
|
|||
Mockito.doReturn(expected.getId()).when(volumeVoMock).getUuid();
|
||||
Mockito.doReturn(expected.getName()).when(volumeVoMock).getName();
|
||||
Mockito.doReturn(expected.getDiskOffering()).when(presetVariableHelperSpy).getPresetVariableValueDiskOffering(Mockito.anyLong());
|
||||
Mockito.doReturn(expected.getProvisioningType()).when(volumeVoMock).getProvisioningType();
|
||||
Mockito.doReturn(ProvisioningType.getProvisioningType(expected.getProvisioningType())).when(volumeVoMock).getProvisioningType();
|
||||
Mockito.doReturn(expected.getTags()).when(presetVariableHelperSpy).getPresetVariableValueResourceTags(Mockito.anyLong(), Mockito.any(ResourceObjectType.class));
|
||||
Mockito.doReturn(expected.getSize()).when(volumeVoMock).getSize();
|
||||
Mockito.doReturn(imageFormat).when(volumeVoMock).getFormat();
|
||||
|
|
@ -757,8 +733,6 @@ public class PresetVariableHelperTest {
|
|||
Assert.assertEquals(expected.getTags(), result.getTags());
|
||||
Assert.assertEquals(expectedSize, result.getSize());
|
||||
Assert.assertEquals(imageFormat.name(), result.getVolumeFormat());
|
||||
|
||||
validateFieldNamesToIncludeInToString(Arrays.asList("id", "name", "diskOffering", "provisioningType", "tags", "size", "volumeFormat"), result);
|
||||
}
|
||||
|
||||
Mockito.verify(presetVariableHelperSpy, Mockito.times(ImageFormat.values().length)).getPresetVariableValueResourceTags(Mockito.anyLong(),
|
||||
|
|
@ -778,7 +752,6 @@ public class PresetVariableHelperTest {
|
|||
GenericPresetVariable result = presetVariableHelperSpy.getPresetVariableValueDiskOffering(1l);
|
||||
|
||||
assertPresetVariableIdAndName(expected, result);
|
||||
validateFieldNamesToIncludeInToString(Arrays.asList("id", "name"), result);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -804,7 +777,7 @@ public class PresetVariableHelperTest {
|
|||
|
||||
Mockito.doReturn(expected.getId()).when(storagePoolVoMock).getUuid();
|
||||
Mockito.doReturn(expected.getName()).when(storagePoolVoMock).getName();
|
||||
Mockito.doReturn(expected.getScope()).when(storagePoolVoMock).getScope();
|
||||
Mockito.doReturn(ScopeType.validateAndGetScopeType(expected.getScope())).when(storagePoolVoMock).getScope();
|
||||
Mockito.doReturn(storageTagVOListMock).when(storagePoolTagsDaoMock).findStoragePoolTags(Mockito.anyLong());
|
||||
|
||||
Storage result = presetVariableHelperSpy.getPresetVariableValueStorage(1l, 2);
|
||||
|
|
@ -812,8 +785,6 @@ public class PresetVariableHelperTest {
|
|||
assertPresetVariableIdAndName(expected, result);
|
||||
Assert.assertEquals(expected.getScope(), result.getScope());
|
||||
Assert.assertEquals(expected.getTags(), result.getTags());
|
||||
|
||||
validateFieldNamesToIncludeInToString(Arrays.asList("id", "isTagARule", "name", "scope", "tags"), result);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -828,7 +799,7 @@ public class PresetVariableHelperTest {
|
|||
|
||||
Mockito.doReturn(expected.getId()).when(storagePoolVoMock).getUuid();
|
||||
Mockito.doReturn(expected.getName()).when(storagePoolVoMock).getName();
|
||||
Mockito.doReturn(expected.getScope()).when(storagePoolVoMock).getScope();
|
||||
Mockito.doReturn(ScopeType.validateAndGetScopeType(expected.getScope())).when(storagePoolVoMock).getScope();
|
||||
Mockito.doReturn(storageTagVOListMock).when(storagePoolTagsDaoMock).findStoragePoolTags(Mockito.anyLong());
|
||||
|
||||
Storage result = presetVariableHelperSpy.getPresetVariableValueStorage(1l, 2);
|
||||
|
|
@ -837,8 +808,6 @@ public class PresetVariableHelperTest {
|
|||
Assert.assertEquals(expected.getScope(), result.getScope());
|
||||
Assert.assertEquals(new ArrayList<>(), result.getTags());
|
||||
Assert.assertTrue(result.getIsTagARule());
|
||||
|
||||
validateFieldNamesToIncludeInToString(Arrays.asList("id", "isTagARule", "name", "scope", "tags"), result);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -874,7 +843,6 @@ public class PresetVariableHelperTest {
|
|||
Storage result = presetVariableHelperSpy.getSecondaryStorageForSnapshot(1l, UsageTypes.SNAPSHOT);
|
||||
|
||||
assertPresetVariableIdAndName(expected, result);
|
||||
validateFieldNamesToIncludeInToString(Arrays.asList("id", "name"), result);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -915,8 +883,6 @@ public class PresetVariableHelperTest {
|
|||
Assert.assertEquals(expected.getOsName(), result.getOsName());
|
||||
Assert.assertEquals(expected.getTags(), result.getTags());
|
||||
Assert.assertEquals(expectedSize, result.getSize());
|
||||
|
||||
validateFieldNamesToIncludeInToString(Arrays.asList("id", "name", "osName", "tags", "size"), result);
|
||||
});
|
||||
|
||||
Mockito.verify(presetVariableHelperSpy).getPresetVariableValueResourceTags(Mockito.anyLong(), Mockito.eq(ResourceObjectType.Template));
|
||||
|
|
@ -967,8 +933,6 @@ public class PresetVariableHelperTest {
|
|||
Assert.assertEquals(expected.getTags(), result.getTags());
|
||||
Assert.assertEquals(expectedSize, result.getSize());
|
||||
Assert.assertEquals(hypervisorType.name(), result.getHypervisorType());
|
||||
|
||||
validateFieldNamesToIncludeInToString(Arrays.asList("id", "name", "snapshotType", "storage", "tags", "size", "hypervisorType"), result);
|
||||
}
|
||||
|
||||
Mockito.verify(presetVariableHelperSpy, Mockito.times(Hypervisor.HypervisorType.values().length)).getPresetVariableValueResourceTags(Mockito.anyLong(),
|
||||
|
|
@ -1053,8 +1017,6 @@ public class PresetVariableHelperTest {
|
|||
|
||||
assertPresetVariableIdAndName(expected, result);
|
||||
Assert.assertEquals(expected.getTag(), result.getTag());
|
||||
|
||||
validateFieldNamesToIncludeInToString(Arrays.asList("id", "name", "tag"), result);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -1079,7 +1041,7 @@ public class PresetVariableHelperTest {
|
|||
Mockito.doReturn(expected.getId()).when(vmSnapshotVoMock).getUuid();
|
||||
Mockito.doReturn(expected.getName()).when(vmSnapshotVoMock).getName();
|
||||
Mockito.doReturn(expected.getTags()).when(presetVariableHelperSpy).getPresetVariableValueResourceTags(Mockito.anyLong(), Mockito.any(ResourceObjectType.class));
|
||||
Mockito.doReturn(expected.getVmSnapshotType()).when(vmSnapshotVoMock).getType();
|
||||
Mockito.doReturn(VMSnapshot.Type.valueOf(expected.getVmSnapshotType())).when(vmSnapshotVoMock).getType();
|
||||
|
||||
Mockito.doReturn(UsageTypes.VM_SNAPSHOT).when(usageVoMock).getUsageType();
|
||||
|
||||
|
|
@ -1090,8 +1052,6 @@ public class PresetVariableHelperTest {
|
|||
Assert.assertEquals(expected.getTags(), result.getTags());
|
||||
Assert.assertEquals(expected.getVmSnapshotType(), result.getVmSnapshotType());
|
||||
|
||||
validateFieldNamesToIncludeInToString(Arrays.asList("id", "name", "tags", "vmSnapshotType"), result);
|
||||
|
||||
Mockito.verify(presetVariableHelperSpy).getPresetVariableValueResourceTags(Mockito.anyLong(), Mockito.eq(ResourceObjectType.VMSnapshot));
|
||||
}
|
||||
|
||||
|
|
@ -1124,9 +1084,6 @@ public class PresetVariableHelperTest {
|
|||
|
||||
if (typeInt == UsageTypes.RUNNING_VM) {
|
||||
Assert.assertEquals(expected.getComputingResources(), result.getComputingResources());
|
||||
validateFieldNamesToIncludeInToString(Arrays.asList("computeOffering", "computingResources"), result);
|
||||
} else {
|
||||
validateFieldNamesToIncludeInToString(Arrays.asList("computeOffering"), result);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
@ -1219,8 +1176,6 @@ public class PresetVariableHelperTest {
|
|||
Assert.assertEquals(expected.getVirtualSize(), result.getVirtualSize());
|
||||
Assert.assertEquals(expected.getBackupOffering(), result.getBackupOffering());
|
||||
|
||||
validateFieldNamesToIncludeInToString(Arrays.asList("size", "virtualSize", "backupOffering"), result);
|
||||
|
||||
Mockito.verify(presetVariableHelperSpy).getPresetVariableValueBackupOffering(Mockito.anyLong());
|
||||
}
|
||||
|
||||
|
|
@ -1239,7 +1194,6 @@ public class PresetVariableHelperTest {
|
|||
|
||||
assertPresetVariableIdAndName(expected, result);
|
||||
Assert.assertEquals(expected.getExternalId(), result.getExternalId());
|
||||
validateFieldNamesToIncludeInToString(Arrays.asList("id", "name", "externalId"), result);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
|||
|
|
@ -1,40 +0,0 @@
|
|||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.cloudstack.quota.activationrule.presetvariables;
|
||||
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class ResourceTest {
|
||||
|
||||
@Test
|
||||
public void toStringTestReturnAJson() {
|
||||
Resource variable = new Resource();
|
||||
|
||||
String expected = ToStringBuilder.reflectionToString(variable, ToStringStyle.JSON_STYLE);
|
||||
String result = variable.toString();
|
||||
|
||||
Assert.assertEquals(expected, result);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.cloudstack.quota.activationrule.presetvariables;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class RoleTest {
|
||||
|
||||
@Test
|
||||
public void setTagsTestAddFieldTagsToCollection() {
|
||||
Role variable = new Role();
|
||||
variable.setType(null);
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("type"));
|
||||
}
|
||||
}
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.cloudstack.quota.activationrule.presetvariables;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class StorageTest {
|
||||
|
||||
@Test
|
||||
public void setTagsTestAddFieldTagsToCollection() {
|
||||
Storage variable = new Storage();
|
||||
variable.setTags(null);
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("tags"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setScopeTestAddFieldScopeToCollection() {
|
||||
Storage variable = new Storage();
|
||||
variable.setScope(null);;
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("scope"));
|
||||
}
|
||||
}
|
||||
|
|
@ -1,175 +0,0 @@
|
|||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.cloudstack.quota.activationrule.presetvariables;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class ValueTest {
|
||||
|
||||
@Test
|
||||
public void setIdTestAddFieldIdToCollection() {
|
||||
Value variable = new Value();
|
||||
variable.setId(null);
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("id"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setNameTestAddFieldNameToCollection() {
|
||||
Value variable = new Value();
|
||||
variable.setName(null);
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("name"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setHostTestAddFieldHostToCollection() {
|
||||
Value variable = new Value();
|
||||
variable.setHost(null);
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("host"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setOsNameTestAddFieldOsNameToCollection() {
|
||||
Value variable = new Value();
|
||||
variable.setOsName(null);
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("osName"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setAccountResourcesTestAddFieldAccountResourcesToCollection() {
|
||||
Value variable = new Value();
|
||||
variable.setAccountResources(null);
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("accountResources"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setTagsTestAddFieldTagsToCollection() {
|
||||
Value variable = new Value();
|
||||
variable.setTags(null);
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("tags"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setTagTestAddFieldTagToCollection() {
|
||||
Value variable = new Value();
|
||||
variable.setTag(null);
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("tag"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setSizeTestAddFieldSizeToCollection() {
|
||||
Value variable = new Value();
|
||||
variable.setSize(null);
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("size"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setProvisioningTypeTestAddFieldProvisioningTypeToCollection() {
|
||||
Value variable = new Value();
|
||||
variable.setProvisioningType(null);
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("provisioningType"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setSnapshotTypeTestAddFieldSnapshotTypeToCollection() {
|
||||
Value variable = new Value();
|
||||
variable.setSnapshotType(null);
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("snapshotType"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setVmSnapshotTypeTestAddFieldVmSnapshotTypeToCollection() {
|
||||
Value variable = new Value();
|
||||
variable.setVmSnapshotType(null);
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("vmSnapshotType"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setComputeOfferingTestAddFieldComputeOfferingToCollection() {
|
||||
Value variable = new Value();
|
||||
variable.setComputeOffering(null);
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("computeOffering"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setTemplateTestAddFieldTemplateToCollection() {
|
||||
Value variable = new Value();
|
||||
variable.setTemplate(null);
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("template"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setDiskOfferingTestAddFieldDiskOfferingToCollection() {
|
||||
Value variable = new Value();
|
||||
variable.setDiskOffering(null);
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("diskOffering"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setStorageTestAddFieldStorageToCollection() {
|
||||
Value variable = new Value();
|
||||
variable.setStorage(null);
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("storage"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setComputingResourcesTestAddFieldComputingResourcesToCollection() {
|
||||
Value variable = new Value();
|
||||
variable.setComputingResources(null);
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("computingResources"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setVirtualSizeTestAddFieldVirtualSizeToCollection() {
|
||||
Value variable = new Value();
|
||||
variable.setVirtualSize(null);
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("virtualSize"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setBackupOfferingTestAddFieldBackupOfferingToCollection() {
|
||||
Value variable = new Value();
|
||||
variable.setBackupOffering(null);
|
||||
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"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setStateTestAddFieldStateToCollection() {
|
||||
Value variable = new Value();
|
||||
variable.setState(null);
|
||||
Assert.assertTrue(variable.fieldNamesToIncludeInToString.contains("state"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -139,23 +139,23 @@ public class HeuristicRuleHelper {
|
|||
* @param presetVariables used for injecting in the JS interpreter.
|
||||
*/
|
||||
protected void injectPresetVariables(JsInterpreter jsInterpreter, PresetVariables presetVariables) {
|
||||
jsInterpreter.injectVariable("secondaryStorages", presetVariables.getSecondaryStorages().toString());
|
||||
jsInterpreter.injectVariable("secondaryStorages", presetVariables.getSecondaryStorages());
|
||||
|
||||
if (presetVariables.getTemplate() != null) {
|
||||
jsInterpreter.injectVariable("template", presetVariables.getTemplate().toString());
|
||||
jsInterpreter.injectVariable("iso", presetVariables.getTemplate().toString());
|
||||
jsInterpreter.injectVariable("template", presetVariables.getTemplate());
|
||||
jsInterpreter.injectVariable("iso", presetVariables.getTemplate());
|
||||
}
|
||||
|
||||
if (presetVariables.getSnapshot() != null) {
|
||||
jsInterpreter.injectVariable("snapshot", presetVariables.getSnapshot().toString());
|
||||
jsInterpreter.injectVariable("snapshot", presetVariables.getSnapshot());
|
||||
}
|
||||
|
||||
if (presetVariables.getVolume() != null) {
|
||||
jsInterpreter.injectVariable("volume", presetVariables.getVolume().toString());
|
||||
jsInterpreter.injectVariable("volume", presetVariables.getVolume());
|
||||
}
|
||||
|
||||
if (presetVariables.getAccount() != null) {
|
||||
jsInterpreter.injectVariable("account", presetVariables.getAccount().toString());
|
||||
jsInterpreter.injectVariable("account", presetVariables.getAccount());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -185,8 +185,8 @@ public class HeuristicRuleHelper {
|
|||
Template template = new Template();
|
||||
|
||||
template.setName(templateVO.getName());
|
||||
template.setFormat(templateVO.getFormat());
|
||||
template.setHypervisorType(templateVO.getHypervisorType());
|
||||
template.setFormat(templateVO.getFormat().toString());
|
||||
template.setHypervisorType(templateVO.getHypervisorType().toString());
|
||||
|
||||
return template;
|
||||
}
|
||||
|
|
@ -195,7 +195,7 @@ public class HeuristicRuleHelper {
|
|||
Volume volumePresetVariable = new Volume();
|
||||
|
||||
volumePresetVariable.setName(volumeVO.getName());
|
||||
volumePresetVariable.setFormat(volumeVO.getFormat());
|
||||
volumePresetVariable.setFormat(volumeVO.getFormat().toString());
|
||||
volumePresetVariable.setSize(volumeVO.getSize());
|
||||
|
||||
return volumePresetVariable;
|
||||
|
|
@ -206,7 +206,7 @@ public class HeuristicRuleHelper {
|
|||
|
||||
snapshot.setName(snapshotInfo.getName());
|
||||
snapshot.setSize(snapshotInfo.getSize());
|
||||
snapshot.setHypervisorType(snapshotInfo.getHypervisorType());
|
||||
snapshot.setHypervisorType(snapshotInfo.getHypervisorType().toString());
|
||||
|
||||
return snapshot;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@ public class Account extends GenericHeuristicPresetVariable {
|
|||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
fieldNamesToIncludeInToString.add("id");
|
||||
}
|
||||
|
||||
public Domain getDomain() {
|
||||
|
|
@ -36,6 +35,5 @@ public class Account extends GenericHeuristicPresetVariable {
|
|||
|
||||
public void setDomain(Domain domain) {
|
||||
this.domain = domain;
|
||||
fieldNamesToIncludeInToString.add("domain");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,6 +25,5 @@ public class Domain extends GenericHeuristicPresetVariable {
|
|||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
fieldNamesToIncludeInToString.add("id");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,15 +16,11 @@
|
|||
// under the License.
|
||||
package org.apache.cloudstack.storage.heuristics.presetvariables;
|
||||
|
||||
import org.apache.cloudstack.utils.reflectiontostringbuilderutils.ReflectionToStringBuilderUtils;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
||||
public class GenericHeuristicPresetVariable {
|
||||
|
||||
protected transient Set<String> fieldNamesToIncludeInToString = new HashSet<>();
|
||||
|
||||
private String name;
|
||||
|
||||
public String getName() {
|
||||
|
|
@ -33,15 +29,10 @@ public class GenericHeuristicPresetVariable {
|
|||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
fieldNamesToIncludeInToString.add("name");
|
||||
}
|
||||
|
||||
/***
|
||||
* Converts the preset variable into a valid JSON object that will be injected into the JS interpreter.
|
||||
* This method should not be overridden or changed.
|
||||
*/
|
||||
@Override
|
||||
public final String toString() {
|
||||
return ReflectionToStringBuilderUtils.reflectOnlySelectedFields(this, fieldNamesToIncludeInToString.toArray(new String[0]));
|
||||
public String toString() {
|
||||
return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ public class SecondaryStorage extends GenericHeuristicPresetVariable {
|
|||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
fieldNamesToIncludeInToString.add("id");
|
||||
}
|
||||
|
||||
public Long getUsedDiskSize() {
|
||||
|
|
@ -41,7 +40,6 @@ public class SecondaryStorage extends GenericHeuristicPresetVariable {
|
|||
|
||||
public void setUsedDiskSize(Long usedDiskSize) {
|
||||
this.usedDiskSize = usedDiskSize;
|
||||
fieldNamesToIncludeInToString.add("usedDiskSize");
|
||||
}
|
||||
|
||||
public Long getTotalDiskSize() {
|
||||
|
|
@ -50,7 +48,6 @@ public class SecondaryStorage extends GenericHeuristicPresetVariable {
|
|||
|
||||
public void setTotalDiskSize(Long totalDiskSize) {
|
||||
this.totalDiskSize = totalDiskSize;
|
||||
fieldNamesToIncludeInToString.add("totalDiskSize");
|
||||
}
|
||||
|
||||
public String getProtocol() {
|
||||
|
|
@ -59,6 +56,5 @@ public class SecondaryStorage extends GenericHeuristicPresetVariable {
|
|||
|
||||
public void setProtocol(String protocol) {
|
||||
this.protocol = protocol;
|
||||
fieldNamesToIncludeInToString.add("protocol");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,13 +16,11 @@
|
|||
// under the License.
|
||||
package org.apache.cloudstack.storage.heuristics.presetvariables;
|
||||
|
||||
import com.cloud.hypervisor.Hypervisor;
|
||||
|
||||
public class Snapshot extends GenericHeuristicPresetVariable {
|
||||
|
||||
private Long size;
|
||||
|
||||
private Hypervisor.HypervisorType hypervisorType;
|
||||
private String hypervisorType;
|
||||
|
||||
public Long getSize() {
|
||||
return size;
|
||||
|
|
@ -30,15 +28,13 @@ public class Snapshot extends GenericHeuristicPresetVariable {
|
|||
|
||||
public void setSize(Long size) {
|
||||
this.size = size;
|
||||
fieldNamesToIncludeInToString.add("size");
|
||||
}
|
||||
|
||||
public Hypervisor.HypervisorType getHypervisorType() {
|
||||
public String getHypervisorType() {
|
||||
return hypervisorType;
|
||||
}
|
||||
|
||||
public void setHypervisorType(Hypervisor.HypervisorType hypervisorType) {
|
||||
public void setHypervisorType(String hypervisorType) {
|
||||
this.hypervisorType = hypervisorType;
|
||||
fieldNamesToIncludeInToString.add("hypervisorType");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,41 +16,35 @@
|
|||
// under the License.
|
||||
package org.apache.cloudstack.storage.heuristics.presetvariables;
|
||||
|
||||
import com.cloud.hypervisor.Hypervisor;
|
||||
import com.cloud.storage.Storage;
|
||||
|
||||
public class Template extends GenericHeuristicPresetVariable {
|
||||
|
||||
private Hypervisor.HypervisorType hypervisorType;
|
||||
private String hypervisorType;
|
||||
|
||||
private Storage.ImageFormat format;
|
||||
private String format;
|
||||
|
||||
private Storage.TemplateType templateType;
|
||||
private String templateType;
|
||||
|
||||
public Hypervisor.HypervisorType getHypervisorType() {
|
||||
public String getHypervisorType() {
|
||||
return hypervisorType;
|
||||
}
|
||||
|
||||
public void setHypervisorType(Hypervisor.HypervisorType hypervisorType) {
|
||||
public void setHypervisorType(String hypervisorType) {
|
||||
this.hypervisorType = hypervisorType;
|
||||
fieldNamesToIncludeInToString.add("hypervisorType");
|
||||
}
|
||||
|
||||
public Storage.ImageFormat getFormat() {
|
||||
public String getFormat() {
|
||||
return format;
|
||||
}
|
||||
|
||||
public void setFormat(Storage.ImageFormat format) {
|
||||
public void setFormat(String format) {
|
||||
this.format = format;
|
||||
fieldNamesToIncludeInToString.add("format");
|
||||
}
|
||||
|
||||
public Storage.TemplateType getTemplateType() {
|
||||
public String getTemplateType() {
|
||||
return templateType;
|
||||
}
|
||||
|
||||
public void setTemplateType(Storage.TemplateType templateType) {
|
||||
public void setTemplateType(String templateType) {
|
||||
this.templateType = templateType;
|
||||
fieldNamesToIncludeInToString.add("templateType");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,13 +16,11 @@
|
|||
// under the License.
|
||||
package org.apache.cloudstack.storage.heuristics.presetvariables;
|
||||
|
||||
import com.cloud.storage.Storage;
|
||||
|
||||
public class Volume extends GenericHeuristicPresetVariable {
|
||||
|
||||
private Long size;
|
||||
|
||||
private Storage.ImageFormat format;
|
||||
private String format;
|
||||
|
||||
public Long getSize() {
|
||||
return size;
|
||||
|
|
@ -30,15 +28,13 @@ public class Volume extends GenericHeuristicPresetVariable {
|
|||
|
||||
public void setSize(Long size) {
|
||||
this.size = size;
|
||||
fieldNamesToIncludeInToString.add("size");
|
||||
}
|
||||
|
||||
public Storage.ImageFormat getFormat() {
|
||||
public String getFormat() {
|
||||
return format;
|
||||
}
|
||||
|
||||
public void setFormat(Storage.ImageFormat format) {
|
||||
public void setFormat(String format) {
|
||||
this.format = format;
|
||||
fieldNamesToIncludeInToString.add("format");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@
|
|||
// under the License.
|
||||
package org.apache.cloudstack.storage.heuristics;
|
||||
|
||||
import com.cloud.hypervisor.Hypervisor;
|
||||
import com.cloud.storage.Storage;
|
||||
import com.cloud.storage.VMTemplateVO;
|
||||
import com.cloud.storage.VolumeVO;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
|
|
@ -29,6 +31,7 @@ import org.apache.cloudstack.storage.heuristics.presetvariables.PresetVariables;
|
|||
import org.apache.cloudstack.utils.jsinterpreter.JsInterpreter;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.InjectMocks;
|
||||
|
|
@ -68,6 +71,19 @@ public class HeuristicRuleHelperTest {
|
|||
@InjectMocks
|
||||
HeuristicRuleHelper heuristicRuleHelperSpy = new HeuristicRuleHelper();
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
Mockito.doReturn("template-name").when(vmTemplateVOMock).getName();
|
||||
Mockito.doReturn(Storage.ImageFormat.QCOW2).when(vmTemplateVOMock).getFormat();
|
||||
Mockito.doReturn(Hypervisor.HypervisorType.KVM).when(vmTemplateVOMock).getHypervisorType();
|
||||
Mockito.doReturn("snapshot-name").when(snapshotInfoMock).getName();
|
||||
Mockito.doReturn(1024L).when(snapshotInfoMock).getSize();
|
||||
Mockito.doReturn(Hypervisor.HypervisorType.VMware).when(snapshotInfoMock).getHypervisorType();
|
||||
Mockito.doReturn("volume-name").when(volumeVOMock).getName();
|
||||
Mockito.doReturn(Storage.ImageFormat.RAW).when(volumeVOMock).getFormat();
|
||||
Mockito.doReturn(2048L).when(volumeVOMock).getSize();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getImageStoreIfThereIsHeuristicRuleTestZoneDoesNotHaveHeuristicRuleShouldReturnNull() {
|
||||
Long zoneId = 1L;
|
||||
|
|
|
|||
|
|
@ -1,46 +0,0 @@
|
|||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.cloudstack.storage.heuristics.presetvariables;
|
||||
|
||||
import org.apache.cloudstack.utils.reflectiontostringbuilderutils.ReflectionToStringBuilderUtils;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class AccountTest {
|
||||
|
||||
@Test
|
||||
public void toStringTestReturnsValidJson() {
|
||||
Account variable = new Account();
|
||||
variable.setName("test name");
|
||||
variable.setId("test id");
|
||||
|
||||
Domain domainVariable = new Domain();
|
||||
domainVariable.setId("domain id");
|
||||
domainVariable.setName("domain name");
|
||||
variable.setDomain(domainVariable);
|
||||
|
||||
String expected = ReflectionToStringBuilderUtils.reflectOnlySelectedFields(variable, "name", "id", "domain");
|
||||
String result = variable.toString();
|
||||
|
||||
Assert.assertEquals(expected, result);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.cloudstack.storage.heuristics.presetvariables;
|
||||
|
||||
import org.apache.cloudstack.utils.reflectiontostringbuilderutils.ReflectionToStringBuilderUtils;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class DomainTest {
|
||||
|
||||
@Test
|
||||
public void toStringTestReturnsValidJson() {
|
||||
Domain variable = new Domain();
|
||||
variable.setName("test name");
|
||||
variable.setId("test id");
|
||||
|
||||
String expected = ReflectionToStringBuilderUtils.reflectOnlySelectedFields(variable, "name", "id");
|
||||
String result = variable.toString();
|
||||
|
||||
Assert.assertEquals(expected, result);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.cloudstack.storage.heuristics.presetvariables;
|
||||
|
||||
import org.apache.cloudstack.utils.reflectiontostringbuilderutils.ReflectionToStringBuilderUtils;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class GenericHeuristicPresetVariableTest {
|
||||
|
||||
@Test
|
||||
public void toStringTestReturnsValidJson() {
|
||||
GenericHeuristicPresetVariable variable = new GenericHeuristicPresetVariable();
|
||||
variable.setName("test name");
|
||||
|
||||
String expected = ReflectionToStringBuilderUtils.reflectOnlySelectedFields(variable, "name");
|
||||
String result = variable.toString();
|
||||
|
||||
Assert.assertEquals(expected, result);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.cloudstack.storage.heuristics.presetvariables;
|
||||
|
||||
import org.apache.cloudstack.utils.reflectiontostringbuilderutils.ReflectionToStringBuilderUtils;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class SecondaryStorageTest {
|
||||
|
||||
@Test
|
||||
public void toStringTestReturnsValidJson() {
|
||||
SecondaryStorage variable = new SecondaryStorage();
|
||||
variable.setName("test name");
|
||||
variable.setId("test id");
|
||||
variable.setProtocol("test protocol");
|
||||
variable.setUsedDiskSize(1L);
|
||||
variable.setTotalDiskSize(2L);
|
||||
|
||||
String expected = ReflectionToStringBuilderUtils.reflectOnlySelectedFields(variable, "name", "id",
|
||||
"protocol", "usedDiskSize", "totalDiskSize");
|
||||
String result = variable.toString();
|
||||
|
||||
Assert.assertEquals(expected, result);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.cloudstack.storage.heuristics.presetvariables;
|
||||
|
||||
import com.cloud.hypervisor.Hypervisor;
|
||||
import org.apache.cloudstack.utils.reflectiontostringbuilderutils.ReflectionToStringBuilderUtils;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class SnapshotTest {
|
||||
|
||||
@Test
|
||||
public void toStringTestReturnsValidJson() {
|
||||
Snapshot variable = new Snapshot();
|
||||
variable.setName("test name");
|
||||
variable.setSize(1L);
|
||||
variable.setHypervisorType(Hypervisor.HypervisorType.KVM);
|
||||
|
||||
String expected = ReflectionToStringBuilderUtils.reflectOnlySelectedFields(variable, "name", "size",
|
||||
"hypervisorType");
|
||||
String result = variable.toString();
|
||||
|
||||
Assert.assertEquals(expected, result);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.cloudstack.storage.heuristics.presetvariables;
|
||||
|
||||
import com.cloud.hypervisor.Hypervisor;
|
||||
import com.cloud.storage.Storage;
|
||||
import org.apache.cloudstack.utils.reflectiontostringbuilderutils.ReflectionToStringBuilderUtils;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class TemplateTest {
|
||||
|
||||
@Test
|
||||
public void toStringTestReturnsValidJson() {
|
||||
Template variable = new Template();
|
||||
variable.setName("test name");
|
||||
variable.setTemplateType(Storage.TemplateType.USER);
|
||||
variable.setHypervisorType(Hypervisor.HypervisorType.KVM);
|
||||
variable.setFormat(Storage.ImageFormat.QCOW2);
|
||||
|
||||
String expected = ReflectionToStringBuilderUtils.reflectOnlySelectedFields(variable, "name", "templateType",
|
||||
"hypervisorType", "format");
|
||||
String result = variable.toString();
|
||||
|
||||
Assert.assertEquals(expected, result);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.cloudstack.storage.heuristics.presetvariables;
|
||||
|
||||
import com.cloud.storage.Storage;
|
||||
import org.apache.cloudstack.utils.reflectiontostringbuilderutils.ReflectionToStringBuilderUtils;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class VolumeTest {
|
||||
|
||||
@Test
|
||||
public void toStringTestReturnsValidJson() {
|
||||
Volume variable = new Volume();
|
||||
variable.setName("test name");
|
||||
variable.setFormat(Storage.ImageFormat.QCOW2);
|
||||
variable.setSize(1L);
|
||||
|
||||
String expected = ReflectionToStringBuilderUtils.reflectOnlySelectedFields(variable, "name", "format",
|
||||
"size");
|
||||
String result = variable.toString();
|
||||
|
||||
Assert.assertEquals(expected, result);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -24,7 +24,6 @@ import java.util.Arrays;
|
|||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
|
@ -44,6 +43,7 @@ import javax.script.SimpleBindings;
|
|||
import javax.script.SimpleScriptContext;
|
||||
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.openjdk.nashorn.api.scripting.ClassFilter;
|
||||
|
|
@ -67,7 +67,7 @@ public class JsInterpreter implements Closeable {
|
|||
|
||||
protected ScriptEngine interpreter;
|
||||
protected String interpreterName;
|
||||
private final String injectingLogMessage = "Injecting variable [%s] with value [%s] into the JS interpreter.";
|
||||
private final String injectingLogMessage = "Injecting variable [{}] with value [{}] into the JS interpreter.";
|
||||
protected ExecutorService executor;
|
||||
private TimeUnit defaultTimeUnit = TimeUnit.MILLISECONDS;
|
||||
private long timeout;
|
||||
|
|
@ -107,7 +107,7 @@ public class JsInterpreter implements Closeable {
|
|||
|
||||
NashornScriptEngineFactory factory = new NashornScriptEngineFactory();
|
||||
this.interpreterName = factory.getEngineName();
|
||||
logger.trace(String.format("Initiating JS interpreter: %s.", interpreterName));
|
||||
logger.trace("Initiating JS interpreter: {}.", interpreterName);
|
||||
|
||||
setScriptEngineDisablingJavaLanguage(factory);
|
||||
}
|
||||
|
|
@ -136,36 +136,25 @@ public class JsInterpreter implements Closeable {
|
|||
*/
|
||||
public void injectVariable(String key, Object value) {
|
||||
if (key == null) return;
|
||||
logger.trace(String.format(injectingLogMessage, key, String.valueOf(value)));
|
||||
logger.trace(injectingLogMessage, key, value);
|
||||
variables.put(key, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Not needed when using Bindings; kept for source compatibility.
|
||||
* Prefer {@link #injectVariable(String, Object)}.
|
||||
*/
|
||||
@Deprecated
|
||||
public void injectStringVariable(String key, String value) {
|
||||
if (value == null) {
|
||||
logger.trace(String.format("Not injecting [%s] because its value is null.", key));
|
||||
return;
|
||||
}
|
||||
injectVariable(key, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Injects the variables via Bindings and executes the script with a fresh context.
|
||||
* @param script Code to be executed.
|
||||
* @return The result of the executed script.
|
||||
*/
|
||||
public Object executeScript(String script) {
|
||||
Objects.requireNonNull(script, "script");
|
||||
if (script == null) {
|
||||
throw new CloudRuntimeException("Script injected into the JavaScript interpreter must not be null.");
|
||||
}
|
||||
|
||||
logger.debug(String.format("Executing script [%s].", script));
|
||||
logger.debug("Executing script [{}].", script);
|
||||
|
||||
Object result = executeScriptInThread(script);
|
||||
|
||||
logger.debug(String.format("The script [%s] had the following result: [%s].", script, result));
|
||||
logger.debug("The script [{}] had the following result: [{}].", script, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -193,7 +182,7 @@ public class JsInterpreter implements Closeable {
|
|||
}
|
||||
return result;
|
||||
} catch (ScriptException se) {
|
||||
String msg = se.getMessage() == null ? "Script error" : se.getMessage();
|
||||
String msg = ObjectUtils.defaultIfNull(se.getMessage(), "Script error");
|
||||
throw new ScriptException("Script error: " + msg, se.getFileName(), se.getLineNumber(), se.getColumnNumber());
|
||||
}
|
||||
};
|
||||
|
|
@ -213,7 +202,7 @@ public class JsInterpreter implements Closeable {
|
|||
logger.error(message, e);
|
||||
throw new CloudRuntimeException(message, e);
|
||||
} catch (ExecutionException e) {
|
||||
Throwable cause = e.getCause() == null ? e : e.getCause();
|
||||
Throwable cause = ObjectUtils.defaultIfNull(e.getCause(), e);
|
||||
String message = String.format("Unable to execute script [%s] due to [%s]", script, cause.getMessage());
|
||||
logger.error(message, cause);
|
||||
throw new CloudRuntimeException(message, cause);
|
||||
|
|
|
|||
|
|
@ -17,7 +17,11 @@
|
|||
package org.apache.cloudstack.utils.jsinterpreter;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import com.cloud.utils.StringUtils;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
|
|
@ -27,24 +31,25 @@ public class TagAsRuleHelper {
|
|||
|
||||
protected static Logger LOGGER = LogManager.getLogger(TagAsRuleHelper.class);
|
||||
|
||||
private static final String PARSE_TAGS = "tags = tags ? tags.split(',') : [];";
|
||||
|
||||
|
||||
public static boolean interpretTagAsRule(String rule, String tags, long timeout) {
|
||||
String script = PARSE_TAGS + rule;
|
||||
List<String> tagsPresetVariable = new ArrayList<>();
|
||||
if (!StringUtils.isEmpty(tags)) {
|
||||
tagsPresetVariable.addAll(Arrays.asList(tags.split(",")));
|
||||
}
|
||||
|
||||
try (JsInterpreter jsInterpreter = new JsInterpreter(timeout)) {
|
||||
jsInterpreter.injectVariable("tags", tags);
|
||||
Object scriptReturn = jsInterpreter.executeScript(script);
|
||||
jsInterpreter.injectVariable("tags", tagsPresetVariable);
|
||||
Object scriptReturn = jsInterpreter.executeScript(rule);
|
||||
if (scriptReturn instanceof Boolean) {
|
||||
return (Boolean)scriptReturn;
|
||||
}
|
||||
} catch (IOException ex) {
|
||||
String message = String.format("Error while executing script [%s].", script);
|
||||
String message = String.format("Error while executing script [%s].", rule);
|
||||
LOGGER.error(message, ex);
|
||||
throw new CloudRuntimeException(message, ex);
|
||||
}
|
||||
|
||||
LOGGER.debug(String.format("Result of tag rule [%s] was not a boolean, returning false.", script));
|
||||
LOGGER.debug("Result of tag rule [{}] was not a boolean, returning false.", rule);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -159,24 +159,6 @@ public class JsInterpreterTest {
|
|||
Mockito.any(ClassLoader.class), Mockito.any(ClassFilter.class));
|
||||
}
|
||||
|
||||
@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");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void executeScriptTestValidScriptShouldPassWithMixedVariables() {
|
||||
try (JsInterpreter jsInterpreter = new JsInterpreter(1000)) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue