4343import javax .inject .Inject ;
4444
4545import org .apache .cloudstack .acl .ControlledEntity ;
46+ import org .apache .cloudstack .acl .RoleVO ;
4647import org .apache .cloudstack .acl .ControlledEntity .ACLType ;
48+ import org .apache .cloudstack .acl .dao .RoleDao ;
4749
4850import org .apache .cloudstack .affinity .AffinityGroup ;
4951import org .apache .cloudstack .affinity .AffinityGroupResponse ;
306308import com .cloud .dc .dao .VlanDetailsDao ;
307309import com .cloud .domain .Domain ;
308310import com .cloud .domain .DomainVO ;
311+ import com .cloud .domain .dao .DomainDao ;
309312
310313import com .cloud .event .Event ;
311314import com .cloud .exception .InvalidParameterValueException ;
381384import com .cloud .network .vpc .VpcOffering ;
382385import com .cloud .network .vpc .VpcVO ;
383386import com .cloud .network .vpc .dao .VpcOfferingDao ;
387+ import com .cloud .network .vpn .Site2SiteVpnManager ;
384388
385389import com .cloud .offering .DiskOffering ;
386390import com .cloud .offering .NetworkOffering ;
423427import com .cloud .tags .dao .ResourceTagDao ;
424428import com .cloud .template .VirtualMachineTemplate ;
425429import com .cloud .user .Account ;
430+ import com .cloud .user .AccountVO ;
426431import com .cloud .user .AccountManager ;
432+ import com .cloud .user .ApiKeyPairState ;
427433
428434import com .cloud .user .SSHKeyPair ;
429435import com .cloud .user .User ;
432438import com .cloud .user .UserStatisticsVO ;
433439
434440import com .cloud .user .dao .UserDataDao ;
441+ import com .cloud .user .dao .AccountDao ;
435442import com .cloud .user .dao .UserStatisticsDao ;
436443import com .cloud .uservm .UserVm ;
437444import com .cloud .utils .Pair ;
@@ -543,6 +550,8 @@ public class ApiResponseHelper implements ResponseGenerator, ResourceIdSupport {
543550 BgpPeerDao bgpPeerDao ;
544551 @ Inject
545552 RoutedIpv4Manager routedIpv4Manager ;
553+ @ Inject
554+ Site2SiteVpnManager site2SiteVpnManager ;
546555
547556 @ Inject
548557 ResourceIconManager resourceIconManager ;
@@ -561,6 +570,15 @@ public static String getPrettyDomainPath(String path) {
561570 return domainPath .toString ();
562571 }
563572
573+ @ Inject
574+ private RoleDao roleDao ;
575+
576+ @ Inject
577+ private AccountDao accountDao ;
578+
579+ @ Inject
580+ private DomainDao domainDao ;
581+
564582 public static void populateDomainTags (String domainUuid , DomainResponse domainResponse ) {
565583 List <ResourceTagJoinVO > tags = ApiDBUtils .listResourceTagViewByResourceUUID (domainUuid ,
566584 ResourceTag .ResourceObjectType .Domain );
@@ -621,6 +639,7 @@ public DomainResponse createDomainResponse(Domain domain) {
621639 if (domain .getChildCount () > 0 ) {
622640 domainResponse .setHasChild (true );
623641 }
642+ populateDomainTags (domain .getUuid (), domainResponse );
624643 domainResponse .setObjectName ("domain" );
625644 return domainResponse ;
626645 }
@@ -1706,6 +1725,7 @@ public FirewallRuleResponse createPortForwardingRuleResponse(PortForwardingRule
17061725
17071726 Network guestNtwk = ApiDBUtils .findNetworkById (fwRule .getNetworkId ());
17081727 response .setNetworkId (guestNtwk .getUuid ());
1728+ response .setNetworkName (guestNtwk .getName ());
17091729
17101730 IpAddress ip = ApiDBUtils .findIpAddressById (fwRule .getSourceIpAddressId ());
17111731
@@ -1933,6 +1953,8 @@ public SystemVmResponse createSystemVmResponse(VirtualMachine vm) {
19331953 vmResponse .setPublicNetmask (singleNicProfile .getIPv4Netmask ());
19341954 vmResponse .setGateway (singleNicProfile .getIPv4Gateway ());
19351955 }
1956+ } else if (network .getTrafficType () == TrafficType .Storage ) {
1957+ vmResponse .setStorageIp (singleNicProfile .getIPv4Address ());
19361958 }
19371959 }
19381960 }
@@ -2923,7 +2945,10 @@ public NetworkResponse createNetworkResponse(ResponseView view, Network network)
29232945 }
29242946 }
29252947
2926-
2948+ if (CallContext .current ().getCallingAccount ().getType () == Account .Type .ADMIN &&
2949+ network .getVpcId () == null && network .getGuestType () == Network .GuestType .Isolated ) {
2950+ response .setKeepMacAddressOnPublicNic (network .getKeepMacAddressOnPublicNic ());
2951+ }
29272952
29282953 response .setObjectName ("network" );
29292954 return response ;
@@ -3596,7 +3621,7 @@ public VpcResponse createVpcResponse(ResponseView view, Vpc vpc) {
35963621 if (voff != null ) {
35973622 response .setVpcOfferingId (voff .getUuid ());
35983623 response .setVpcOfferingName (voff .getName ());
3599-
3624+ response . setVpcOfferingConserveMode ( voff . isConserveMode ());
36003625 }
36013626 response .setCidr (vpc .getCidr ());
36023627 response .setRestartRequired (vpc .isRestartRequired ());
@@ -3692,7 +3717,9 @@ public VpcResponse createVpcResponse(ResponseView view, Vpc vpc) {
36923717 }
36933718 }
36943719
3695-
3720+ if (CallContext .current ().getCallingAccount ().getType () == Account .Type .ADMIN ) {
3721+ response .setKeepMacAddressOnPublicNic (vpc .getKeepMacAddressOnPublicNic ());
3722+ }
36963723 response .setObjectName ("vpc" );
36973724 return response ;
36983725 }
@@ -3987,7 +4014,14 @@ public Site2SiteCustomerGatewayResponse createSite2SiteCustomerGatewayResponse(S
39874014 response .setIkeVersion (result .getIkeVersion ());
39884015 response .setSplitConnections (result .getSplitConnections ());
39894016
3990-
4017+ Set <String > obsoleteParameters = site2SiteVpnManager .getObsoleteVpnGatewayParameters (result );
4018+ if (CollectionUtils .isNotEmpty (obsoleteParameters )) {
4019+ response .setContainsObsoleteParameters (obsoleteParameters .toString ());
4020+ }
4021+ Set <String > excludedParameters = site2SiteVpnManager .getExcludedVpnGatewayParameters (result );
4022+ if (CollectionUtils .isNotEmpty (excludedParameters )) {
4023+ response .setContainsExcludedParameters (excludedParameters .toString ());
4024+ }
39914025
39924026 response .setObjectName ("vpncustomergateway" );
39934027 response .setHasAnnotation (annotationDao .hasAnnotations (result .getUuid (), AnnotationService .EntityType .VPN_CUSTOMER_GATEWAY .name (),
@@ -4533,8 +4567,13 @@ private UsageResourceDetails populateTemplateOrIsoUsageResponse(Usage usageRecor
45334567 builder .append ("ISO usage" );
45344568 }
45354569 if (tmpl != null ) {
4536- builder .append (" for " ).append (tmpl .getName ()).append (" (" ).append (tmpl .getUuid ()).append (") " )
4537- .append ("with size " ).append (toHumanReadableSize (usageRecord .getSize ())).append (" and virtual size " ).append (toHumanReadableSize (usageRecord .getVirtualSize ()));
4570+ builder .append (" for " ).append (tmpl .getName ()).append (" (" ).append (tmpl .getUuid ()).append (")" );
4571+ if (usageRecord .getSize () != null ) {
4572+ builder .append (" with size " ).append (toHumanReadableSize (usageRecord .getSize ()));
4573+ }
4574+ if (usageRecord .getVirtualSize () != null ) {
4575+ builder .append (" and virtual size " ).append (toHumanReadableSize (usageRecord .getVirtualSize ()));
4576+ }
45384577 }
45394578 usageRecResponse .setDescription (builder .toString ());
45404579 }
@@ -4556,8 +4595,10 @@ private UsageResourceDetails populateSnapshotUsageResponse(Usage usageRecord, Us
45564595 final StringBuilder builder = new StringBuilder ();
45574596 builder .append ("Snapshot usage " );
45584597 if (snap != null ) {
4559- builder .append ("for " ).append (snap .getName ()).append (" (" ).append (snap .getUuid ()).append (") " )
4560- .append ("with size " ).append (toHumanReadableSize (usageRecord .getSize ()));
4598+ builder .append ("for " ).append (snap .getName ()).append (" (" ).append (snap .getUuid ()).append (")" );
4599+ if (usageRecord .getSize () != null ) {
4600+ builder .append (" with size " ).append (toHumanReadableSize (usageRecord .getSize ()));
4601+ }
45614602 }
45624603 usageRecResponse .setDescription (builder .toString ());
45634604 }
@@ -4623,7 +4664,8 @@ private UsageResourceDetails populateNetworkOfferingUsageResponse(Usage usageRec
46234664 }
46244665 usageRecResponse .setDescription (builder .toString ());
46254666 }
4626- return new UsageResourceDetails ();
4667+ UsageResourceDetails resourceDetails = new UsageResourceDetails ();
4668+ return resourceDetails ;
46274669 }
46284670
46294671 private UsageResourceDetails populateVpnUsersUsageResponse (Usage usageRecord , UsageRecordResponse usageRecResponse , boolean oldFormat ) {
@@ -4640,7 +4682,8 @@ private UsageResourceDetails populateVpnUsersUsageResponse(Usage usageRecord, Us
46404682 }
46414683 usageRecResponse .setDescription (builder .toString ());
46424684 }
4643- return new UsageResourceDetails ();
4685+ UsageResourceDetails resourceDetails = new UsageResourceDetails ();
4686+ return resourceDetails ;
46444687 }
46454688
46464689 private UsageResourceDetails populateSecurityGroupUsageResponse (Usage usageRecord , UsageRecordResponse usageRecResponse , boolean oldFormat , VMInstanceVO vmInstance ) {
@@ -4760,7 +4803,8 @@ private UsageResourceDetails populateVolumeSecondaryUsageResponse(Usage usageRec
47604803 }
47614804 usageRecResponse .setDescription (builder .toString ());
47624805 }
4763- return new UsageResourceDetails ();
4806+ UsageResourceDetails resourceDetails = new UsageResourceDetails ();
4807+ return resourceDetails ;
47644808 }
47654809
47664810 private UsageResourceDetails populateVmSnapshotOnPrimaryUsageResponse (Usage usageRecord , UsageRecordResponse usageRecResponse , boolean oldFormat , VMInstanceVO vmInstance ) {
@@ -4799,7 +4843,8 @@ private UsageResourceDetails populateBucketUsageResponse(Usage usageRecord, Usag
47994843 usageRecResponse .setUsageId (bucket .getUuid ());
48004844 usageRecResponse .setResourceName (bucket .getName ());
48014845 }
4802- return new UsageResourceDetails ();
4846+ UsageResourceDetails resourceDetails = new UsageResourceDetails ();
4847+ return resourceDetails ;
48034848 }
48044849
48054850 private static class UsageResourceDetails {
@@ -4912,7 +4957,7 @@ public NicSecondaryIpResponse createSecondaryIPToNicResponse(NicSecondaryIp resu
49124957 setResponseIpAddress (result , response );
49134958 response .setNicId (nic .getUuid ());
49144959 response .setNwId (network .getUuid ());
4915-
4960+ response . setDescription ( result . getDescription ());
49164961 response .setObjectName ("nicsecondaryip" );
49174962 return response ;
49184963 }
@@ -4999,7 +5044,7 @@ public NicResponse createNicResponse(Nic result) {
49995044 for (NicSecondaryIpVO ip : secondaryIps ) {
50005045 NicSecondaryIpResponse ipRes = new NicSecondaryIpResponse ();
50015046 ipRes .setId (ip .getUuid ());
5002-
5047+ ipRes . setDescription ( ip . getDescription ());
50035048 setResponseIpAddress (ip , ipRes );
50045049 ipList .add (ipRes );
50055050 }
@@ -5030,6 +5075,7 @@ public NicResponse createNicResponse(Nic result) {
50305075 response .setVpcName (vpc .getName ());
50315076 }
50325077
5078+ response .setEnabled (result .isEnabled ());
50335079 return response ;
50345080 }
50355081
@@ -5273,52 +5319,20 @@ public SSHKeyPairResponse createSSHKeyPairResponse(SSHKeyPair sshkeyPair, boolea
52735319
52745320 @ Override
52755321 public ApiKeyPairResponse createKeyPairResponse (ApiKeyPair keyPair ) {
5276- ApiKeyPairResponse response = new ApiKeyPairResponse ();
5277- if (keyPair == null ) {
5278- return response ;
5279- }
5280- response .setId (keyPair .getUuid ());
5281- response .setName (keyPair .getName ());
5282- response .setApiKey (keyPair .getApiKey ());
5283- response .setSecretKey (keyPair .getSecretKey ());
5284- response .setDescription (keyPair .getDescription ());
5285- response .setStartDate (keyPair .getStartDate ());
5286- response .setEndDate (keyPair .getEndDate ());
5287- response .setCreated (keyPair .getCreated ());
5288-
5289- // populate account
5290- try {
5291- Account account = ApiDBUtils .findAccountById (keyPair .getAccountId ());
5292- if (account != null && account .getType () != Account .Type .PROJECT ) {
5293- response .setAccountName (account .getAccountName ());
5294- }
5295- } catch (Exception e ) {
5296- logger .debug ("Unable to populate account for ApiKeyPairResponse" , e );
5297- }
5322+ ApiKeyPairResponse apiKeyPairResponse = new ApiKeyPairResponse ();
52985323
5299- try {
5300- Domain domain = ApiDBUtils .findDomainById (keyPair .getDomainId ());
5301- if (domain != null ) {
5302- response .setDomainId (domain .getUuid ());
5303- response .setDomainName (domain .getName ());
5304- response .setDomainPath (getPrettyDomainPath (domain .getPath ()));
5305- }
5306- } catch (Exception e ) {
5307- logger .debug ("Unable to populate domain for ApiKeyPairResponse" , e );
5308- }
5324+ populateApiKeyPairInApiKeyPairResponse (keyPair , apiKeyPairResponse );
5325+ populateUserInApiKeyPairResponse (keyPair , apiKeyPairResponse );
53095326
5310- // user
5311- try {
5312- User user = ApiDBUtils .findUserById (keyPair .getUserId ());
5313- if (user != null ) {
5314- response .setUserId (user .getUuid ());
5315- response .setUsername (user .getUsername ());
5316- }
5317- } catch (Exception e ) {
5318- logger .debug ("Unable to populate user for ApiKeyPairResponse" , e );
5319- }
5327+ AccountVO account = accountDao .findByIdIncludingRemoved (keyPair .getAccountId ());
5328+ apiKeyPairResponse .setAccountId (account .getUuid ());
5329+ apiKeyPairResponse .setAccountName (account .getAccountName ());
5330+ apiKeyPairResponse .setAccountType (account .getType ().toString ());
53205331
5321- return response ;
5332+ populateDomainInApiKeyPairResponse (account .getDomainId (), apiKeyPairResponse );
5333+ populateRoleInApiKeyPairResponse (account .getRoleId (), apiKeyPairResponse );
5334+
5335+ return apiKeyPairResponse ;
53225336 }
53235337
53245338 @ Override
0 commit comments