Skip to content

Commit 582b687

Browse files
committed
add ACL annotation, entitytype, minor cleanup
1 parent 857436e commit 582b687

18 files changed

+142
-82
lines changed

api/src/main/java/org/apache/cloudstack/api/command/user/dns/AddDnsServerCmd.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@
1919

2020
import java.util.List;
2121

22-
import javax.inject.Inject;
23-
2422
import org.apache.cloudstack.acl.RoleType;
2523
import org.apache.cloudstack.api.APICommand;
2624
import org.apache.cloudstack.api.ApiConstants;
@@ -30,18 +28,19 @@
3028
import org.apache.cloudstack.api.ServerApiException;
3129
import org.apache.cloudstack.api.response.DnsServerResponse;
3230
import org.apache.cloudstack.context.CallContext;
33-
import org.apache.cloudstack.dns.DnsProviderManager;
3431
import org.apache.cloudstack.dns.DnsServer;
3532
import org.apache.commons.lang3.BooleanUtils;
3633

37-
@APICommand(name = "addDnsServer", description = "Adds a new external DNS server", responseObject = DnsServerResponse.class,
38-
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, since = "4.23.0",
34+
@APICommand(name = "addDnsServer",
35+
description = "Adds a new external DNS server",
36+
responseObject = DnsServerResponse.class,
37+
entityType = {DnsServer.class},
38+
requestHasSensitiveInfo = false,
39+
responseHasSensitiveInfo = false,
40+
since = "4.23.0",
3941
authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
4042
public class AddDnsServerCmd extends BaseCmd {
4143

42-
@Inject
43-
DnsProviderManager dnsProviderManager;
44-
4544
/////////////////////////////////////////////////////
4645
//////////////// API parameters /////////////////////
4746
/////////////////////////////////////////////////////

api/src/main/java/org/apache/cloudstack/api/command/user/dns/AssociateDnsZoneToNetworkCmd.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,13 @@
3434
import com.cloud.exception.ResourceAllocationException;
3535
import com.cloud.exception.ResourceUnavailableException;
3636

37-
@APICommand(name = "associateDnsZoneToNetwork", description = "Associates a DNS Zone with a Network for VM auto-registration",
38-
responseObject = DnsZoneNetworkMapResponse.class, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
39-
since = "4.23.0", authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
37+
@APICommand(name = "associateDnsZoneToNetwork",
38+
description = "Associates a DNS Zone with a Network for VM auto-registration",
39+
responseObject = DnsZoneNetworkMapResponse.class,
40+
requestHasSensitiveInfo = false,
41+
responseHasSensitiveInfo = false,
42+
since = "4.23.0",
43+
authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
4044
public class AssociateDnsZoneToNetworkCmd extends BaseCmd {
4145

4246
@Parameter(name = ApiConstants.DNS_ZONE_ID, type = CommandType.UUID, entityType = DnsZoneResponse.class,

api/src/main/java/org/apache/cloudstack/api/command/user/dns/CreateDnsRecordCmd.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.util.List;
2121

2222
import org.apache.cloudstack.acl.RoleType;
23+
import org.apache.cloudstack.api.ACL;
2324
import org.apache.cloudstack.api.APICommand;
2425
import org.apache.cloudstack.api.ApiConstants;
2526
import org.apache.cloudstack.api.ApiErrorCode;
@@ -35,11 +36,16 @@
3536
import com.cloud.exception.InvalidParameterValueException;
3637
import com.cloud.utils.EnumUtils;
3738

38-
@APICommand(name = "createDnsRecord", description = "Creates a DNS record directly on the provider",
39-
responseObject = DnsRecordResponse.class, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
40-
since = "4.23.0", authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
39+
@APICommand(name = "createDnsRecord",
40+
description = "Creates a DNS record directly on the provider",
41+
responseObject = DnsRecordResponse.class,
42+
entityType = {DnsRecord.class},
43+
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
44+
since = "4.23.0",
45+
authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
4146
public class CreateDnsRecordCmd extends BaseAsyncCmd {
4247

48+
@ACL
4349
@Parameter(name = ApiConstants.DNS_ZONE_ID, type = CommandType.UUID, entityType = DnsZoneResponse.class, required = true,
4450
description = "ID of the DNS zone")
4551
private Long dnsZoneId;

api/src/main/java/org/apache/cloudstack/api/command/user/dns/CreateDnsZoneCmd.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,8 @@
1919

2020
import java.util.Arrays;
2121

22-
import javax.inject.Inject;
23-
2422
import org.apache.cloudstack.acl.RoleType;
23+
import org.apache.cloudstack.api.ACL;
2524
import org.apache.cloudstack.api.APICommand;
2625
import org.apache.cloudstack.api.ApiConstants;
2726
import org.apache.cloudstack.api.ApiErrorCode;
@@ -31,22 +30,22 @@
3130
import org.apache.cloudstack.api.response.DnsServerResponse;
3231
import org.apache.cloudstack.api.response.DnsZoneResponse;
3332
import org.apache.cloudstack.context.CallContext;
34-
import org.apache.cloudstack.dns.DnsProviderManager;
3533
import org.apache.cloudstack.dns.DnsZone;
3634
import org.apache.commons.lang3.StringUtils;
3735

3836
import com.cloud.event.EventTypes;
3937
import com.cloud.exception.ResourceAllocationException;
4038
import com.cloud.utils.EnumUtils;
4139

42-
@APICommand(name = "createDnsZone", description = "Creates a new DNS Zone on a specific server",
43-
responseObject = DnsZoneResponse.class, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
44-
since = "4.23.0", authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
40+
@APICommand(name = "createDnsZone",
41+
description = "Creates a new DNS Zone on a specific server",
42+
responseObject = DnsZoneResponse.class,
43+
entityType = {DnsZone.class},
44+
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
45+
since = "4.23.0",
46+
authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
4547
public class CreateDnsZoneCmd extends BaseAsyncCreateCmd {
4648

47-
@Inject
48-
DnsProviderManager dnsProviderManager;
49-
5049
/////////////////////////////////////////////////////
5150
//////////////// API Parameters /////////////////////
5251
/////////////////////////////////////////////////////
@@ -55,6 +54,7 @@ public class CreateDnsZoneCmd extends BaseAsyncCreateCmd {
5554
description = "The name of the DNS zone (e.g. example.com)")
5655
private String name;
5756

57+
@ACL
5858
@Parameter(name = ApiConstants.DNS_SERVER_ID, type = CommandType.UUID, entityType = DnsServerResponse.class,
5959
required = true, description = "The ID of the DNS server to host this zone")
6060
private Long dnsServerId;

api/src/main/java/org/apache/cloudstack/api/command/user/dns/DeleteDnsRecordCmd.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
package org.apache.cloudstack.api.command.user.dns;
1919

2020
import org.apache.cloudstack.acl.RoleType;
21+
import org.apache.cloudstack.acl.SecurityChecker;
22+
import org.apache.cloudstack.api.ACL;
2123
import org.apache.cloudstack.api.APICommand;
2224
import org.apache.cloudstack.api.ApiConstants;
2325
import org.apache.cloudstack.api.ApiErrorCode;
@@ -33,11 +35,16 @@
3335
import com.cloud.exception.InvalidParameterValueException;
3436
import com.cloud.utils.EnumUtils;
3537

36-
@APICommand(name = "deleteDnsRecord", description = "Deletes a DNS record from the external provider",
37-
responseObject = SuccessResponse.class, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
38-
since = "4.23.0", authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
38+
@APICommand(name = "deleteDnsRecord",
39+
description = "Deletes a DNS record from the external provider",
40+
responseObject = SuccessResponse.class,
41+
entityType = {DnsRecord.class},
42+
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
43+
since = "4.23.0",
44+
authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
3945
public class DeleteDnsRecordCmd extends BaseAsyncCmd {
4046

47+
@ACL(accessType = SecurityChecker.AccessType.OperateEntry)
4148
@Parameter(name = ApiConstants.DNS_ZONE_ID, type = CommandType.UUID, entityType = DnsZoneResponse.class,
4249
required = true, description = "The ID of the DNS zone")
4350
private Long dnsZoneId;

api/src/main/java/org/apache/cloudstack/api/command/user/dns/DeleteDnsServerCmd.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
package org.apache.cloudstack.api.command.user.dns;
1919

2020
import org.apache.cloudstack.acl.RoleType;
21+
import org.apache.cloudstack.acl.SecurityChecker;
22+
import org.apache.cloudstack.api.ACL;
2123
import org.apache.cloudstack.api.APICommand;
2224
import org.apache.cloudstack.api.ApiConstants;
2325
import org.apache.cloudstack.api.ApiErrorCode;
@@ -31,15 +33,20 @@
3133
import com.cloud.event.EventTypes;
3234
import com.cloud.user.Account;
3335

34-
@APICommand(name = "deleteDnsServer", description = "Removes a DNS server integration",
35-
responseObject = SuccessResponse.class, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
36-
since = "4.23.0", authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
36+
@APICommand(name = "deleteDnsServer",
37+
description = "Removes a DNS server integration",
38+
responseObject = SuccessResponse.class,
39+
entityType = {DnsServer.class},
40+
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
41+
since = "4.23.0",
42+
authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
3743
public class DeleteDnsServerCmd extends BaseAsyncCmd {
3844

3945
/////////////////////////////////////////////////////
4046
//////////////// API Parameters /////////////////////
4147
/////////////////////////////////////////////////////
4248

49+
@ACL(accessType = SecurityChecker.AccessType.OperateEntry)
4350
@Parameter(name = ApiConstants.ID, type = CommandType.UUID, entityType = DnsServerResponse.class,
4451
required = true, description = "the ID of the DNS server")
4552
private Long id;

api/src/main/java/org/apache/cloudstack/api/command/user/dns/DeleteDnsZoneCmd.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
package org.apache.cloudstack.api.command.user.dns;
1919

2020
import org.apache.cloudstack.acl.RoleType;
21+
import org.apache.cloudstack.acl.SecurityChecker;
22+
import org.apache.cloudstack.api.ACL;
2123
import org.apache.cloudstack.api.APICommand;
2224
import org.apache.cloudstack.api.ApiConstants;
2325
import org.apache.cloudstack.api.ApiErrorCode;
@@ -31,16 +33,22 @@
3133
import com.cloud.event.EventTypes;
3234
import com.cloud.user.Account;
3335

34-
@APICommand(name = "deleteDnsZone", description = "Removes a DNS Zone from CloudStack and the external provider",
35-
responseObject = SuccessResponse.class, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
36-
since = "4.23.0", authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
36+
@APICommand(name = "deleteDnsZone",
37+
description = "Removes a DNS Zone from CloudStack and the external provider",
38+
responseObject = SuccessResponse.class,
39+
entityType = {DnsZone.class},
40+
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
41+
since = "4.23.0",
42+
authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
3743
public class DeleteDnsZoneCmd extends BaseAsyncCmd {
3844

3945
/////////////////////////////////////////////////////
4046
//////////////// API Parameters /////////////////////
4147
/////////////////////////////////////////////////////
4248

43-
@Parameter(name = ApiConstants.ID, type = CommandType.UUID, entityType = DnsZoneResponse.class, required = true, description = "The ID of the DNS zone")
49+
@ACL(accessType = SecurityChecker.AccessType.OperateEntry)
50+
@Parameter(name = ApiConstants.ID, type = CommandType.UUID, entityType = DnsZoneResponse.class, required = true,
51+
description = "The ID of the DNS zone")
4452
private Long id;
4553

4654
/////////////////////////////////////////////////////

api/src/main/java/org/apache/cloudstack/api/command/user/dns/DisassociateDnsZoneFromNetworkCmd.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
package org.apache.cloudstack.api.command.user.dns;
1919

2020
import org.apache.cloudstack.acl.RoleType;
21+
import org.apache.cloudstack.acl.SecurityChecker;
22+
import org.apache.cloudstack.api.ACL;
2123
import org.apache.cloudstack.api.APICommand;
2224
import org.apache.cloudstack.api.ApiConstants;
2325
import org.apache.cloudstack.api.ApiErrorCode;
@@ -34,11 +36,15 @@
3436
import com.cloud.exception.ResourceUnavailableException;
3537
import com.cloud.user.Account;
3638

37-
@APICommand(name = "disassociateDnsZoneFromNetwork", description = "Removes the association between a DNS Zone and a Network",
38-
responseObject = SuccessResponse.class, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
39-
since = "4.23.0", authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
39+
@APICommand(name = "disassociateDnsZoneFromNetwork",
40+
description = "Removes the association between a DNS Zone and a Network",
41+
responseObject = SuccessResponse.class,
42+
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
43+
since = "4.23.0",
44+
authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
4045
public class DisassociateDnsZoneFromNetworkCmd extends BaseCmd {
4146

47+
@ACL(accessType = SecurityChecker.AccessType.OperateEntry)
4248
@Parameter(name = ApiConstants.ID, type = CommandType.UUID, entityType = DnsZoneNetworkMapResponse.class,
4349
required = true, description = "The ID of the DNS zone to network mapping")
4450
private Long id;

api/src/main/java/org/apache/cloudstack/api/command/user/dns/ListDnsProvidersCmd.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,26 +20,25 @@
2020
import java.util.ArrayList;
2121
import java.util.List;
2222

23-
import javax.inject.Inject;
24-
2523
import org.apache.cloudstack.acl.RoleType;
2624
import org.apache.cloudstack.api.APICommand;
2725
import org.apache.cloudstack.api.BaseListCmd;
2826
import org.apache.cloudstack.api.response.DnsProviderResponse;
2927
import org.apache.cloudstack.api.response.ListResponse;
30-
import org.apache.cloudstack.dns.DnsProviderManager;
28+
import org.apache.cloudstack.dns.DnsProvider;
3129

32-
@APICommand(name = "listDnsProviders", description = "Lists available DNS plugin providers",
33-
responseObject = DnsProviderResponse.class, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
34-
since = "4.23.0", authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
30+
@APICommand(name = "listDnsProviders",
31+
description = "Lists available DNS plugin providers",
32+
responseObject = DnsProviderResponse.class,
33+
entityType = {DnsProvider.class},
34+
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
35+
since = "4.23.0",
36+
authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
3537
public class ListDnsProvidersCmd extends BaseListCmd {
3638

37-
@Inject
38-
DnsProviderManager dnsManager;
39-
4039
@Override
4140
public void execute() {
42-
List<String> providers = dnsManager.listProviderNames();
41+
List<String> providers = dnsProviderManager.listProviderNames();
4342
ListResponse<DnsProviderResponse> response = new ListResponse<>();
4443
List<DnsProviderResponse> responses = new ArrayList<>();
4544
for (String name : providers) {

api/src/main/java/org/apache/cloudstack/api/command/user/dns/ListDnsRecordsCmd.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,26 @@
1818
package org.apache.cloudstack.api.command.user.dns;
1919

2020
import org.apache.cloudstack.acl.RoleType;
21+
import org.apache.cloudstack.api.ACL;
2122
import org.apache.cloudstack.api.APICommand;
2223
import org.apache.cloudstack.api.ApiConstants;
2324
import org.apache.cloudstack.api.BaseListCmd;
2425
import org.apache.cloudstack.api.Parameter;
2526
import org.apache.cloudstack.api.response.DnsRecordResponse;
2627
import org.apache.cloudstack.api.response.DnsZoneResponse;
2728
import org.apache.cloudstack.api.response.ListResponse;
29+
import org.apache.cloudstack.dns.DnsRecord;
2830

29-
@APICommand(name = "listDnsRecords", description = "Lists DNS records from the external provider",
30-
responseObject = DnsRecordResponse.class, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
31-
since = "4.23.0", authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
31+
@APICommand(name = "listDnsRecords",
32+
description = "Lists DNS records from the external provider",
33+
responseObject = DnsRecordResponse.class,
34+
entityType = {DnsRecord.class},
35+
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
36+
since = "4.23.0",
37+
authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
3238
public class ListDnsRecordsCmd extends BaseListCmd {
3339

40+
@ACL
3441
@Parameter(name = ApiConstants.DNS_ZONE_ID, type = CommandType.UUID, entityType = DnsZoneResponse.class, required = true,
3542
description = "ID of the DNS zone to list records from")
3643
private Long dnsZoneId;

0 commit comments

Comments
 (0)