Skip to content

Commit 2600965

Browse files
committed
Merge remote-tracking branch 'apache/4.22'
2 parents f3a112f + 2941b51 commit 2600965

File tree

4 files changed

+36
-9
lines changed

4 files changed

+36
-9
lines changed

api/src/main/java/com/cloud/network/Networks.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public <T> URI toUri(T value) {
7878
}
7979
@Override
8080
public String getValueFrom(URI uri) {
81-
return uri.getAuthority();
81+
return uri == null ? null : uri.getAuthority();
8282
}
8383
},
8484
Vswitch("vs", String.class), LinkLocal(null, null), Vnet("vnet", Long.class), Storage("storage", Integer.class), Lswitch("lswitch", String.class) {
@@ -96,7 +96,7 @@ public <T> URI toUri(T value) {
9696
*/
9797
@Override
9898
public String getValueFrom(URI uri) {
99-
return uri.getSchemeSpecificPart();
99+
return uri == null ? null : uri.getSchemeSpecificPart();
100100
}
101101
},
102102
Mido("mido", String.class), Pvlan("pvlan", String.class),
@@ -177,7 +177,7 @@ public <T> URI toUri(T value) {
177177
* @return the scheme as BroadcastDomainType
178178
*/
179179
public static BroadcastDomainType getSchemeValue(URI uri) {
180-
return toEnumValue(uri.getScheme());
180+
return toEnumValue(uri == null ? null : uri.getScheme());
181181
}
182182

183183
/**
@@ -191,7 +191,7 @@ public static BroadcastDomainType getTypeOf(String str) throws URISyntaxExceptio
191191
if (com.cloud.dc.Vlan.UNTAGGED.equalsIgnoreCase(str)) {
192192
return Native;
193193
}
194-
return getSchemeValue(new URI(str));
194+
return getSchemeValue(str == null ? null : new URI(str));
195195
}
196196

197197
/**
@@ -220,7 +220,7 @@ public static BroadcastDomainType toEnumValue(String scheme) {
220220
* @return the host part as String
221221
*/
222222
public String getValueFrom(URI uri) {
223-
return uri.getHost();
223+
return uri == null ? null : uri.getHost();
224224
}
225225

226226
/**
@@ -243,7 +243,7 @@ public static String getValue(URI uri) {
243243
* @throws URISyntaxException the string is not even an uri
244244
*/
245245
public static String getValue(String uriString) throws URISyntaxException {
246-
return getValue(new URI(uriString));
246+
return getValue(uriString == null ? null : new URI(uriString));
247247
}
248248

249249
/**

api/src/test/java/com/cloud/network/NetworksTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,24 @@ public class NetworksTest {
3737
public void setUp() {
3838
}
3939

40+
@Test
41+
public void nullBroadcastDomainTypeTest() throws URISyntaxException {
42+
BroadcastDomainType type = BroadcastDomainType.getTypeOf(null);
43+
Assert.assertEquals("a null uri should mean a broadcasttype of undecided", BroadcastDomainType.UnDecided, type);
44+
}
45+
46+
@Test
47+
public void nullBroadcastDomainTypeValueTest() {
48+
URI uri = null;
49+
Assert.assertNull(BroadcastDomainType.getValue(uri));
50+
}
51+
52+
@Test
53+
public void nullBroadcastDomainTypeStringValueTest() throws URISyntaxException {
54+
String uriString = null;
55+
Assert.assertNull(BroadcastDomainType.getValue(uriString));
56+
}
57+
4058
@Test
4159
public void emptyBroadcastDomainTypeTest() throws URISyntaxException {
4260
BroadcastDomainType type = BroadcastDomainType.getTypeOf("");

plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1689,7 +1689,11 @@ to support snapshots(backuped) as qcow2 files. */
16891689
*/
16901690
srcFile = new QemuImgFile(KVMPhysicalDisk.RBDStringBuilder(srcPool, sourcePath));
16911691
srcFile.setFormat(sourceFormat);
1692-
destFile = new QemuImgFile(destPath);
1692+
if (destPool.getType() == StoragePoolType.RBD) {
1693+
destFile = new QemuImgFile(KVMPhysicalDisk.RBDStringBuilder(destPool, destPath));
1694+
} else {
1695+
destFile = new QemuImgFile(destPath);
1696+
}
16931697
destFile.setFormat(destFormat);
16941698

16951699
try {

ui/src/views/AutogenView.vue

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1997,8 +1997,13 @@ export default {
19971997
},
19981998
onSearch (opts) {
19991999
const query = Object.assign({}, this.$route.query)
2000-
const searchFilters = this.$route?.meta?.searchFilters || []
2001-
searchFilters.forEach(key => delete query[key])
2000+
let searchFilters = this.$route?.meta?.searchFilters || []
2001+
if (typeof searchFilters === 'function') {
2002+
searchFilters = searchFilters()
2003+
}
2004+
if (Array.isArray(searchFilters)) {
2005+
searchFilters.forEach(key => delete query[key])
2006+
}
20022007
delete query.name
20032008
delete query.templatetype
20042009
delete query.keyword

0 commit comments

Comments
 (0)