mirror of https://github.com/apache/cloudstack.git
unit test for interface patterns in libvirt compute resource
This commit is contained in:
parent
f1ea27ed37
commit
5a134a6fe6
|
|
@ -1160,8 +1160,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
|
|||
for (int i = 0; i < interfaces.length; i++) {
|
||||
final String fname = interfaces[i].getName();
|
||||
s_logger.debug("matchPifFileInDirectory: file name '" + fname + "'");
|
||||
if (fname.startsWith("eth") || fname.startsWith("bond") || fname.startsWith("team") || fname.startsWith("vlan") || fname.startsWith("vx") || fname.startsWith("em") ||
|
||||
fname.matches("^p\\d+p\\d+.*") || fname.startsWith("ens") || fname.startsWith("eno") || fname.startsWith("enp") || fname.startsWith("enx")) {
|
||||
if (isInterface(fname)) {
|
||||
return fname;
|
||||
}
|
||||
}
|
||||
|
|
@ -1170,6 +1169,34 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
|
|||
return "";
|
||||
}
|
||||
|
||||
String [] _ifNamePrefixes = {
|
||||
"eth",
|
||||
"bond",
|
||||
"vlan",
|
||||
"vx",
|
||||
"em",
|
||||
"ens",
|
||||
"eno",
|
||||
"enp",
|
||||
"team",
|
||||
"enx",
|
||||
"^p\\d+p\\d+"
|
||||
};
|
||||
/**
|
||||
* @param fname
|
||||
* @return
|
||||
*/
|
||||
boolean isInterface(final String fname) {
|
||||
StringBuffer commonPattern = new StringBuffer();
|
||||
for (String ifNamePrefix : _ifNamePrefixes) {
|
||||
commonPattern.append("|(").append(ifNamePrefix).append(".*)");
|
||||
}
|
||||
if(fname.matches(commonPattern.toString())) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean checkNetwork(final String networkName) {
|
||||
if (networkName == null) {
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -4999,4 +4999,17 @@ public class LibvirtComputingResourceTest {
|
|||
|
||||
assertFalse(answer.getResult());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsInterface () {
|
||||
LibvirtComputingResource lvcr = new LibvirtComputingResource();
|
||||
assertFalse(lvcr.isInterface("bla"));
|
||||
assertTrue(lvcr.isInterface("p99p00"));
|
||||
for (String ifNamePrefix : lvcr._ifNamePrefixes) {
|
||||
// excluding regexps as "\\\\d+" won't replace with String.replaceAll(String,String);
|
||||
if (!ifNamePrefix.contains("\\")) {
|
||||
assertTrue(lvcr.isInterface(ifNamePrefix + "0"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue