Skip to content

Commit 5e56234

Browse files
committed
tests
Signed-off-by: Abhishek Kumar <[email protected]>
1 parent a9c00ca commit 5e56234

File tree

5 files changed

+147
-111
lines changed

5 files changed

+147
-111
lines changed

api/src/main/java/org/apache/cloudstack/api/ResponseGenerator.java

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,16 @@
2222
import java.util.Map;
2323
import java.util.Set;
2424

25-
import com.cloud.bgp.ASNumber;
26-
import com.cloud.bgp.ASNumberRange;
27-
28-
import org.apache.cloudstack.api.response.GuestOSCategoryResponse;
29-
import org.apache.cloudstack.storage.object.Bucket;
3025
import org.apache.cloudstack.affinity.AffinityGroup;
3126
import org.apache.cloudstack.affinity.AffinityGroupResponse;
3227
import org.apache.cloudstack.api.ApiConstants.HostDetails;
3328
import org.apache.cloudstack.api.ApiConstants.VMDetails;
3429
import org.apache.cloudstack.api.ResponseObject.ResponseView;
3530
import org.apache.cloudstack.api.command.user.job.QueryAsyncJobResultCmd;
36-
import org.apache.cloudstack.api.response.AccountResponse;
37-
import org.apache.cloudstack.api.response.ApplicationLoadBalancerResponse;
3831
import org.apache.cloudstack.api.response.ASNRangeResponse;
3932
import org.apache.cloudstack.api.response.ASNumberResponse;
33+
import org.apache.cloudstack.api.response.AccountResponse;
34+
import org.apache.cloudstack.api.response.ApplicationLoadBalancerResponse;
4035
import org.apache.cloudstack.api.response.AsyncJobResponse;
4136
import org.apache.cloudstack.api.response.AutoScalePolicyResponse;
4237
import org.apache.cloudstack.api.response.AutoScaleVmGroupResponse;
@@ -61,10 +56,10 @@
6156
import org.apache.cloudstack.api.response.DomainRouterResponse;
6257
import org.apache.cloudstack.api.response.EventResponse;
6358
import org.apache.cloudstack.api.response.ExtractResponse;
64-
import org.apache.cloudstack.api.response.SharedFSResponse;
6559
import org.apache.cloudstack.api.response.FirewallResponse;
6660
import org.apache.cloudstack.api.response.FirewallRuleResponse;
6761
import org.apache.cloudstack.api.response.GlobalLoadBalancerResponse;
62+
import org.apache.cloudstack.api.response.GuestOSCategoryResponse;
6863
import org.apache.cloudstack.api.response.GuestOSResponse;
6964
import org.apache.cloudstack.api.response.GuestOsMappingResponse;
7065
import org.apache.cloudstack.api.response.GuestVlanRangeResponse;
@@ -74,11 +69,11 @@
7469
import org.apache.cloudstack.api.response.HypervisorCapabilitiesResponse;
7570
import org.apache.cloudstack.api.response.HypervisorGuestOsNamesResponse;
7671
import org.apache.cloudstack.api.response.IPAddressResponse;
77-
import org.apache.cloudstack.api.response.IpQuarantineResponse;
7872
import org.apache.cloudstack.api.response.ImageStoreResponse;
7973
import org.apache.cloudstack.api.response.InstanceGroupResponse;
8074
import org.apache.cloudstack.api.response.InternalLoadBalancerElementResponse;
8175
import org.apache.cloudstack.api.response.IpForwardingRuleResponse;
76+
import org.apache.cloudstack.api.response.IpQuarantineResponse;
8277
import org.apache.cloudstack.api.response.IsolationMethodResponse;
8378
import org.apache.cloudstack.api.response.LBHealthCheckResponse;
8479
import org.apache.cloudstack.api.response.LBStickinessResponse;
@@ -116,6 +111,7 @@
116111
import org.apache.cloudstack.api.response.SecurityGroupResponse;
117112
import org.apache.cloudstack.api.response.ServiceOfferingResponse;
118113
import org.apache.cloudstack.api.response.ServiceResponse;
114+
import org.apache.cloudstack.api.response.SharedFSResponse;
119115
import org.apache.cloudstack.api.response.Site2SiteCustomerGatewayResponse;
120116
import org.apache.cloudstack.api.response.Site2SiteVpnConnectionResponse;
121117
import org.apache.cloudstack.api.response.Site2SiteVpnGatewayResponse;
@@ -160,10 +156,14 @@
160156
import org.apache.cloudstack.region.PortableIpRange;
161157
import org.apache.cloudstack.region.Region;
162158
import org.apache.cloudstack.secstorage.heuristics.Heuristic;
163-
import org.apache.cloudstack.storage.sharedfs.SharedFS;
159+
import org.apache.cloudstack.storage.object.Bucket;
164160
import org.apache.cloudstack.storage.object.ObjectStore;
161+
import org.apache.cloudstack.storage.sharedfs.SharedFS;
165162
import org.apache.cloudstack.usage.Usage;
163+
import org.apache.cloudstack.vm.UnmanagedInstanceTO;
166164

