Skip to content
Merged
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 @@ -43,7 +43,12 @@
import com.cloud.user.Account;
import com.cloud.utils.net.NetUtils;

@APICommand(name = CreateIpv6FirewallRuleCmd.APINAME, description = "Creates an Ipv6 firewall rule in the given network (the network has to belong to VPC)", responseObject = FirewallRuleResponse.class, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
@APICommand(name = CreateIpv6FirewallRuleCmd.APINAME,
description = "Creates an Ipv6 firewall rule in the given network (the network has to belong to VPC)",
responseObject = FirewallRuleResponse.class,
requestHasSensitiveInfo = false,
responseHasSensitiveInfo = false,
authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
public class CreateIpv6FirewallRuleCmd extends BaseAsyncCreateCmd {
public static final Logger s_logger = Logger.getLogger(CreateIpv6FirewallRuleCmd.class.getName());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
// under the License.
package org.apache.cloudstack.api.command.user.ipv6;

import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants;
Expand All @@ -33,8 +34,12 @@
import com.cloud.network.rules.FirewallRule;
import com.cloud.user.Account;

@APICommand(name = DeleteIpv6FirewallRuleCmd.APINAME, description = "Deletes a IPv6 firewall rule", responseObject = SuccessResponse.class,
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
@APICommand(name = DeleteIpv6FirewallRuleCmd.APINAME,
description = "Deletes a IPv6 firewall rule",
responseObject = SuccessResponse.class,
requestHasSensitiveInfo = false,
responseHasSensitiveInfo = false,
authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
public class DeleteIpv6FirewallRuleCmd extends BaseAsyncCmd {
public static final Logger s_logger = Logger.getLogger(DeleteIpv6FirewallRuleCmd.class.getName());
public static final String APINAME = "deleteIpv6FirewallRule";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,12 @@
import com.cloud.network.rules.FirewallRule;
import com.cloud.utils.Pair;

@APICommand(name = ListIpv6FirewallRulesCmd.APINAME, description = "Lists all IPv6 firewall rules", responseObject = FirewallRuleResponse.class,
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
@APICommand(name = ListIpv6FirewallRulesCmd.APINAME,
description = "Lists all IPv6 firewall rules",
responseObject = FirewallRuleResponse.class,
requestHasSensitiveInfo = false,
responseHasSensitiveInfo = false,
authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
public class ListIpv6FirewallRulesCmd extends BaseListTaggedResourcesCmd implements IListFirewallRulesCmd {
public static final Logger s_logger = Logger.getLogger(ListIpv6FirewallRulesCmd.class.getName());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,12 @@
import com.cloud.network.rules.FirewallRule;
import com.cloud.user.Account;

@APICommand(name = UpdateIpv6FirewallRuleCmd.APINAME, description = "Updates Ipv6 firewall rule with specified ID", responseObject = FirewallRuleResponse.class, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
@APICommand(name = UpdateIpv6FirewallRuleCmd.APINAME,
description = "Updates Ipv6 firewall rule with specified ID",
responseObject = FirewallRuleResponse.class,
requestHasSensitiveInfo = false,
responseHasSensitiveInfo = false,
authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
public class UpdateIpv6FirewallRuleCmd extends BaseAsyncCustomIdCmd {
public static final Logger s_logger = Logger.getLogger(UpdateIpv6FirewallRuleCmd.class.getName());

Expand Down
24 changes: 12 additions & 12 deletions test/integration/component/test_network_ipv6.py
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,10 @@ def getPublicIpv6Range(cls):
def setUp(self):
self.services = self.testClient.getParsedTestDataConfig()
self.apiclient = self.testClient.getApiClient()
self.userapiclient = self.testClient.getUserApiClient(
UserName=self.account.name,
DomainName=self.account.domain
)
self.dbclient = self.testClient.getDbConnection()
self.thread = None
self.cleanup = []
Expand Down Expand Up @@ -266,10 +270,8 @@ def createIpv6NetworkOfferingForUpdate(self, is_redundant=False):
def deployNetwork(self):
self.services["network"]["networkoffering"] = self.network_offering.id
self.network = Network.create(
self.apiclient,
self.userapiclient,
self.services["network"],
self.account.name,
self.account.domainid,
zoneid=self.zone.id
)
self.cleanup.append(self.network)
Expand All @@ -279,11 +281,9 @@ def deployNetworkVm(self):
assert False, "get_test_template() failed to return template"
self.services["virtual_machine"]["zoneid"] = self.zone.id
self.virtual_machine = VirtualMachine.create(
self.apiclient,
self.userapiclient,
self.services["virtual_machine"],
templateid=self.template.id,
accountid=self.account.name,
domainid=self.account.domainid,
networkids=self.network.id,
serviceofferingid=self.service_offering.id
)
Expand Down Expand Up @@ -541,11 +541,11 @@ def checkIpv6NetworkVm(self):
"IPv6 gateway for VM %s NIC is empty" % nic.traffictype)

def restartNetworkWithCleanup(self):
self.network.restart(self.apiclient, cleanup=True)
self.network.restart(self.userapiclient, cleanup=True)
time.sleep(SLEEP_BEFORE_VR_CHANGES)

def updateNetworkWithOffering(self):
self.network.update(self.apiclient, networkofferingid=self.network_offering_update.id)
self.network.update(self.userapiclient, networkofferingid=self.network_offering_update.id)
time.sleep(SLEEP_BEFORE_VR_CHANGES)

def createIpv6FirewallRuleInNetwork(self, network_id, traffic_type, source_cidr, dest_cidr, protocol,
Expand All @@ -567,7 +567,7 @@ def createIpv6FirewallRuleInNetwork(self, network_id, traffic_type, source_cidr,
cmd.icmptype = icmp_type
if icmp_code is not None:
cmd.icmpcode = icmp_code
fw_rule = self.apiclient.createIpv6FirewallRule(cmd)
fw_rule = self.userapiclient.createIpv6FirewallRule(cmd)
return fw_rule

def deployRoutingTestResources(self):
Expand Down Expand Up @@ -655,7 +655,7 @@ def checkIpv6NetworkRouting(self):

cmd = deleteIpv6FirewallRule.deleteIpv6FirewallRuleCmd()
cmd.id = fw2.id
self.apiclient.deleteIpv6FirewallRule(cmd)
self.userapiclient.deleteIpv6FirewallRule(cmd)

def createAndVerifyIpv6FirewallRule(self, traffic_type, source_cidr, dest_cidr, protocol,
start_port, end_port, icmp_type, icmp_code, parsed_rule, delete=False):
Expand All @@ -664,7 +664,7 @@ def createAndVerifyIpv6FirewallRule(self, traffic_type, source_cidr, dest_cidr,
start_port, end_port, icmp_type, icmp_code)
cmd = listIpv6FirewallRules.listIpv6FirewallRulesCmd()
cmd.id = fw_rule.id
rules = self.apiclient.listIpv6FirewallRules(cmd)
rules = self.userapiclient.listIpv6FirewallRules(cmd)
self.assertTrue(
isinstance(rules, list),
"Check listIpv6FirewallRules response returns a valid list"
Expand Down Expand Up @@ -702,7 +702,7 @@ def createAndVerifyIpv6FirewallRule(self, traffic_type, source_cidr, dest_cidr,
if delete == True:
cmd = deleteIpv6FirewallRule.deleteIpv6FirewallRuleCmd()
cmd.id = fw_rule.id
self.apiclient.deleteIpv6FirewallRule(cmd)
self.userapiclient.deleteIpv6FirewallRule(cmd)
res = self.getRouterProcessStatus(self.getNetworkRouter(self.network), routerCmd)
self.assertFalse(parsed_rule in res,
"Firewall rule present in nft list chain failure despite delete for rule: %s" % parsed_rule)
Expand Down
24 changes: 12 additions & 12 deletions test/integration/smoke/test_network_ipv6.py
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,10 @@ def getPublicIpv6Range(cls):
def setUp(self):
self.services = self.testClient.getParsedTestDataConfig()
self.apiclient = self.testClient.getApiClient()
self.userapiclient = self.testClient.getUserApiClient(
UserName=self.account.name,
DomainName=self.account.domain
)
self.dbclient = self.testClient.getDbConnection()
self.thread = None
self.cleanup = []
Expand Down Expand Up @@ -266,10 +270,8 @@ def createIpv6NetworkOfferingForUpdate(self, is_redundant=False):
def deployNetwork(self):
self.services["network"]["networkoffering"] = self.network_offering.id
self.network = Network.create(
self.apiclient,
self.userapiclient,
self.services["network"],
self.account.name,
self.account.domainid,
zoneid=self.zone.id
)
self.cleanup.append(self.network)
Expand All @@ -279,11 +281,9 @@ def deployNetworkVm(self):
assert False, "get_test_template() failed to return template"
self.services["virtual_machine"]["zoneid"] = self.zone.id
self.virtual_machine = VirtualMachine.create(
self.apiclient,
self.userapiclient,
self.services["virtual_machine"],
templateid=self.template.id,
accountid=self.account.name,
domainid=self.account.domainid,
networkids=self.network.id,
serviceofferingid=self.service_offering.id
)
Expand Down Expand Up @@ -541,11 +541,11 @@ def checkIpv6NetworkVm(self):
"IPv6 gateway for VM %s NIC is empty" % nic.traffictype)

def restartNetworkWithCleanup(self):
self.network.restart(self.apiclient, cleanup=True)
self.network.restart(self.userapiclient, cleanup=True)
time.sleep(SLEEP_BEFORE_VR_CHANGES)

def updateNetworkWithOffering(self):
self.network.update(self.apiclient, networkofferingid=self.network_offering_update.id)
self.network.update(self.userapiclient, networkofferingid=self.network_offering_update.id)
time.sleep(SLEEP_BEFORE_VR_CHANGES)

def createIpv6FirewallRuleInNetwork(self, network_id, traffic_type, source_cidr, dest_cidr, protocol,
Expand All @@ -567,7 +567,7 @@ def createIpv6FirewallRuleInNetwork(self, network_id, traffic_type, source_cidr,
cmd.icmptype = icmp_type
if icmp_code is not None:
cmd.icmpcode = icmp_code
fw_rule = self.apiclient.createIpv6FirewallRule(cmd)
fw_rule = self.userapiclient.createIpv6FirewallRule(cmd)
return fw_rule

def deployRoutingTestResources(self):
Expand Down Expand Up @@ -655,7 +655,7 @@ def checkIpv6NetworkRouting(self):

cmd = deleteIpv6FirewallRule.deleteIpv6FirewallRuleCmd()
cmd.id = fw2.id
self.apiclient.deleteIpv6FirewallRule(cmd)
self.userapiclient.deleteIpv6FirewallRule(cmd)

def createAndVerifyIpv6FirewallRule(self, traffic_type, source_cidr, dest_cidr, protocol,
start_port, end_port, icmp_type, icmp_code, parsed_rule, delete=False):
Expand All @@ -664,7 +664,7 @@ def createAndVerifyIpv6FirewallRule(self, traffic_type, source_cidr, dest_cidr,
start_port, end_port, icmp_type, icmp_code)
cmd = listIpv6FirewallRules.listIpv6FirewallRulesCmd()
cmd.id = fw_rule.id
rules = self.apiclient.listIpv6FirewallRules(cmd)
rules = self.userapiclient.listIpv6FirewallRules(cmd)
self.assertTrue(
isinstance(rules, list),
"Check listIpv6FirewallRules response returns a valid list"
Expand Down Expand Up @@ -702,7 +702,7 @@ def createAndVerifyIpv6FirewallRule(self, traffic_type, source_cidr, dest_cidr,
if delete == True:
cmd = deleteIpv6FirewallRule.deleteIpv6FirewallRuleCmd()
cmd.id = fw_rule.id
self.apiclient.deleteIpv6FirewallRule(cmd)
self.userapiclient.deleteIpv6FirewallRule(cmd)
res = self.getRouterProcessStatus(self.getNetworkRouter(self.network), routerCmd)
self.assertFalse(parsed_rule in res,
"Firewall rule present in nft list chain failure despite delete for rule: %s" % parsed_rule)
Expand Down