CLOUDSTACK-4346 replace URI getHost() and create(String) calls with BroadcastDomainType methods

This commit is contained in:
Daan Hoogland 2013-08-27 13:31:43 +02:00 committed by Daan Hoogland
parent f80ecfe4b0
commit d9c06e538b
26 changed files with 166 additions and 134 deletions

View File

@ -18,8 +18,6 @@
// Automatically generated by addcopyright.py at 01/29/2013
package com.cloud.baremetal.networkservice;
import java.net.URI;
import javax.ejb.Local;
import javax.inject.Inject;
@ -47,6 +45,7 @@ import com.cloud.network.Network;
import com.cloud.network.NetworkManager;
import com.cloud.network.Networks.AddressFormat;
import com.cloud.network.Networks.BroadcastDomainType;
import com.cloud.network.Networks.IsolationType;
import com.cloud.network.addr.PublicIp;
import com.cloud.network.dao.IPAddressDao;
import com.cloud.network.dao.IPAddressVO;
@ -163,8 +162,8 @@ public class BaremetaNetworkGuru extends DirectPodBasedNetworkGuru {
nic.setGateway(ip.getGateway());
nic.setNetmask(ip.getNetmask());
if (ip.getVlanTag() != null && ip.getVlanTag().equalsIgnoreCase(Vlan.UNTAGGED)) {
nic.setIsolationUri(URI.create("ec2://" + Vlan.UNTAGGED));
nic.setBroadcastUri(URI.create("vlan://" + Vlan.UNTAGGED));
nic.setIsolationUri(IsolationType.Ec2.toUri(Vlan.UNTAGGED));
nic.setBroadcastUri(BroadcastDomainType.Vlan.toUri(Vlan.UNTAGGED));
nic.setBroadcastType(BroadcastDomainType.Native);
}
nic.setReservationId(String.valueOf(ip.getVlanTag()));

View File

@ -19,23 +19,23 @@
package com.cloud.hypervisor.kvm.resource;
import java.io.File;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.naming.ConfigurationException;
import org.apache.log4j.Logger;
import org.libvirt.LibvirtException;
import com.cloud.agent.api.to.NicTO;
import com.cloud.agent.resource.virtualnetwork.VirtualRoutingResource;
import com.cloud.exception.InternalErrorException;
import com.cloud.network.Networks;
import com.cloud.utils.NumbersUtil;
import com.cloud.utils.net.NetUtils;
import com.cloud.utils.script.OutputInterpreter;
import com.cloud.utils.script.Script;
import org.apache.log4j.Logger;
import org.libvirt.LibvirtException;
import javax.naming.ConfigurationException;
import java.net.URI;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.io.File;
public class BridgeVifDriver extends VifDriverBase {
@ -87,8 +87,7 @@ public class BridgeVifDriver extends VifDriverBase {
String vlanId = null;
if (nic.getBroadcastType() == Networks.BroadcastDomainType.Vlan) {
URI broadcastUri = nic.getBroadcastUri();
vlanId = broadcastUri.getHost();
vlanId = Networks.BroadcastDomainType.getValue(nic.getBroadcastUri());
}
else if (nic.getBroadcastType() == Networks.BroadcastDomainType.Lswitch) {
throw new InternalErrorException("Nicira NVP Logicalswitches are not supported by the BridgeVifDriver");

View File

@ -27,6 +27,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.net.URLConnection;
@ -1727,8 +1728,9 @@ ServerResource {
if (vlanId == null) {
nicTO.setBroadcastType(BroadcastDomainType.Native);
} else {
nicTO.setBroadcastType(BroadcastDomainType.Vlan);
nicTO.setBroadcastUri(BroadcastDomainType.Vlan.toUri(vlanId));
URI uri = BroadcastDomainType.fromString(vlanId);
nicTO.setBroadcastType(BroadcastDomainType.getSchemeValue(uri));
nicTO.setBroadcastUri(uri);
}
Domain vm = getDomain(conn, vmName);
@ -1815,7 +1817,7 @@ ServerResource {
String routerGIP = cmd.getAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP);
String routerName = cmd.getAccessDetail(NetworkElementCommand.ROUTER_NAME);
String gateway = cmd.getAccessDetail(NetworkElementCommand.GUEST_NETWORK_GATEWAY);
String cidr = Long.toString(NetUtils.getCidrSize(nic.getNetmask()));;
String cidr = Long.toString(NetUtils.getCidrSize(nic.getNetmask()));
String domainName = cmd.getNetworkDomain();
String dns = cmd.getDefaultDns1();

View File

@ -18,7 +18,6 @@
*/
package com.cloud.hypervisor.kvm.resource;
import java.net.URI;
import java.util.Map;
import javax.naming.ConfigurationException;
@ -65,12 +64,12 @@ public class OvsVifDriver extends VifDriverBase {
String vlanId = null;
String logicalSwitchUuid = null;
if (nic.getBroadcastType() == Networks.BroadcastDomainType.Vlan) {
URI broadcastUri = nic.getBroadcastUri();
vlanId = broadcastUri.getHost();
vlanId = Networks.BroadcastDomainType.getValue(nic.getBroadcastUri());
}
else if (nic.getBroadcastType() == Networks.BroadcastDomainType.Lswitch) {
logicalSwitchUuid = nic.getBroadcastUri().getSchemeSpecificPart();
logicalSwitchUuid = Networks.BroadcastDomainType.getValue(nic.getBroadcastUri());
} else if (nic.getBroadcastType() == Networks.BroadcastDomainType.Pvlan) {
// TODO consider moving some of this functionality from NetUtils to Networks....
vlanId = NetUtils.getPrimaryPvlanFromUri(nic.getBroadcastUri());
}
String trafficLabel = nic.getName();

View File

@ -591,8 +591,7 @@ public class OvmResourceBase implements ServerResource, HypervisorResource {
String vlanId = null;
String bridgeName = null;
if (nic.getBroadcastType() == BroadcastDomainType.Vlan) {
URI broadcastUri = nic.getBroadcastUri();
vlanId = broadcastUri.getHost();
vlanId = BroadcastDomainType.getValue(nic.getBroadcastUri());
}
if (nic.getType() == TrafficType.Guest) {

View File

@ -1635,7 +1635,7 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa
NicTO nicTo = cmd.getNic();
VirtualDevice nic;
Pair<ManagedObjectReference, String> networkInfo = prepareNetworkFromNicInfo(vmMo.getRunningHost(), nicTo, false, cmd.getVMType());;
Pair<ManagedObjectReference, String> networkInfo = prepareNetworkFromNicInfo(vmMo.getRunningHost(), nicTo, false, cmd.getVMType());
if (VmwareHelper.isDvPortGroup(networkInfo.first())) {
String dvSwitchUuid;
ManagedObjectReference dcMor = hyperHost.getHyperHostDatacenter();
@ -3181,9 +3181,11 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa
if (nicTo.getBroadcastUri() != null) {
if (nicTo.getBroadcastType() == BroadcastDomainType.Vlan)
// For vlan, the broadcast uri is of the form vlan://<vlanid>
return nicTo.getBroadcastUri().getHost();
// BroadcastDomainType recogniizes and handles this.
return BroadcastDomainType.getValue(nicTo.getBroadcastUri());
else
// for pvlan, the broacast uri will be of the form pvlan://<vlanid>-i<pvlanid>
// TODO consider the spread of functionality between BroadcastDomainType and NetUtils
return NetUtils.getPrimaryPvlanFromUri(nicTo.getBroadcastUri());
} else {
s_logger.warn("BroadcastType is not claimed as VLAN or PVLAN, but without vlan info in broadcast URI. Use vlan info from labeling: " + defaultVlan);

View File

@ -1027,40 +1027,39 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
s_logger.error("Network is not configured on the backend for nic " + nic.toString());
throw new CloudRuntimeException("Network for the backend is not configured correctly for network broadcast domain: " + nic.getBroadcastUri());
}
if (nic.getBroadcastUri() != null && nic.getBroadcastUri().toString().contains("untagged")) {
URI uri = nic.getBroadcastUri();
BroadcastDomainType type = nic.getBroadcastType();
if (uri != null && uri.toString().contains("untagged")) {
return network.getNetwork();
} else if (nic.getBroadcastType() == BroadcastDomainType.Vlan) {
URI broadcastUri = nic.getBroadcastUri();
assert broadcastUri.getScheme().equals(BroadcastDomainType.Vlan.scheme());
long vlan = Long.parseLong(broadcastUri.getHost());
} else if (type == BroadcastDomainType.Vlan) {
assert (BroadcastDomainType.getSchemeValue(uri) == BroadcastDomainType.Vlan);
long vlan = Long.parseLong(BroadcastDomainType.getValue(uri));
return enableVlanNetwork(conn, vlan, network);
} else if (nic.getBroadcastType() == BroadcastDomainType.Native || nic.getBroadcastType() == BroadcastDomainType.LinkLocal) {
} else if (type == BroadcastDomainType.Native || type == BroadcastDomainType.LinkLocal) {
return network.getNetwork();
} else if (nic.getBroadcastType() == BroadcastDomainType.Vswitch) {
String broadcastUri = nic.getBroadcastUri().toString();
String header = broadcastUri.substring(Networks.BroadcastDomainType.Vswitch.scheme().length() + "://".length());
} else if (type == BroadcastDomainType.Vswitch) {
String header = uri.toString().substring(Networks.BroadcastDomainType.Vswitch.scheme().length() + "://".length());
if (header.startsWith("vlan")) {
_isOvs = true;
return setupvSwitchNetwork(conn);
} else {
long vnetId = Long.parseLong(nic.getBroadcastUri().getHost());
long vnetId = Long.parseLong(BroadcastDomainType.getValue(uri));
return findOrCreateTunnelNetwork(conn, vnetId);
}
} else if (nic.getBroadcastType() == BroadcastDomainType.Storage) {
URI broadcastUri = nic.getBroadcastUri();
if (broadcastUri == null) {
} else if (type == BroadcastDomainType.Storage) {
if (uri == null) {
return network.getNetwork();
} else {
long vlan = Long.parseLong(broadcastUri.getHost());
long vlan = Long.parseLong(BroadcastDomainType.getValue(uri));
return enableVlanNetwork(conn, vlan, network);
}
} else if (nic.getBroadcastType() == BroadcastDomainType.Lswitch) {
} else if (type == BroadcastDomainType.Lswitch) {
// Nicira Logical Switch
return network.getNetwork();
} else if (nic.getBroadcastType() == BroadcastDomainType.Pvlan) {
URI broadcastUri = nic.getBroadcastUri();
assert broadcastUri.getScheme().equals(BroadcastDomainType.Pvlan.scheme());
long vlan = Long.parseLong(NetUtils.getPrimaryPvlanFromUri(broadcastUri));
} else if (type == BroadcastDomainType.Pvlan) {
assert BroadcastDomainType.getSchemeValue(uri) == BroadcastDomainType.Pvlan;
// TODO considder moving this NetUtils method to BroadcastDomainType
long vlan = Long.parseLong(NetUtils.getPrimaryPvlanFromUri(uri));
return enableVlanNetwork(conn, vlan, network);
}
@ -1639,7 +1638,7 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
// TODO(Salvatore-orlando): This code should go
for (NicTO nic : vmSpec.getNics()) {
if (nic.getBroadcastType() == Networks.BroadcastDomainType.Vswitch) {
HashMap<String, String> args = parseDefaultOvsRuleComamnd(nic.getBroadcastUri().toString().substring(Networks.BroadcastDomainType.Vswitch.scheme().length() + "://".length()));
HashMap<String, String> args = parseDefaultOvsRuleComamnd(BroadcastDomainType.getValue(nic.getBroadcastUri()));
OvsSetTagAndFlowCommand flowCmd = new OvsSetTagAndFlowCommand(args.get("vmName"), args.get("tag"), args.get("vlans"),
args.get("seqno"), Long.parseLong(args.get("vmId")));
OvsSetTagAndFlowAnswer r = execute(flowCmd);
@ -2273,8 +2272,9 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
if (vlanId == null) {
nic.setBroadcastType(BroadcastDomainType.Native);
} else {
nic.setBroadcastType(BroadcastDomainType.Vlan);
nic.setBroadcastUri(BroadcastDomainType.Vlan.toUri(vlanId));
URI uri = BroadcastDomainType.fromString(vlanId);
nic.setBroadcastType(BroadcastDomainType.getSchemeValue(uri));
nic.setBroadcastUri(uri);
}
nic.setDeviceId(0);
nic.setNetworkRateMbps(networkRate);
@ -4215,8 +4215,9 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
if (ip.getVlanId() == null) {
nic.setBroadcastType(BroadcastDomainType.Native);
} else {
nic.setBroadcastType(BroadcastDomainType.Vlan);
nic.setBroadcastUri(BroadcastDomainType.Vlan.toUri(ip.getVlanId()));
URI uri = BroadcastDomainType.fromString(ip.getVlanId());
nic.setBroadcastType(BroadcastDomainType.getSchemeValue(uri));
nic.setBroadcastUri(uri);
}
Network network = getNetwork(conn, nic);
// Determine the correct VIF on DomR to associate/disassociate the
@ -8216,7 +8217,7 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
String domrGIP = cmd.getAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP);
String domrName = cmd.getAccessDetail(NetworkElementCommand.ROUTER_NAME);
String gw = cmd.getAccessDetail(NetworkElementCommand.GUEST_NETWORK_GATEWAY);
String cidr = Long.toString(NetUtils.getCidrSize(nic.getNetmask()));;
String cidr = Long.toString(NetUtils.getCidrSize(nic.getNetmask()));
String domainName = cmd.getNetworkDomain();
String dns = cmd.getDefaultDns1();
if (dns == null || dns.isEmpty()) {

View File

@ -27,8 +27,10 @@ import javax.ejb.Local;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
import org.apache.cloudstack.network.ExternalNetworkDeviceManager.NetworkDevice;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import org.apache.cloudstack.network.ExternalNetworkDeviceManager.NetworkDevice;
import com.cloud.agent.AgentManager;
import com.cloud.agent.api.CreateVnsPortAnswer;
@ -85,14 +87,12 @@ import com.cloud.utils.db.Transaction;
import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.vm.NicProfile;
import com.cloud.vm.ReservationContext;
import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineProfile;
import org.springframework.stereotype.Component;
@Component
@Local(value = {NetworkElement.class, ConnectivityProvider.class})
public class BigSwitchVnsElement extends AdapterBase implements
BigSwitchVnsElementService, ConnectivityProvider, ResourceStateAdapter {
BigSwitchVnsElementService, ConnectivityProvider, ResourceStateAdapter {
private static final Logger s_logger = Logger.getLogger(BigSwitchVnsElement.class);
private static final Map<Service, Map<Capability, String>> capabilities = setCapabilities();
@ -134,7 +134,7 @@ public class BigSwitchVnsElement extends AdapterBase implements
private boolean canHandle(Network network, Service service) {
s_logger.debug("Checking if BigSwitchVnsElement can handle service "
+ service.getName() + " on network " + network.getDisplayText());
+ service.getName() + " on network " + network.getDisplayText());
if (network.getBroadcastDomainType() != BroadcastDomainType.Lswitch) {
return false;
}
@ -210,12 +210,12 @@ public class BigSwitchVnsElement extends AdapterBase implements
HostVO bigswitchVnsHost = _hostDao.findById(bigswitchVnsDevice.getHostId());
CreateVnsPortCommand cmd = new CreateVnsPortCommand(
network.getBroadcastUri().getSchemeSpecificPart(),
BroadcastDomainType.getValue(network.getBroadcastUri()),
vm.getUuid(),
tenantId,
nic.getName(),
mac);
CreateVnsPortAnswer answer = (CreateVnsPortAnswer) _agentMgr
CreateVnsPortAnswer answer = (CreateVnsPortAnswer)_agentMgr
.easySend(bigswitchVnsHost.getId(), cmd);
if (answer == null || !answer.getResult()) {
@ -254,10 +254,10 @@ public class BigSwitchVnsElement extends AdapterBase implements
HostVO bigswitchVnsHost = _hostDao.findById(bigswitchVnsDevice.getHostId());
DeleteVnsPortCommand cmd = new DeleteVnsPortCommand(
network.getBroadcastUri().getSchemeSpecificPart(),
BroadcastDomainType.getValue(network.getBroadcastUri()),
vm.getUuid(),
tenantId);
DeleteVnsPortAnswer answer = (DeleteVnsPortAnswer) _agentMgr
DeleteVnsPortAnswer answer = (DeleteVnsPortAnswer)_agentMgr
.easySend(bigswitchVnsHost.getId(), cmd);
if (answer == null || !answer.getResult()) {
@ -420,7 +420,7 @@ public class BigSwitchVnsElement extends AdapterBase implements
if (pnw != null) {
response.setPhysicalNetworkId(pnw.getUuid());
}
response.setId(bigswitchVnsDeviceVO.getUuid());
response.setId(bigswitchVnsDeviceVO.getUuid());
response.setProviderName(bigswitchVnsDeviceVO.getProviderName());
response.setHostName(bigswitchVnsHost.getDetail("ip"));
response.setObjectName("bigswitchvnsdevice");
@ -452,7 +452,7 @@ public class BigSwitchVnsElement extends AdapterBase implements
&& (network.getState() != Network.State.Destroy)) {
throw new CloudRuntimeException(
"This BigSwitch Controller device can not be deleted as there are one or more " +
"logical networks provisioned by cloudstack.");
"logical networks provisioned by cloudstack.");
}
}
}
@ -533,13 +533,13 @@ public class BigSwitchVnsElement extends AdapterBase implements
return new DeleteHostAnswer(true);
}
@Override
public List<Class<?>> getCommands() {
List<Class<?>> cmdList = new ArrayList<Class<?>>();
@Override
public List<Class<?>> getCommands() {
List<Class<?>> cmdList = new ArrayList<Class<?>>();
cmdList.add(AddBigSwitchVnsDeviceCmd.class);
cmdList.add(DeleteBigSwitchVnsDeviceCmd.class);
cmdList.add(ListBigSwitchVnsDevicesCmd.class);
return cmdList;
}
}
}

View File

@ -342,8 +342,7 @@ public class CiscoVnmcElement extends AdapterBase implements SourceNatServicePro
_hostDao.loadDetails(ciscoVnmcHost);
Account owner = context.getAccount();
PublicIp sourceNatIp = _ipAddrMgr.assignSourceNatIpAddressToGuestNetwork(owner, network);
String vlan = network.getBroadcastUri().getHost();
long vlanId = Long.parseLong(vlan);
long vlanId = Long.parseLong(BroadcastDomainType.getValue(network.getBroadcastUri()));
List<VlanVO> vlanVOList = _vlanDao.listVlansByPhysicalNetworkId(network.getPhysicalNetworkId());
List<String> publicGateways = new ArrayList<String>();
@ -465,8 +464,7 @@ public class CiscoVnmcElement extends AdapterBase implements SourceNatServicePro
unassignAsa1000vFromNetwork(network);
String vlan = network.getBroadcastUri().getHost();
long vlanId = Long.parseLong(vlan);
long vlanId = Long.parseLong(BroadcastDomainType.getValue(network.getBroadcastUri()));
List<CiscoVnmcControllerVO> devices = _ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId());
if (!devices.isEmpty()) {
CiscoVnmcControllerVO ciscoVnmcDevice = devices.get(0);
@ -709,7 +707,7 @@ public class CiscoVnmcElement extends AdapterBase implements SourceNatServicePro
if (!rulesTO.isEmpty()) {
SetFirewallRulesCommand cmd = new SetFirewallRulesCommand(rulesTO);
cmd.setContextParam(NetworkElementCommand.GUEST_VLAN_TAG, network.getBroadcastUri().getHost());
cmd.setContextParam(NetworkElementCommand.GUEST_VLAN_TAG, BroadcastDomainType.getValue(network.getBroadcastUri()));
cmd.setContextParam(NetworkElementCommand.GUEST_NETWORK_CIDR, network.getCidr());
Answer answer = _agentMgr.easySend(ciscoVnmcHost.getId(), cmd);
if (answer == null || !answer.getResult()) {
@ -764,7 +762,7 @@ public class CiscoVnmcElement extends AdapterBase implements SourceNatServicePro
if (!rulesTO.isEmpty()) {
SetPortForwardingRulesCommand cmd = new SetPortForwardingRulesCommand(rulesTO);
cmd.setContextParam(NetworkElementCommand.GUEST_VLAN_TAG, network.getBroadcastUri().getHost());
cmd.setContextParam(NetworkElementCommand.GUEST_VLAN_TAG, BroadcastDomainType.getValue(network.getBroadcastUri()));
cmd.setContextParam(NetworkElementCommand.GUEST_NETWORK_CIDR, network.getCidr());
Answer answer = _agentMgr.easySend(ciscoVnmcHost.getId(), cmd);
if (answer == null || !answer.getResult()) {
@ -819,7 +817,7 @@ public class CiscoVnmcElement extends AdapterBase implements SourceNatServicePro
if (!rulesTO.isEmpty()) {
SetStaticNatRulesCommand cmd = new SetStaticNatRulesCommand(rulesTO, null);
cmd.setContextParam(NetworkElementCommand.GUEST_VLAN_TAG, network.getBroadcastUri().getHost());
cmd.setContextParam(NetworkElementCommand.GUEST_VLAN_TAG, BroadcastDomainType.getValue(network.getBroadcastUri()));
cmd.setContextParam(NetworkElementCommand.GUEST_NETWORK_CIDR, network.getCidr());
Answer answer = _agentMgr.easySend(ciscoVnmcHost.getId(), cmd);
if (answer == null || !answer.getResult()) {

View File

@ -294,6 +294,7 @@ public class F5BigIpResource implements ServerResource {
try {
IpAddressTO[] ips = cmd.getIpAddresses();
for (IpAddressTO ip : ips) {
// TODO BroadcastDomain.getValue(ip.getVlanId) ???
long guestVlanTag = Long.valueOf(ip.getVlanId());
// It's a hack, using isOneToOneNat field for indicate if it's inline or not
boolean inline = ip.isOneToOneNat();

View File

@ -693,6 +693,7 @@ public class JuniperSrxResource implements ServerResource {
Long publicVlanTag = null;
if (ip.getVlanId() != null && !ip.getVlanId().equals("untagged")) {
try {
// TODO BroadcastDomain.getValue(ip.getVlanId) ???
publicVlanTag = Long.parseLong(ip.getVlanId());
} catch (Exception e) {
throw new ExecutionException("Could not parse public VLAN tag: " + ip.getVlanId());

View File

@ -273,7 +273,7 @@ NiciraNvpElementService, ResourceStateAdapter, IpDeployer {
CreateLogicalRouterCommand cmd = new CreateLogicalRouterCommand(
niciraNvpHost.getDetail("l3gatewayserviceuuid"), vlanid,
network.getBroadcastUri().getSchemeSpecificPart(),
BroadcastDomainType.getValue(network.getBroadcastUri()),
"router-" + network.getDisplayText(), publicCidr,
sourceNatIp.getGateway(), internalCidr, context
.getDomain().getName()
@ -339,8 +339,8 @@ NiciraNvpElementService, ResourceStateAdapter, IpDeployer {
+ nic.getName() + " with uuid "
+ existingNicMap.getLogicalSwitchPortUuid());
UpdateLogicalSwitchPortCommand cmd = new UpdateLogicalSwitchPortCommand(
existingNicMap.getLogicalSwitchPortUuid(), network
.getBroadcastUri().getSchemeSpecificPart(),
existingNicMap.getLogicalSwitchPortUuid(),
BroadcastDomainType.getValue(network.getBroadcastUri()),
nicVO.getUuid(), context.getDomain().getName() + "-"
+ context.getAccount().getAccountName(),
nic.getName());
@ -355,7 +355,7 @@ NiciraNvpElementService, ResourceStateAdapter, IpDeployer {
}
CreateLogicalSwitchPortCommand cmd = new CreateLogicalSwitchPortCommand(
network.getBroadcastUri().getSchemeSpecificPart(),
BroadcastDomainType.getValue(network.getBroadcastUri()),
nicVO.getUuid(), context.getDomain().getName() + "-"
+ context.getAccount().getAccountName(), nic.getName());
CreateLogicalSwitchPortAnswer answer = (CreateLogicalSwitchPortAnswer) _agentMgr
@ -366,8 +366,7 @@ NiciraNvpElementService, ResourceStateAdapter, IpDeployer {
return false;
}
NiciraNvpNicMappingVO nicMap = new NiciraNvpNicMappingVO(network
.getBroadcastUri().getSchemeSpecificPart(),
NiciraNvpNicMappingVO nicMap = new NiciraNvpNicMappingVO(BroadcastDomainType.getValue(network.getBroadcastUri()),
answer.getLogicalSwitchPortUuid(), nicVO.getUuid());
_niciraNvpNicMappingDao.persist(nicMap);

View File

@ -245,7 +245,7 @@ public class NiciraNvpGuestNetworkGuru extends GuestNetworkGuru {
NiciraNvpDeviceVO niciraNvpDevice = devices.get(0);
HostVO niciraNvpHost = _hostDao.findById(niciraNvpDevice.getHostId());
DeleteLogicalSwitchCommand cmd = new DeleteLogicalSwitchCommand(networkObject.getBroadcastUri().getSchemeSpecificPart());
DeleteLogicalSwitchCommand cmd = new DeleteLogicalSwitchCommand(BroadcastDomainType.getValue(networkObject.getBroadcastUri()));
DeleteLogicalSwitchAnswer answer = (DeleteLogicalSwitchAnswer) _agentMgr.easySend(niciraNvpHost.getId(), cmd);
if (answer == null || !answer.getResult()) {

View File

@ -45,6 +45,7 @@ import com.cloud.host.HostVO;
import com.cloud.host.dao.HostDao;
import com.cloud.hypervisor.Hypervisor.HypervisorType;
import com.cloud.network.Network;
import com.cloud.network.Networks.BroadcastDomainType;
import com.cloud.network.Networks.TrafficType;
import com.cloud.network.PhysicalNetworkTrafficType;
import com.cloud.network.dao.PhysicalNetworkTrafficTypeDao;
@ -240,9 +241,12 @@ public class OvsTunnelManagerImpl extends ManagerBase implements OvsTunnelManage
int key = 0;
try {
//The GRE key is actually in the host part of the URI
String keyStr = network.getBroadcastUri().getHost();
// The key is most certainly and int.
// So we feel quite safe in converting it into a string
// this is not true for lswitch/NiciraNvp!
String keyStr = BroadcastDomainType.getValue(network.getBroadcastUri());
// The key is most certainly and int if network is a vlan.
// !! not in the case of lswitch/pvlan/(possibly)vswitch
// So we now feel quite safe in converting it into a string
// by calling the appropriate BroadcastDomainType method
key = Integer.valueOf(keyStr);
return key;
} catch (NumberFormatException e) {

View File

@ -199,6 +199,7 @@ import com.cloud.network.Network.Provider;
import com.cloud.network.Network.Service;
import com.cloud.network.NetworkModel;
import com.cloud.network.NetworkProfile;
import com.cloud.network.Networks.BroadcastDomainType;
import com.cloud.network.Networks.IsolationType;
import com.cloud.network.Networks.TrafficType;
import com.cloud.network.PhysicalNetwork;
@ -2180,8 +2181,8 @@ public class ApiResponseHelper implements ResponseGenerator {
String broadcastUri = network.getBroadcastUri().toString();
response.setBroadcastUri(broadcastUri);
String vlan = "N/A";
if (broadcastUri.startsWith("vlan")) {
vlan = broadcastUri.substring("vlan://".length(), broadcastUri.length());
if (BroadcastDomainType.Vlan.scheme().equals(BroadcastDomainType.getSchemeValue(network.getBroadcastUri()))) {
vlan = BroadcastDomainType.getValue(network.getBroadcastUri());
}
// return vlan information only to Root admin
response.setVlan(vlan);

View File

@ -46,6 +46,7 @@ import com.cloud.host.Host;
import com.cloud.host.HostVO;
import com.cloud.host.dao.HostDao;
import com.cloud.host.dao.HostDetailsDao;
import com.cloud.network.Networks.BroadcastDomainType;
import com.cloud.network.dao.ExternalFirewallDeviceDao;
import com.cloud.network.dao.ExternalFirewallDeviceVO;
import com.cloud.network.dao.ExternalLoadBalancerDeviceDao;
@ -554,7 +555,7 @@ public class ExternalDeviceUsageManagerImpl extends ManagerBase implements Exter
s_logger.debug("Not updating stats for guest network with ID " + network.getId() + " because the network is not implemented.");
return true;
} else {
long vlanTag = Integer.parseInt(broadcastURI.getHost());
long vlanTag = Integer.parseInt(BroadcastDomainType.getValue(broadcastURI));
long[] bytesSentAndReceived = answer.guestVlanBytes.get(String.valueOf(vlanTag));
if (bytesSentAndReceived == null) {

View File

@ -6,7 +6,7 @@
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
@ -26,18 +26,13 @@ import java.util.Map;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
import com.cloud.network.dao.*;
import com.cloud.offerings.NetworkOfferingVO;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.response.ExternalFirewallResponse;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
import org.apache.cloudstack.network.ExternalNetworkDeviceManager.NetworkDevice;
import com.cloud.utils.Pair;
import org.apache.log4j.Logger;
import com.cloud.agent.AgentManager;
import com.cloud.agent.api.Answer;
import com.cloud.agent.api.StartupCommand;
@ -69,7 +64,26 @@ import com.cloud.host.Host;
import com.cloud.host.HostVO;
import com.cloud.host.dao.HostDao;
import com.cloud.host.dao.HostDetailsDao;
import com.cloud.network.Networks.BroadcastDomainType;
import com.cloud.network.Networks.TrafficType;
import com.cloud.network.dao.ExternalFirewallDeviceDao;
import com.cloud.network.dao.ExternalFirewallDeviceVO;
import com.cloud.network.dao.FirewallRulesDao;
import com.cloud.network.dao.IPAddressDao;
import com.cloud.network.dao.IPAddressVO;
import com.cloud.network.dao.InlineLoadBalancerNicMapDao;
import com.cloud.network.dao.InlineLoadBalancerNicMapVO;
import com.cloud.network.dao.LoadBalancerDao;
import com.cloud.network.dao.NetworkDao;
import com.cloud.network.dao.NetworkExternalFirewallDao;
import com.cloud.network.dao.NetworkExternalFirewallVO;
import com.cloud.network.dao.NetworkServiceMapDao;
import com.cloud.network.dao.NetworkVO;
import com.cloud.network.dao.PhysicalNetworkDao;
import com.cloud.network.dao.PhysicalNetworkServiceProviderDao;
import com.cloud.network.dao.PhysicalNetworkServiceProviderVO;
import com.cloud.network.dao.PhysicalNetworkVO;
import com.cloud.network.dao.VpnUserDao;
import com.cloud.network.rules.FirewallRule;
import com.cloud.network.rules.FirewallRule.Purpose;
import com.cloud.network.rules.FirewallRuleVO;
@ -77,6 +91,7 @@ import com.cloud.network.rules.PortForwardingRule;
import com.cloud.network.rules.StaticNat;
import com.cloud.network.rules.dao.PortForwardingRulesDao;
import com.cloud.offering.NetworkOffering;
import com.cloud.offerings.NetworkOfferingVO;
import com.cloud.offerings.dao.NetworkOfferingDao;
import com.cloud.resource.ResourceManager;
import com.cloud.resource.ResourceState;
@ -88,6 +103,7 @@ import com.cloud.user.AccountManager;
import com.cloud.user.dao.AccountDao;
import com.cloud.user.dao.UserStatisticsDao;
import com.cloud.utils.NumbersUtil;
import com.cloud.utils.Pair;
import com.cloud.utils.component.AdapterBase;
import com.cloud.utils.db.DB;
import com.cloud.utils.db.GlobalLock;
@ -95,8 +111,8 @@ import com.cloud.utils.db.Transaction;
import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.net.NetUtils;
import com.cloud.utils.net.UrlUtil;
import com.cloud.vm.NicVO;
import com.cloud.vm.Nic.ReservationStrategy;
import com.cloud.vm.NicVO;
import com.cloud.vm.dao.DomainRouterDao;
import com.cloud.vm.dao.NicDao;
@ -162,10 +178,10 @@ public abstract class ExternalFirewallDeviceManagerImpl extends AdapterBase impl
PhysicalNetworkServiceProviderVO ntwkSvcProvider = _physicalNetworkServiceProviderDao.findByServiceProvider(pNetwork.getId(), ntwkDevice.getNetworkServiceProvder());
if (ntwkSvcProvider == null ) {
throw new CloudRuntimeException("Network Service Provider: " + ntwkDevice.getNetworkServiceProvder() +
throw new CloudRuntimeException("Network Service Provider: " + ntwkDevice.getNetworkServiceProvder() +
" is not enabled in the physical network: " + physicalNetworkId + "to add this device" );
} else if (ntwkSvcProvider.getState() == PhysicalNetworkServiceProvider.State.Shutdown) {
throw new CloudRuntimeException("Network Service Provider: " + ntwkSvcProvider.getProviderName() +
throw new CloudRuntimeException("Network Service Provider: " + ntwkSvcProvider.getProviderName() +
" is not added or in shutdown state in the physical network: " + physicalNetworkId + "to add this device" );
}
@ -205,12 +221,12 @@ public abstract class ExternalFirewallDeviceManagerImpl extends AdapterBase impl
txn.start();
boolean dedicatedUse = (configParams.get(ApiConstants.FIREWALL_DEVICE_DEDICATED) != null) ? Boolean.parseBoolean(configParams.get(ApiConstants.FIREWALL_DEVICE_DEDICATED)) : false;
long capacity = NumbersUtil.parseLong((String)configParams.get(ApiConstants.FIREWALL_DEVICE_CAPACITY), 0);
long capacity = NumbersUtil.parseLong(configParams.get(ApiConstants.FIREWALL_DEVICE_CAPACITY), 0);
if (capacity == 0) {
capacity = _defaultFwCapacity;
}
ExternalFirewallDeviceVO fwDevice = new ExternalFirewallDeviceVO(externalFirewall.getId(), pNetwork.getId(), ntwkSvcProvider.getProviderName(),
ExternalFirewallDeviceVO fwDevice = new ExternalFirewallDeviceVO(externalFirewall.getId(), pNetwork.getId(), ntwkSvcProvider.getProviderName(),
deviceName, capacity, dedicatedUse);
_externalFirewallDeviceDao.persist(fwDevice);
@ -273,7 +289,7 @@ public abstract class ExternalFirewallDeviceManagerImpl extends AdapterBase impl
PhysicalNetworkServiceProviderVO ntwkSvcProvider = _physicalNetworkServiceProviderDao.findByServiceProvider(pNetwork.getId(), fwNetworkDevice.getNetworkServiceProvder());
if (ntwkSvcProvider == null) {
return null;
return null;
}
List<ExternalFirewallDeviceVO> fwDevices = _externalFirewallDeviceDao.listByPhysicalNetworkAndProvider(physicalNetworkId, ntwkSvcProvider.getProviderName());
@ -283,6 +299,7 @@ public abstract class ExternalFirewallDeviceManagerImpl extends AdapterBase impl
return firewallHosts;
}
@Override
public ExternalFirewallDeviceVO getExternalFirewallForNetwork(Network network) {
NetworkExternalFirewallVO fwDeviceForNetwork = _networkExternalFirewallDao.findByNetworkId(network.getId());
if (fwDeviceForNetwork != null) {
@ -304,7 +321,7 @@ public abstract class ExternalFirewallDeviceManagerImpl extends AdapterBase impl
long physicalNetworkId = network.getPhysicalNetworkId();
List<ExternalFirewallDeviceVO> fwDevices = _externalFirewallDeviceDao.listByPhysicalNetwork(physicalNetworkId);
// loop through the firewall device in the physical network and pick the first-fit
// loop through the firewall device in the physical network and pick the first-fit
for (ExternalFirewallDeviceVO fwDevice: fwDevices) {
// max number of guest networks that can be mapped to this device
long fullCapacity = fwDevice.getCapacity();
@ -313,7 +330,7 @@ public abstract class ExternalFirewallDeviceManagerImpl extends AdapterBase impl
}
// get the list of guest networks that are mapped to this load balancer
List<NetworkExternalFirewallVO> mappedNetworks = _networkExternalFirewallDao.listByFirewallDeviceId(fwDevice.getId());
List<NetworkExternalFirewallVO> mappedNetworks = _networkExternalFirewallDao.listByFirewallDeviceId(fwDevice.getId());
long usedCapacity = (mappedNetworks == null) ? 0 : mappedNetworks.size();
if ((fullCapacity - usedCapacity) > 0) {
@ -386,7 +403,7 @@ public abstract class ExternalFirewallDeviceManagerImpl extends AdapterBase impl
try {
if (deviceMapLock.lock(120)) {
try {
ExternalFirewallDeviceVO device = findSuitableFirewallForNetwork(network);
ExternalFirewallDeviceVO device = findSuitableFirewallForNetwork(network);
long externalFirewallId = device.getId();
NetworkExternalFirewallVO networkFW = new NetworkExternalFirewallVO(network.getId(), externalFirewallId);
@ -412,17 +429,17 @@ public abstract class ExternalFirewallDeviceManagerImpl extends AdapterBase impl
Account account = _accountDao.findByIdIncludingRemoved(network.getAccountId());
NetworkOffering offering = _networkOfferingDao.findById(network.getNetworkOfferingId());
NetworkOffering offering = _networkOfferingDao.findById(network.getNetworkOfferingId());
boolean sharedSourceNat = offering.getSharedSourceNat();
IPAddressVO sourceNatIp = null;
if (!sharedSourceNat) {
// Get the source NAT IP address for this account
List<? extends IpAddress> sourceNatIps = _networkModel.listPublicIpsAssignedToAccount(network.getAccountId(),
// Get the source NAT IP address for this account
List<? extends IpAddress> sourceNatIps = _networkModel.listPublicIpsAssignedToAccount(network.getAccountId(),
zoneId, true);
if (sourceNatIps.size() != 1) {
String errorMsg = "External firewall was unable to find the source NAT IP address for account "
String errorMsg = "External firewall was unable to find the source NAT IP address for account "
+ account.getAccountName();
s_logger.error(errorMsg);
return true;
@ -432,7 +449,7 @@ public abstract class ExternalFirewallDeviceManagerImpl extends AdapterBase impl
}
// Send a command to the external firewall to implement or shutdown the guest network
long guestVlanTag = Long.parseLong(network.getBroadcastUri().getHost());
long guestVlanTag = Long.parseLong(BroadcastDomainType.getValue(network.getBroadcastUri()));
String guestVlanGateway = network.getGateway();
String guestVlanCidr = network.getCidr();
String sourceNatIpAddress = null;
@ -536,7 +553,7 @@ public abstract class ExternalFirewallDeviceManagerImpl extends AdapterBase impl
}
FirewallRuleTO ruleTO;
if (rule.getPurpose() == Purpose.Firewall && rule.getTrafficType() == FirewallRule.TrafficType.Egress) {
String guestVlanTag = network.getBroadcastUri().getHost();
String guestVlanTag = BroadcastDomainType.getValue(network.getBroadcastUri());
String guestCidr = network.getCidr();
ruleTO = new FirewallRuleTO(rule, guestVlanTag, rule.getTrafficType(), guestCidr, defaultEgressPolicy, rule.getType());
} else {
@ -639,7 +656,7 @@ public abstract class ExternalFirewallDeviceManagerImpl extends AdapterBase impl
// Mask the IP range with the network's VLAN tag
String[] ipRange = vpn.getIpRange().split("-");
DataCenterVO zone = _dcDao.findById(network.getDataCenterId());
int vlanTag = Integer.parseInt(network.getBroadcastUri().getHost());
int vlanTag = Integer.parseInt(BroadcastDomainType.getValue(network.getBroadcastUri()));
int offset = getVlanOffset(network.getPhysicalNetworkId(), vlanTag);
int cidrSize = getGloballyConfiguredCidrSize();
@ -651,7 +668,7 @@ public abstract class ExternalFirewallDeviceManagerImpl extends AdapterBase impl
RemoteAccessVpnCfgCommand createVpnCmd = new RemoteAccessVpnCfgCommand(create, ip.getAddress().addr(), vpn.getLocalIp(), maskedIpRange, vpn.getIpsecPresharedKey());
createVpnCmd.setAccessDetail(NetworkElementCommand.ACCOUNT_ID, String.valueOf(network.getAccountId()));
createVpnCmd.setAccessDetail(NetworkElementCommand.GUEST_NETWORK_CIDR, network.getCidr());
createVpnCmd.setAccessDetail(NetworkElementCommand.GUEST_NETWORK_CIDR, network.getCidr());
Answer answer = _agentMgr.easySend(externalFirewall.getId(), createVpnCmd);
if (answer == null || !answer.getResult()) {
String details = (answer != null) ? answer.getDetails() : "details unavailable";
@ -663,7 +680,7 @@ public abstract class ExternalFirewallDeviceManagerImpl extends AdapterBase impl
// Add/delete users
List<VpnUserVO> vpnUsers = _vpnUsersDao.listByAccount(vpn.getAccountId());
return manageRemoteAccessVpnUsers(network, vpn, vpnUsers);
}
}
public boolean manageRemoteAccessVpnUsers(Network network, RemoteAccessVpn vpn, List<? extends VpnUser> vpnUsers) throws ResourceUnavailableException {
ExternalFirewallDeviceVO fwDeviceVO = getExternalFirewallForNetwork(network);
@ -686,7 +703,7 @@ public abstract class ExternalFirewallDeviceManagerImpl extends AdapterBase impl
VpnUsersCfgCommand addUsersCmd = new VpnUsersCfgCommand(addUsers, removeUsers);
addUsersCmd.setAccessDetail(NetworkElementCommand.ACCOUNT_ID, String.valueOf(network.getAccountId()));
addUsersCmd.setAccessDetail(NetworkElementCommand.GUEST_NETWORK_CIDR, network.getCidr());
addUsersCmd.setAccessDetail(NetworkElementCommand.GUEST_NETWORK_CIDR, network.getCidr());
Answer answer = _agentMgr.easySend(externalFirewall.getId(), addUsersCmd);
if (answer == null || !answer.getResult()) {

View File

@ -66,6 +66,7 @@ import com.cloud.host.dao.HostDao;
import com.cloud.host.dao.HostDetailsDao;
import com.cloud.network.Network.Provider;
import com.cloud.network.Network.Service;
import com.cloud.network.Networks.BroadcastDomainType;
import com.cloud.network.Networks.TrafficType;
import com.cloud.network.addr.PublicIp;
import com.cloud.network.dao.ExternalFirewallDeviceDao;
@ -904,7 +905,7 @@ public abstract class ExternalLoadBalancerDeviceManagerImpl extends AdapterBase
int numLoadBalancersForCommand = loadBalancersToApply.size();
LoadBalancerTO[] loadBalancersForCommand = loadBalancersToApply.toArray(new LoadBalancerTO[numLoadBalancersForCommand]);
LoadBalancerConfigCommand cmd = new LoadBalancerConfigCommand(loadBalancersForCommand, null);
long guestVlanTag = Integer.parseInt(network.getBroadcastUri().getHost());
long guestVlanTag = Integer.parseInt(BroadcastDomainType.getValue(network.getBroadcastUri()));
cmd.setAccessDetail(NetworkElementCommand.GUEST_VLAN_TAG, String.valueOf(guestVlanTag));
Answer answer = _agentMgr.easySend(externalLoadBalancer.getId(), cmd);
if (answer == null || !answer.getResult()) {
@ -980,7 +981,7 @@ public abstract class ExternalLoadBalancerDeviceManagerImpl extends AdapterBase
}
// Send a command to the external load balancer to implement or shutdown the guest network
long guestVlanTag = Long.parseLong(guestConfig.getBroadcastUri().getHost());
long guestVlanTag = Long.parseLong(BroadcastDomainType.getValue(guestConfig.getBroadcastUri()));
String selfIp = null;
String guestVlanNetmask = NetUtils.cidr2Netmask(guestConfig.getCidr());
Integer networkRate = _networkModel.getNetworkRate(guestConfig.getId(), null);
@ -1188,7 +1189,7 @@ public abstract class ExternalLoadBalancerDeviceManagerImpl extends AdapterBase
// LoadBalancerConfigCommand cmd = new
// LoadBalancerConfigCommand(loadBalancersForCommand, null);
HealthCheckLBConfigCommand cmd = new HealthCheckLBConfigCommand(loadBalancersForCommand);
long guestVlanTag = Integer.parseInt(network.getBroadcastUri().getHost());
long guestVlanTag = Integer.parseInt(BroadcastDomainType.getValue(network.getBroadcastUri()));
cmd.setAccessDetail(NetworkElementCommand.GUEST_VLAN_TAG, String.valueOf(guestVlanTag));
answer = (HealthCheckLBConfigAnswer) _agentMgr.easySend(externalLoadBalancer.getId(), cmd);

View File

@ -1772,7 +1772,7 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
+ " is already being used for dynamic vlan allocation for the guest network in zone " + zone.getName());
}
String uri = "vlan://" + vlanId;
String uri = BroadcastDomainType.fromString(vlanId).toString();
// For Isolated networks, don't allow to create network with vlan that already exists in the zone
if (ntwkOff.getGuestType() == GuestType.Isolated) {
if (_networksDao.countByZoneAndUri(zoneId, uri) > 0) {
@ -1902,7 +1902,8 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
if (vlanId != null) {
if (isolatedPvlan == null) {
userNetwork.setBroadcastUri(URI.create("vlan://" + vlanId));
URI uri = BroadcastDomainType.fromString(vlanId);
userNetwork.setBroadcastUri(uri);
if (!vlanId.equalsIgnoreCase(Vlan.UNTAGGED)) {
userNetwork.setBroadcastDomainType(BroadcastDomainType.Vlan);
} else {

View File

@ -17,7 +17,6 @@
// under the License.
package com.cloud.network.guru;
import java.net.URI;
import java.util.List;
import javax.ejb.Local;
@ -45,6 +44,7 @@ import com.cloud.network.Network;
import com.cloud.network.NetworkManager;
import com.cloud.network.Networks.AddressFormat;
import com.cloud.network.Networks.BroadcastDomainType;
import com.cloud.network.Networks.IsolationType;
import com.cloud.network.addr.PublicIp;
import com.cloud.network.dao.IPAddressDao;
import com.cloud.network.dao.IPAddressVO;
@ -194,8 +194,8 @@ public class DirectPodBasedNetworkGuru extends DirectNetworkGuru {
nic.setGateway(ip.getGateway());
nic.setNetmask(ip.getNetmask());
if (ip.getVlanTag() != null && ip.getVlanTag().equalsIgnoreCase(Vlan.UNTAGGED)) {
nic.setIsolationUri(URI.create("ec2://" + Vlan.UNTAGGED));
nic.setBroadcastUri(URI.create("vlan://" + Vlan.UNTAGGED));
nic.setIsolationUri(IsolationType.Ec2.toUri(Vlan.UNTAGGED));
nic.setBroadcastUri(BroadcastDomainType.Vlan.toUri(Vlan.UNTAGGED));
nic.setBroadcastType(BroadcastDomainType.Native);
}
nic.setReservationId(String.valueOf(ip.getVlanTag()));

View File

@ -151,7 +151,7 @@ public class ExternalGuestNetworkGuru extends GuestNetworkGuru {
implemented.setBroadcastUri(BroadcastDomainType.Vlan.toUri(vlanTag));
ActionEventUtils.onCompletedActionEvent(CallContext.current().getCallingUserId(), config.getAccountId(), EventVO.LEVEL_INFO, EventTypes.EVENT_ZONE_VLAN_ASSIGN, "Assigned Zone Vlan: " + vnet + " Network Id: " + config.getId(), 0);
} else {
vlanTag = Integer.parseInt(config.getBroadcastUri().getHost());
vlanTag = Integer.parseInt(BroadcastDomainType.getValue(config.getBroadcastUri()));
implemented.setBroadcastUri(config.getBroadcastUri());
}

View File

@ -414,11 +414,11 @@ public abstract class GuestNetworkGuru extends AdapterBase implements NetworkGur
if (profile.getBroadcastDomainType() == BroadcastDomainType.Vlan &&
profile.getBroadcastUri() != null && !offering.getSpecifyVlan()) {
s_logger.debug("Releasing vnet for the network id=" + profile.getId());
_dcDao.releaseVnet(profile.getBroadcastUri().getHost(), profile.getDataCenterId(),
_dcDao.releaseVnet(BroadcastDomainType.getValue(profile.getBroadcastUri()), profile.getDataCenterId(),
profile.getPhysicalNetworkId(), profile.getAccountId(), profile.getReservationId());
ActionEventUtils.onCompletedActionEvent(CallContext.current().getCallingUserId(), profile.getAccountId(),
EventVO.LEVEL_INFO, EventTypes.EVENT_ZONE_VLAN_RELEASE, "Released Zone Vlan: "
+ profile.getBroadcastUri().getHost() + " for Network: " + profile.getId(), 0);
+ BroadcastDomainType.getValue(profile.getBroadcastUri()) + " for Network: " + profile.getId(), 0);
}
profile.setBroadcastUri(null);
}

View File

@ -183,7 +183,7 @@ public class PrivateNetworkGuru extends AdapterBase implements NetworkGuru {
throws InsufficientVirtualNetworkCapcityException,InsufficientAddressCapacityException {
if (nic.getIp4Address() == null) {
PrivateIpVO ipVO = _privateIpDao.allocateIpAddress(network.getDataCenterId(), network.getId(), null);
String vlanTag = network.getBroadcastUri().getHost();
String vlanTag = BroadcastDomainType.getValue(network.getBroadcastUri());
String netmask = NetUtils.getCidrNetmask(network.getCidr());
PrivateIpAddress ip = new PrivateIpAddress(ipVO, vlanTag, network.getGateway(), netmask,
NetUtils.long2Mac(NetUtils.createSequenceBasedMacAddress(ipVO.getMacAddress())));

View File

@ -118,7 +118,7 @@ public class PublicNetworkGuru extends AdapterBase implements NetworkGuru {
nic.setGateway(ip.getGateway());
nic.setNetmask(ip.getNetmask());
nic.setIsolationUri(IsolationType.Vlan.toUri(ip.getVlanTag()));
nic.setBroadcastUri(IsolationType.Vlan.toUri(ip.getVlanTag()));
nic.setBroadcastUri(BroadcastDomainType.Vlan.toUri(ip.getVlanTag()));
nic.setBroadcastType(BroadcastDomainType.Vlan);
nic.setFormat(AddressFormat.Ip4);
nic.setReservationId(String.valueOf(ip.getVlanTag()));

View File

@ -393,7 +393,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
setupCmd.setAccessDetail(NetworkElementCommand.ROUTER_NAME, router.getInstanceName());
if (network.getBroadcastDomainType() == BroadcastDomainType.Vlan) {
long guestVlanTag = Long.parseLong(network.getBroadcastUri().getHost());
long guestVlanTag = Long.parseLong(BroadcastDomainType.Vlan.getValueFrom(network.getBroadcastUri()));
setupCmd.setAccessDetail(NetworkElementCommand.GUEST_VLAN_TAG, String.valueOf(guestVlanTag));
}
@ -669,7 +669,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
Network guestNtwk = _networkDao.findById(guestNetworkId);
URI uri = guestNtwk.getBroadcastUri();
if (uri != null) {
guestVlan = guestNtwk.getBroadcastUri().getHost();
guestVlan = BroadcastDomainType.getValue(uri);
}
if (rules != null) {
@ -730,7 +730,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
} else if (network.getTrafficType() == TrafficType.Public) {
Pair<Nic, Network> publicNic = new Pair<Nic, Network>(routerNic, network);
publicNics.add(publicNic);
String vlanTag = routerNic.getBroadcastUri().getHost();
String vlanTag = BroadcastDomainType.getValue(routerNic.getBroadcastUri());
vlanMacAddress.put(vlanTag, routerNic.getMacAddress());
}
}
@ -796,7 +796,8 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
//set private network
PrivateIpVO ipVO = _privateIpDao.findByIpAndSourceNetworkId(guestNic.getNetworkId(), guestNic.getIp4Address());
Network network = _networkDao.findById(guestNic.getNetworkId());
String vlanTag = network.getBroadcastUri().getHost();
// should this be a vlan id or a broadcast uri???
String vlanTag = BroadcastDomainType.getValue(network.getBroadcastUri());
String netmask = NetUtils.getCidrNetmask(network.getCidr());
PrivateIpAddress ip = new PrivateIpAddress(ipVO, vlanTag, network.getGateway(), netmask, guestNic.getMacAddress());
@ -934,7 +935,9 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
if (router.getState() == State.Running) {
PrivateIpVO ipVO = _privateIpDao.findByIpAndSourceNetworkId(privateNic.getNetworkId(), privateNic.getIp4Address());
Network network = _networkDao.findById(privateNic.getNetworkId());
String vlanTag = network.getBroadcastUri().getHost();
// TODO should this be a lan tag or a broadcast uri???
// or maybe conditional; in case of vlan ... in case of lswitch
String vlanTag = BroadcastDomainType.getValue(network.getBroadcastUri());
String netmask = NetUtils.getCidrNetmask(network.getCidr());
PrivateIpAddress ip = new PrivateIpAddress(ipVO, vlanTag, network.getGateway(), netmask, privateNic.getMacAddress());
@ -1227,16 +1230,17 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
_networkModel.isSecurityGroupSupportedInNetwork(privateNetwork),
_networkModel.getNetworkTag(vm.getHypervisorType(), privateNetwork));
} else {
String vlanTag = privateNetwork.getBroadcastUri().getHost();
String vlanTag = BroadcastDomainType.getValue(privateNetwork.getBroadcastUri());
String netmask = NetUtils.getCidrNetmask(privateNetwork.getCidr());
PrivateIpAddress ip = new PrivateIpAddress(ipVO, vlanTag, privateNetwork.getGateway(), netmask,
NetUtils.long2Mac(NetUtils.createSequenceBasedMacAddress(ipVO.getMacAddress())));
URI netUri = BroadcastDomainType.fromString(ip.getVlanTag());
privateNicProfile.setIp4Address(ip.getIpAddress());
privateNicProfile.setGateway(ip.getGateway());
privateNicProfile.setNetmask(ip.getNetmask());
privateNicProfile.setIsolationUri(IsolationType.Vlan.toUri(ip.getVlanTag()));
privateNicProfile.setBroadcastUri(IsolationType.Vlan.toUri(ip.getVlanTag()));
privateNicProfile.setIsolationUri(netUri);
privateNicProfile.setBroadcastUri(netUri);
privateNicProfile.setBroadcastType(BroadcastDomainType.Vlan);
privateNicProfile.setFormat(AddressFormat.Ip4);
privateNicProfile.setReservationId(String.valueOf(ip.getVlanTag()));

View File

@ -1378,6 +1378,9 @@ public class NetUtils {
}
}
// Attention maintainers: these pvlan functions should take into account code
// in Networks.BroadcastDomainType, where URI construction is done for other
// types of BroadcastDomainTypes
public static URI generateUriForPvlan(String primaryVlan, String isolatedPvlan) {
return URI.create("pvlan://" + primaryVlan + "-i" + isolatedPvlan);
}