diff --git a/api/src/com/cloud/network/PhysicalNetwork.java b/api/src/com/cloud/network/PhysicalNetwork.java index 7c9349d9327..a332a6aff38 100644 --- a/api/src/com/cloud/network/PhysicalNetwork.java +++ b/api/src/com/cloud/network/PhysicalNetwork.java @@ -16,12 +16,16 @@ // under the License. package com.cloud.network; -import java.util.List; - +import com.cloud.exception.CloudException; +import com.cloud.utils.Pair; +import com.cloud.utils.StringUtils; import org.apache.cloudstack.api.Identity; import org.apache.cloudstack.api.InternalIdentity; -import com.cloud.utils.Pair; +import java.util.HashSet; +import java.util.List; +import java.util.Objects; +import java.util.Set; /** * @@ -32,8 +36,101 @@ public interface PhysicalNetwork extends Identity, InternalIdentity { Disabled, Enabled; } - public enum IsolationMethod { - VLAN, L3, GRE, STT, VNS, MIDO, SSP, VXLAN, ODL, L3VPN, VSP, VCS; + public class IsolationMethod { + protected static final String UNKNOWN_PROVIDER = "Unknown"; + static Set registeredIsolationMethods = new HashSet<>(); + + String methodPrefix; + String provider; + + public IsolationMethod(String prfx) { + this(prfx, UNKNOWN_PROVIDER); + } + + public IsolationMethod(String prfx, String prvdr) { + methodPrefix = prfx; + provider = StringUtils.isNotBlank(prvdr)? prvdr : UNKNOWN_PROVIDER; + registeredIsolationMethods.add(this); + } + + /** + * gets a IsolationMethod object that defines this prefix and if any it returns the first one found that has a known provider. If none has a known provider + * it will return the one with the unknown provider. if none is found it return null. + * + * @param prfx + * @return + */ + public static IsolationMethod getIsolationMethod(String prfx) throws IsolationMethodNotRegistered { + IsolationMethod rc = null; + for (IsolationMethod method: registeredIsolationMethods) { + if (method.methodPrefix.equals(prfx)) { + rc = method; + if(! rc.provider.equals(UNKNOWN_PROVIDER)) { + break; + } + } + } + if (rc == null) { + throw new IsolationMethodNotRegistered("No registration of prefix '" + prfx + "' found."); + } + return rc; + } + + public static IsolationMethod getIsolationMethod(String prfx, String provider) throws IsolationMethodNotRegistered { + for (IsolationMethod method: registeredIsolationMethods) { + if (method.methodPrefix.equals(prfx) && method.provider.equals(provider)) { + return method; + } + } + throw new IsolationMethodNotRegistered("No registration of prefix '" + prfx + "' for provider '" + provider + "' found."); + } + + static class IsolationMethodNotRegistered extends CloudException { + IsolationMethodNotRegistered (String message) { + super(message); + } + } + + public String getMethodPrefix() { + return methodPrefix; + } + + public String getProvider() { + return provider; + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + IsolationMethod that = (IsolationMethod)o; + return Objects.equals(methodPrefix, that.methodPrefix) && Objects.equals(provider, that.provider); + } + + @Override + public int hashCode() { + return Objects.hash(methodPrefix, provider); + } + + @Override + public String toString() { + return methodPrefix; + } + + public static boolean remove(String prfx, String prvdr) { + prvdr = StringUtils.isNotBlank(prvdr)? prvdr : UNKNOWN_PROVIDER; + try { + return remove(getIsolationMethod(prfx, prvdr)); + } catch (IsolationMethodNotRegistered isolationMethodNotRegistered) { + return false; + } + } + + public static boolean remove(IsolationMethod method) { + return registeredIsolationMethods.remove(method); + } } public enum BroadcastDomainRange { diff --git a/api/test/com/cloud/network/IsolationMethodTest.java b/api/test/com/cloud/network/IsolationMethodTest.java new file mode 100644 index 00000000000..f7130fc8937 --- /dev/null +++ b/api/test/com/cloud/network/IsolationMethodTest.java @@ -0,0 +1,73 @@ +package com.cloud.network; + +import org.junit.After; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; + +public class IsolationMethodTest { + @After + public void cleanTheRegistry() { + PhysicalNetwork.IsolationMethod.registeredIsolationMethods.removeAll(PhysicalNetwork.IsolationMethod.registeredIsolationMethods); + } + + @Test + public void equalsTest() throws Exception { + PhysicalNetwork.IsolationMethod method = new PhysicalNetwork.IsolationMethod("bla"); + assertEquals(PhysicalNetwork.IsolationMethod.UNKNOWN_PROVIDER, method.provider); + assertEquals(new PhysicalNetwork.IsolationMethod("bla", PhysicalNetwork.IsolationMethod.UNKNOWN_PROVIDER), method); + } + + @Test + public void toStringTest() throws Exception { + PhysicalNetwork.IsolationMethod method = new PhysicalNetwork.IsolationMethod("bla", "blob"); + assertEquals("bla", method.toString()); + + } + + @Test + public void getGeneric() throws Exception { + PhysicalNetwork.IsolationMethod method = new PhysicalNetwork.IsolationMethod("bla", "blob"); + method = new PhysicalNetwork.IsolationMethod("bla"); + + assertEquals("blob",PhysicalNetwork.IsolationMethod.getIsolationMethod("bla").getProvider()); + } + + @Test + public void removeUnregistered() throws Exception { + assertFalse(PhysicalNetwork.IsolationMethod.remove("bla", "blob")); + } + + @Test + public void removeSuccesfulGeneric() throws Exception { + PhysicalNetwork.IsolationMethod method = new PhysicalNetwork.IsolationMethod("bla", "blob"); + method = new PhysicalNetwork.IsolationMethod("bla"); + + PhysicalNetwork.IsolationMethod.remove("bla", "blob"); + assertEquals(PhysicalNetwork.IsolationMethod.UNKNOWN_PROVIDER,PhysicalNetwork.IsolationMethod.getIsolationMethod("bla").getProvider()); + } + + @Test(expected= PhysicalNetwork.IsolationMethod.IsolationMethodNotRegistered.class) + public void removeSuccesfulSpecificByString() throws Exception { + PhysicalNetwork.IsolationMethod method = new PhysicalNetwork.IsolationMethod("bla", "blob"); + + PhysicalNetwork.IsolationMethod.remove("bla", "blob"); + PhysicalNetwork.IsolationMethod.getIsolationMethod("bla"); + } + + @Test(expected= PhysicalNetwork.IsolationMethod.IsolationMethodNotRegistered.class) + public void removeSuccesfulSpecificObject() throws Exception { + PhysicalNetwork.IsolationMethod method = new PhysicalNetwork.IsolationMethod("bla"); + + PhysicalNetwork.IsolationMethod.remove(method); + PhysicalNetwork.IsolationMethod.getIsolationMethod("bla"); + } + + @Test + public void getIsolationMethodTest() throws Exception { + PhysicalNetwork.IsolationMethod method = new PhysicalNetwork.IsolationMethod("bla"); + final PhysicalNetwork.IsolationMethod isolationMethod = PhysicalNetwork.IsolationMethod.getIsolationMethod("bla"); + assertEquals(method, isolationMethod); + } +} \ No newline at end of file diff --git a/plugins/network-elements/bigswitch-vns/src/com/cloud/network/guru/BigSwitchVnsGuestNetworkGuru.java b/plugins/network-elements/bigswitch-vns/src/com/cloud/network/guru/BigSwitchVnsGuestNetworkGuru.java index 9805144ef92..50f3451222a 100644 --- a/plugins/network-elements/bigswitch-vns/src/com/cloud/network/guru/BigSwitchVnsGuestNetworkGuru.java +++ b/plugins/network-elements/bigswitch-vns/src/com/cloud/network/guru/BigSwitchVnsGuestNetworkGuru.java @@ -19,15 +19,6 @@ package com.cloud.network.guru; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.List; - -import javax.ejb.Local; -import javax.inject.Inject; - -import org.apache.log4j.Logger; - import com.cloud.agent.AgentManager; import com.cloud.agent.api.CreateVnsNetworkAnswer; import com.cloud.agent.api.CreateVnsNetworkCommand; @@ -61,6 +52,13 @@ import com.cloud.user.dao.AccountDao; import com.cloud.vm.NicProfile; import com.cloud.vm.ReservationContext; import com.cloud.vm.VirtualMachineProfile; +import org.apache.log4j.Logger; + +import javax.ejb.Local; +import javax.inject.Inject; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.List; @Local(value = NetworkGuru.class) public class BigSwitchVnsGuestNetworkGuru extends GuestNetworkGuru { @@ -85,7 +83,7 @@ public class BigSwitchVnsGuestNetworkGuru extends GuestNetworkGuru { public BigSwitchVnsGuestNetworkGuru() { super(); - _isolationMethods = new IsolationMethod[] {IsolationMethod.VNS}; + _isolationMethods = new IsolationMethod[] {new IsolationMethod("VNS")}; } @Override diff --git a/plugins/network-elements/brocade-vcs/src/com/cloud/network/guru/BrocadeVcsGuestNetworkGuru.java b/plugins/network-elements/brocade-vcs/src/com/cloud/network/guru/BrocadeVcsGuestNetworkGuru.java index 92bf113f9a3..3547e8da7c6 100644 --- a/plugins/network-elements/brocade-vcs/src/com/cloud/network/guru/BrocadeVcsGuestNetworkGuru.java +++ b/plugins/network-elements/brocade-vcs/src/com/cloud/network/guru/BrocadeVcsGuestNetworkGuru.java @@ -16,13 +16,6 @@ // under the License. package com.cloud.network.guru; -import java.util.List; - -import javax.ejb.Local; -import javax.inject.Inject; - -import org.apache.log4j.Logger; - import com.cloud.agent.AgentManager; import com.cloud.agent.api.AssociateMacToNetworkAnswer; import com.cloud.agent.api.AssociateMacToNetworkCommand; @@ -62,6 +55,11 @@ import com.cloud.user.Account; import com.cloud.vm.NicProfile; import com.cloud.vm.ReservationContext; import com.cloud.vm.VirtualMachineProfile; +import org.apache.log4j.Logger; + +import javax.ejb.Local; +import javax.inject.Inject; +import java.util.List; @Local(value = NetworkGuru.class) public class BrocadeVcsGuestNetworkGuru extends GuestNetworkGuru { @@ -84,7 +82,7 @@ public class BrocadeVcsGuestNetworkGuru extends GuestNetworkGuru { public BrocadeVcsGuestNetworkGuru() { super(); - _isolationMethods = new IsolationMethod[] {IsolationMethod.VCS}; + _isolationMethods = new IsolationMethod[] {new IsolationMethod("VCS")}; } @Override diff --git a/plugins/network-elements/midonet/src/com/cloud/network/guru/MidoNetGuestNetworkGuru.java b/plugins/network-elements/midonet/src/com/cloud/network/guru/MidoNetGuestNetworkGuru.java index e24fa5c3ae8..14011edf306 100644 --- a/plugins/network-elements/midonet/src/com/cloud/network/guru/MidoNetGuestNetworkGuru.java +++ b/plugins/network-elements/midonet/src/com/cloud/network/guru/MidoNetGuestNetworkGuru.java @@ -19,12 +19,6 @@ package com.cloud.network.guru; -import javax.ejb.Local; -import javax.inject.Inject; - -import org.apache.log4j.Logger; -import org.springframework.stereotype.Component; - import com.cloud.dc.DataCenter.NetworkType; import com.cloud.deploy.DeployDestination; import com.cloud.deploy.DeploymentPlan; @@ -43,6 +37,11 @@ import com.cloud.user.dao.AccountDao; import com.cloud.vm.NicProfile; import com.cloud.vm.ReservationContext; import com.cloud.vm.VirtualMachineProfile; +import org.apache.log4j.Logger; +import org.springframework.stereotype.Component; + +import javax.ejb.Local; +import javax.inject.Inject; @Component @Local(value = NetworkGuru.class) @@ -54,7 +53,7 @@ public class MidoNetGuestNetworkGuru extends GuestNetworkGuru { public MidoNetGuestNetworkGuru() { super(); - _isolationMethods = new PhysicalNetwork.IsolationMethod[] {PhysicalNetwork.IsolationMethod.MIDO}; + _isolationMethods = new PhysicalNetwork.IsolationMethod[] {new PhysicalNetwork.IsolationMethod("MIDO")}; } @Override diff --git a/plugins/network-elements/nicira-nvp/src/com/cloud/network/guru/NiciraNvpGuestNetworkGuru.java b/plugins/network-elements/nicira-nvp/src/com/cloud/network/guru/NiciraNvpGuestNetworkGuru.java index 2845e9b8afa..7d46140aefb 100644 --- a/plugins/network-elements/nicira-nvp/src/com/cloud/network/guru/NiciraNvpGuestNetworkGuru.java +++ b/plugins/network-elements/nicira-nvp/src/com/cloud/network/guru/NiciraNvpGuestNetworkGuru.java @@ -19,15 +19,6 @@ package com.cloud.network.guru; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.List; - -import javax.ejb.Local; -import javax.inject.Inject; - -import org.apache.log4j.Logger; - import com.cloud.agent.AgentManager; import com.cloud.agent.api.CreateLogicalSwitchAnswer; import com.cloud.agent.api.CreateLogicalSwitchCommand; @@ -66,6 +57,13 @@ import com.cloud.user.dao.AccountDao; import com.cloud.vm.NicProfile; import com.cloud.vm.ReservationContext; import com.cloud.vm.VirtualMachineProfile; +import org.apache.log4j.Logger; + +import javax.ejb.Local; +import javax.inject.Inject; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.List; @Local(value = NetworkGuru.class) public class NiciraNvpGuestNetworkGuru extends GuestNetworkGuru { @@ -98,7 +96,7 @@ public class NiciraNvpGuestNetworkGuru extends GuestNetworkGuru { public NiciraNvpGuestNetworkGuru() { super(); - _isolationMethods = new IsolationMethod[] {IsolationMethod.STT}; + _isolationMethods = new IsolationMethod[] {new IsolationMethod("STT")}; } @Override diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/guru/NuageVspGuestNetworkGuru.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/guru/NuageVspGuestNetworkGuru.java index d9882eaa7b3..22f1ed47f99 100644 --- a/plugins/network-elements/nuage-vsp/src/com/cloud/network/guru/NuageVspGuestNetworkGuru.java +++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/guru/NuageVspGuestNetworkGuru.java @@ -106,7 +106,7 @@ public class NuageVspGuestNetworkGuru extends GuestNetworkGuru { public NuageVspGuestNetworkGuru() { super(); - _isolationMethods = new IsolationMethod[] {IsolationMethod.VSP}; + _isolationMethods = new IsolationMethod[] {new IsolationMethod("VSP")}; } @Override @@ -413,4 +413,4 @@ public class NuageVspGuestNetworkGuru extends GuestNetworkGuru { } return nuageVspHost; } -} \ No newline at end of file +} diff --git a/plugins/network-elements/opendaylight/src/main/java/org/apache/cloudstack/network/opendaylight/OpendaylightGuestNetworkGuru.java b/plugins/network-elements/opendaylight/src/main/java/org/apache/cloudstack/network/opendaylight/OpendaylightGuestNetworkGuru.java index 5dc0f449642..4d1c1c895b4 100644 --- a/plugins/network-elements/opendaylight/src/main/java/org/apache/cloudstack/network/opendaylight/OpendaylightGuestNetworkGuru.java +++ b/plugins/network-elements/opendaylight/src/main/java/org/apache/cloudstack/network/opendaylight/OpendaylightGuestNetworkGuru.java @@ -19,26 +19,6 @@ package org.apache.cloudstack.network.opendaylight; -import java.util.List; -import java.util.UUID; - -import javax.inject.Inject; - -import org.apache.log4j.Logger; - -import org.apache.cloudstack.network.opendaylight.agent.commands.AddHypervisorCommand; -import org.apache.cloudstack.network.opendaylight.agent.commands.ConfigureNetworkCommand; -import org.apache.cloudstack.network.opendaylight.agent.commands.ConfigurePortCommand; -import org.apache.cloudstack.network.opendaylight.agent.commands.DestroyNetworkCommand; -import org.apache.cloudstack.network.opendaylight.agent.commands.DestroyPortCommand; -import org.apache.cloudstack.network.opendaylight.agent.responses.AddHypervisorAnswer; -import org.apache.cloudstack.network.opendaylight.agent.responses.ConfigureNetworkAnswer; -import org.apache.cloudstack.network.opendaylight.agent.responses.ConfigurePortAnswer; -import org.apache.cloudstack.network.opendaylight.agent.responses.DestroyNetworkAnswer; -import org.apache.cloudstack.network.opendaylight.agent.responses.DestroyPortAnswer; -import org.apache.cloudstack.network.opendaylight.dao.OpenDaylightControllerMappingDao; -import org.apache.cloudstack.network.opendaylight.dao.OpenDaylightControllerVO; - import com.cloud.agent.AgentManager; import com.cloud.dc.DataCenter; import com.cloud.dc.DataCenter.NetworkType; @@ -68,6 +48,23 @@ import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.vm.NicProfile; import com.cloud.vm.ReservationContext; import com.cloud.vm.VirtualMachineProfile; +import org.apache.cloudstack.network.opendaylight.agent.commands.AddHypervisorCommand; +import org.apache.cloudstack.network.opendaylight.agent.commands.ConfigureNetworkCommand; +import org.apache.cloudstack.network.opendaylight.agent.commands.ConfigurePortCommand; +import org.apache.cloudstack.network.opendaylight.agent.commands.DestroyNetworkCommand; +import org.apache.cloudstack.network.opendaylight.agent.commands.DestroyPortCommand; +import org.apache.cloudstack.network.opendaylight.agent.responses.AddHypervisorAnswer; +import org.apache.cloudstack.network.opendaylight.agent.responses.ConfigureNetworkAnswer; +import org.apache.cloudstack.network.opendaylight.agent.responses.ConfigurePortAnswer; +import org.apache.cloudstack.network.opendaylight.agent.responses.DestroyNetworkAnswer; +import org.apache.cloudstack.network.opendaylight.agent.responses.DestroyPortAnswer; +import org.apache.cloudstack.network.opendaylight.dao.OpenDaylightControllerMappingDao; +import org.apache.cloudstack.network.opendaylight.dao.OpenDaylightControllerVO; +import org.apache.log4j.Logger; + +import javax.inject.Inject; +import java.util.List; +import java.util.UUID; public class OpendaylightGuestNetworkGuru extends GuestNetworkGuru { private static final Logger s_logger = Logger.getLogger(OpendaylightGuestNetworkGuru.class); @@ -86,7 +83,7 @@ public class OpendaylightGuestNetworkGuru extends GuestNetworkGuru { NetworkDao networkDao; public OpendaylightGuestNetworkGuru() { - _isolationMethods = new IsolationMethod[] {IsolationMethod.ODL}; + _isolationMethods = new IsolationMethod[] {new IsolationMethod("ODL")}; } @Override diff --git a/plugins/network-elements/ovs/src/com/cloud/network/guru/OvsGuestNetworkGuru.java b/plugins/network-elements/ovs/src/com/cloud/network/guru/OvsGuestNetworkGuru.java index be49757fc5f..29eece95d69 100644 --- a/plugins/network-elements/ovs/src/com/cloud/network/guru/OvsGuestNetworkGuru.java +++ b/plugins/network-elements/ovs/src/com/cloud/network/guru/OvsGuestNetworkGuru.java @@ -16,16 +16,6 @@ // under the License. package com.cloud.network.guru; -import com.cloud.network.vpc.VpcVO; -import com.cloud.network.vpc.dao.VpcDao; -import javax.ejb.Local; -import javax.inject.Inject; - -import org.apache.log4j.Logger; -import org.springframework.stereotype.Component; - -import org.apache.cloudstack.context.CallContext; - import com.cloud.dc.DataCenter; import com.cloud.dc.DataCenter.NetworkType; import com.cloud.deploy.DeployDestination; @@ -46,12 +36,20 @@ import com.cloud.network.PhysicalNetwork.IsolationMethod; import com.cloud.network.dao.NetworkVO; import com.cloud.network.dao.PhysicalNetworkVO; import com.cloud.network.ovs.OvsTunnelManager; +import com.cloud.network.vpc.VpcVO; +import com.cloud.network.vpc.dao.VpcDao; import com.cloud.offering.NetworkOffering; import com.cloud.offerings.dao.NetworkOfferingServiceMapDao; import com.cloud.user.Account; import com.cloud.vm.NicProfile; import com.cloud.vm.ReservationContext; import com.cloud.vm.VirtualMachineProfile; +import org.apache.cloudstack.context.CallContext; +import org.apache.log4j.Logger; +import org.springframework.stereotype.Component; + +import javax.ejb.Local; +import javax.inject.Inject; @Component @Local(value = NetworkGuru.class) @@ -68,8 +66,8 @@ public class OvsGuestNetworkGuru extends GuestNetworkGuru { OvsGuestNetworkGuru() { super(); - _isolationMethods = new IsolationMethod[] {IsolationMethod.GRE, - IsolationMethod.L3, IsolationMethod.VLAN}; + _isolationMethods = new IsolationMethod[] {new IsolationMethod("GRE"), + new IsolationMethod("L3"), new IsolationMethod("VLAN")}; } @Override diff --git a/plugins/network-elements/stratosphere-ssp/src/org/apache/cloudstack/network/guru/SspGuestNetworkGuru.java b/plugins/network-elements/stratosphere-ssp/src/org/apache/cloudstack/network/guru/SspGuestNetworkGuru.java index 7226873238b..56926b7c010 100644 --- a/plugins/network-elements/stratosphere-ssp/src/org/apache/cloudstack/network/guru/SspGuestNetworkGuru.java +++ b/plugins/network-elements/stratosphere-ssp/src/org/apache/cloudstack/network/guru/SspGuestNetworkGuru.java @@ -16,14 +16,6 @@ // under the License. package org.apache.cloudstack.network.guru; -import javax.ejb.Local; -import javax.inject.Inject; - -import org.apache.log4j.Logger; - -import org.apache.cloudstack.network.element.SspElement; -import org.apache.cloudstack.network.element.SspManager; - import com.cloud.dc.DataCenter.NetworkType; import com.cloud.deploy.DeployDestination; import com.cloud.exception.InsufficientAddressCapacityException; @@ -42,6 +34,12 @@ import com.cloud.vm.NicProfile; import com.cloud.vm.ReservationContext; import com.cloud.vm.ReservationContextImpl; import com.cloud.vm.VirtualMachineProfile; +import org.apache.cloudstack.network.element.SspElement; +import org.apache.cloudstack.network.element.SspManager; +import org.apache.log4j.Logger; + +import javax.ejb.Local; +import javax.inject.Inject; /** * Stratosphere SDN Platform NetworkGuru @@ -59,7 +57,7 @@ public class SspGuestNetworkGuru extends GuestNetworkGuru implements NetworkMigr public SspGuestNetworkGuru() { super(); - _isolationMethods = new IsolationMethod[] {IsolationMethod.SSP}; + _isolationMethods = new IsolationMethod[] {new IsolationMethod("SSP")}; } @Override diff --git a/plugins/network-elements/vxlan/src/com/cloud/network/guru/VxlanGuestNetworkGuru.java b/plugins/network-elements/vxlan/src/com/cloud/network/guru/VxlanGuestNetworkGuru.java index 0700ef8f3cf..266226bbe7f 100644 --- a/plugins/network-elements/vxlan/src/com/cloud/network/guru/VxlanGuestNetworkGuru.java +++ b/plugins/network-elements/vxlan/src/com/cloud/network/guru/VxlanGuestNetworkGuru.java @@ -16,13 +16,6 @@ // under the License. package com.cloud.network.guru; -import javax.ejb.Local; - -import org.apache.log4j.Logger; -import org.springframework.stereotype.Component; - -import org.apache.cloudstack.context.CallContext; - import com.cloud.dc.DataCenter; import com.cloud.dc.DataCenter.NetworkType; import com.cloud.deploy.DeployDestination; @@ -45,6 +38,11 @@ import com.cloud.user.Account; import com.cloud.vm.NicProfile; import com.cloud.vm.ReservationContext; import com.cloud.vm.VirtualMachineProfile; +import org.apache.cloudstack.context.CallContext; +import org.apache.log4j.Logger; +import org.springframework.stereotype.Component; + +import javax.ejb.Local; @Component @Local(value = NetworkGuru.class) @@ -53,7 +51,7 @@ public class VxlanGuestNetworkGuru extends GuestNetworkGuru { public VxlanGuestNetworkGuru() { super(); - _isolationMethods = new IsolationMethod[] {IsolationMethod.VXLAN}; + _isolationMethods = new IsolationMethod[] {new IsolationMethod("VXLAN")}; } @Override diff --git a/server/src/com/cloud/network/guru/ExternalGuestNetworkGuru.java b/server/src/com/cloud/network/guru/ExternalGuestNetworkGuru.java index 3524b770803..8f25381eef1 100644 --- a/server/src/com/cloud/network/guru/ExternalGuestNetworkGuru.java +++ b/server/src/com/cloud/network/guru/ExternalGuestNetworkGuru.java @@ -16,16 +16,6 @@ // under the License. package com.cloud.network.guru; -import java.util.List; - -import javax.ejb.Local; -import javax.inject.Inject; - -import org.apache.log4j.Logger; - -import org.apache.cloudstack.context.CallContext; -import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService; - import com.cloud.dc.DataCenter; import com.cloud.dc.DataCenter.NetworkType; import com.cloud.dc.dao.DataCenterDao; @@ -43,15 +33,15 @@ import com.cloud.network.Network.State; import com.cloud.network.Networks.BroadcastDomainType; import com.cloud.network.PhysicalNetwork; import com.cloud.network.PhysicalNetwork.IsolationMethod; +import com.cloud.network.dao.FirewallRulesCidrsDao; +import com.cloud.network.dao.FirewallRulesCidrsVO; +import com.cloud.network.dao.FirewallRulesDao; import com.cloud.network.dao.IPAddressDao; import com.cloud.network.dao.IPAddressVO; import com.cloud.network.dao.NetworkDao; import com.cloud.network.dao.NetworkVO; -import com.cloud.network.dao.FirewallRulesCidrsDao; -import com.cloud.network.dao.FirewallRulesDao; import com.cloud.network.rules.FirewallRule; import com.cloud.network.rules.FirewallRuleVO; -import com.cloud.network.dao.FirewallRulesCidrsVO; import com.cloud.network.rules.PortForwardingRuleVO; import com.cloud.network.rules.dao.PortForwardingRulesDao; import com.cloud.offering.NetworkOffering; @@ -65,6 +55,13 @@ import com.cloud.vm.NicProfile; import com.cloud.vm.NicVO; import com.cloud.vm.ReservationContext; import com.cloud.vm.VirtualMachineProfile; +import org.apache.cloudstack.context.CallContext; +import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService; +import org.apache.log4j.Logger; + +import javax.ejb.Local; +import javax.inject.Inject; +import java.util.List; @Local(value = NetworkGuru.class) public class ExternalGuestNetworkGuru extends GuestNetworkGuru { @@ -88,7 +85,7 @@ public class ExternalGuestNetworkGuru extends GuestNetworkGuru { public ExternalGuestNetworkGuru() { super(); - _isolationMethods = new IsolationMethod[] {IsolationMethod.GRE, IsolationMethod.L3, IsolationMethod.VLAN}; + _isolationMethods = new IsolationMethod[] {new IsolationMethod("GRE"), new IsolationMethod("L3"), new IsolationMethod("VLAN")}; } @Override