diff --git a/server/src/main/java/com/cloud/api/ApiResponseHelper.java b/server/src/main/java/com/cloud/api/ApiResponseHelper.java index 67f83dacaad4..7d7f9288ea3e 100644 --- a/server/src/main/java/com/cloud/api/ApiResponseHelper.java +++ b/server/src/main/java/com/cloud/api/ApiResponseHelper.java @@ -18,8 +18,7 @@ import static com.cloud.utils.NumbersUtil.toHumanReadableSize; -import java.security.cert.Certificate; -import java.security.cert.CertificateException; + import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Arrays; @@ -38,23 +37,14 @@ import java.util.function.Consumer; import java.util.stream.Collectors; +import java.security.cert.Certificate; +import java.security.cert.CertificateException; +import java.security.cert.X509Certificate; import javax.inject.Inject; -import com.cloud.api.query.ResourceIdSupport; -import com.cloud.bgp.ASNumber; -import com.cloud.bgp.ASNumberRange; -import com.cloud.configuration.ConfigurationService; -import com.cloud.dc.ASNumberRangeVO; -import com.cloud.dc.ASNumberVO; -import com.cloud.dc.VlanDetailsVO; -import com.cloud.dc.dao.ASNumberDao; -import com.cloud.dc.dao.ASNumberRangeDao; -import com.cloud.dc.dao.VlanDetailsDao; -import com.cloud.hypervisor.Hypervisor; -import com.cloud.network.vpc.VpcGateway; -import com.cloud.storage.BucketVO; import org.apache.cloudstack.acl.ControlledEntity; import org.apache.cloudstack.acl.ControlledEntity.ACLType; + import org.apache.cloudstack.affinity.AffinityGroup; import org.apache.cloudstack.affinity.AffinityGroupResponse; import org.apache.cloudstack.annotation.AnnotationService; @@ -81,6 +71,7 @@ import org.apache.cloudstack.api.response.BackupOfferingResponse; import org.apache.cloudstack.api.response.BackupRepositoryResponse; import org.apache.cloudstack.api.response.BackupScheduleResponse; + import org.apache.cloudstack.api.response.BgpPeerResponse; import org.apache.cloudstack.api.response.BucketResponse; import org.apache.cloudstack.api.response.CapabilityResponse; @@ -270,6 +261,7 @@ import com.cloud.api.query.vo.ProjectAccountJoinVO; import com.cloud.api.query.vo.ProjectInvitationJoinVO; import com.cloud.api.query.vo.ProjectJoinVO; +import com.cloud.api.query.ResourceIdSupport; import com.cloud.api.query.vo.ResourceTagJoinVO; import com.cloud.api.query.vo.SecurityGroupJoinVO; import com.cloud.api.query.vo.ServiceOfferingJoinVO; @@ -280,14 +272,19 @@ import com.cloud.api.query.vo.VolumeJoinVO; import com.cloud.api.query.vo.VpcOfferingJoinVO; import com.cloud.api.response.ApiResponseSerializer; +import com.cloud.bgp.ASNumber; +import com.cloud.bgp.ASNumberRange; import com.cloud.capacity.Capacity; import com.cloud.capacity.CapacityVO; import com.cloud.capacity.dao.CapacityDaoImpl.SummedCapacity; import com.cloud.configuration.ConfigurationManager; +import com.cloud.configuration.ConfigurationService; import com.cloud.configuration.Resource.ResourceOwnerType; import com.cloud.configuration.Resource.ResourceType; import com.cloud.configuration.ResourceCount; import com.cloud.configuration.ResourceLimit; +import com.cloud.dc.ASNumberRangeVO; +import com.cloud.dc.ASNumberVO; import com.cloud.dc.ClusterDetailsDao; import com.cloud.dc.ClusterVO; import com.cloud.dc.DataCenter; @@ -298,15 +295,21 @@ import com.cloud.dc.StorageNetworkIpRange; import com.cloud.dc.Vlan; import com.cloud.dc.Vlan.VlanType; +import com.cloud.dc.VlanDetailsVO; import com.cloud.dc.VlanVO; +import com.cloud.dc.dao.ASNumberDao; +import com.cloud.dc.dao.ASNumberRangeDao; +import com.cloud.dc.dao.VlanDetailsDao; import com.cloud.domain.Domain; import com.cloud.domain.DomainVO; + import com.cloud.event.Event; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.host.ControlState; import com.cloud.host.Host; import com.cloud.host.HostVO; +import com.cloud.hypervisor.Hypervisor; import com.cloud.hypervisor.HypervisorCapabilities; import com.cloud.network.GuestVlan; import com.cloud.network.GuestVlanRange; @@ -370,9 +373,11 @@ import com.cloud.network.vpc.PrivateGateway; import com.cloud.network.vpc.StaticRoute; import com.cloud.network.vpc.Vpc; +import com.cloud.network.vpc.VpcGateway; import com.cloud.network.vpc.VpcOffering; import com.cloud.network.vpc.VpcVO; import com.cloud.network.vpc.dao.VpcOfferingDao; + import com.cloud.offering.DiskOffering; import com.cloud.offering.NetworkOffering; import com.cloud.offering.NetworkOffering.Detail; @@ -391,6 +396,7 @@ import com.cloud.server.ResourceTag; import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.service.ServiceOfferingVO; +import com.cloud.storage.BucketVO; import com.cloud.storage.DataStoreRole; import com.cloud.storage.DiskOfferingVO; import com.cloud.storage.GuestOS; @@ -414,11 +420,13 @@ import com.cloud.template.VirtualMachineTemplate; import com.cloud.user.Account; import com.cloud.user.AccountManager; + import com.cloud.user.SSHKeyPair; import com.cloud.user.User; import com.cloud.user.UserAccount; import com.cloud.user.UserData; import com.cloud.user.UserStatisticsVO; + import com.cloud.user.dao.UserDataDao; import com.cloud.user.dao.UserStatisticsDao; import com.cloud.uservm.UserVm; @@ -449,7 +457,7 @@ import com.cloud.vm.snapshot.VMSnapshotVO; import com.cloud.vm.snapshot.dao.VMSnapshotDao; -import sun.security.x509.X509CertImpl; + public class ApiResponseHelper implements ResponseGenerator, ResourceIdSupport { @@ -531,6 +539,7 @@ public class ApiResponseHelper implements ResponseGenerator, ResourceIdSupport { BgpPeerDao bgpPeerDao; @Inject RoutedIpv4Manager routedIpv4Manager; + @Inject ResourceIconManager resourceIconManager; @Inject @@ -545,6 +554,8 @@ public static String getPrettyDomainPath(String path) { return domainPath.toString(); } + + @Override public UserResponse createUserResponse(User user) { UserAccountJoinVO vUser = ApiDBUtils.newUserView(user); @@ -797,7 +808,7 @@ public static DataStoreRole getDataStoreRole(Snapshot snapshot, SnapshotDataStor if (mapCapabilities != null) { String value = mapCapabilities.get(DataStoreCapabilities.STORAGE_SYSTEM_SNAPSHOT.toString()); - Boolean supportsStorageSystemSnapshots = new Boolean(value); + boolean supportsStorageSystemSnapshots = Boolean.getBoolean(value); if (supportsStorageSystemSnapshots) { return DataStoreRole.Primary; @@ -1659,7 +1670,6 @@ public FirewallRuleResponse createPortForwardingRuleResponse(PortForwardingRule Network guestNtwk = ApiDBUtils.findNetworkById(fwRule.getNetworkId()); response.setNetworkId(guestNtwk.getUuid()); - IpAddress ip = ApiDBUtils.findIpAddressById(fwRule.getSourceIpAddressId()); if (ip != null) @@ -1910,6 +1920,8 @@ public UserVm findUserVmById(Long vmId) { } + + @Override public VolumeVO findVolumeById(Long volumeId) { return ApiDBUtils.findVolumeById(volumeId); @@ -2859,6 +2871,8 @@ public NetworkResponse createNetworkResponse(ResponseView view, Network network) } } + + response.setObjectName("network"); return response; } @@ -3061,6 +3075,8 @@ public static void populateOwner(ControlledViewEntityResponse response, Controll response.setDomainPath(getPrettyDomainPath(object.getDomainPath())); } + + private void populateAccount(ControlledEntityResponse response, long accountId) { Account account = ApiDBUtils.findAccountById(accountId); if (account == null) { @@ -3272,6 +3288,7 @@ public TrafficTypeResponse createTrafficTypeResponse(PhysicalNetworkTrafficType PhysicalNetwork pnet = ApiDBUtils.findPhysicalNetworkById(result.getPhysicalNetworkId()); if (pnet != null) { response.setPhysicalNetworkId(pnet.getUuid()); + } if (result.getTrafficType() != null) { response.setTrafficType(result.getTrafficType().toString()); @@ -3283,6 +3300,7 @@ public TrafficTypeResponse createTrafficTypeResponse(PhysicalNetworkTrafficType response.setHypervLabel(result.getHypervNetworkLabel()); response.setOvm3Label(result.getOvm3NetworkLabel()); + response.setObjectName("traffictype"); return response; } @@ -3508,6 +3526,7 @@ public VpcResponse createVpcResponse(ResponseView view, Vpc vpc) { if (voff != null) { response.setVpcOfferingId(voff.getUuid()); response.setVpcOfferingName(voff.getName()); + } response.setCidr(vpc.getCidr()); response.setRestartRequired(vpc.isRestartRequired()); @@ -3603,6 +3622,7 @@ public VpcResponse createVpcResponse(ResponseView view, Vpc vpc) { } } + response.setObjectName("vpc"); return response; } @@ -3896,6 +3916,9 @@ public Site2SiteCustomerGatewayResponse createSite2SiteCustomerGatewayResponse(S response.setRemoved(result.getRemoved()); response.setIkeVersion(result.getIkeVersion()); response.setSplitConnections(result.getSplitConnections()); + + + response.setObjectName("vpncustomergateway"); response.setHasAnnotation(annotationDao.hasAnnotations(result.getUuid(), AnnotationService.EntityType.VPN_CUSTOMER_GATEWAY.name(), _accountMgr.isRootAdmin(CallContext.current().getCallingAccount().getId()))); @@ -4116,474 +4139,602 @@ public UsageRecordResponse createUsageResponse(Usage usageRecord, Map