165+
import com.cloud.bgp.ASNumber;
166+
import com.cloud.bgp.ASNumberRange;
167167
import com.cloud.capacity.Capacity;
168168
import com.cloud.configuration.ResourceCount;
169169
import com.cloud.configuration.ResourceLimit;
@@ -224,8 +224,8 @@
224224
import com.cloud.projects.ProjectInvitation;
225225
import com.cloud.region.ha.GlobalLoadBalancerRule;
226226
import com.cloud.resource.RollingMaintenanceManager;
227-
import com.cloud.server.ResourceTag;
228227
import com.cloud.server.ResourceIcon;
228+
import com.cloud.server.ResourceTag;
229229
import com.cloud.storage.GuestOS;
230230
import com.cloud.storage.GuestOSHypervisor;
231231
import com.cloud.storage.GuestOsCategory;
@@ -242,14 +242,13 @@
242242
import com.cloud.user.UserAccount;
243243
import com.cloud.user.UserData;
244244
import com.cloud.uservm.UserVm;
245-
import com.cloud.utils.net.Ip;
246245
import com.cloud.utils.Pair;
246+
import com.cloud.utils.net.Ip;
247247
import com.cloud.vm.InstanceGroup;
248248
import com.cloud.vm.Nic;
249249
import com.cloud.vm.NicSecondaryIp;
250250
import com.cloud.vm.VirtualMachine;
251251
import com.cloud.vm.snapshot.VMSnapshot;
252-
import org.apache.cloudstack.vm.UnmanagedInstanceTO;
253252

