(cloudstack) 01/01: NSX: Fix code smells

2024-01-03 Thread pearl11594
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

2023-12-27 Thread pearl11594
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 =