Skip to content

Commit 9c64276

Browse files
committed
Multiple networks support: use defined separator
1 parent d6c776e commit 9c64276

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
@@ -108,6 +108,7 @@
108108
import com.cloud.agent.resource.virtualnetwork.VRScripts;
109109
import com.cloud.agent.resource.virtualnetwork.VirtualRouterDeployer;
110110
import com.cloud.agent.resource.virtualnetwork.VirtualRoutingResource;
111+
import com.cloud.agent.api.SecurityGroupRulesCmd;
111112
import com.cloud.dc.Vlan;
112113
import com.cloud.exception.InternalErrorException;
113114
import com.cloud.host.Host.Type;
@@ -3530,11 +3531,11 @@ public boolean destroyNetworkRulesForNic(final Connect conn, final String vmName
35303531
final StringBuilder sb = new StringBuilder();
35313532
if (nicSecIps != null) {
35323533
for (final String ip : nicSecIps) {
3533-
sb.append(ip).append(";");
3534+
sb.append(ip).append(SecurityGroupRulesCmd.RULE_COMMAND_SEPARATOR);
35343535
}
35353536
secIpsStr = sb.toString();
35363537
} else {
3537-
secIpsStr = "0;";
3538+
secIpsStr = "0" + SecurityGroupRulesCmd.RULE_COMMAND_SEPARATOR;
35383539
}
35393540
final List<InterfaceDef> intfs = getInterfaces(conn, vmName);
35403541
if (intfs.size() == 0 || intfs.size() < nic.getDeviceId()) {
@@ -3613,11 +3614,11 @@ public boolean applyDefaultNetworkRulesOnNic(final Connect conn, final String vm
36133614
final StringBuilder sb = new StringBuilder();
36143615
if (nicSecIps != null) {
36153616
for (final String ip : nicSecIps) {
3616-
sb.append(ip).append(";");
3617+
sb.append(ip).append(SecurityGroupRulesCmd.RULE_COMMAND_SEPARATOR);
36173618
}
36183619
secIpsStr = sb.toString();
36193620
} else {
3620-
secIpsStr = "0;";
3621+
secIpsStr = "0" + SecurityGroupRulesCmd.RULE_COMMAND_SEPARATOR;
36213622
}
36223623
return defaultNetworkRules(conn, vmName, nic, vmId, secIpsStr, isFirstNic, checkBeforeApply);
36233624
}

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)