Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -73,5 +73,7 @@
<bean id="volumeDaoImpl" class="com.cloud.storage.dao.VolumeDaoImpl" />
<bean id="reservationDao" class="org.apache.cloudstack.reservation.dao.ReservationDaoImpl" />
<bean id="backupOfferingDaoImpl" class="org.apache.cloudstack.backup.dao.BackupOfferingDaoImpl" />
<bean id="vpcOfferingDaoImpl" class="com.cloud.network.vpc.dao.VpcOfferingDaoImpl" />
<bean id="vpcOfferingDetailsDaoImpl" class="com.cloud.network.vpc.dao.VpcOfferingDetailsDaoImpl"/>
<bean id="backupOfferingDetailsDaoImpl" class="org.apache.cloudstack.backup.dao.BackupOfferingDetailsDaoImpl" />
</beans>
Original file line number Diff line number Diff line change
Expand Up @@ -236,13 +236,11 @@
<bean id="volumeStatsDaoImpl" class="com.cloud.storage.dao.VolumeStatsDaoImpl" />
<bean id="vpcDaoImpl" class="com.cloud.network.vpc.dao.VpcDaoImpl" />
<bean id="vpcGatewayDaoImpl" class="com.cloud.network.vpc.dao.VpcGatewayDaoImpl" />
<bean id="vpcOfferingDaoImpl" class="com.cloud.network.vpc.dao.VpcOfferingDaoImpl" />
<bean id="vpcOfferingJoinDaoImpl" class="com.cloud.api.query.dao.VpcOfferingJoinDaoImpl" />
<bean id="vpcOfferingServiceMapDaoImpl" class="com.cloud.network.vpc.dao.VpcOfferingServiceMapDaoImpl" />
<bean id="vpcServiceMapDaoImpl" class="com.cloud.network.vpc.dao.VpcServiceMapDaoImpl" />
<bean id="vpnUserDaoImpl" class="com.cloud.network.dao.VpnUserDaoImpl" />
<bean id="applicationLbRuleDaoImpl" class="org.apache.cloudstack.lb.dao.ApplicationLoadBalancerRuleDaoImpl" />
<bean id="vpcOfferingDetailsDaoImpl" class="com.cloud.network.vpc.dao.VpcOfferingDetailsDaoImpl"/>
<bean id="networkDetailsDaoImpl" class="com.cloud.network.dao.NetworkDetailsDaoImpl" />
<bean id="tungstenGuestNetworkIpAddressDaoImpl" class="com.cloud.network.dao.TungstenGuestNetworkIpAddressDaoImpl"/>
<bean id="tungstenSecurityGroupRuleDaoImpl" class="com.cloud.network.security.dao.TungstenSecurityGroupRuleDaoImpl"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,12 @@
import com.cloud.dc.ClusterDetailsDao;
import com.cloud.dc.ClusterDetailsVO;
import com.cloud.host.HostTagVO;
import com.cloud.hypervisor.Hypervisor;
import com.cloud.network.dao.NetworkVO;
import com.cloud.network.vpc.VpcOfferingVO;
import com.cloud.network.vpc.VpcVO;
import javax.inject.Inject;

