This is an automated email from the ASF dual-hosted git repository.

pearl11594 pushed a commit to branch nsx-integration
in repository https://gitbox.apache.org/repos/asf/cloudstack.git

commit 9685f8708e47714809375636a0f705b179b42584
Author: Pearl Dsilva <pearl1...@gmail.com>
AuthorDate: Thu Sep 7 09:42:31 2023 -0400

    address code smells - part 1
---
 api/src/main/java/com/cloud/network/Network.java   |  1 -
 api/src/main/java/com/cloud/network/Networks.java  |  1 -
 .../java/com/cloud/network/vpc/VpcOffering.java    |  2 +-
 .../com/cloud/network/element/NsxProviderVO.java   | 86 +++++++++++++++++++---
 .../resources/META-INF/db/schema-41810to41900.sql  |  2 +
 .../agent/api/CreateNsxSegmentCommand.java         | 16 ++++
 .../agent/api/CreateNsxTier1GatewayCommand.java    | 16 ++++
 .../apache/cloudstack/agent/api/NsxCommand.java    | 16 ++++
 .../api/command/AddNsxControllerCmd.java           |  1 -
 .../api/response/NsxControllerResponse.java        |  2 -
 .../apache/cloudstack/resource/NsxResource.java    | 30 ++------
 .../java/org/apache/cloudstack/service/NsxApi.java |  2 -
 .../org/apache/cloudstack/service/NsxElement.java  | 19 ++---
 .../cloudstack/service/NsxGuestNetworkGuru.java    | 12 ++-
 .../cloudstack/service/NsxProviderServiceImpl.java | 33 ++++++---
 .../configuration/ConfigurationManagerImpl.java    |  6 ++
 .../java/com/cloud/network/vpc/VpcManagerImpl.java |  6 +-
 17 files changed, 179 insertions(+), 72 deletions(-)

diff --git a/api/src/main/java/com/cloud/network/Network.java 
b/api/src/main/java/com/cloud/network/Network.java
index 3e9e5e318a3..3b13ef7bd9c 100644
--- a/api/src/main/java/com/cloud/network/Network.java
+++ b/api/src/main/java/com/cloud/network/Network.java
@@ -205,7 +205,6 @@ public interface Network extends ControlledEntity, 
StateObject<Network.State>, I
         //Add Tungsten Fabric provider
         public static final Provider Tungsten = new Provider("Tungsten", 
false);
 
-        //TODO: should it be true?
         public static final Provider Nsx = new Provider("Nsx", false);
 
         private final String name;
diff --git a/api/src/main/java/com/cloud/network/Networks.java 
b/api/src/main/java/com/cloud/network/Networks.java
index 75a85ddb5a8..dfa0ddb84ca 100644
--- a/api/src/main/java/com/cloud/network/Networks.java
+++ b/api/src/main/java/com/cloud/network/Networks.java
@@ -343,7 +343,6 @@ public class Networks {
             }
         },
         Vswitch("vs", String.class), Undecided(null, null), Vnet("vnet", 
Long.class);
-//        NSX("nsx", String.class);
 
         private final String scheme;
         private final Class<?> type;
diff --git a/api/src/main/java/com/cloud/network/vpc/VpcOffering.java 
b/api/src/main/java/com/cloud/network/vpc/VpcOffering.java
index 0d6f958776b..c64b9320245 100644
--- a/api/src/main/java/com/cloud/network/vpc/VpcOffering.java
+++ b/api/src/main/java/com/cloud/network/vpc/VpcOffering.java
@@ -29,7 +29,7 @@ public interface VpcOffering extends InternalIdentity, 
Identity {
     public static final String defaultVPCOfferingName = "Default VPC offering";
     public static final String defaultVPCNSOfferingName = "Default VPC  
offering with Netscaler";
     public static final String redundantVPCOfferingName = "Redundant VPC 
offering";
-    public static final String defaultVPCNSXSOfferingName = "VPC offering with 
NSX";
+    public static final String DEFAULT_VPC_NSX_OFFERING_NAME = "VPC offering 
with NSX";
 
     /**
      *
diff --git 
a/engine/schema/src/main/java/com/cloud/network/element/NsxProviderVO.java 
b/engine/schema/src/main/java/com/cloud/network/element/NsxProviderVO.java
index f86b3401cdd..e011d840176 100644
--- a/engine/schema/src/main/java/com/cloud/network/element/NsxProviderVO.java
+++ b/engine/schema/src/main/java/com/cloud/network/element/NsxProviderVO.java
@@ -71,18 +71,6 @@ public class NsxProviderVO implements NsxProvider {
         this.uuid = UUID.randomUUID().toString();
     }
 
-    public NsxProviderVO( long zoneId, long hostId, String providerName, 
String hostname, String username, String password, String tier0Gateway, String 
edgeCluster) {
-        this.zoneId = zoneId;
-        this.hostId = hostId;
-        this.uuid = UUID.randomUUID().toString();
-        this.providerName = providerName;
-        this.hostname = hostname;
-        this.username = username;
-        this.password = password;
-        this.tier0Gateway = tier0Gateway;
-        this.edgeCluster = edgeCluster;
-    }
-
     @Override
     public long getId() {
         return id;
@@ -177,4 +165,78 @@ public class NsxProviderVO implements NsxProvider {
     public void setEdgeCluster(String edgeCluster) {
         this.edgeCluster = edgeCluster;
     }
+
+    public static final class Builder {
+        private long zoneId;
+        private long hostId;
+        private String providerName;
+        private String hostname;
+        private String port;
+        private String username;
+        private String password;
+        private String tier0Gateway;
+        private String edgeCluster;
+
+        public Builder() {
+        }
+
+        public Builder setZoneId(long zoneId) {
+            this.zoneId = zoneId;
+            return this;
+        }
+
+        public Builder setHostId(long hostId) {
+            this.hostId = hostId;
+            return this;
+        }
+
+        public Builder setProviderName(String providerName) {
+            this.providerName = providerName;
+            return this;
+        }
+
+        public Builder setHostname(String hostname) {
+            this.hostname = hostname;
+            return this;
+        }
+
+        public Builder setPort(String port) {
+            this.port = port;
+            return this;
+        }
+
+        public Builder setUsername(String username) {
+            this.username = username;
+            return this;
+        }
+
+        public Builder setPassword(String password) {
+            this.password = password;
+            return this;
+        }
+
+        public Builder setTier0Gateway(String tier0Gateway) {
+            this.tier0Gateway = tier0Gateway;
+            return this;
+        }
+
+        public Builder setEdgeCluster(String edgeCluster) {
+            this.edgeCluster = edgeCluster;
+            return this;
+        }
+        public NsxProviderVO build() {
+            NsxProviderVO provider = new NsxProviderVO();
+            provider.setZoneId(this.zoneId);
+            provider.setHostId(this.hostId);
+            provider.setUuid(UUID.randomUUID().toString());
+            provider.setProviderName(this.providerName);
+            provider.setHostname(this.hostname);
+            provider.setPort(this.port);
+            provider.setUsername(this.username);
+            provider.setPassword(this.password);
+            provider.setTier0Gateway(this.tier0Gateway);
+            provider.setEdgeCluster(this.edgeCluster);
+            return provider;
+        }
+    }
 }
diff --git 
a/engine/schema/src/main/resources/META-INF/db/schema-41810to41900.sql 
b/engine/schema/src/main/resources/META-INF/db/schema-41810to41900.sql
index d0e0df38301..9defda2e86c 100644
--- a/engine/schema/src/main/resources/META-INF/db/schema-41810to41900.sql
+++ b/engine/schema/src/main/resources/META-INF/db/schema-41810to41900.sql
@@ -193,6 +193,8 @@ CREATE TABLE `cloud`.`nsx_providers` (
     `password` varchar(255) NOT NULL,
     `tier0_gateway` varchar(255),
     `edge_cluster` varchar(255),
+    `created` datetime NOT NULL COMMENT 'date created',
+    `removed` datetime COMMENT 'date removed if not null',
     PRIMARY KEY (`id`),
     CONSTRAINT `fk_nsx_providers__zone_id` FOREIGN KEY 
`fk_nsx_providers__zone_id` (`zone_id`) REFERENCES `data_center`(`id`) ON 
DELETE CASCADE,
     INDEX `i_nsx_providers__zone_id`(`zone_id`)
diff --git 
a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/agent/api/CreateNsxSegmentCommand.java
 
b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/agent/api/CreateNsxSegmentCommand.java
index 1231765d37d..0f39272a889 100644
--- 
a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/agent/api/CreateNsxSegmentCommand.java
+++ 
b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/agent/api/CreateNsxSegmentCommand.java
@@ -18,6 +18,8 @@ package org.apache.cloudstack.agent.api;
 
 import com.cloud.network.dao.NetworkVO;
 
+import java.util.Objects;
+
 public class CreateNsxSegmentCommand extends CreateNsxTier1GatewayCommand {
     private NetworkVO tierNetwork;
     public CreateNsxSegmentCommand(String zoneName, Long zoneId, String 
accountName, Long accountId, String vpcName, NetworkVO tierNetwork) {
@@ -32,4 +34,18 @@ public class CreateNsxSegmentCommand extends 
CreateNsxTier1GatewayCommand {
     public void setTierNetwork(NetworkVO tierNetwork) {
         this.tierNetwork = tierNetwork;
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        if (!super.equals(o)) return false;
+        CreateNsxSegmentCommand command = (CreateNsxSegmentCommand) o;
+        return Objects.equals(tierNetwork, command.tierNetwork);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(super.hashCode(), tierNetwork);
+    }
 }
diff --git 
a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/agent/api/CreateNsxTier1GatewayCommand.java
 
b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/agent/api/CreateNsxTier1GatewayCommand.java
index eb29f624383..03e57362f17 100644
--- 
a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/agent/api/CreateNsxTier1GatewayCommand.java
+++ 
b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/agent/api/CreateNsxTier1GatewayCommand.java
@@ -16,6 +16,8 @@
 // under the License.
 package org.apache.cloudstack.agent.api;
 
+import java.util.Objects;
+
 public class CreateNsxTier1GatewayCommand extends NsxCommand {
     private String vpcName;
 
@@ -31,4 +33,18 @@ public class CreateNsxTier1GatewayCommand extends NsxCommand 
{
     public void setVpcName(String vpcName) {
         this.vpcName = vpcName;
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        if (!super.equals(o)) return false;
+        CreateNsxTier1GatewayCommand that = (CreateNsxTier1GatewayCommand) o;
+        return Objects.equals(vpcName, that.vpcName);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(super.hashCode(), vpcName);
+    }
 }
diff --git 
a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/agent/api/NsxCommand.java
 
b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/agent/api/NsxCommand.java
index ec34d611eba..6ad4edfc680 100644
--- 
a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/agent/api/NsxCommand.java
+++ 
b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/agent/api/NsxCommand.java
@@ -18,6 +18,8 @@ package org.apache.cloudstack.agent.api;
 
 import com.cloud.agent.api.Command;
 
+import java.util.Objects;
+
 public class NsxCommand extends Command {
     private String zoneName;
     private Long zoneId;
@@ -66,4 +68,18 @@ public class NsxCommand extends Command {
     public boolean executeInSequence() {
         return false;
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        if (!super.equals(o)) return false;
+        NsxCommand that = (NsxCommand) o;
+        return Objects.equals(zoneName, that.zoneName) && 
Objects.equals(zoneId, that.zoneId) && Objects.equals(accountName, 
that.accountName) && Objects.equals(accountId, that.accountId);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(super.hashCode(), zoneName, zoneId, accountName, 
accountId);
+    }
 }
diff --git 
a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/api/command/AddNsxControllerCmd.java
 
b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/api/command/AddNsxControllerCmd.java
index d7c695b864c..77b852cd7ba 100644
--- 
a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/api/command/AddNsxControllerCmd.java
+++ 
b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/api/command/AddNsxControllerCmd.java
@@ -53,7 +53,6 @@ public class AddNsxControllerCmd extends BaseCmd {
     @Parameter(name = ApiConstants.NSX_PROVIDER_HOSTNAME, type = 
CommandType.STRING, required = true, description = "NSX controller hostname / 
IP address")
     private String hostname;
 
-    // TODO: May not be required
     @Parameter(name = ApiConstants.NSX_PROVIDER_PORT, type = 
CommandType.STRING, description = "NSX controller port")
     private String port;
     @Parameter(name = ApiConstants.USERNAME, type = CommandType.STRING, 
required = true, description = "Username to log into NSX controller")
diff --git 
a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/api/response/NsxControllerResponse.java
 
b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/api/response/NsxControllerResponse.java
index 811b7f1d250..3d6fd13909d 100644
--- 
a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/api/response/NsxControllerResponse.java
+++ 
b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/api/response/NsxControllerResponse.java
@@ -48,8 +48,6 @@ public class NsxControllerResponse extends BaseResponse {
     @Param(description = "NSX controller port")
     private String port;
 
-    // TODO: Should Password be returned?
-
     @SerializedName(ApiConstants.TIER0_GATEWAY)
     @Param(description = "The tier-0 gateway network. Tier-0 gateway is 
responsible for handling" +
             " traffic between logical and physical networks"
diff --git 
a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/resource/NsxResource.java
 
b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/resource/NsxResource.java
index f15ae3cb4c6..65af6028ea7 100644
--- 
a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/resource/NsxResource.java
+++ 
b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/resource/NsxResource.java
@@ -53,6 +53,7 @@ import org.apache.cloudstack.utils.NsxApiClientUtils;
 import org.apache.log4j.Logger;
 
 import javax.naming.ConfigurationException;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.function.Function;
@@ -124,7 +125,7 @@ public class NsxResource implements ServerResource {
 
     @Override
     public void disconnected() {
-
+        // Do nothing
     }
 
     @Override
@@ -134,6 +135,7 @@ public class NsxResource implements ServerResource {
 
     @Override
     public void setAgentControl(IAgentControl agentControl) {
+        // Do nothing
     }
 
     @Override
@@ -148,12 +150,12 @@ public class NsxResource implements ServerResource {
 
     @Override
     public void setConfigParams(Map<String, Object> params) {
-
+        // Do nothing
     }
 
     @Override
     public Map<String, Object> getConfigParams() {
-        return null;
+        return new HashMap<>();
     }
 
     @Override
@@ -163,7 +165,7 @@ public class NsxResource implements ServerResource {
 
     @Override
     public void setRunLevel(int level) {
-
+        // Do nothing
     }
 
     @Override
@@ -222,7 +224,7 @@ public class NsxResource implements ServerResource {
         return new ReadyAnswer(cmd);
     }
 
-    private Function<Class, Service> nsxService = svcClass -> { return 
nsxApi.getApiClient().createStub(svcClass); };
+    private Function<Class<? extends Service>, Service> nsxService = svcClass 
-> nsxApi.getApiClient().createStub(svcClass);
     private Answer executeRequest(CreateNsxTier1GatewayCommand cmd) {
         String name = getTier1GatewayName(cmd);
         Tier1 tier1 = getTier1Gateway(name);
@@ -315,24 +317,6 @@ public class NsxResource implements ServerResource {
         }
     }
 
-    private EdgeCluster getEdgeClusterDetails(String edgeClusterName) {
-        try {
-            EdgeClusters edgeClusterService = (EdgeClusters) 
nsxService.apply(EdgeClusters.class);
-            return edgeClusterService.get(edgeClusterName);
-        } catch (Exception e) {
-            throw new CloudRuntimeException(String.format("Failed to fetch 
details of edge cluster: %s, due to: %s", edgeClusterName, e.getMessage()));
-        }
-    }
-
-    private ServiceSegmentListResult listServiceSegments() {
-        try {
-            ServiceSegments serviceSegmentSvc = (ServiceSegments) 
nsxService.apply(ServiceSegments.class);
-            return serviceSegmentSvc.list(null, null, null, true, null);
-        } catch (Exception e) {
-            throw new CloudRuntimeException(String.format("Failed to fetch 
service segment list due to %s", e.getMessage()));
-        }
-    }
-
     private Tier1 getTier1Gateway(String tier1GatewayId) {
         try {
             Tier1s tier1service = (Tier1s) nsxService.apply(Tier1s.class);
diff --git 
a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxApi.java
 
b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxApi.java
index fe6bca3ceb0..6cb902e02e9 100644
--- 
a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxApi.java
+++ 
b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxApi.java
@@ -21,8 +21,6 @@ import org.apache.log4j.Logger;
 
 public class NsxApi {
 
-    private static final Logger S_LOGGER = Logger.getLogger(NsxApi.class);
-
     ApiClient apiClient;
 
     public ApiClient getApiClient() {
diff --git 
a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxElement.java
 
b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxElement.java
index 69a7e028dd4..4da3a74eaf1 100644
--- 
a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxElement.java
+++ 
b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxElement.java
@@ -75,6 +75,7 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
 import java.util.function.Function;
+import java.util.function.LongFunction;
 
 @Component
 public class NsxElement extends AdapterBase implements DhcpServiceProvider, 
DnsServiceProvider, VpcProvider,
@@ -258,10 +259,10 @@ public class NsxElement extends AdapterBase implements 
DhcpServiceProvider, DnsS
     public boolean implementVpc(Vpc vpc, DeployDestination dest, 
ReservationContext context) throws ConcurrentOperationException, 
ResourceUnavailableException, InsufficientCapacityException {
         DataCenterVO zone = zoneFunction.apply(vpc.getZoneId());
         Pair<Boolean, Account> isNsxAndAccount = 
validateVpcConfigurationAndGetAccount(zone, vpc);
-        if (!isNsxAndAccount.first()) {
+        if (Boolean.FALSE.equals(isNsxAndAccount.first())) {
             return true;
         }
-        if (isNsxAndAccount.first() && 
Objects.isNull(isNsxAndAccount.second())) {
+        if (Boolean.TRUE.equals(isNsxAndAccount.first()) && 
Objects.isNull(isNsxAndAccount.second())) {
             throw new InvalidParameterValueException(String.format("Failed to 
find account with id %s", vpc.getAccountId()));
         }
         Account account = isNsxAndAccount.second();
@@ -272,10 +273,10 @@ public class NsxElement extends AdapterBase implements 
DhcpServiceProvider, DnsS
     public boolean shutdownVpc(Vpc vpc, ReservationContext context) throws 
ConcurrentOperationException {
         DataCenterVO zone = zoneFunction.apply(vpc.getZoneId());
         Pair<Boolean, Account> isNsxAndAccount = 
validateVpcConfigurationAndGetAccount(zone, vpc);
-        if (!isNsxAndAccount.first()) {
+        if (Boolean.FALSE.equals(isNsxAndAccount.first())) {
             return true;
         }
-        if (isNsxAndAccount.first() && 
Objects.isNull(isNsxAndAccount.second())) {
+        if (Boolean.TRUE.equals(isNsxAndAccount.first()) && 
Objects.isNull(isNsxAndAccount.second())) {
             throw new InvalidParameterValueException(String.format("Failed to 
find account with id %s", vpc.getAccountId()));
         }
         Account account = isNsxAndAccount.second();
@@ -337,12 +338,12 @@ public class NsxElement extends AdapterBase implements 
DhcpServiceProvider, DnsS
 
     @Override
     public void processHostAdded(long hostId) {
-
+        // Do nothing
     }
 
     @Override
     public void processConnect(Host host, StartupCommand cmd, boolean 
forRebalance) throws ConnectionException {
-
+        // Do nothing
     }
 
     @Override
@@ -352,12 +353,12 @@ public class NsxElement extends AdapterBase implements 
DhcpServiceProvider, DnsS
 
     @Override
     public void processHostAboutToBeRemoved(long hostId) {
-
+        // Do nothing
     }
 
     @Override
     public void processHostRemoved(long hostId, long clusterId) {
-
+        // Do nothing
     }
 
     @Override
@@ -387,5 +388,5 @@ public class NsxElement extends AdapterBase implements 
DhcpServiceProvider, DnsS
         return true;
     }
 
-    private final Function<Long, DataCenterVO> zoneFunction = zoneId -> { 
return dataCenterDao.findById(zoneId); };
+    private final LongFunction<DataCenterVO> zoneFunction = zoneId -> 
dataCenterDao.findById(zoneId);
 }
diff --git 
a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxGuestNetworkGuru.java
 
b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxGuestNetworkGuru.java
index b31b3ca159f..32e5047115e 100644
--- 
a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxGuestNetworkGuru.java
+++ 
b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxGuestNetworkGuru.java
@@ -62,8 +62,6 @@ public class NsxGuestNetworkGuru extends GuestNetworkGuru 
implements NetworkMigr
     @Inject
     AccountDao accountDao;
 
-    private static final Networks.TrafficType[] TrafficTypes = 
{Networks.TrafficType.Guest};
-
     public NsxGuestNetworkGuru() {
         super();
         _isolationMethods = new PhysicalNetwork.IsolationMethod[] {new 
PhysicalNetwork.IsolationMethod("NSX")};
@@ -112,7 +110,7 @@ public class NsxGuestNetworkGuru extends GuestNetworkGuru 
implements NetworkMigr
     @Override
     @DB
     public void deallocate(Network config, NicProfile nic, 
VirtualMachineProfile vm) {
-
+        // Do nothing
     }
 
     @Override
@@ -156,7 +154,7 @@ public class NsxGuestNetworkGuru extends GuestNetworkGuru 
implements NetworkMigr
     public void reserve(final NicProfile nic, final Network network, final 
VirtualMachineProfile vm,
                         final DeployDestination dest, final ReservationContext 
context)
             throws InsufficientVirtualNetworkCapacityException, 
InsufficientAddressCapacityException {
-
+        // Do nothing
     }
 
     @Override
@@ -166,7 +164,7 @@ public class NsxGuestNetworkGuru extends GuestNetworkGuru 
implements NetworkMigr
 
     @Override
     public void shutdown(final NetworkProfile profile, final NetworkOffering 
offering) {
-
+        // Do nothing
     }
 
     @Override
@@ -181,12 +179,12 @@ public class NsxGuestNetworkGuru extends GuestNetworkGuru 
implements NetworkMigr
 
     @Override
     public void rollbackMigration(NicProfile nic, Network network, 
VirtualMachineProfile vm, ReservationContext src, ReservationContext dst) {
-
+        // Do nothing
     }
 
     @Override
     public void commitMigration(NicProfile nic, Network network, 
VirtualMachineProfile vm, ReservationContext src, ReservationContext dst) {
-
+        // Do nothing
     }
 
     private void createNsxSegment(NetworkVO networkVO, DataCenter zone) {
diff --git 
a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxProviderServiceImpl.java
 
b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxProviderServiceImpl.java
index cfd1566f604..909bbd7834f 100644
--- 
a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxProviderServiceImpl.java
+++ 
b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxProviderServiceImpl.java
@@ -102,8 +102,18 @@ public class NsxProviderServiceImpl implements 
NsxProviderService {
             final Host host = resourceManager.addHost(zoneId, nsxResource, 
nsxResource.getType(), params);
             if (host != null) {
                  nsxProvider = 
Transaction.execute((TransactionCallback<NsxProviderVO>) status -> {
-                    NsxProviderVO nsxProviderVO = new NsxProviderVO(zoneId, 
host.getId(), name, hostname,
-                            username, password, tier0Gateway, edgeCluster);
+                    NsxProviderVO nsxProviderVO = new NsxProviderVO.Builder()
+                            .setZoneId(zoneId)
+                            .setHostId(host.getId())
+                            .setProviderName(name)
+                            .setHostname(hostname)
+                            .setPort(port)
+                            .setUsername(username)
+                            .setPassword(password)
+                            .setTier0Gateway(tier0Gateway)
+                            .setEdgeCluster(edgeCluster)
+                            .build();
+
                     nsxProviderDao.persist(nsxProviderVO);
 
                     DetailVO detail = new DetailVO(host.getId(), 
"nsxcontrollerid",
@@ -170,14 +180,7 @@ public class NsxProviderServiceImpl implements 
NsxProviderService {
         for (PhysicalNetworkVO physicalNetwork : physicalNetworks) {
             List<NetworkVO> networkList = 
networkDao.listByPhysicalNetwork(physicalNetwork.getId());
             if (!CollectionUtils.isNullOrEmpty(networkList)) {
-                // Networks with broadcast type vcs are ours
-                for (NetworkVO network : networkList) {
-                    if (network.getBroadcastDomainType() == 
Networks.BroadcastDomainType.NSX) {
-                        if ((network.getState() != Network.State.Shutdown) && 
(network.getState() != Network.State.Destroy)) {
-                            throw new CloudRuntimeException("This NSX 
Controller cannot be deleted as there are one or more logical networks 
provisioned by CloudStack on it.");
-                        }
-                    }
-                }
+                validateNetworkState(networkList);
             }
         }
         nsxProviderDao.remove(nsxControllerId);
@@ -192,4 +195,14 @@ public class NsxProviderServiceImpl implements 
NsxProviderService {
         cmdList.add(DeleteNsxControllerCmd.class);
         return cmdList;
     }
+
+    private void validateNetworkState(List<NetworkVO> networkList) {
+        for (NetworkVO network : networkList) {
+            if (network.getBroadcastDomainType() == 
Networks.BroadcastDomainType.NSX) {
+                if ((network.getState() != Network.State.Shutdown) && 
(network.getState() != Network.State.Destroy)) {
+                    throw new CloudRuntimeException("This NSX Controller 
cannot be deleted as there are one or more logical networks provisioned by 
CloudStack on it.");
+                }
+            }
+        }
+    }
 }
diff --git 
a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java 
b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
index 42b9bb2c950..bed04df6a6d 100644
--- a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
+++ b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
@@ -47,6 +47,8 @@ import javax.naming.ConfigurationException;
 
 
 import com.cloud.hypervisor.HypervisorGuru;
+import com.cloud.network.dao.NsxProviderDao;
+import com.cloud.network.element.NsxProviderVO;
 import org.apache.cloudstack.acl.SecurityChecker;
 import org.apache.cloudstack.affinity.AffinityGroup;
 import org.apache.cloudstack.affinity.AffinityGroupService;
@@ -451,6 +453,8 @@ public class ConfigurationManagerImpl extends ManagerBase 
implements Configurati
     Ipv6GuestPrefixSubnetNetworkMapDao ipv6GuestPrefixSubnetNetworkMapDao;
     @Inject
     Ipv6Service ipv6Service;
+    @Inject
+    NsxProviderDao nsxProviderDao;
 
     // FIXME - why don't we have interface for DataCenterLinkLocalIpAddressDao?
     @Inject
@@ -2527,6 +2531,8 @@ public class ConfigurationManagerImpl extends ManagerBase 
implements Configurati
                 }
                 // we should actually find the mapping and remove if it exists
                 // but we don't know about vmware/plugin/hypervisors at this 
point
+                NsxProviderVO nsxProvider = 
nsxProviderDao.findByZoneId(zoneId);
+                nsx
 
                 final boolean success = _zoneDao.remove(zoneId);
 
diff --git a/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java 
b/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java
index 1bc23ce7730..922fc307d8a 100644
--- a/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java
+++ b/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java
@@ -368,8 +368,8 @@ public class VpcManagerImpl extends ManagerBase implements 
VpcManager, VpcProvis
                 }
 
                 // configure default vpc offering with NSX as network service 
provider
-                if 
(_vpcOffDao.findByUniqueName(VpcOffering.defaultVPCNSXSOfferingName) == null) {
-                    s_logger.debug("Creating default VPC offering with NSX as 
network service provider" + VpcOffering.defaultVPCNSXSOfferingName);
+                if 
(_vpcOffDao.findByUniqueName(VpcOffering.DEFAULT_VPC_NSX_OFFERING_NAME) == 
null) {
+                    s_logger.debug("Creating default VPC offering with NSX as 
network service provider" + VpcOffering.DEFAULT_VPC_NSX_OFFERING_NAME);
                     final Map<Service, Set<Provider>> svcProviderMap = new 
HashMap<Service, Set<Provider>>();
                     final Set<Provider> defaultProviders = 
Set.of(Provider.Nsx);
                     for (final Service svc : getSupportedServices()) {
@@ -380,7 +380,7 @@ public class VpcManagerImpl extends ManagerBase implements 
VpcManager, VpcProvis
                             svcProviderMap.put(svc, defaultProviders);
                         }
                     }
-                    createVpcOffering(VpcOffering.defaultVPCNSXSOfferingName, 
VpcOffering.defaultVPCNSXSOfferingName, svcProviderMap, false, State.Enabled, 
null, false, false, false);
+                    
createVpcOffering(VpcOffering.DEFAULT_VPC_NSX_OFFERING_NAME, 
VpcOffering.DEFAULT_VPC_NSX_OFFERING_NAME, svcProviderMap, false, 
State.Enabled, null, false, false, false);
 
                 }
             }

Reply via email to