Skip to content

Commit 7294729

Browse files
committed
Multiple networks support: use defined separator
1 parent 0dd009a commit 7294729

3 files changed

Lines changed: 10 additions & 7 deletions

File tree

core/src/main/java/com/cloud/agent/api/SecurityGroupRulesCmd.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@
3535

3636
public class SecurityGroupRulesCmd extends Command {
3737
private static final String CIDR_LENGTH_SEPARATOR = "/";
38-
private static final char RULE_TARGET_SEPARATOR = ',';
39-
private static final char RULE_COMMAND_SEPARATOR = ';';
38+
public static final char RULE_TARGET_SEPARATOR = ',';
39+
public static final char RULE_COMMAND_SEPARATOR = ';';
4040
protected static final String EGRESS_RULE = "E:";
4141
protected static final String INGRESS_RULE = "I:";
4242
private static final Logger LOGGER = Logger.getLogger(SecurityGroupRulesCmd.class);

plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@
106106
import com.cloud.agent.resource.virtualnetwork.VRScripts;
107107
import com.cloud.agent.resource.virtualnetwork.VirtualRouterDeployer;
108108
import com.cloud.agent.resource.virtualnetwork.VirtualRoutingResource;
109+
import com.cloud.agent.api.SecurityGroupRulesCmd;
109110
import com.cloud.dc.Vlan;
110111
import com.cloud.exception.InternalErrorException;
111112
import com.cloud.host.Host.Type;
@@ -3562,11 +3563,11 @@ public boolean destroyNetworkRulesForNic(final Connect conn, final String vmName
35623563
final StringBuilder sb = new StringBuilder();
35633564
if (nicSecIps != null) {
35643565
for (final String ip : nicSecIps) {
3565-
sb.append(ip).append(";");
3566+
sb.append(ip).append(SecurityGroupRulesCmd.RULE_COMMAND_SEPARATOR);
35663567
}
35673568
secIpsStr = sb.toString();
35683569
} else {
3569-
secIpsStr = "0;";
3570+
secIpsStr = "0" + SecurityGroupRulesCmd.RULE_COMMAND_SEPARATOR;
35703571
}
35713572
final List<InterfaceDef> intfs = getInterfaces(conn, vmName);
35723573
if (intfs.size() == 0 || intfs.size() < nic.getDeviceId()) {
@@ -3645,11 +3646,11 @@ public boolean applyDefaultNetworkRulesOnNic(final Connect conn, final String vm
36453646
final StringBuilder sb = new StringBuilder();
36463647
if (nicSecIps != null) {
36473648
for (final String ip : nicSecIps) {
3648-
sb.append(ip).append(";");
3649+
sb.append(ip).append(SecurityGroupRulesCmd.RULE_COMMAND_SEPARATOR);
36493650
}
36503651
secIpsStr = sb.toString();
36513652
} else {
3652-
secIpsStr = "0;";
3653+
secIpsStr = "0" + SecurityGroupRulesCmd.RULE_COMMAND_SEPARATOR;
36533654
}
36543655
return defaultNetworkRules(conn, vmName, nic, vmId, secIpsStr, isFirstNic, checkBeforeApply);
36553656
}

plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtPlugNicCommandWrapper.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import com.cloud.hypervisor.kvm.resource.VifDriver;
3030
import com.cloud.resource.CommandWrapper;
3131
import com.cloud.resource.ResourceWrapper;
32+
import com.cloud.vm.VirtualMachine;
3233
import org.apache.log4j.Logger;
3334
import org.libvirt.Connect;
3435
import org.libvirt.Domain;
@@ -45,6 +46,7 @@ public final class LibvirtPlugNicCommandWrapper extends CommandWrapper<PlugNicCo
4546
public Answer execute(final PlugNicCommand command, final LibvirtComputingResource libvirtComputingResource) {
4647
final NicTO nic = command.getNic();
4748
final String vmName = command.getVmName();
49+
final VirtualMachine.Type vmType = command.getVMType();
4850
Domain vm = null;
4951
try {
5052
final LibvirtUtilitiesHelper libvirtUtilitiesHelper = libvirtComputingResource.getLibvirtUtilitiesHelper();
@@ -65,7 +67,7 @@ public Answer execute(final PlugNicCommand command, final LibvirtComputingResour
6567
vm.attachDevice(interfaceDef.toString());
6668

6769
// apply default network rules on new nic
68-
if (vmName.startsWith("i-") && nic.isSecurityGroupEnabled()) {
70+
if (vmType == VirtualMachine.Type.User && nic.isSecurityGroupEnabled()) {
6971
final Long vmId = Long.valueOf(vmName.split("-")[2]);
7072
libvirtComputingResource.applyDefaultNetworkRulesOnNic(conn, vmName, vmId, nic, false, false);
7173
}

0 commit comments

Comments
 (0)