import com.cloud.hypervisor.Hypervisor;
import com.cloud.storage.StoragePoolTagVO;
import org.apache.cloudstack.acl.RoleVO;
import org.apache.cloudstack.acl.dao.RoleDao;
Expand Down Expand Up @@ -66,6 +67,7 @@
import com.cloud.host.HostVO;
import com.cloud.host.dao.HostDao;
import com.cloud.host.dao.HostTagsDao;
import com.cloud.network.vpc.dao.VpcOfferingDao;
import com.cloud.offerings.NetworkOfferingVO;
import com.cloud.offerings.dao.NetworkOfferingDao;
import com.cloud.server.ResourceTag;
Expand Down Expand Up @@ -191,6 +193,9 @@ public class PresetVariableHelper {
@Inject
ClusterDetailsDao clusterDetailsDao;

@Inject
VpcOfferingDao vpcOfferingDao;

protected boolean backupSnapshotAfterTakingSnapshot = SnapshotInfo.BackupSnapshotAfterTakingSnapshot.value();

private List<Integer> runningAndAllocatedVmUsageTypes = Arrays.asList(UsageTypes.RUNNING_VM, UsageTypes.ALLOCATED_VM);
Expand Down Expand Up @@ -778,6 +783,19 @@ protected void loadPresetVariableValueForNetwork(UsageVO usageRecord, Value valu
value.setId(network.getUuid());
value.setName(network.getName());
value.setState(usageRecord.getState());

value.setNetworkOffering(getPresetVariableValueNetworkOffering(network.getNetworkOfferingId()));
}

protected GenericPresetVariable getPresetVariableValueNetworkOffering(Long networkOfferingId) {
NetworkOfferingVO networkOfferingVo = networkOfferingDao.findByIdIncludingRemoved(networkOfferingId);
validateIfObjectIsNull(networkOfferingVo, networkOfferingId, "network offering");

GenericPresetVariable networkOffering = new GenericPresetVariable();
networkOffering.setId(networkOfferingVo.getUuid());
networkOffering.setName(networkOfferingVo.getName());

return networkOffering;
}

protected void loadPresetVariableValueForVpc(UsageVO usageRecord, Value value) {
Expand All @@ -793,6 +811,18 @@ protected void loadPresetVariableValueForVpc(UsageVO usageRecord, Value value) {

value.setId(vpc.getUuid());
value.setName(vpc.getName());
value.setVpcOffering(getPresetVariableValueVpcOffering(vpc.getVpcOfferingId()));
}

protected GenericPresetVariable getPresetVariableValueVpcOffering(Long vpcOfferingId) {
VpcOfferingVO vpcOfferingVo = vpcOfferingDao.findByIdIncludingRemoved(vpcOfferingId);
validateIfObjectIsNull(vpcOfferingVo, vpcOfferingId, "vpc offering");

GenericPresetVariable vpcOffering = new GenericPresetVariable();
vpcOffering.setId(vpcOfferingVo.getUuid());
vpcOffering.setName(vpcOfferingVo.getName());

return vpcOffering;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,12 @@ public class Value extends GenericPresetVariable {

private String state;

@PresetVariableDefinition(description = "Network offering of the network.", supportedTypes = {QuotaTypes.NETWORK})
private GenericPresetVariable networkOffering;

@PresetVariableDefinition(description = "VPC offering of the VPC.", supportedTypes = {QuotaTypes.VPC})
private GenericPresetVariable vpcOffering;

public Host getHost() {
return host;
}
Expand Down Expand Up @@ -255,4 +261,20 @@ public String getState() {
public void setState(String state) {
this.state = state;
}

public GenericPresetVariable getNetworkOffering() {
return networkOffering;
}

public void setNetworkOffering(GenericPresetVariable networkOffering) {
this.networkOffering = networkOffering;
}

public GenericPresetVariable getVpcOffering() {
return vpcOffering;
}

public void setVpcOffering(GenericPresetVariable vpcOffering) {
this.vpcOffering = vpcOffering;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,20 @@
import com.cloud.dc.ClusterDetailsVO;
import com.cloud.host.HostTagVO;
import com.cloud.hypervisor.Hypervisor;
import com.cloud.network.dao.NetworkVO;
import com.cloud.network.vpc.VpcOfferingVO;
import com.cloud.network.vpc.VpcVO;
import com.cloud.network.vpc.dao.VpcOfferingDao;
import com.cloud.storage.StoragePoolTagVO;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.acl.RoleVO;
import org.apache.cloudstack.acl.dao.RoleDao;
import org.apache.cloudstack.backup.BackupOfferingVO;
import org.apache.cloudstack.backup.dao.BackupOfferingDao;
import org.apache.cloudstack.quota.constant.QuotaTypes;
import org.apache.cloudstack.quota.dao.NetworkDao;
import org.apache.cloudstack.quota.dao.VmTemplateDao;
import org.apache.cloudstack.quota.dao.VpcDao;
import org.apache.cloudstack.storage.datastore.db.ImageStoreDao;
import org.apache.cloudstack.storage.datastore.db.ImageStoreVO;
import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
Expand Down Expand Up @@ -188,6 +194,15 @@ public class PresetVariableHelperTest {
@Mock
BackupOfferingDao backupOfferingDaoMock;

@Mock
NetworkDao networkDaoMock;

@Mock
VpcDao vpcDaoMock;

@Mock
VpcOfferingDao vpcOfferingDaoMock;

List<Integer> runningAndAllocatedVmUsageTypes = Arrays.asList(UsageTypes.RUNNING_VM, UsageTypes.ALLOCATED_VM);
List<Integer> templateAndIsoUsageTypes = Arrays.asList(UsageTypes.TEMPLATE, UsageTypes.ISO);

Expand Down Expand Up @@ -223,6 +238,8 @@ private Value getValueForTests() {
value.setVmSnapshotType(VMSnapshot.Type.Disk.toString());
value.setComputingResources(getComputingResourcesForTests());
value.setVolumeType(Volume.Type.DATADISK.toString());
value.setNetworkOffering(getNetworkOfferingForTests());
value.setVpcOffering(getVpcOfferingForTests());
return value;
}

Expand Down Expand Up @@ -324,6 +341,20 @@ private DiskOfferingPresetVariables getDiskOfferingForTests() {
return diskOffering;
}

private GenericPresetVariable getNetworkOfferingForTests() {
GenericPresetVariable networkOffering = new GenericPresetVariable();
networkOffering.setId("network_offering_id");
networkOffering.setName("network_offering_name");
return networkOffering;
}

private GenericPresetVariable getVpcOfferingForTests() {
GenericPresetVariable vpcOffering = new GenericPresetVariable();
vpcOffering.setId("vpc_offering_id");
vpcOffering.setName("vpc_offering_name");
return vpcOffering;
}

private void mockMethodValidateIfObjectIsNull() {
Mockito.doNothing().when(presetVariableHelperSpy).validateIfObjectIsNull(Mockito.any(), Mockito.anyLong(), Mockito.anyString());
}
Expand Down Expand Up @@ -1289,4 +1320,100 @@ public void testGetSnapshotImageStoreRefNotNull() {
Mockito.when(imageStoreDaoMock.findById(1L)).thenReturn(store);
Assert.assertNotNull(presetVariableHelperSpy.getSnapshotImageStoreRef(1L, 1L));
}

@Test
public void loadPresetVariableValueForNetworkTestRecordIsNotANetworkDoNothing() {
getQuotaTypesForTests(UsageTypes.NETWORK).forEach(type -> {
Mockito.doReturn(type.getKey()).when(usageVoMock).getUsageType();
presetVariableHelperSpy.loadPresetVariableValueForNetwork(usageVoMock, null);
});

Mockito.verifyNoInteractions(networkDaoMock);
}

@Test
public void loadPresetVariableValueForNetworkTestRecordIsNetworkSetFields() {
Value expected = getValueForTests();

NetworkVO networkVoMock = Mockito.mock(NetworkVO.class);
Mockito.doReturn(networkVoMock).when(networkDaoMock).findByIdIncludingRemoved(Mockito.anyLong());

mockMethodValidateIfObjectIsNull();

Mockito.doReturn(expected.getId()).when(networkVoMock).getUuid();
Mockito.doReturn(expected.getName()).when(networkVoMock).getName();
Mockito.doReturn(expected.getState()).when(usageVoMock).getState();
Mockito.doReturn(expected.getNetworkOffering()).when(presetVariableHelperSpy).getPresetVariableValueNetworkOffering(Mockito.anyLong());

Mockito.doReturn(UsageTypes.NETWORK).when(usageVoMock).getUsageType();

Value result = new Value();
presetVariableHelperSpy.loadPresetVariableValueForNetwork(usageVoMock, result);

assertPresetVariableIdAndName(expected, result);
Assert.assertEquals(expected.getState(), result.getState());
Assert.assertEquals(expected.getNetworkOffering(), result.getNetworkOffering());
}

@Test
public void loadPresetVariableValueForVpcTestRecordIsNotAVpcDoNothing() {
getQuotaTypesForTests(UsageTypes.VPC).forEach(type -> {
Mockito.doReturn(type.getKey()).when(usageVoMock).getUsageType();
presetVariableHelperSpy.loadPresetVariableValueForVpc(usageVoMock, null);
});

Mockito.verifyNoInteractions(networkDaoMock);
}

@Test
public void loadPresetVariableValueForVpcTestRecordIsVpcSetFields() {
Value expected = getValueForTests();

VpcVO networkVoMock = Mockito.mock(VpcVO.class);
Mockito.doReturn(networkVoMock).when(vpcDaoMock).findByIdIncludingRemoved(Mockito.anyLong());

mockMethodValidateIfObjectIsNull();

Mockito.doReturn(expected.getId()).when(networkVoMock).getUuid();
Mockito.doReturn(expected.getName()).when(networkVoMock).getName();
Mockito.doReturn(expected.getVpcOffering()).when(presetVariableHelperSpy).getPresetVariableValueVpcOffering(Mockito.anyLong());

Mockito.doReturn(UsageTypes.VPC).when(usageVoMock).getUsageType();

Value result = new Value();
presetVariableHelperSpy.loadPresetVariableValueForVpc(usageVoMock, result);

assertPresetVariableIdAndName(expected, result);
Assert.assertEquals(expected.getVpcOffering(), result.getVpcOffering());
}

@Test
public void getPresetVariableValueNetworkOfferingTestSetValuesAndReturnObject() {
NetworkOfferingVO networkOfferingVoMock = Mockito.mock(NetworkOfferingVO.class);
Mockito.doReturn(networkOfferingVoMock).when(networkOfferingDaoMock).findByIdIncludingRemoved(Mockito.anyLong());
mockMethodValidateIfObjectIsNull();

GenericPresetVariable expected = getGenericPresetVariableForTests();
Mockito.doReturn(expected.getId()).when(networkOfferingVoMock).getUuid();
Mockito.doReturn(expected.getName()).when(networkOfferingVoMock).getName();

GenericPresetVariable result = presetVariableHelperSpy.getPresetVariableValueNetworkOffering(1L);

assertPresetVariableIdAndName(expected, result);
}

@Test
public void getPresetVariableValueVpcOfferingTestSetValuesAndReturnObject() {
VpcOfferingVO vpcOfferingVoMock = Mockito.mock(VpcOfferingVO.class);
Mockito.doReturn(vpcOfferingVoMock).when(vpcOfferingDaoMock).findByIdIncludingRemoved(Mockito.anyLong());
mockMethodValidateIfObjectIsNull();

GenericPresetVariable expected = getGenericPresetVariableForTests();
Mockito.doReturn(expected.getId()).when(vpcOfferingVoMock).getUuid();
Mockito.doReturn(expected.getName()).when(vpcOfferingVoMock).getName();

GenericPresetVariable result = presetVariableHelperSpy.getPresetVariableValueVpcOffering(1L);

assertPresetVariableIdAndName(expected, result);
}
}
Loading