mirror of
https://github.com/apache/cloudstack.git
synced 2025-11-02 20:02:29 +01:00
add upgrade path and daos
\n add nsx controller command
This commit is contained in:
parent
94bdc33993
commit
0aafa68a66
@ -128,7 +128,8 @@ public class Networks {
|
||||
},
|
||||
UnDecided(null, null),
|
||||
OpenDaylight("opendaylight", String.class),
|
||||
TUNGSTEN("tf", String.class);
|
||||
TUNGSTEN("tf", String.class),
|
||||
NSX("nsx", String.class);
|
||||
|
||||
private final String scheme;
|
||||
private final Class<?> type;
|
||||
@ -342,6 +343,7 @@ 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;
|
||||
|
||||
11
api/src/main/java/com/cloud/network/NsxProvider.java
Normal file
11
api/src/main/java/com/cloud/network/NsxProvider.java
Normal file
@ -0,0 +1,11 @@
|
||||
package com.cloud.network;
|
||||
|
||||
import org.apache.cloudstack.api.Identity;
|
||||
import org.apache.cloudstack.api.InternalIdentity;
|
||||
|
||||
public interface NsxProvider extends InternalIdentity, Identity {
|
||||
String getHostname();
|
||||
String getProviderName();
|
||||
String getUsername();
|
||||
long getZoneId();
|
||||
}
|
||||
@ -91,6 +91,8 @@ public interface NetworkOffering extends InfrastructureEntity, InternalIdentity,
|
||||
|
||||
boolean isForTungsten();
|
||||
|
||||
boolean isForNsx();
|
||||
|
||||
TrafficType getTrafficType();
|
||||
|
||||
boolean isSpecifyVlan();
|
||||
|
||||
@ -679,6 +679,10 @@ public class ApiConstants {
|
||||
public static final String VSWITCH_TYPE_PUBLIC_TRAFFIC = "publicvswitchtype";
|
||||
public static final String VSWITCH_NAME_GUEST_TRAFFIC = "guestvswitchname";
|
||||
public static final String VSWITCH_NAME_PUBLIC_TRAFFIC = "publicvswitchname";
|
||||
|
||||
// NSX
|
||||
public static final String EDGE_CLUSTER = "edgecluster";
|
||||
public static final String TIER0_GATEWAY = "tier0gateway";
|
||||
// Tungsten-Fabric
|
||||
public static final String TUNGSTEN_VIRTUAL_ROUTER_UUID = "tungstenvirtualrouteruuid";
|
||||
public static final String TUNGSTEN_PROVIDER_HOSTNAME = "tungstenproviderhostname";
|
||||
@ -796,6 +800,7 @@ public class ApiConstants {
|
||||
public static final String FORCE_ENCAP = "forceencap";
|
||||
public static final String SPLIT_CONNECTIONS = "splitconnections";
|
||||
public static final String FOR_VPC = "forvpc";
|
||||
public static final String FOR_NSX = "fornsx";
|
||||
public static final String FOR_TUNGSTEN = "fortungsten";
|
||||
public static final String SHRINK_OK = "shrinkok";
|
||||
public static final String NICIRA_NVP_DEVICE_ID = "nvpdeviceid";
|
||||
|
||||
@ -99,6 +99,10 @@ public class NetworkOfferingResponse extends BaseResponseWithAnnotations {
|
||||
@Param(description = "true if network offering can be used by VPC networks only")
|
||||
private Boolean forVpc;
|
||||
|
||||
@SerializedName(ApiConstants.FOR_NSX)
|
||||
@Param(description = "true if network offering can be used by NSX networks only")
|
||||
private Boolean forNsx;
|
||||
|
||||
@SerializedName(ApiConstants.FOR_TUNGSTEN)
|
||||
@Param(description = "true if network offering can be used by Tungsten-Fabric networks only")
|
||||
private Boolean forTungsten;
|
||||
@ -215,6 +219,10 @@ public class NetworkOfferingResponse extends BaseResponseWithAnnotations {
|
||||
this.forVpc = forVpc;
|
||||
}
|
||||
|
||||
public void setForNsx(Boolean forNsx) {
|
||||
this.forNsx = forNsx;
|
||||
}
|
||||
|
||||
public void setForTungsten(Boolean forTungsten) {
|
||||
this.forTungsten = forTungsten;
|
||||
}
|
||||
|
||||
@ -0,0 +1,14 @@
|
||||
package com.cloud.network.dao;
|
||||
|
||||
import com.cloud.network.element.NsxProviderVO;
|
||||
import com.cloud.utils.db.GenericDao;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface NsxProviderDao extends GenericDao<NsxProviderVO, Long> {
|
||||
NsxProviderVO findByZoneId(long zoneId);
|
||||
|
||||
NsxProviderVO findByUuid(String uuid);
|
||||
|
||||
List<NsxProviderVO> findAll();
|
||||
}
|
||||
@ -0,0 +1,19 @@
|
||||
package com.cloud.network.dao;
|
||||
|
||||
import com.cloud.network.element.NsxProviderVO;
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class NsxProviderDaoImpl extends GenericDaoBase<NsxProviderVO, Long>
|
||||
implements NsxProviderDao {
|
||||
@Override
|
||||
public NsxProviderVO findByZoneId(long zoneId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<NsxProviderVO> findAll() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,137 @@
|
||||
package com.cloud.network.element;
|
||||
|
||||
import com.cloud.network.NsxProvider;
|
||||
import com.cloud.utils.db.Encrypt;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.GenerationType;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.Table;
|
||||
import java.util.UUID;
|
||||
|
||||
@Entity
|
||||
@Table(name = "nsx_providers")
|
||||
public class NsxProviderVO implements NsxProvider {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@Column(name = "id")
|
||||
long id;
|
||||
|
||||
@Column(name = "zone_id")
|
||||
private long zoneId;
|
||||
|
||||
@Column(name = "uuid")
|
||||
private String uuid;
|
||||
|
||||
@Column(name = "provider_name")
|
||||
private String providerName;
|
||||
|
||||
@Column(name = "hostname")
|
||||
private String hostname;
|
||||
|
||||
@Column(name = "username")
|
||||
private String username;
|
||||
|
||||
@Encrypt
|
||||
@Column(name = "password")
|
||||
private String password;
|
||||
|
||||
@Column(name = "tier0_gateway")
|
||||
private String tier0Gateway;
|
||||
|
||||
@Column(name = "edge_cluster")
|
||||
private String edgeCluster;
|
||||
|
||||
|
||||
public NsxProviderVO( long zoneId,String providerName, String hostname, String username, String password, String tier0Gateway, String edgeCluster) {
|
||||
this.zoneId = zoneId;
|
||||
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;
|
||||
}
|
||||
|
||||
public void setId(long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getZoneId() {
|
||||
return zoneId;
|
||||
}
|
||||
|
||||
public void setZoneId(long zoneId) {
|
||||
this.zoneId = zoneId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUuid() {
|
||||
return uuid;
|
||||
}
|
||||
|
||||
public void setUuid(String uuid) {
|
||||
this.uuid = uuid;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getProviderName() {
|
||||
return providerName;
|
||||
}
|
||||
|
||||
public void setProviderName(String providerName) {
|
||||
this.providerName = providerName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getHostname() {
|
||||
return hostname;
|
||||
}
|
||||
|
||||
public void setHostname(String hostname) {
|
||||
this.hostname = hostname;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
|
||||
public void setUsername(String username) {
|
||||
this.username = username;
|
||||
}
|
||||
|
||||
public String getPassword() {
|
||||
return password;
|
||||
}
|
||||
|
||||
public void setPassword(String password) {
|
||||
this.password = password;
|
||||
}
|
||||
|
||||
public String getTier0Gateway() {
|
||||
return tier0Gateway;
|
||||
}
|
||||
|
||||
public void setTier0Gateway(String tier0Gateway) {
|
||||
this.tier0Gateway = tier0Gateway;
|
||||
}
|
||||
|
||||
public String getEdgeCluster() {
|
||||
return edgeCluster;
|
||||
}
|
||||
|
||||
public void setEdgeCluster(String edgeCluster) {
|
||||
this.edgeCluster = edgeCluster;
|
||||
}
|
||||
}
|
||||
@ -136,6 +136,9 @@ public class NetworkOfferingVO implements NetworkOffering {
|
||||
@Column(name = "for_tungsten")
|
||||
boolean forTungsten = false;
|
||||
|
||||
@Column(name = "for_nsx")
|
||||
boolean forNsx = false;
|
||||
|
||||
@Column(name = "egress_default_policy")
|
||||
boolean egressdefaultpolicy;
|
||||
|
||||
@ -195,6 +198,15 @@ public class NetworkOfferingVO implements NetworkOffering {
|
||||
this.forTungsten = forTungsten;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isForNsx() {
|
||||
return forNsx;
|
||||
}
|
||||
|
||||
public void setForNsx(boolean forNsx) {
|
||||
this.forNsx = forNsx;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getId() {
|
||||
return id;
|
||||
|
||||
@ -180,3 +180,15 @@ CREATE TABLE `cloud`.`vm_scheduled_job` (
|
||||
-- Add support for different cluster types for kubernetes
|
||||
ALTER TABLE `cloud`.`kubernetes_cluster` ADD COLUMN `cluster_type` varchar(64) DEFAULT 'CloudManaged' COMMENT 'type of cluster';
|
||||
ALTER TABLE `cloud`.`kubernetes_cluster` MODIFY COLUMN `kubernetes_version_id` bigint unsigned NULL COMMENT 'the ID of the Kubernetes version of this Kubernetes cluster';
|
||||
|
||||
CREATE TABLE `cloud`.`nsx_providers` (
|
||||
`id` bigint unsigned NOT NULL auto_increment COMMENT 'id',
|
||||
`uuid` varchar(40),
|
||||
`zone_id` bigint unsigned NOT NULL COMMENT 'Zone ID',
|
||||
`provider_name` varchar(40),
|
||||
`hostname` varchar(255) NOT NULL ,
|
||||
`username` varchar(255) NOT NULL ,
|
||||
`password` varchar(255) NOT NULL,
|
||||
`tier0_gateway` varchar(255),
|
||||
`edge_cluster` varchar(255)
|
||||
)
|
||||
@ -29,4 +29,17 @@
|
||||
<version>4.19.0.0-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.vmware</groupId>
|
||||
<artifactId>nsx-java-sdk</artifactId>
|
||||
<version>4.1.0.2.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.vmware</groupId>
|
||||
<artifactId>nsx-gpm-java-sdk</artifactId>
|
||||
<version>4.1.0.2.0</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
||||
@ -0,0 +1,99 @@
|
||||
package org.apache.cloudstack.api.command;
|
||||
|
||||
import com.cloud.network.NsxProvider;
|
||||
import org.apache.cloudstack.api.ApiConstants;
|
||||
import org.apache.cloudstack.api.APICommand;
|
||||
import org.apache.cloudstack.api.BaseCmd;
|
||||
import org.apache.cloudstack.api.Parameter;
|
||||
import org.apache.cloudstack.api.ServerApiException;
|
||||
import org.apache.cloudstack.api.ApiErrorCode;
|
||||
import org.apache.cloudstack.api.response.NsxControllerResponse;
|
||||
import org.apache.cloudstack.api.response.ZoneResponse;
|
||||
import org.apache.cloudstack.service.NsxProviderService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
|
||||
@APICommand(name = AddNsxControllerCmd.APINAME, description = "Add NSX Controller to CloudStack",
|
||||
responseObject = NsxControllerResponse.class, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||
public class AddNsxControllerCmd extends BaseCmd {
|
||||
public static final String APINAME = "addNsxController";
|
||||
public static final Logger LOGGER = LoggerFactory.getLogger(AddNsxControllerCmd.class.getName());
|
||||
|
||||
@Inject
|
||||
NsxProviderService nsxProviderService;
|
||||
|
||||
@Parameter(name = ApiConstants.ZONE_ID, type = CommandType.UUID, entityType = ZoneResponse.class, required = true,
|
||||
description = "the ID of zone")
|
||||
private Long zoneId;
|
||||
|
||||
@Parameter(name = ApiConstants.NAME, type = CommandType.STRING, required = true, description = "NSX controller / provider name")
|
||||
private String name;
|
||||
|
||||
@Parameter(name = ApiConstants.TUNGSTEN_PROVIDER_HOSTNAME, type = CommandType.STRING, required = true, description = "NSX controller hostname / IP address")
|
||||
private String hostname;
|
||||
|
||||
@Parameter(name = ApiConstants.USERNAME, type = CommandType.STRING, required = true, description = "Username to log into NSX controller")
|
||||
private String username;
|
||||
@Parameter(name = ApiConstants.PASSWORD, type = CommandType.STRING, required = true, description = "Password to login into NSX controller")
|
||||
private String password;
|
||||
|
||||
@Parameter(name = ApiConstants.TIER0_GATEWAY, type = CommandType.STRING, required = true, description = "Tier-0 Gateway address")
|
||||
private String tier0Gateway;
|
||||
|
||||
@Parameter(name = ApiConstants.EDGE_CLUSTER, type = CommandType.STRING, required = true, description = "Edge Cluster name")
|
||||
private String edgeCluster;
|
||||
|
||||
public NsxProviderService getNsxProviderService() {
|
||||
return nsxProviderService;
|
||||
}
|
||||
|
||||
public Long getZoneId() {
|
||||
return zoneId;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getHostname() {
|
||||
return hostname;
|
||||
}
|
||||
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
|
||||
public String getPassword() {
|
||||
return password;
|
||||
}
|
||||
|
||||
public String getTier0Gateway() {
|
||||
return tier0Gateway;
|
||||
}
|
||||
|
||||
public String getEdgeCluster() {
|
||||
return edgeCluster;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute() throws ServerApiException {
|
||||
NsxProvider nsxProvider = nsxProviderService.addProvider(this);
|
||||
NsxControllerResponse nsxControllerResponse =
|
||||
nsxProviderService.createNsxControllerResponse(
|
||||
nsxProvider);
|
||||
if (nsxControllerResponse == null)
|
||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to add NSX controller");
|
||||
else {
|
||||
nsxControllerResponse.setResponseName(getCommandName());
|
||||
setResponseObject(nsxControllerResponse);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getEntityOwnerId() {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
package org.apache.cloudstack.api.response;
|
||||
|
||||
import com.cloud.network.NsxProvider;
|
||||
import org.apache.cloudstack.api.BaseResponse;
|
||||
import org.apache.cloudstack.api.EntityReference;
|
||||
|
||||
@EntityReference(value = {NsxProvider.class})
|
||||
public class NsxControllerResponse extends BaseResponse {
|
||||
|
||||
|
||||
}
|
||||
@ -133,36 +133,6 @@ public class NsxElement extends AdapterBase implements DhcpServiceProvider, DnsS
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setName(String name) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setConfigParams(Map<String, Object> params) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getConfigParams() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRunLevel() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setRunLevel(int level) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
|
||||
return false;
|
||||
|
||||
@ -0,0 +1,55 @@
|
||||
package org.apache.cloudstack.service;
|
||||
|
||||
import com.cloud.dc.DataCenter;
|
||||
import com.cloud.deploy.DeployDestination;
|
||||
import com.cloud.network.Network;
|
||||
import com.cloud.network.NetworkMigrationResponder;
|
||||
import com.cloud.network.Networks;
|
||||
import com.cloud.network.PhysicalNetwork;
|
||||
import com.cloud.network.guru.GuestNetworkGuru;
|
||||
import com.cloud.offering.NetworkOffering;
|
||||
import com.cloud.offerings.dao.NetworkOfferingServiceMapDao;
|
||||
import com.cloud.vm.NicProfile;
|
||||
import com.cloud.vm.ReservationContext;
|
||||
import com.cloud.vm.VirtualMachineProfile;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
public class NsxGuestNetworkGuru extends GuestNetworkGuru implements NetworkMigrationResponder {
|
||||
private static final Logger LOGGER = Logger.getLogger(NsxGuestNetworkGuru.class);
|
||||
|
||||
@Inject
|
||||
NetworkOfferingServiceMapDao networkOfferingServiceMapDao;
|
||||
|
||||
private static final Networks.TrafficType[] TrafficTypes = {Networks.TrafficType.Guest};
|
||||
|
||||
public NsxGuestNetworkGuru() {
|
||||
super();
|
||||
_isolationMethods = new PhysicalNetwork.IsolationMethod[] {new PhysicalNetwork.IsolationMethod("NSX")};
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean prepareMigration(NicProfile nic, Network network, VirtualMachineProfile vm, DeployDestination dest, ReservationContext context) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void rollbackMigration(NicProfile nic, Network network, VirtualMachineProfile vm, ReservationContext src, ReservationContext dst) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void commitMigration(NicProfile nic, Network network, VirtualMachineProfile vm, ReservationContext src, ReservationContext dst) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canHandle(NetworkOffering offering, DataCenter.NetworkType networkType,
|
||||
PhysicalNetwork physicalNetwork) {
|
||||
return networkType == DataCenter.NetworkType.Advanced && isMyTrafficType(offering.getTrafficType())
|
||||
&& isMyIsolationMethod(physicalNetwork) && networkOfferingServiceMapDao.isProviderForNetworkOffering(
|
||||
offering.getId(), Network.Provider.Tungsten);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
package org.apache.cloudstack.service;
|
||||
|
||||
import com.cloud.network.NsxProvider;
|
||||
import com.cloud.utils.component.PluggableService;
|
||||
import org.apache.cloudstack.api.BaseResponse;
|
||||
import org.apache.cloudstack.api.command.AddNsxControllerCmd;
|
||||
import org.apache.cloudstack.api.response.NsxControllerResponse;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface NsxProviderService extends PluggableService {
|
||||
NsxProvider addProvider(AddNsxControllerCmd cmd);
|
||||
|
||||
NsxControllerResponse createNsxControllerResponse(NsxProvider tungstenProvider);
|
||||
|
||||
List<BaseResponse> listTungstenProvider(Long zoneId);
|
||||
}
|
||||
@ -0,0 +1,51 @@
|
||||
package org.apache.cloudstack.service;
|
||||
|
||||
import com.cloud.host.DetailVO;
|
||||
import com.cloud.network.NsxProvider;
|
||||
import com.cloud.network.dao.NsxProviderDao;
|
||||
import com.cloud.network.element.NsxProviderVO;
|
||||
import com.cloud.network.element.TungstenProviderVO;
|
||||
import com.cloud.utils.db.Transaction;
|
||||
import com.cloud.utils.db.TransactionCallback;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import org.apache.cloudstack.api.BaseResponse;
|
||||
import org.apache.cloudstack.api.command.AddNsxControllerCmd;
|
||||
import org.apache.cloudstack.api.response.NsxControllerResponse;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.naming.ConfigurationException;
|
||||
import java.util.List;
|
||||
|
||||
public class NsxProviderServiceImpl implements NsxProviderService {
|
||||
|
||||
@Inject
|
||||
NsxProviderDao nsxProviderDao;
|
||||
|
||||
@Override
|
||||
public NsxProvider addProvider(AddNsxControllerCmd cmd) {
|
||||
NsxProviderVO nsxProvider = Transaction.execute((TransactionCallback<NsxProviderVO>) status -> {
|
||||
NsxProviderVO nsxProviderVO = new NsxProviderVO(cmd.getZoneId(), cmd.getName(), cmd.getHostname(),
|
||||
cmd.getUsername(), cmd.getPassword(),
|
||||
cmd.getTier0Gateway(), cmd.getEdgeCluster());
|
||||
nsxProviderDao.persist(nsxProviderVO);
|
||||
|
||||
return nsxProviderVO;
|
||||
});
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NsxControllerResponse createNsxControllerResponse(NsxProvider tungstenProvider) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BaseResponse> listTungstenProvider(Long zoneId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Class<?>> getCommands() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@ -26,7 +26,10 @@
|
||||
http://www.springframework.org/schema/context
|
||||
http://www.springframework.org/schema/context/spring-context.xsd">
|
||||
<bean id="Nsx" class="org.apache.cloudstack.service.NsxElement">
|
||||
<property name="name" value="NsxElement"/>
|
||||
<property name="name" value="Nsx"/>
|
||||
</bean>
|
||||
<bean id="NsxGuestNetworkGuru" class="org.apache.cloudstack.service.NsxGuestNetworkGuru">
|
||||
<property name="name" value="NsxGuestNetworkGuru" />
|
||||
</bean>
|
||||
|
||||
</beans>
|
||||
|
||||
@ -2314,6 +2314,7 @@ public class ApiResponseHelper implements ResponseGenerator {
|
||||
}
|
||||
response.setForVpc(_configMgr.isOfferingForVpc(offering));
|
||||
response.setForTungsten(offering.isForTungsten());
|
||||
response.setForNsx(offering.isForNsx());
|
||||
response.setServices(serviceResponses);
|
||||
//set network offering details
|
||||
Map<Detail, String> details = _ntwkModel.getNtwkOffDetails(offering.getId());
|
||||
|
||||
@ -157,6 +157,8 @@ public class NetworkOfferingJoinVO extends BaseViewVO implements NetworkOffering
|
||||
@Column(name = "for_tungsten")
|
||||
boolean forTungsten;
|
||||
|
||||
@Column(name = "for_nsx")
|
||||
boolean forNsx;
|
||||
@Column(name = "service_package_id")
|
||||
private String servicePackageUuid = null;
|
||||
|
||||
@ -349,6 +351,15 @@ public class NetworkOfferingJoinVO extends BaseViewVO implements NetworkOffering
|
||||
|
||||
public void setForVpc(boolean forVpc) { this.forVpc = forVpc; }
|
||||
|
||||
@Override
|
||||
public boolean isForNsx() {
|
||||
return forNsx;
|
||||
}
|
||||
|
||||
public void setForNsx(boolean forNsx) {
|
||||
this.forNsx = forNsx;
|
||||
}
|
||||
|
||||
public String getServicePackage() {
|
||||
return servicePackageUuid;
|
||||
}
|
||||
|
||||
@ -999,6 +999,11 @@ public class ConfigurationServerImpl extends ManagerBase implements Configuratio
|
||||
defaultTungstenSharedSGNetworkOfferingProviders.put(Service.Dns, Provider.Tungsten);
|
||||
defaultTungstenSharedSGNetworkOfferingProviders.put(Service.SecurityGroup, Provider.Tungsten);
|
||||
|
||||
final Map<Network.Service, Network.Provider> defaultNSXNetworkOfferingProviders = new HashMap<>();
|
||||
defaultNSXNetworkOfferingProviders.put(Service.Connectivity, Provider.Nsx);
|
||||
defaultNSXNetworkOfferingProviders.put(Service.Dhcp, Provider.Nsx);
|
||||
defaultNSXNetworkOfferingProviders.put(Service.Dns, Provider.Nsx);
|
||||
|
||||
final Map<Network.Service, Network.Provider> defaultIsolatedSourceNatEnabledNetworkOfferingProviders = new HashMap<Network.Service, Network.Provider>();
|
||||
defaultIsolatedSourceNatEnabledNetworkOfferingProviders.put(Service.Dhcp, Provider.VirtualRouter);
|
||||
defaultIsolatedSourceNatEnabledNetworkOfferingProviders.put(Service.Dns, Provider.VirtualRouter);
|
||||
@ -1200,6 +1205,20 @@ public class ConfigurationServerImpl extends ManagerBase implements Configuratio
|
||||
}
|
||||
|
||||
_networkOfferingDao.persistDefaultL2NetworkOfferings();
|
||||
// Offering #9 - network offering for nsx provider
|
||||
NetworkOfferingVO defaultNSXNetworkOffering =
|
||||
new NetworkOfferingVO(NetworkOffering.DEFAULT_NSX_OFFERING, "Offering for NSX enabled networks",
|
||||
TrafficType.Guest, false, true, null, null, true, Availability.Optional, null, GuestType.Isolated, true, true, false, false, false, false);
|
||||
|
||||
defaultNSXNetworkOffering.setState(NetworkOffering.State.Enabled);
|
||||
defaultNSXNetworkOffering = _networkOfferingDao.persistDefaultNetworkOffering(defaultTungstenSharedSGNetworkOffering);
|
||||
|
||||
for (Map.Entry<Network.Service, Network.Provider> service : defaultNSXNetworkOfferingProviders.entrySet()) {
|
||||
NetworkOfferingServiceMapVO offService =
|
||||
new NetworkOfferingServiceMapVO(defaultNSXNetworkOffering.getId(), service.getKey(), service.getValue());
|
||||
_ntwkOfferingServiceMapDao.persist(offService);
|
||||
s_logger.trace("Added service for the network offering: " + offService);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -66,6 +66,7 @@
|
||||
<a-select-option value="VSP"> VSP </a-select-option>
|
||||
<a-select-option value="VCS"> VCS </a-select-option>
|
||||
<a-select-option value="TF"> TF </a-select-option>
|
||||
<a-select-option value="NSX"> NSX </a-select-option>
|
||||
|
||||
<template #suffixIcon>
|
||||
<a-tooltip
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user