mirror of https://github.com/apache/cloudstack.git
CLOUDSTACK-4346 replace URI getHost() and create(String) calls with BroadcastDomainType methods
This commit is contained in:
parent
f80ecfe4b0
commit
d9c06e538b
|
|
@ -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()));
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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()) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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()) {
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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()) {
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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()) {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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()));
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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())));
|
||||
|
|
|
|||
|
|
@ -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()));
|
||||
|
|
|
|||
|
|
@ -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()));
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue