Skip to content

Commit 5383301

Browse files
committed
api/server: apply suggestions
1 parent c8eaada commit 5383301

File tree

12 files changed

+46
-20
lines changed

12 files changed

+46
-20
lines changed

engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4483,7 +4483,11 @@ public Map<String, String> finalizeServicesAndProvidersForNetwork(final NetworkO
44834483
if (provider == null) {
44844484
provider = _networkModel.getDefaultUniqueProviderForService(service).getName();
44854485
} else {
4486-
provider = _networkModel.resolveProvider(provider).getName();
4486+
final Provider resolvedProvider = _networkModel.resolveProvider(provider);
4487+
if (resolvedProvider == null) {
4488+
throw new InvalidParameterValueException("Invalid provider " + provider + " configured for service " + service);
4489+
}
4490+
provider = resolvedProvider.getName();
44874491
}
44884492

44894493
// check that provider is supported
@@ -4509,7 +4513,10 @@ private List<Provider> getNetworkProviders(final long networkId) {
45094513
final List<String> providerNames = _ntwkSrvcDao.getDistinctProviders(networkId);
45104514
final List<Provider> providers = new ArrayList<>();
45114515
for (final String providerName : providerNames) {
4512-
providers.add(_networkModel.resolveProvider(providerName));
4516+
final Provider provider = _networkModel.resolveProvider(providerName);
4517+
if (provider != null) {
4518+
providers.add(provider);
4519+
}
45134520
}
45144521

45154522
return providers;

framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/network/NetworkExtensionElement.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@
196196
* <pre>{"host":"192.168.1.10","namespace":"cs-net-42"}</pre>
197197
*
198198
* <h3>Network capabilities</h3>
199-
* When creating the extension, set detail {@code network.capabilities} to a
199+
* When creating the extension, set detail {@code network.service.capabilities} to a
200200
* JSON object describing the services and their capabilities:
201201
* <pre>
202202
* {
@@ -333,7 +333,7 @@ public NetworkExtensionElement withProviderName(String providerName) {
333333
public Map<Service, Map<Capability, String>> getCapabilities() {
334334
try {
335335
// If this element is scoped to a provider name, prefer capabilities stored
336-
// in the extension's "network.capabilities" detail. The ExtensionHelper
336+
// in the extension's "network.service.capabilities" detail. The ExtensionHelper
337337
// exposes a helper that loads the Service→Capability map from the DB.
338338
if (providerName != null && !providerName.isBlank()) {
339339
Map<Service, Map<Capability, String>> caps = extensionHelper.getNetworkCapabilitiesForProvider(null, providerName);
@@ -342,7 +342,7 @@ public Map<Service, Map<Capability, String>> getCapabilities() {
342342
}
343343
}
344344
} catch (Exception e) {
345-
logger.warn("Failed to load network capabilities from extension details for provider '{}': {}", providerName, e.getMessage());
345+
logger.warn("Failed to load network service capabilities from extension details for provider '{}': {}", providerName, e.getMessage());
346346
}
347347

348348
return DEFAULT_CAPABILITIES;

server/src/main/java/com/cloud/api/ApiResponseHelper.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3305,8 +3305,10 @@ public ProviderResponse createNetworkServiceProviderResponse(PhysicalNetworkServ
33053305
response.setServices(services);
33063306

33073307
Provider serviceProvider = networkModel.resolveProvider(result.getProviderName());
3308-
boolean canEnableIndividualServices = ApiDBUtils.canElementEnableIndividualServices(serviceProvider);
3309-
response.setCanEnableIndividualServices(canEnableIndividualServices);
3308+
if (serviceProvider != null) {
3309+
boolean canEnableIndividualServices = ApiDBUtils.canElementEnableIndividualServices(serviceProvider);
3310+
response.setCanEnableIndividualServices(canEnableIndividualServices);
3311+
}
33103312

33113313
response.setObjectName("networkserviceprovider");
33123314
return response;

server/src/main/java/com/cloud/network/NetworkModelImpl.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1266,7 +1266,11 @@ public Map<Service, Set<Provider>> getNetworkOfferingServiceProvidersMap(long ne
12661266
if (providers == null) {
12671267
providers = new HashSet<Provider>();
12681268
}
1269-
providers.add(resolveProvider(instance.getProvider()));
1269+
1270+
final Provider provider = resolveProvider(instance.getProvider());
1271+
if (provider != null) {
1272+
providers.add(provider);
1273+
}
12701274
serviceProviderMap.put(Service.getService(service), providers);
12711275
}
12721276

server/src/main/java/com/cloud/network/firewall/FirewallManagerImpl.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -723,7 +723,9 @@ public boolean applyRules(Network network, Purpose purpose, List<? extends Firew
723723
String fwProviderName = networkServiceMapDao.getProviderForServiceInNetwork(network.getId(), Service.Firewall);
724724
if (fwProviderName != null) {
725725
NetworkElement element = _networkModel.getElementImplementingProvider(fwProviderName);
726-
handled = ((FirewallServiceProvider) element).applyFWRules(network, rules);
726+
if (element instanceof FirewallServiceProvider) {
727+
handled = ((FirewallServiceProvider) element).applyFWRules(network, rules);
728+
}
727729
}
728730
}
729731
break;
@@ -743,7 +745,9 @@ public boolean applyRules(Network network, Purpose purpose, List<? extends Firew
743745
String pfProviderName = networkServiceMapDao.getProviderForServiceInNetwork(network.getId(), Service.PortForwarding);
744746
if (pfProviderName != null) {
745747
NetworkElement element = _networkModel.getElementImplementingProvider(pfProviderName);
746-
handled = ((PortForwardingServiceProvider) element).applyPFRules(network, (List<PortForwardingRule>) rules);
748+
if (element instanceof PortForwardingServiceProvider) {
749+
handled = ((PortForwardingServiceProvider) element).applyPFRules(network, (List<PortForwardingRule>) rules);
750+
}
747751
}
748752
}
749753
break;

server/src/main/java/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2055,7 +2055,9 @@ protected boolean applyLbRules(Network network, List<LoadBalancingRule> rules) t
20552055
String lbProviderName = _ntwkSrvcDao.getProviderForServiceInNetwork(network.getId(), Service.Lb);
20562056
if (lbProviderName != null) {
20572057
NetworkElement element = _networkModel.getElementImplementingProvider(lbProviderName);
2058-
handled = ((LoadBalancingServiceProvider) element).applyLBRules(network, rules);
2058+
if (element instanceof LoadBalancingServiceProvider) {
2059+
handled = ((LoadBalancingServiceProvider) element).applyLBRules(network, rules);
2060+
}
20592061
}
20602062
}
20612063
return handled;

server/src/main/java/com/cloud/network/vpc/NetworkACLManagerImpl.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,10 @@ public boolean applyACLItemsToNetwork(final long networkId, final List<NetworkAC
455455
if (aclProviderName != null) {
456456
foundProvider = true;
457457
NetworkElement element = _networkModel.getElementImplementingProvider(aclProviderName);
458-
handled = ((NetworkACLServiceProvider) element).applyNetworkACLs(network, rules);
458+
if (element instanceof NetworkACLServiceProvider) {
459+
logger.debug("Applying NetworkACL for network: {} with Network ACL service provider: {}", network, aclProviderName);
460+
handled = ((NetworkACLServiceProvider) element).applyNetworkACLs(network, rules);
461+
}
459462
}
460463
}
461464
if (handled) {

server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1855,7 +1855,11 @@ private Map<String, List<String>> finalizeServicesAndProvidersForVpc(final long
18551855
// Default to VPCVirtualRouter
18561856
provider = Provider.VPCVirtualRouter.getName();
18571857
} else {
1858-
provider = _ntwkModel.resolveProvider(provider).getName();
1858+
final Provider resolvedProvider = _ntwkModel.resolveProvider(provider);
1859+
if (resolvedProvider == null) {
1860+
throw new InvalidParameterValueException("Invalid provider " + provider + " configured for service " + service);
1861+
}
1862+
provider = resolvedProvider.getName();
18591863
}
18601864

18611865
if (!_ntwkModel.isProviderEnabledInZone(zoneId, provider)) {

ui/public/locales/en.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4250,6 +4250,6 @@
42504250
"label.external.network.service": "External Network Service",
42514251
"message.confirm.disable.external.network.provider": "Are you sure you want to disable the External Network provider?",
42524252
"message.no.network.orchestrator.extensions": "No NetworkOrchestrator extensions found. Please create one first via createExtension API.",
4253-
"message.extension.services.from.capabilities": "Services are derived automatically from the extension's network.capabilities detail.",
4253+
"message.extension.services.from.capabilities": "Services are derived automatically from the extension's network.service.capabilities detail.",
42544254
"message.select.extension": "Please select an extension."
42554255
}

ui/src/views/infra/network/ServiceProvidersTab.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1258,7 +1258,7 @@ export default {
12581258
12591259
this.extensionProviderLoading = true
12601260
try {
1261-
// registerExtension auto-creates the NSP (Enabled) with services from network.capabilities
1261+
// registerExtension auto-creates the NSP (Enabled) with services from network.service.capabilities
12621262
await postAPI('registerExtension', {
12631263
extensionid: extensionId,
12641264
resourceid: this.resource.id,

0 commit comments

Comments
 (0)