Search in sources :

Example 1 with CreateFirewallRuleCmd

use of org.apache.cloudstack.api.command.user.firewall.CreateFirewallRuleCmd in project cloudstack by apache.

the class KubernetesClusterResourceModifierActionWorker method provisionFirewallRules.

protected void provisionFirewallRules(final IpAddress publicIp, final Account account, int startPort, int endPort) throws NoSuchFieldException, IllegalAccessException, ResourceUnavailableException, NetworkRuleConflictException {
    List<String> sourceCidrList = new ArrayList<String>();
    sourceCidrList.add("0.0.0.0/0");
    CreateFirewallRuleCmd rule = new CreateFirewallRuleCmd();
    rule = ComponentContext.inject(rule);
    Field addressField = rule.getClass().getDeclaredField("ipAddressId");
    addressField.setAccessible(true);
    addressField.set(rule, publicIp.getId());
    Field protocolField = rule.getClass().getDeclaredField("protocol");
    protocolField.setAccessible(true);
    protocolField.set(rule, "TCP");
    Field startPortField = rule.getClass().getDeclaredField("publicStartPort");
    startPortField.setAccessible(true);
    startPortField.set(rule, startPort);
    Field endPortField = rule.getClass().getDeclaredField("publicEndPort");
    endPortField.setAccessible(true);
    endPortField.set(rule, endPort);
    Field cidrField = rule.getClass().getDeclaredField("cidrlist");
    cidrField.setAccessible(true);
    cidrField.set(rule, sourceCidrList);
    firewallService.createIngressFirewallRule(rule);
    firewallService.applyIngressFwRules(publicIp.getId(), account);
}
Also used : Field(java.lang.reflect.Field) ArrayList(java.util.ArrayList) CreateFirewallRuleCmd(org.apache.cloudstack.api.command.user.firewall.CreateFirewallRuleCmd)

Aggregations

Field (java.lang.reflect.Field)1 ArrayList (java.util.ArrayList)1 CreateFirewallRuleCmd (org.apache.cloudstack.api.command.user.firewall.CreateFirewallRuleCmd)1