You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ra...@apache.org on 2018/11/07 11:53:11 UTC
[cloudstack] branch 4.11 updated: Fix DirectNetworkGuru canHandle
checks for lowercase isolation methods (#3010)
This is an automated email from the ASF dual-hosted git repository.
rafael pushed a commit to branch 4.11
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.11 by this push:
new af0c1e4 Fix DirectNetworkGuru canHandle checks for lowercase isolation methods (#3010)
af0c1e4 is described below
commit af0c1e48cf26de3fdc73edd6ac8ff4577a113223
Author: Nicolas Vazquez <ni...@gmail.com>
AuthorDate: Wed Nov 7 08:53:01 2018 -0300
Fix DirectNetworkGuru canHandle checks for lowercase isolation methods (#3010)
---
.../com/cloud/network/guru/DirectNetworkGuru.java | 13 +++++-
.../cloud/network/guru/DirectNetworkGuruTest.java | 53 ++++++++++++++++++++++
2 files changed, 64 insertions(+), 2 deletions(-)
diff --git a/server/src/com/cloud/network/guru/DirectNetworkGuru.java b/server/src/com/cloud/network/guru/DirectNetworkGuru.java
index 3edc8d2..c8d3eec 100644
--- a/server/src/com/cloud/network/guru/DirectNetworkGuru.java
+++ b/server/src/com/cloud/network/guru/DirectNetworkGuru.java
@@ -22,6 +22,7 @@ import javax.inject.Inject;
import com.cloud.offerings.dao.NetworkOfferingServiceMapDao;
import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
+import org.apache.commons.collections.CollectionUtils;
import org.apache.log4j.Logger;
import com.cloud.dc.DataCenter;
@@ -119,10 +120,18 @@ public class DirectNetworkGuru extends AdapterBase implements NetworkGuru {
return false;
}
+ /**
+ * Return true if the physical network isolation method contains the expected isolation method for this guru
+ */
protected boolean isMyIsolationMethod(PhysicalNetwork physicalNetwork) {
for (IsolationMethod m : _isolationMethods) {
- if (physicalNetwork.getIsolationMethods().contains(m.toString())) {
- return true;
+ List<String> isolationMethods = physicalNetwork.getIsolationMethods();
+ if (CollectionUtils.isNotEmpty(isolationMethods)) {
+ for (String method : isolationMethods) {
+ if (method.equalsIgnoreCase(m.toString())) {
+ return true;
+ }
+ }
}
}
return false;
diff --git a/server/test/com/cloud/network/guru/DirectNetworkGuruTest.java b/server/test/com/cloud/network/guru/DirectNetworkGuruTest.java
new file mode 100644
index 0000000..98d43f3
--- /dev/null
+++ b/server/test/com/cloud/network/guru/DirectNetworkGuruTest.java
@@ -0,0 +1,53 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// 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,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.network.guru;
+
+import com.cloud.network.PhysicalNetwork;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.util.Arrays;
+
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.when;
+
+public class DirectNetworkGuruTest {
+
+ DirectNetworkGuru guru = new DirectNetworkGuru();
+
+ @Mock
+ PhysicalNetwork physicalNetwork;
+
+ @Before
+ public void setup() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ when(physicalNetwork.getIsolationMethods()).thenReturn(Arrays.asList("VXLAN", "VLAN"));
+ }
+
+ @Test
+ public void testIsMyIsolationMethodUppercaseMethods() {
+ assertTrue(guru.isMyIsolationMethod(physicalNetwork));
+ }
+
+ @Test
+ public void testIsMyIsolationMethodLowercaseMethods() {
+ when(physicalNetwork.getIsolationMethods()).thenReturn(Arrays.asList("vxlan", "vlan"));
+ assertTrue(guru.isMyIsolationMethod(physicalNetwork));
+ }
+}