From 600a65226b531ff86ee13bb0084c4291f96f62c3 Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Fri, 17 Apr 2026 16:23:42 +0200 Subject: [PATCH] NE: apply copilot's suggestions --- .../extensions/manager/ExtensionsManagerImpl.java | 12 +++--------- .../manager/ExtensionsManagerImplTest.java | 4 +--- .../java/com/cloud/network/NetworkServiceImpl.java | 3 --- .../java/com/cloud/network/NetworkModelImplTest.java | 3 ++- ui/src/views/infra/network/ServiceProvidersTab.vue | 6 ------ 5 files changed, 6 insertions(+), 22 deletions(-) diff --git a/framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/manager/ExtensionsManagerImpl.java b/framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/manager/ExtensionsManagerImpl.java index 70b5e07d414..0c605577219 100644 --- a/framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/manager/ExtensionsManagerImpl.java +++ b/framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/manager/ExtensionsManagerImpl.java @@ -470,15 +470,9 @@ public class ExtensionsManagerImpl extends ManagerBase implements ExtensionsMana } } } - // Fallback: return the first extension registered on the physical network - List maps = extensionResourceMapDao.listByResourceIdAndType( - physicalNetworkId, ExtensionResourceMap.ResourceType.PhysicalNetwork); - if (CollectionUtils.isEmpty(maps)) { - return null; - } - return extensionDao.findById(maps.get(0).getExtensionId()); + return null; } else if (resourceType == ExtensionCustomAction.ResourceType.Vpc) { - com.cloud.network.vpc.Vpc vpc = (com.cloud.network.vpc.Vpc) object; + Vpc vpc = (Vpc) object; // Find extension via the VPC's tier networks List tierNetworks = networkDao.listByVpc(vpc.getId()); if (CollectionUtils.isNotEmpty(tierNetworks)) { @@ -1248,7 +1242,7 @@ public class ExtensionsManagerImpl extends ManagerBase implements ExtensionsMana if (!parsed.isEmpty()) { return parsed; } - // Default: the full set of services NetworkExtensionElement supports + // Falls back to an empty set if not present return new HashSet<>(); } diff --git a/framework/extensions/src/test/java/org/apache/cloudstack/framework/extensions/manager/ExtensionsManagerImplTest.java b/framework/extensions/src/test/java/org/apache/cloudstack/framework/extensions/manager/ExtensionsManagerImplTest.java index de2adf3e0c8..3d5b88c40a9 100644 --- a/framework/extensions/src/test/java/org/apache/cloudstack/framework/extensions/manager/ExtensionsManagerImplTest.java +++ b/framework/extensions/src/test/java/org/apache/cloudstack/framework/extensions/manager/ExtensionsManagerImplTest.java @@ -2707,11 +2707,9 @@ public class ExtensionsManagerImplTest { when(mapVO.getExtensionId()).thenReturn(99L); when(extensionResourceMapDao.listByResourceIdAndType(5L, ExtensionResourceMap.ResourceType.PhysicalNetwork)) .thenReturn(List.of(mapVO)); - ExtensionVO ext = mock(ExtensionVO.class); - when(extensionDao.findById(99L)).thenReturn(ext); Extension result = extensionsManager.getExtensionFromResource(ExtensionCustomAction.ResourceType.Network, "net-uuid"); - assertEquals(ext, result); + assertNull(result); } @Test diff --git a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java index dfc38292a28..0d68e1569f0 100644 --- a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java +++ b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java @@ -68,7 +68,6 @@ import org.apache.cloudstack.api.command.user.vm.ListNicsCmd; import org.apache.cloudstack.api.response.AcquirePodIpCmdResponse; import org.apache.cloudstack.context.CallContext; import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService; -import org.apache.cloudstack.framework.extensions.manager.ExtensionsManager; import org.apache.cloudstack.framework.config.ConfigKey; import org.apache.cloudstack.framework.config.Configurable; import org.apache.cloudstack.framework.config.dao.ConfigurationDao; @@ -401,8 +400,6 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService, C @Inject NetworkDetailsDao _networkDetailsDao; @Inject - ExtensionsManager extensionsManager; - @Inject LoadBalancerDao _loadBalancerDao; @Inject NetworkMigrationManager _networkMigrationManager; diff --git a/server/src/test/java/com/cloud/network/NetworkModelImplTest.java b/server/src/test/java/com/cloud/network/NetworkModelImplTest.java index 4a027b2ae2d..9ef1f44ddcd 100644 --- a/server/src/test/java/com/cloud/network/NetworkModelImplTest.java +++ b/server/src/test/java/com/cloud/network/NetworkModelImplTest.java @@ -60,6 +60,7 @@ 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.element.NetworkElement; import com.cloud.network.element.VpcVirtualRouterElement; import com.cloud.network.vpc.VpcVO; @@ -391,7 +392,7 @@ public class NetworkModelImplTest { @Test public void listSupportedNetworkServiceProvidersIncludesExtensionBackedProviders() { - com.cloud.network.dao.PhysicalNetworkVO physNet = mock(com.cloud.network.dao.PhysicalNetworkVO.class); + PhysicalNetworkVO physNet = mock(PhysicalNetworkVO.class); when(physNet.getId()).thenReturn(1L); when(physicalNetworkDao.listAll()).thenReturn(List.of(physNet)); diff --git a/ui/src/views/infra/network/ServiceProvidersTab.vue b/ui/src/views/infra/network/ServiceProvidersTab.vue index adeca8fdc5f..af568560900 100644 --- a/ui/src/views/infra/network/ServiceProvidersTab.vue +++ b/ui/src/views/infra/network/ServiceProvidersTab.vue @@ -197,9 +197,6 @@ export default { } }, computed: { - isExtensionTab () { - return this.registeredExtensions.some(ext => ext.name === this.tabKey) - }, hardcodedNsps () { return [ { @@ -1169,9 +1166,6 @@ export default { this.form = reactive({}) this.rules = reactive({}) }, - _updateServicesFromExtension (extensionId) { - // No longer needed — services are derived from extension capabilities server-side - }, fetchData () { if (!this.resource || !('id' in this.resource)) { return