Skip to content

Commit d9c06e5

Browse files
Daan HooglandDaanHoogland
authored andcommitted
CLOUDSTACK-4346 replace URI getHost() and create(String) calls with BroadcastDomainType methods
1 parent f80ecfe commit d9c06e5

26 files changed

Lines changed: 166 additions & 134 deletions

File tree

plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetaNetworkGuru.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@
1818
// Automatically generated by addcopyright.py at 01/29/2013
1919
package com.cloud.baremetal.networkservice;
2020

21-
import java.net.URI;
22-
2321
import javax.ejb.Local;
2422
import javax.inject.Inject;
2523

@@ -47,6 +45,7 @@
4745
import com.cloud.network.NetworkManager;
4846
import com.cloud.network.Networks.AddressFormat;
4947
import com.cloud.network.Networks.BroadcastDomainType;
48+
import com.cloud.network.Networks.IsolationType;
5049
import com.cloud.network.addr.PublicIp;
5150
import com.cloud.network.dao.IPAddressDao;
5251
import com.cloud.network.dao.IPAddressVO;
@@ -163,8 +162,8 @@ private void getBaremetalIp(NicProfile nic, Pod pod, VirtualMachineProfile vm, N
163162
nic.setGateway(ip.getGateway());
164163
nic.setNetmask(ip.getNetmask());
165164
if (ip.getVlanTag() != null && ip.getVlanTag().equalsIgnoreCase(Vlan.UNTAGGED)) {
166-
nic.setIsolationUri(URI.create("ec2://" + Vlan.UNTAGGED));
167-
nic.setBroadcastUri(URI.create("vlan://" + Vlan.UNTAGGED));
165+
nic.setIsolationUri(IsolationType.Ec2.toUri(Vlan.UNTAGGED));
166+
nic.setBroadcastUri(BroadcastDomainType.Vlan.toUri(Vlan.UNTAGGED));
168167
nic.setBroadcastType(BroadcastDomainType.Native);
169168
}
170169
nic.setReservationId(String.valueOf(ip.getVlanTag()));

plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/BridgeVifDriver.java

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,23 +19,23 @@
1919

2020
package com.cloud.hypervisor.kvm.resource;
2121

22+
import java.io.File;
23+
import java.util.Map;
24+
import java.util.regex.Matcher;
25+
import java.util.regex.Pattern;
26+
27+
import javax.naming.ConfigurationException;
28+
29+
import org.apache.log4j.Logger;
30+
import org.libvirt.LibvirtException;
31+
2232
import com.cloud.agent.api.to.NicTO;
23-
import com.cloud.agent.resource.virtualnetwork.VirtualRoutingResource;
2433
import com.cloud.exception.InternalErrorException;
2534
import com.cloud.network.Networks;
2635
import com.cloud.utils.NumbersUtil;
2736
import com.cloud.utils.net.NetUtils;
2837
import com.cloud.utils.script.OutputInterpreter;
2938
import com.cloud.utils.script.Script;
30-
import org.apache.log4j.Logger;
31-
import org.libvirt.LibvirtException;
32-
33-
import javax.naming.ConfigurationException;
34-
import java.net.URI;
35-
import java.util.Map;
36-
import java.util.regex.Matcher;
37-
import java.util.regex.Pattern;
38-
import java.io.File;
3939

4040
public class BridgeVifDriver extends VifDriverBase {
4141

@@ -87,8 +87,7 @@ public LibvirtVMDef.InterfaceDef plug(NicTO nic, String guestOsType)
8787

8888
String vlanId = null;
8989
if (nic.getBroadcastType() == Networks.BroadcastDomainType.Vlan) {
90-
URI broadcastUri = nic.getBroadcastUri();
91-
vlanId = broadcastUri.getHost();
90+
vlanId = Networks.BroadcastDomainType.getValue(nic.getBroadcastUri());
9291
}
9392
else if (nic.getBroadcastType() == Networks.BroadcastDomainType.Lswitch) {
9493
throw new InternalErrorException("Nicira NVP Logicalswitches are not supported by the BridgeVifDriver");

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import java.io.InputStream;
2828
import java.io.InputStreamReader;
2929
import java.net.InetAddress;
30+
import java.net.URI;
3031
import java.net.URISyntaxException;
3132
import java.net.URL;
3233
import java.net.URLConnection;
@@ -1727,8 +1728,9 @@ private void VifHotPlug(Connect conn, String vmName, String vlanId,
17271728
if (vlanId == null) {
17281729
nicTO.setBroadcastType(BroadcastDomainType.Native);
17291730
} else {
1730-
nicTO.setBroadcastType(BroadcastDomainType.Vlan);
1731-
nicTO.setBroadcastUri(BroadcastDomainType.Vlan.toUri(vlanId));
1731+
URI uri = BroadcastDomainType.fromString(vlanId);
1732+
nicTO.setBroadcastType(BroadcastDomainType.getSchemeValue(uri));
1733+
nicTO.setBroadcastUri(uri);
17321734
}
17331735

17341736
Domain vm = getDomain(conn, vmName);
@@ -1815,7 +1817,7 @@ private SetupGuestNetworkAnswer execute(SetupGuestNetworkCommand cmd) {
18151817
String routerGIP = cmd.getAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP);
18161818
String routerName = cmd.getAccessDetail(NetworkElementCommand.ROUTER_NAME);
18171819
String gateway = cmd.getAccessDetail(NetworkElementCommand.GUEST_NETWORK_GATEWAY);
1818-
String cidr = Long.toString(NetUtils.getCidrSize(nic.getNetmask()));;
1820+
String cidr = Long.toString(NetUtils.getCidrSize(nic.getNetmask()));
18191821
String domainName = cmd.getNetworkDomain();
18201822
String dns = cmd.getDefaultDns1();
18211823

plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/OvsVifDriver.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
*/
1919
package com.cloud.hypervisor.kvm.resource;
2020

21-
import java.net.URI;
2221
import java.util.Map;
2322

2423
import javax.naming.ConfigurationException;
@@ -65,12 +64,12 @@ public InterfaceDef plug(NicTO nic, String guestOsType)
6564
String vlanId = null;
6665
String logicalSwitchUuid = null;
6766
if (nic.getBroadcastType() == Networks.BroadcastDomainType.Vlan) {
68-
URI broadcastUri = nic.getBroadcastUri();
69-
vlanId = broadcastUri.getHost();
67+
vlanId = Networks.BroadcastDomainType.getValue(nic.getBroadcastUri());
7068
}
7169
else if (nic.getBroadcastType() == Networks.BroadcastDomainType.Lswitch) {
72-
logicalSwitchUuid = nic.getBroadcastUri().getSchemeSpecificPart();
70+
logicalSwitchUuid = Networks.BroadcastDomainType.getValue(nic.getBroadcastUri());
7371
} else if (nic.getBroadcastType() == Networks.BroadcastDomainType.Pvlan) {
72+
// TODO consider moving some of this functionality from NetUtils to Networks....
7473
vlanId = NetUtils.getPrimaryPvlanFromUri(nic.getBroadcastUri());
7574
}
7675
String trafficLabel = nic.getName();

plugins/hypervisors/ovm/src/com/cloud/ovm/hypervisor/OvmResourceBase.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -591,8 +591,7 @@ protected String getNetwork(NicTO nic) throws XmlRpcException {
591591
String vlanId = null;
592592
String bridgeName = null;
593593
if (nic.getBroadcastType() == BroadcastDomainType.Vlan) {
594-
URI broadcastUri = nic.getBroadcastUri();
595-
vlanId = broadcastUri.getHost();
594+
vlanId = BroadcastDomainType.getValue(nic.getBroadcastUri());
596595
}
597596

598597
if (nic.getType() == TrafficType.Guest) {

plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1635,7 +1635,7 @@ private PlugNicAnswer execute(PlugNicCommand cmd) {
16351635

16361636
NicTO nicTo = cmd.getNic();
16371637
VirtualDevice nic;
1638-
Pair<ManagedObjectReference, String> networkInfo = prepareNetworkFromNicInfo(vmMo.getRunningHost(), nicTo, false, cmd.getVMType());;
1638+
Pair<ManagedObjectReference, String> networkInfo = prepareNetworkFromNicInfo(vmMo.getRunningHost(), nicTo, false, cmd.getVMType());
16391639
if (VmwareHelper.isDvPortGroup(networkInfo.first())) {
16401640
String dvSwitchUuid;
16411641
ManagedObjectReference dcMor = hyperHost.getHyperHostDatacenter();
@@ -3181,9 +3181,11 @@ else if (nicTo.getBroadcastType() == BroadcastDomainType.Vlan || nicTo.getBroadc
31813181
if (nicTo.getBroadcastUri() != null) {
31823182
if (nicTo.getBroadcastType() == BroadcastDomainType.Vlan)
31833183
// For vlan, the broadcast uri is of the form vlan://<vlanid>
3184-
return nicTo.getBroadcastUri().getHost();
3184+
// BroadcastDomainType recogniizes and handles this.
3185+
return BroadcastDomainType.getValue(nicTo.getBroadcastUri());
31853186
else
31863187
// for pvlan, the broacast uri will be of the form pvlan://<vlanid>-i<pvlanid>
3188+
// TODO consider the spread of functionality between BroadcastDomainType and NetUtils
31873189
return NetUtils.getPrimaryPvlanFromUri(nicTo.getBroadcastUri());
31883190
} else {
31893191
s_logger.warn("BroadcastType is not claimed as VLAN or PVLAN, but without vlan info in broadcast URI. Use vlan info from labeling: " + defaultVlan);

plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1027,40 +1027,39 @@ protected Network getNetwork(Connection conn, NicTO nic) throws XenAPIException,
10271027
s_logger.error("Network is not configured on the backend for nic " + nic.toString());
10281028
throw new CloudRuntimeException("Network for the backend is not configured correctly for network broadcast domain: " + nic.getBroadcastUri());
10291029
}
1030-
if (nic.getBroadcastUri() != null && nic.getBroadcastUri().toString().contains("untagged")) {
1030+
URI uri = nic.getBroadcastUri();
1031+
BroadcastDomainType type = nic.getBroadcastType();
1032+
if (uri != null && uri.toString().contains("untagged")) {
10311033
return network.getNetwork();
1032-
} else if (nic.getBroadcastType() == BroadcastDomainType.Vlan) {
1033-
URI broadcastUri = nic.getBroadcastUri();
1034-
assert broadcastUri.getScheme().equals(BroadcastDomainType.Vlan.scheme());
1035-
long vlan = Long.parseLong(broadcastUri.getHost());
1034+
} else if (type == BroadcastDomainType.Vlan) {
1035+
assert (BroadcastDomainType.getSchemeValue(uri) == BroadcastDomainType.Vlan);
1036+
long vlan = Long.parseLong(BroadcastDomainType.getValue(uri));
10361037
return enableVlanNetwork(conn, vlan, network);
1037-
} else if (nic.getBroadcastType() == BroadcastDomainType.Native || nic.getBroadcastType() == BroadcastDomainType.LinkLocal) {
1038+
} else if (type == BroadcastDomainType.Native || type == BroadcastDomainType.LinkLocal) {
10381039
return network.getNetwork();
1039-
} else if (nic.getBroadcastType() == BroadcastDomainType.Vswitch) {
1040-
String broadcastUri = nic.getBroadcastUri().toString();
1041-
String header = broadcastUri.substring(Networks.BroadcastDomainType.Vswitch.scheme().length() + "://".length());
1040+
} else if (type == BroadcastDomainType.Vswitch) {
1041+
String header = uri.toString().substring(Networks.BroadcastDomainType.Vswitch.scheme().length() + "://".length());
10421042
if (header.startsWith("vlan")) {
10431043
_isOvs = true;
10441044
return setupvSwitchNetwork(conn);
10451045
} else {
1046-
long vnetId = Long.parseLong(nic.getBroadcastUri().getHost());
1046+
long vnetId = Long.parseLong(BroadcastDomainType.getValue(uri));
10471047
return findOrCreateTunnelNetwork(conn, vnetId);
10481048
}
1049-
} else if (nic.getBroadcastType() == BroadcastDomainType.Storage) {
1050-
URI broadcastUri = nic.getBroadcastUri();
1051-
if (broadcastUri == null) {
1049+
} else if (type == BroadcastDomainType.Storage) {
1050+
if (uri == null) {
10521051
return network.getNetwork();
10531052
} else {
1054-
long vlan = Long.parseLong(broadcastUri.getHost());
1053+
long vlan = Long.parseLong(BroadcastDomainType.getValue(uri));
10551054
return enableVlanNetwork(conn, vlan, network);
10561055
}
1057-
} else if (nic.getBroadcastType() == BroadcastDomainType.Lswitch) {
1056+
} else if (type == BroadcastDomainType.Lswitch) {
10581057
// Nicira Logical Switch
10591058
return network.getNetwork();
1060-
} else if (nic.getBroadcastType() == BroadcastDomainType.Pvlan) {
1061-
URI broadcastUri = nic.getBroadcastUri();
1062-
assert broadcastUri.getScheme().equals(BroadcastDomainType.Pvlan.scheme());
1063-
long vlan = Long.parseLong(NetUtils.getPrimaryPvlanFromUri(broadcastUri));
1059+
} else if (type == BroadcastDomainType.Pvlan) {
1060+
assert BroadcastDomainType.getSchemeValue(uri) == BroadcastDomainType.Pvlan;
1061+
// TODO considder moving this NetUtils method to BroadcastDomainType
1062+
long vlan = Long.parseLong(NetUtils.getPrimaryPvlanFromUri(uri));
10641063
return enableVlanNetwork(conn, vlan, network);
10651064
}
10661065

@@ -1639,7 +1638,7 @@ public StartAnswer execute(StartCommand cmd) {
16391638
// TODO(Salvatore-orlando): This code should go
16401639
for (NicTO nic : vmSpec.getNics()) {
16411640
if (nic.getBroadcastType() == Networks.BroadcastDomainType.Vswitch) {
1642-
HashMap<String, String> args = parseDefaultOvsRuleComamnd(nic.getBroadcastUri().toString().substring(Networks.BroadcastDomainType.Vswitch.scheme().length() + "://".length()));
1641+
HashMap<String, String> args = parseDefaultOvsRuleComamnd(BroadcastDomainType.getValue(nic.getBroadcastUri()));
16431642
OvsSetTagAndFlowCommand flowCmd = new OvsSetTagAndFlowCommand(args.get("vmName"), args.get("tag"), args.get("vlans"),
16441643
args.get("seqno"), Long.parseLong(args.get("vmId")));
16451644
OvsSetTagAndFlowAnswer r = execute(flowCmd);
@@ -2273,8 +2272,9 @@ protected void assignPublicIpAddress(Connection conn, String vmName, String priv
22732272
if (vlanId == null) {
22742273
nic.setBroadcastType(BroadcastDomainType.Native);
22752274
} else {
2276-
nic.setBroadcastType(BroadcastDomainType.Vlan);
2277-
nic.setBroadcastUri(BroadcastDomainType.Vlan.toUri(vlanId));
2275+
URI uri = BroadcastDomainType.fromString(vlanId);
2276+
nic.setBroadcastType(BroadcastDomainType.getSchemeValue(uri));
2277+
nic.setBroadcastUri(uri);
22782278
}
22792279
nic.setDeviceId(0);
22802280
nic.setNetworkRateMbps(networkRate);
@@ -4215,8 +4215,9 @@ protected VIF getCorrectVif(Connection conn, VM router, IpAddressTO ip) throws X
42154215
if (ip.getVlanId() == null) {
42164216
nic.setBroadcastType(BroadcastDomainType.Native);
42174217
} else {
4218-
nic.setBroadcastType(BroadcastDomainType.Vlan);
4219-
nic.setBroadcastUri(BroadcastDomainType.Vlan.toUri(ip.getVlanId()));
4218+
URI uri = BroadcastDomainType.fromString(ip.getVlanId());
4219+
nic.setBroadcastType(BroadcastDomainType.getSchemeValue(uri));
4220+
nic.setBroadcastUri(uri);
42204221
}
42214222
Network network = getNetwork(conn, nic);
42224223
// Determine the correct VIF on DomR to associate/disassociate the
@@ -8216,7 +8217,7 @@ private SetupGuestNetworkAnswer execute(SetupGuestNetworkCommand cmd) {
82168217
String domrGIP = cmd.getAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP);
82178218
String domrName = cmd.getAccessDetail(NetworkElementCommand.ROUTER_NAME);
82188219
String gw = cmd.getAccessDetail(NetworkElementCommand.GUEST_NETWORK_GATEWAY);
8219-
String cidr = Long.toString(NetUtils.getCidrSize(nic.getNetmask()));;
8220+
String cidr = Long.toString(NetUtils.getCidrSize(nic.getNetmask()));
82208221
String domainName = cmd.getNetworkDomain();
82218222
String dns = cmd.getDefaultDns1();
82228223
if (dns == null || dns.isEmpty()) {

plugins/network-elements/bigswitch-vns/src/com/cloud/network/element/BigSwitchVnsElement.java

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,10 @@
2727
import javax.inject.Inject;
2828
import javax.naming.ConfigurationException;
2929

30-
import org.apache.cloudstack.network.ExternalNetworkDeviceManager.NetworkDevice;
3130
import org.apache.log4j.Logger;
31+
import org.springframework.stereotype.Component;
32+
33+
import org.apache.cloudstack.network.ExternalNetworkDeviceManager.NetworkDevice;
3234

3335
import com.cloud.agent.AgentManager;
3436
import com.cloud.agent.api.CreateVnsPortAnswer;
@@ -85,14 +87,12 @@
8587
import com.cloud.utils.exception.CloudRuntimeException;
8688
import com.cloud.vm.NicProfile;
8789
import com.cloud.vm.ReservationContext;
88-
import com.cloud.vm.VirtualMachine;
8990
import com.cloud.vm.VirtualMachineProfile;
90-
import org.springframework.stereotype.Component;
9191

9292
@Component
9393
@Local(value = {NetworkElement.class, ConnectivityProvider.class})
9494
public class BigSwitchVnsElement extends AdapterBase implements
95-
BigSwitchVnsElementService, ConnectivityProvider, ResourceStateAdapter {
95+
BigSwitchVnsElementService, ConnectivityProvider, ResourceStateAdapter {
9696
private static final Logger s_logger = Logger.getLogger(BigSwitchVnsElement.class);
9797

9898
private static final Map<Service, Map<Capability, String>> capabilities = setCapabilities();
@@ -134,7 +134,7 @@ public Provider getProvider() {
134134

135135
private boolean canHandle(Network network, Service service) {
136136
s_logger.debug("Checking if BigSwitchVnsElement can handle service "
137-
+ service.getName() + " on network " + network.getDisplayText());
137+
+ service.getName() + " on network " + network.getDisplayText());
138138
if (network.getBroadcastDomainType() != BroadcastDomainType.Lswitch) {
139139
return false;
140140
}
@@ -210,12 +210,12 @@ public boolean prepare(Network network, NicProfile nic,
210210
HostVO bigswitchVnsHost = _hostDao.findById(bigswitchVnsDevice.getHostId());
211211

212212
CreateVnsPortCommand cmd = new CreateVnsPortCommand(
213-
network.getBroadcastUri().getSchemeSpecificPart(),
213+
BroadcastDomainType.getValue(network.getBroadcastUri()),
214214
vm.getUuid(),
215215
tenantId,
216216
nic.getName(),
217217
mac);
218-
CreateVnsPortAnswer answer = (CreateVnsPortAnswer) _agentMgr
218+
CreateVnsPortAnswer answer = (CreateVnsPortAnswer)_agentMgr
219219
.easySend(bigswitchVnsHost.getId(), cmd);
220220

221221
if (answer == null || !answer.getResult()) {
@@ -254,10 +254,10 @@ public boolean release(Network network, NicProfile nic,
254254
HostVO bigswitchVnsHost = _hostDao.findById(bigswitchVnsDevice.getHostId());
255255

256256
DeleteVnsPortCommand cmd = new DeleteVnsPortCommand(
257-
network.getBroadcastUri().getSchemeSpecificPart(),
257+
BroadcastDomainType.getValue(network.getBroadcastUri()),
258258
vm.getUuid(),
259259
tenantId);
260-
DeleteVnsPortAnswer answer = (DeleteVnsPortAnswer) _agentMgr
260+
DeleteVnsPortAnswer answer = (DeleteVnsPortAnswer)_agentMgr
261261
.easySend(bigswitchVnsHost.getId(), cmd);
262262

263263
if (answer == null || !answer.getResult()) {
@@ -420,7 +420,7 @@ public BigSwitchVnsDeviceResponse createBigSwitchVnsDeviceResponse(
420420
if (pnw != null) {
421421
response.setPhysicalNetworkId(pnw.getUuid());
422422
}
423-
response.setId(bigswitchVnsDeviceVO.getUuid());
423+
response.setId(bigswitchVnsDeviceVO.getUuid());
424424
response.setProviderName(bigswitchVnsDeviceVO.getProviderName());
425425
response.setHostName(bigswitchVnsHost.getDetail("ip"));
426426
response.setObjectName("bigswitchvnsdevice");
@@ -452,7 +452,7 @@ public boolean deleteBigSwitchVnsDevice(DeleteBigSwitchVnsDeviceCmd cmd) {
452452
&& (network.getState() != Network.State.Destroy)) {
453453
throw new CloudRuntimeException(
454454
"This BigSwitch Controller device can not be deleted as there are one or more " +
455-
"logical networks provisioned by cloudstack.");
455+
"logical networks provisioned by cloudstack.");
456456
}
457457
}
458458
}
@@ -533,13 +533,13 @@ public DeleteHostAnswer deleteHost(HostVO host, boolean isForced,
533533
return new DeleteHostAnswer(true);
534534
}
535535

536-
@Override
537-
public List<Class<?>> getCommands() {
538-
List<Class<?>> cmdList = new ArrayList<Class<?>>();
536+
@Override
537+
public List<Class<?>> getCommands() {
538+
List<Class<?>> cmdList = new ArrayList<Class<?>>();
539539
cmdList.add(AddBigSwitchVnsDeviceCmd.class);
540540
cmdList.add(DeleteBigSwitchVnsDeviceCmd.class);
541541
cmdList.add(ListBigSwitchVnsDevicesCmd.class);
542542
return cmdList;
543-
}
543+
}
544544

545545
}

0 commit comments

Comments
 (0)