(cloudstack) 01/01: NSX: Fix code smells
This is an automated email from the ASF dual-hosted git repository. pearl11594 pushed a commit to branch nsx-code-smell-2 in repository https://gitbox.apache.org/repos/asf/cloudstack.git commit 4f6f39ec8c98f610e4eb4aab9f529a1987469ecf Author: Pearl Dsilva AuthorDate: Wed Jan 3 09:11:14 2024 -0500 NSX: Fix code smells --- .../com/cloud/vm/VirtualMachineManagerImpl.java| 46 +--- .../engine/orchestration/NetworkOrchestrator.java | 62 ++ .../java/com/cloud/network/vpc/VpcManagerImpl.java | 41 +++--- .../com/cloud/server/ManagementServerImpl.java | 7 +-- 4 files changed, 94 insertions(+), 62 deletions(-) diff --git a/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java b/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java index 1b19ffee2b5..d0b6dbb19d9 100755 --- a/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java +++ b/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java @@ -611,11 +611,18 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac VirtualMachine.Type.ConsoleProxy.equals(vm.getType()); } -protected void advanceExpunge(VMInstanceVO vm) throws ResourceUnavailableException, OperationTimedoutException, ConcurrentOperationException { +private boolean isVmDestroyed(VMInstanceVO vm) { if (vm == null || vm.getRemoved() != null) { if (s_logger.isDebugEnabled()) { s_logger.debug("Unable to find vm or vm is destroyed: " + vm); } +return true; +} +return false; +} + +protected void advanceExpunge(VMInstanceVO vm) throws ResourceUnavailableException, OperationTimedoutException, ConcurrentOperationException { +if (isVmDestroyed(vm)) { return; } @@ -642,7 +649,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac final HypervisorGuru hvGuru = _hvGuruMgr.getGuru(vm.getHypervisorType()); List vmNics = profile.getNics(); -s_logger.debug(String.format("Cleaning up NICS [%s] of %s.", vmNics.stream().map(nic -> nic.toString()).collect(Collectors.joining(", ")),vm.toString())); +s_logger.debug(String.format("Cleaning up NICS [%s] of %s.", vmNics.stream().map(NicProfile::toString).collect(Collectors.joining(", ")),vm.toString())); final List nicExpungeCommands = hvGuru.finalizeExpungeNics(vm, profile.getNics()); _networkMgr.cleanupNics(profile); @@ -686,28 +693,31 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac // send hypervisor-dependent commands before removing final List finalizeExpungeCommands = hvGuru.finalizeExpunge(vm); -if (CollectionUtils.isNotEmpty(finalizeExpungeCommands) || CollectionUtils.isNotEmpty(nicExpungeCommands)) { -if (hostId != null) { -final Commands cmds = new Commands(Command.OnError.Stop); -addAllExpungeCommandsFromList(finalizeExpungeCommands, cmds, vm); -addAllExpungeCommandsFromList(nicExpungeCommands, cmds, vm); -_agentMgr.send(hostId, cmds); -if (!cmds.isSuccessful()) { -for (final Answer answer : cmds.getAnswers()) { -if (!answer.getResult()) { -s_logger.warn("Failed to expunge vm due to: " + answer.getDetails()); -throw new CloudRuntimeException("Unable to expunge " + vm + " due to " + answer.getDetails()); -} -} -} -} -} +handleUnsuccessfulExpungeOperation(finalizeExpungeCommands, nicExpungeCommands, vm, hostId); if (s_logger.isDebugEnabled()) { s_logger.debug("Expunged " + vm); } } +private void handleUnsuccessfulExpungeOperation(List finalizeExpungeCommands, List nicExpungeCommands, +VMInstanceVO vm, Long hostId) throws OperationTimedoutException, AgentUnavailableException { +if (CollectionUtils.isNotEmpty(finalizeExpungeCommands) || CollectionUtils.isNotEmpty(nicExpungeCommands) && (hostId != null)) { +final Commands cmds = new Commands(Command.OnError.Stop); +addAllExpungeCommandsFromList(finalizeExpungeCommands, cmds, vm); +addAllExpungeCommandsFromList(nicExpungeCommands, cmds, vm); +_agentMgr.send(hostId, cmds); +if (!cmds.isSuccessful()) { +for (final Answer answer : cmds.getAnswers()) { +if (!answer.getResult()) { +s_logger.warn("Failed to expunge vm due to: " + answer.getDetails()); +throw new
(cloudstack) 01/01: NSX: Fix code smells and reported bugs
This is an automated email from the ASF dual-hosted git repository. pearl11594 pushed a commit to branch nsx-fix-code-smells in repository https://gitbox.apache.org/repos/asf/cloudstack.git commit 05be11a54f585e1f19e249223392baf650f2f68f Author: Pearl Dsilva AuthorDate: Wed Dec 27 11:27:53 2023 -0500 NSX: Fix code smells and reported bugs --- .../admin/network/CreateNetworkOfferingCmd.java| 4 +- .../command/admin/vpc/CreateVPCOfferingCmd.java| 4 +- .../cloud/configuration/ConfigurationManager.java | 29 +++--- .../engine/orchestration/NetworkOrchestrator.java | 8 +- .../cloud/vm/VirtualMachineManagerImplTest.java| 5 +- .../com/cloud/network/element/NsxProviderVO.java | 1 + .../agent/api/CreateNsxDhcpRelayConfigCommand.java | 15 +++ .../CreateNsxDistributedFirewallRulesCommand.java | 15 +++ .../api/CreateNsxLoadBalancerRuleCommand.java | 15 +++ .../agent/api/CreateNsxPortForwardRuleCommand.java | 16 .../api/CreateOrUpdateNsxTier1NatRuleCommand.java | 16 .../api/DeleteNsxLoadBalancerRuleCommand.java | 15 +++ .../agent/api/DeleteNsxNatRuleCommand.java | 16 .../agent/api/DeleteNsxSegmentCommand.java | 16 .../agent/api/DeleteNsxTier1GatewayCommand.java| 16 .../apache/cloudstack/resource/NsxNetworkRule.java | 1 + .../apache/cloudstack/resource/NsxResource.java| 14 +-- .../apache/cloudstack/service/NsxApiClient.java| 30 +++--- .../org/apache/cloudstack/service/NsxElement.java | 29 ++ .../cloudstack/service/NsxGuestNetworkGuru.java| 103 +++-- .../cloudstack/service/NsxProviderServiceImpl.java | 17 ++-- .../cloudstack/service/NsxPublicNetworkGuru.java | 26 ++ .../org/apache/cloudstack/utils/NsxHelper.java | 3 + .../cloudstack/service/NsxApiClientTest.java | 4 +- .../service/NsxProviderServiceImplTest.java| 8 +- .../configuration/ConfigurationManagerImpl.java| 4 +- .../com/cloud/hypervisor/HypervisorGuruBase.java | 2 +- 27 files changed, 274 insertions(+), 158 deletions(-) diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateNetworkOfferingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateNetworkOfferingCmd.java index 5d0a87ef0df..93de44f9291 100644 --- a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateNetworkOfferingCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/CreateNetworkOfferingCmd.java @@ -286,7 +286,7 @@ public class CreateNetworkOfferingCmd extends BaseCmd { return forVpc; } -public Boolean isForNsx() { +public boolean isForNsx() { return BooleanUtils.isTrue(forNsx); } @@ -314,7 +314,7 @@ public class CreateNetworkOfferingCmd extends BaseCmd { } public Map> getServiceProviders() { -Map> serviceProviderMap = new HashMap>(); +Map> serviceProviderMap = new HashMap<>(); if (serviceProviderList != null && !serviceProviderList.isEmpty() && !isForNsx()) { Collection servicesCollection = serviceProviderList.values(); Iterator iter = servicesCollection.iterator(); diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/CreateVPCOfferingCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/CreateVPCOfferingCmd.java index e514ddb508b..a6601626803 100644 --- a/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/CreateVPCOfferingCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/CreateVPCOfferingCmd.java @@ -163,7 +163,7 @@ public class CreateVPCOfferingCmd extends BaseAsyncCreateCmd { return supportedServices; } -public Boolean isForNsx() { +public boolean isForNsx() { return BooleanUtils.isTrue(forNsx); } @@ -172,7 +172,7 @@ public class CreateVPCOfferingCmd extends BaseAsyncCreateCmd { } public Map> getServiceProviders() { -Map> serviceProviderMap = new HashMap>();; +Map> serviceProviderMap = new HashMap<>(); if (serviceProviderList != null && !serviceProviderList.isEmpty() && !isForNsx()) { Collection> servicesCollection = serviceProviderList.values(); Iterator> iter = servicesCollection.iterator(); diff --git a/engine/components-api/src/main/java/com/cloud/configuration/ConfigurationManager.java b/engine/components-api/src/main/java/com/cloud/configuration/ConfigurationManager.java index c975e8f351f..bbddd8fd471 100644 --- a/engine/components-api/src/main/java/com/cloud/configuration/ConfigurationManager.java +++ b/engine/components-api/src/main/java/com/cloud/configuration/ConfigurationManager.java @@ -63,9 +63,9 @@ public interface ConfigurationManager { static final String VM_USERDATA_MAX_LENGTH_STRING = "vm.userdata.max.length"; static final ConfigKey VM_USERDATA_MAX_LENGTH =