254253
public interface ResponseGenerator {
255254
UserResponse createUserResponse(UserAccount user);
@@ -578,4 +577,6 @@ List<TemplateResponse> createTemplateResponses(ResponseView view, VirtualMachine
578577
BackupRepositoryResponse createBackupRepositoryResponse(BackupRepository repository);
579578

580579
SharedFSResponse createSharedFSResponse(ResponseView view, SharedFS sharedFS);
580+
581+
void updateTemplateIsoResponsesForIcons(List<TemplateResponse> responses);
581582
}

api/src/main/java/org/apache/cloudstack/api/command/user/iso/ListIsosCmd.java

Lines changed: 2 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,6 @@
1616
// under the License.
1717
package org.apache.cloudstack.api.command.user.iso;
1818

19-
import java.util.HashMap;
20-
import java.util.List;
21-
import java.util.Map;
22-
import java.util.Set;
23-
import java.util.stream.Collectors;
24-
2519
import org.apache.cloudstack.api.APICommand;
2620
import org.apache.cloudstack.api.ApiCommandResourceType;
2721
import org.apache.cloudstack.api.ApiConstants;
@@ -31,15 +25,12 @@
3125
import org.apache.cloudstack.api.command.user.UserCmd;
3226
import org.apache.cloudstack.api.response.GuestOSCategoryResponse;
3327
import org.apache.cloudstack.api.response.ListResponse;
34-
import org.apache.cloudstack.api.response.ResourceIconResponse;
3528
import org.apache.cloudstack.api.response.TemplateResponse;
3629
import org.apache.cloudstack.api.response.ZoneResponse;
3730
import org.apache.cloudstack.context.CallContext;
3831
import org.apache.commons.lang3.StringUtils;
3932

4033
import com.cloud.cpu.CPU;
41-
import com.cloud.server.ResourceIcon;
42-
import com.cloud.server.ResourceTag;
4334
import com.cloud.template.VirtualMachineTemplate.TemplateFilter;
4435
import com.cloud.user.Account;
4536

@@ -203,43 +194,13 @@ public ApiCommandResourceType getApiResourceType() {
203194
@Override
204195
public void execute() {
205196
ListResponse<TemplateResponse> response = _queryService.listIsos(this);
206-
if (response != null && response.getCount() > 0 && getShowIcon()) {
207-
updateIsoResponse(response.getResponses());
197+
if (response != null && getShowIcon()) {
198+
_responseGenerator.updateTemplateIsoResponsesForIcons(response.getResponses());
208199
}
209200
response.setResponseName(getCommandName());
210201
setResponseObject(response);
211202
}
212203

213-
protected Map<String, ResourceIcon> getResourceIconsUsingOsCategory(List<TemplateResponse> responses) {
214-
Set<Long> guestOsCategoryIds = responses.stream().map(TemplateResponse::getOsTypeCategoryId).collect(Collectors.toSet());
215-
Map<Long, ResourceIcon> guestOsCategoryIcons =
216-
resourceIconManager.getByResourceTypeAndIds(ResourceTag.ResourceObjectType.GuestOsCategory,
217-
guestOsCategoryIds);
218-
Map<String, ResourceIcon> vmIcons = new HashMap<>();
219-
for (TemplateResponse response : responses) {
220-
vmIcons.put(response.getId(), guestOsCategoryIcons.get(response.getOsTypeCategoryId()));
221-
}
222-
return vmIcons;
223-
}
224-
225-
private void updateIsoResponse(List<TemplateResponse> responses) {
226-
Set<String> isoUuids = responses.stream().map(TemplateResponse::getId).collect(Collectors.toSet());
227-
Map<String, ResourceIcon> templateIcons = resourceIconManager.getByResourceTypeAndUuids(ResourceTag.ResourceObjectType.ISO, isoUuids);
228-
List<TemplateResponse> noTemplateIconResponses = responses
229-
.stream()
230-
.filter(r -> !templateIcons.containsKey(r.getId()))
231-
.collect(Collectors.toList());
232-
templateIcons.putAll(getResourceIconsUsingOsCategory(noTemplateIconResponses));
233-
for (TemplateResponse response : responses) {
234-
ResourceIcon icon = templateIcons.get(response.getId());
235-
if (icon == null) {
236-
continue;
237-
}
238-
ResourceIconResponse iconResponse = _responseGenerator.createResourceIconResponse(icon);
239-
response.setResourceIconResponse(iconResponse);
240-
}
241-
}
242-
243204
public Long getStoragePoolId() {
244205
return null;
245206
};

api/src/main/java/org/apache/cloudstack/api/command/user/template/ListTemplatesCmd.java

Lines changed: 2 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,7 @@
1919
import java.util.ArrayList;
2020
import java.util.Collections;
2121
import java.util.EnumSet;
22-
import java.util.HashMap;
2322
import java.util.List;
24-
import java.util.Map;
25-
import java.util.Set;
26-
import java.util.stream.Collectors;
2723

2824
import org.apache.cloudstack.api.APICommand;
2925
import org.apache.cloudstack.api.ApiCommandResourceType;
@@ -34,7 +30,6 @@
3430
import org.apache.cloudstack.api.command.user.UserCmd;
3531
import org.apache.cloudstack.api.response.GuestOSCategoryResponse;
3632
import org.apache.cloudstack.api.response.ListResponse;
37-
import org.apache.cloudstack.api.response.ResourceIconResponse;
3833
import org.apache.cloudstack.api.response.TemplateResponse;
3934
import org.apache.cloudstack.api.response.ZoneResponse;
4035
import org.apache.cloudstack.context.CallContext;
@@ -43,8 +38,6 @@
4338

4439
import com.cloud.cpu.CPU;
4540
import com.cloud.exception.InvalidParameterValueException;
46-
import com.cloud.server.ResourceIcon;
47-
import com.cloud.server.ResourceTag;
4841
import com.cloud.template.VirtualMachineTemplate;
4942
import com.cloud.template.VirtualMachineTemplate.TemplateFilter;
5043
import com.cloud.user.Account;
@@ -232,43 +225,13 @@ public ApiCommandResourceType getApiResourceType() {
232225
@Override
233226
public void execute() {
234227
ListResponse<TemplateResponse> response = _queryService.listTemplates(this);
235-
if (response != null && response.getCount() > 0 && getShowIcon()) {
236-
updateTemplateResponse(response.getResponses());
228+
if (response != null && getShowIcon()) {
229+
_responseGenerator.updateTemplateIsoResponsesForIcons(response.getResponses());
237230
}
238231
response.setResponseName(getCommandName());
239232
setResponseObject(response);
240233
}
241234

242-
protected Map<String, ResourceIcon> getResourceIconsUsingOsCategory(List<TemplateResponse> responses) {
243-
Set<Long> guestOsCategoryIds = responses.stream().map(TemplateResponse::getOsTypeCategoryId).collect(Collectors.toSet());
244-
Map<Long, ResourceIcon> guestOsCategoryIcons =
245-
resourceIconManager.getByResourceTypeAndIds(ResourceTag.ResourceObjectType.GuestOsCategory,
246-
guestOsCategoryIds);
247-
Map<String, ResourceIcon> vmIcons = new HashMap<>();
248-
for (TemplateResponse response : responses) {
249-
vmIcons.put(response.getId(), guestOsCategoryIcons.get(response.getOsTypeCategoryId()));
250-
}
251-
return vmIcons;
252-
}
253-
254-
private void updateTemplateResponse(List<TemplateResponse> responses) {
255-
Set<String> templateUuids = responses.stream().map(TemplateResponse::getId).collect(Collectors.toSet());
256-
Map<String, ResourceIcon> templateIcons = resourceIconManager.getByResourceTypeAndUuids(ResourceTag.ResourceObjectType.Template, templateUuids);
257-
List<TemplateResponse> noTemplateIconResponses = responses
258-
.stream()
259-
.filter(r -> !templateIcons.containsKey(r.getId()))
260-
.collect(Collectors.toList());
261-
templateIcons.putAll(getResourceIconsUsingOsCategory(noTemplateIconResponses));
262-
for (TemplateResponse response : responses) {
263-
ResourceIcon icon = templateIcons.get(response.getId());
264-
if (icon == null) {
265-
continue;
266-
}
267-
ResourceIconResponse iconResponse = _responseGenerator.createResourceIconResponse(icon);
268-
response.setResourceIconResponse(iconResponse);
269-
}
270-
}
271-
272235
public List<Long> getIds() {
273236
if (ids == null) {
274237
return Collections.emptyList();

0 commit comments

Comments
 (0)