mirror of https://github.com/apache/cloudstack.git
Changes:
- Make all API commands Async and add events - Make BroadcatsDomainRange case insensitive - Process all _networkElements to build the Service -> Provider map during NetworkMgr::configure()
This commit is contained in:
parent
21344e3c36
commit
0d7ddb5d58
|
|
@ -21,16 +21,20 @@ package com.cloud.api.commands;
|
|||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.api.ApiConstants;
|
||||
import com.cloud.api.BaseAsyncCreateCmd;
|
||||
import com.cloud.api.BaseCmd;
|
||||
import com.cloud.api.Implementation;
|
||||
import com.cloud.api.Parameter;
|
||||
import com.cloud.api.ServerApiException;
|
||||
import com.cloud.api.response.ProviderResponse;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.exception.ResourceAllocationException;
|
||||
import com.cloud.network.PhysicalNetworkServiceProvider;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.user.UserContext;
|
||||
|
||||
@Implementation(description="Adds a network serviceProvider to a physical network", responseObject=ProviderResponse.class)
|
||||
public class AddNetworkServiceProviderCmd extends BaseCmd {
|
||||
public class AddNetworkServiceProviderCmd extends BaseAsyncCreateCmd {
|
||||
public static final Logger s_logger = Logger.getLogger(AddNetworkServiceProviderCmd.class.getName());
|
||||
|
||||
private static final String s_name = "addnetworkserviceproviderresponse";
|
||||
|
|
@ -80,7 +84,8 @@ public class AddNetworkServiceProviderCmd extends BaseCmd {
|
|||
|
||||
@Override
|
||||
public void execute(){
|
||||
PhysicalNetworkServiceProvider result = _networkService.addProviderToPhysicalNetwork(getPhysicalNetworkId(), getProviderName(), getDestinationPhysicalNetworkId());
|
||||
UserContext.current().setEventDetails("Network ServiceProvider Id: "+getEntityId());
|
||||
PhysicalNetworkServiceProvider result = _networkService.getCreatedPhysicalNetworkServiceProvider(getEntityId());
|
||||
if (result != null) {
|
||||
ProviderResponse response = _responseGenerator.createNetworkServiceProviderResponse(result);
|
||||
response.setResponseName(getCommandName());
|
||||
|
|
@ -89,4 +94,24 @@ public class AddNetworkServiceProviderCmd extends BaseCmd {
|
|||
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to add service provider to physical network");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void create() throws ResourceAllocationException {
|
||||
PhysicalNetworkServiceProvider result = _networkService.addProviderToPhysicalNetwork(getPhysicalNetworkId(), getProviderName(), getDestinationPhysicalNetworkId());
|
||||
if (result != null) {
|
||||
setEntityId(result.getId());
|
||||
} else {
|
||||
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to add service provider entity to physical network");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getEventType() {
|
||||
return EventTypes.EVENT_SERVICE_PROVIDER_CREATE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getEventDescription() {
|
||||
return "Adding physical network ServiceProvider: " + getEntityId();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,16 +23,20 @@ import java.util.List;
|
|||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.api.ApiConstants;
|
||||
import com.cloud.api.BaseAsyncCreateCmd;
|
||||
import com.cloud.api.BaseCmd;
|
||||
import com.cloud.api.Implementation;
|
||||
import com.cloud.api.Parameter;
|
||||
import com.cloud.api.ServerApiException;
|
||||
import com.cloud.api.response.PhysicalNetworkResponse;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.exception.ResourceAllocationException;
|
||||
import com.cloud.network.PhysicalNetwork;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.user.UserContext;
|
||||
|
||||
@Implementation(description="Creates a physical network", responseObject=PhysicalNetworkResponse.class)
|
||||
public class CreatePhysicalNetworkCmd extends BaseCmd {
|
||||
public class CreatePhysicalNetworkCmd extends BaseAsyncCreateCmd {
|
||||
public static final Logger s_logger = Logger.getLogger(CreatePhysicalNetworkCmd.class.getName());
|
||||
|
||||
private static final String s_name = "createphysicalnetworkresponse";
|
||||
|
|
@ -107,9 +111,30 @@ public class CreatePhysicalNetworkCmd extends BaseCmd {
|
|||
return Account.ACCOUNT_ID_SYSTEM;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getEventType() {
|
||||
return EventTypes.EVENT_PHYSICAL_NETWORK_CREATE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCreateEventType() {
|
||||
return EventTypes.EVENT_PHYSICAL_NETWORK_CREATE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCreateEventDescription() {
|
||||
return "creating Physical Network";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getEventDescription() {
|
||||
return "creating Physical Network. Id: "+getEntityId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(){
|
||||
PhysicalNetwork result = _networkService.createPhysicalNetwork(getZoneId(),getVlan(),getNetworkSpeed(), getIsolationMethods(),getBroadcastDomainRange(),getDomainId(), getTags());
|
||||
UserContext.current().setEventDetails("Physical Network Id: "+getEntityId());
|
||||
PhysicalNetwork result = _networkService.getCreatedPhysicalNetwork(getEntityId());
|
||||
if (result != null) {
|
||||
PhysicalNetworkResponse response = _responseGenerator.createPhysicalNetworkResponse(result);
|
||||
response.setResponseName(getCommandName());
|
||||
|
|
@ -118,4 +143,15 @@ public class CreatePhysicalNetworkCmd extends BaseCmd {
|
|||
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to create physical network");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void create() throws ResourceAllocationException {
|
||||
PhysicalNetwork result = _networkService.createPhysicalNetwork(getZoneId(),getVlan(),getNetworkSpeed(), getIsolationMethods(),getBroadcastDomainRange(),getDomainId(), getTags());
|
||||
if (result != null) {
|
||||
setEntityId(result.getId());
|
||||
} else {
|
||||
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to create physical network entity");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,15 +21,17 @@ package com.cloud.api.commands;
|
|||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.api.ApiConstants;
|
||||
import com.cloud.api.BaseAsyncCmd;
|
||||
import com.cloud.api.BaseCmd;
|
||||
import com.cloud.api.Implementation;
|
||||
import com.cloud.api.Parameter;
|
||||
import com.cloud.api.ServerApiException;
|
||||
import com.cloud.api.response.SuccessResponse;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.user.Account;
|
||||
|
||||
@Implementation(description="Deletes a Network Service Provider.", responseObject=SuccessResponse.class)
|
||||
public class DeleteNetworkServiceProviderCmd extends BaseCmd {
|
||||
public class DeleteNetworkServiceProviderCmd extends BaseAsyncCmd {
|
||||
public static final Logger s_logger = Logger.getLogger(DeleteNetworkServiceProviderCmd.class.getName());
|
||||
|
||||
private static final String s_name = "deletenetworkserviceproviderresponse";
|
||||
|
|
@ -75,4 +77,16 @@ public class DeleteNetworkServiceProviderCmd extends BaseCmd {
|
|||
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete network service provider");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String getEventType() {
|
||||
return EventTypes.EVENT_SERVICE_PROVIDER_DELETE;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String getEventDescription() {
|
||||
return "Deleting Physical network ServiceProvider: " + getId();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,15 +21,18 @@ package com.cloud.api.commands;
|
|||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.api.ApiConstants;
|
||||
import com.cloud.api.BaseAsyncCmd;
|
||||
import com.cloud.api.BaseCmd;
|
||||
import com.cloud.api.Implementation;
|
||||
import com.cloud.api.Parameter;
|
||||
import com.cloud.api.ServerApiException;
|
||||
import com.cloud.api.response.SuccessResponse;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.user.UserContext;
|
||||
|
||||
@Implementation(description="Deletes a Physical Network.", responseObject=SuccessResponse.class)
|
||||
public class DeletePhysicalNetworkCmd extends BaseCmd {
|
||||
public class DeletePhysicalNetworkCmd extends BaseAsyncCmd {
|
||||
public static final Logger s_logger = Logger.getLogger(DeletePhysicalNetworkCmd.class.getName());
|
||||
|
||||
private static final String s_name = "deletephysicalnetworkresponse";
|
||||
|
|
@ -67,6 +70,7 @@ public class DeletePhysicalNetworkCmd extends BaseCmd {
|
|||
|
||||
@Override
|
||||
public void execute(){
|
||||
UserContext.current().setEventDetails("Physical Network Id: " + id);
|
||||
boolean result = _networkService.deletePhysicalNetwork(getId());
|
||||
if (result) {
|
||||
SuccessResponse response = new SuccessResponse(getCommandName());
|
||||
|
|
@ -75,4 +79,15 @@ public class DeletePhysicalNetworkCmd extends BaseCmd {
|
|||
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete physical network");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String getEventDescription() {
|
||||
return "Deleting Physical network: " + getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getEventType() {
|
||||
return EventTypes.EVENT_PHYSICAL_NETWORK_DELETE;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,16 +21,18 @@ package com.cloud.api.commands;
|
|||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.api.ApiConstants;
|
||||
import com.cloud.api.BaseAsyncCmd;
|
||||
import com.cloud.api.BaseCmd;
|
||||
import com.cloud.api.Implementation;
|
||||
import com.cloud.api.Parameter;
|
||||
import com.cloud.api.ServerApiException;
|
||||
import com.cloud.api.response.ProviderResponse;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.network.PhysicalNetworkServiceProvider;
|
||||
import com.cloud.user.Account;
|
||||
|
||||
@Implementation(description="Updates a network serviceProvider of a physical network", responseObject=ProviderResponse.class)
|
||||
public class UpdateNetworkServiceProviderCmd extends BaseCmd {
|
||||
public class UpdateNetworkServiceProviderCmd extends BaseAsyncCmd {
|
||||
public static final Logger s_logger = Logger.getLogger(UpdateNetworkServiceProviderCmd.class.getName());
|
||||
|
||||
private static final String s_name = "updatenetworkserviceproviderresponse";
|
||||
|
|
@ -82,8 +84,14 @@ public class UpdateNetworkServiceProviderCmd extends BaseCmd {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getEventType() {
|
||||
return EventTypes.EVENT_SERVICE_PROVIDER_UPDATE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public String getEventDescription() {
|
||||
return "Updating physical network ServiceProvider: " + getId();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,16 +23,18 @@ import java.util.List;
|
|||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.api.ApiConstants;
|
||||
import com.cloud.api.BaseAsyncCmd;
|
||||
import com.cloud.api.BaseCmd;
|
||||
import com.cloud.api.Implementation;
|
||||
import com.cloud.api.Parameter;
|
||||
import com.cloud.api.ServerApiException;
|
||||
import com.cloud.api.response.PhysicalNetworkResponse;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.network.PhysicalNetwork;
|
||||
import com.cloud.user.Account;
|
||||
|
||||
@Implementation(description="Updates a physical network", responseObject=PhysicalNetworkResponse.class)
|
||||
public class UpdatePhysicalNetworkCmd extends BaseCmd {
|
||||
public class UpdatePhysicalNetworkCmd extends BaseAsyncCmd {
|
||||
public static final Logger s_logger = Logger.getLogger(UpdatePhysicalNetworkCmd.class.getName());
|
||||
|
||||
private static final String s_name = "updatephysicalnetworkresponse";
|
||||
|
|
@ -109,8 +111,18 @@ public class UpdatePhysicalNetworkCmd extends BaseCmd {
|
|||
response.setResponseName(getCommandName());
|
||||
this.setResponseObject(response);
|
||||
}else {
|
||||
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to create physical network");
|
||||
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to update physical network");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getEventDescription() {
|
||||
return "Updating Physical network: " + getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getEventType() {
|
||||
return EventTypes.EVENT_PHYSICAL_NETWORK_UPDATE;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -214,4 +214,15 @@ public class EventTypes {
|
|||
|
||||
//Network as a Service
|
||||
public static final String EVENT_NETWORK_ELEMENT_CONFIGURE = "NETWORK.ELEMENT.CONFIGURE";
|
||||
|
||||
//Physical Network Events
|
||||
public static final String EVENT_PHYSICAL_NETWORK_CREATE = "PHYSICAL.NETWORK.CREATE";
|
||||
public static final String EVENT_PHYSICAL_NETWORK_DELETE = "PHYSICAL.NETWORK.DELETE";
|
||||
public static final String EVENT_PHYSICAL_NETWORK_UPDATE = "PHYSICAL.NETWORK.UPDATE";
|
||||
|
||||
//Physical Network Service Provider Events
|
||||
public static final String EVENT_SERVICE_PROVIDER_CREATE = "SERVICE.PROVIDER.CREATE";
|
||||
public static final String EVENT_SERVICE_PROVIDER_DELETE = "SERVICE.PROVIDER.DELETE";
|
||||
public static final String EVENT_SERVICE_PROVIDER_UPDATE = "SERVICE.PROVIDER.UPDATE";
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -109,4 +109,12 @@ public interface NetworkService {
|
|||
PhysicalNetworkServiceProvider updateNetworkServiceProvider(Long id, Boolean enabled);
|
||||
|
||||
boolean deleteNetworkServiceProvider(Long id);
|
||||
|
||||
PhysicalNetwork getPhysicalNetwork(Long physicalNetworkId);
|
||||
|
||||
PhysicalNetwork getCreatedPhysicalNetwork(Long physicalNetworkId);
|
||||
|
||||
PhysicalNetworkServiceProvider getPhysicalNetworkServiceProvider(Long providerId);
|
||||
|
||||
PhysicalNetworkServiceProvider getCreatedPhysicalNetworkServiceProvider(Long providerId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,8 +41,8 @@ public interface PhysicalNetwork {
|
|||
}
|
||||
|
||||
public enum BroadcastDomainRange {
|
||||
Pod,
|
||||
Zone;
|
||||
POD,
|
||||
ZONE;
|
||||
}
|
||||
|
||||
long getId();
|
||||
|
|
|
|||
|
|
@ -267,6 +267,8 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
|||
|
||||
|
||||
HashMap<Long, Long> _lastNetworkIdsToFree = new HashMap<Long, Long>();
|
||||
|
||||
private static HashMap<Service, List<Provider>> s_serviceToImplementedProvidersMap = new HashMap<Service, List<Provider>>();
|
||||
|
||||
@Override
|
||||
public PublicIp assignPublicIpAddress(long dcId, Long podId, Account owner, VlanType type, Long networkId, String requestedIp) throws InsufficientAddressCapacityException {
|
||||
|
|
@ -883,6 +885,24 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
|||
_executor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("Network-Scavenger"));
|
||||
|
||||
_allowSubdomainNetworkAccess = Boolean.valueOf(_configs.get(Config.SubDomainNetworkAccess.key()));
|
||||
|
||||
//populate s_serviceToImplementedProvidersMap with current _networkElements
|
||||
for (NetworkElement element : _networkElements) {
|
||||
Map<Service, Map<Capability, String>> capabilities = element.getCapabilities();
|
||||
Provider implementedProvider = element.getProvider();
|
||||
if(capabilities != null && implementedProvider != null){
|
||||
for(Service service : capabilities.keySet()){
|
||||
if(s_serviceToImplementedProvidersMap.containsKey(service)){
|
||||
List<Provider> providers = s_serviceToImplementedProvidersMap.get(service);
|
||||
providers.add(implementedProvider);
|
||||
}else{
|
||||
List<Provider> providers = new ArrayList<Provider>();
|
||||
providers.add(implementedProvider);
|
||||
s_serviceToImplementedProvidersMap.put(service, providers);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
s_logger.info("Network Manager is configured.");
|
||||
|
||||
|
|
@ -3403,6 +3423,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
|||
|
||||
@Override
|
||||
@DB
|
||||
@ActionEvent(eventType = EventTypes.EVENT_PHYSICAL_NETWORK_CREATE, eventDescription = "Creating Physical Network", create = true)
|
||||
public PhysicalNetwork createPhysicalNetwork(Long zoneId, String vnetRange, String networkSpeed, List<String> isolationMethods, String broadcastDomainRangeStr, Long domainId, List<String> tags) {
|
||||
// Check if zone exists
|
||||
if (zoneId == null) {
|
||||
|
|
@ -3446,7 +3467,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
|||
BroadcastDomainRange broadcastDomainRange = null;
|
||||
if (broadcastDomainRangeStr != null && !broadcastDomainRangeStr.isEmpty()) {
|
||||
try {
|
||||
broadcastDomainRange = PhysicalNetwork.BroadcastDomainRange.valueOf(broadcastDomainRangeStr);
|
||||
broadcastDomainRange = PhysicalNetwork.BroadcastDomainRange.valueOf(broadcastDomainRangeStr.toUpperCase());
|
||||
} catch (IllegalArgumentException ex) {
|
||||
throw new InvalidParameterValueException("Unable to resolve broadcastDomainRange '" + broadcastDomainRangeStr + "' to a supported value {Pod or Zone}");
|
||||
}
|
||||
|
|
@ -3496,6 +3517,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
|||
|
||||
@Override
|
||||
@DB
|
||||
@ActionEvent(eventType = EventTypes.EVENT_PHYSICAL_NETWORK_UPDATE, eventDescription = "updating physical network", async = true)
|
||||
public PhysicalNetwork updatePhysicalNetwork(Long id, String networkSpeed, List<String> isolationMethods, List<String> tags, String newVnetRangeString, String state) {
|
||||
|
||||
// verify input parameters
|
||||
|
|
@ -3534,7 +3556,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
|||
PhysicalNetwork.IsolationMethod isolationMethodVal = null;
|
||||
if (isMethod != null && !isMethod.isEmpty()) {
|
||||
try {
|
||||
isolationMethodVal = PhysicalNetwork.IsolationMethod.valueOf(isMethod);
|
||||
isolationMethodVal = PhysicalNetwork.IsolationMethod.valueOf(isMethod.toUpperCase());
|
||||
} catch (IllegalArgumentException ex) {
|
||||
throw new InvalidParameterValueException("Unable to resolve IsolationMethod '" + isMethod + "' to a supported value {VLAN or L3 or GRE}");
|
||||
}
|
||||
|
|
@ -3630,6 +3652,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
|||
}
|
||||
|
||||
@Override
|
||||
@ActionEvent(eventType = EventTypes.EVENT_PHYSICAL_NETWORK_DELETE, eventDescription = "deleting physical network", async = true)
|
||||
public boolean deletePhysicalNetwork(Long physicalNetworkId) {
|
||||
|
||||
// verify input parameters
|
||||
|
|
@ -3637,7 +3660,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
|||
if (network == null) {
|
||||
throw new InvalidParameterValueException("Network id=" + physicalNetworkId + "doesn't exist in the system");
|
||||
}
|
||||
|
||||
//for all networks associated, check if they can be deleted.
|
||||
//delete physical network only if no network is associated to it
|
||||
List<NetworkVO> networks = _networksDao.listByPhysicalNetwork(physicalNetworkId);
|
||||
|
||||
|
|
@ -3756,31 +3779,22 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
|||
}
|
||||
}
|
||||
|
||||
List<Provider> supportedProviders = new ArrayList<Provider>();
|
||||
for (NetworkElement element : _networkElements) {
|
||||
if(element.getProvider() != null){
|
||||
if(service != null){
|
||||
//chk if this serviceprovider supports this service
|
||||
if(isServiceProvided(element, service)){
|
||||
supportedProviders.add(element.getProvider());
|
||||
}
|
||||
}else{
|
||||
supportedProviders.add(element.getProvider());
|
||||
}
|
||||
Set<Provider> supportedProviders = new HashSet<Provider>();
|
||||
|
||||
if(service != null){
|
||||
supportedProviders.addAll(s_serviceToImplementedProvidersMap.get(service));
|
||||
}else{
|
||||
for(List<Provider> pList : s_serviceToImplementedProvidersMap.values()){
|
||||
supportedProviders.addAll(pList);
|
||||
}
|
||||
}
|
||||
return supportedProviders;
|
||||
|
||||
return new ArrayList<Provider>(supportedProviders);
|
||||
}
|
||||
|
||||
private boolean isServiceProvided(NetworkElement element, Service service){
|
||||
if(element.getCapabilities() != null){
|
||||
return element.getCapabilities().containsKey(service);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
@DB
|
||||
@ActionEvent(eventType = EventTypes.EVENT_SERVICE_PROVIDER_CREATE, eventDescription = "Creating Physical Network ServiceProvider", create = true)
|
||||
public PhysicalNetworkServiceProvider addProviderToPhysicalNetwork(Long physicalNetworkId, String providerName, Long destinationPhysicalNetworkId) {
|
||||
|
||||
// verify input parameters
|
||||
|
|
@ -3837,6 +3851,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
|||
}
|
||||
|
||||
@Override
|
||||
@ActionEvent(eventType = EventTypes.EVENT_SERVICE_PROVIDER_UPDATE, eventDescription = "Updating physical network ServiceProvider", async = true)
|
||||
public PhysicalNetworkServiceProvider updateNetworkServiceProvider(Long id, Boolean enabled) {
|
||||
|
||||
PhysicalNetworkServiceProviderVO provider = _pNSPDao.findById(id);
|
||||
|
|
@ -3859,6 +3874,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
|||
}
|
||||
|
||||
@Override
|
||||
@ActionEvent(eventType = EventTypes.EVENT_SERVICE_PROVIDER_DELETE, eventDescription = "Deleting physical network ServiceProvider", async = true)
|
||||
public boolean deleteNetworkServiceProvider(Long id) {
|
||||
PhysicalNetworkServiceProviderVO provider = _pNSPDao.findById(id);
|
||||
|
||||
|
|
@ -3870,5 +3886,27 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
|||
|
||||
return _pNSPDao.remove(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PhysicalNetwork getPhysicalNetwork(Long physicalNetworkId){
|
||||
return _physicalNetworkDao.findById(physicalNetworkId);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ActionEvent(eventType = EventTypes.EVENT_PHYSICAL_NETWORK_CREATE, eventDescription = "Creating Physical Network", async = true)
|
||||
public PhysicalNetwork getCreatedPhysicalNetwork(Long physicalNetworkId) {
|
||||
return getPhysicalNetwork(physicalNetworkId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PhysicalNetworkServiceProvider getPhysicalNetworkServiceProvider(Long providerId) {
|
||||
return _pNSPDao.findById(providerId);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ActionEvent(eventType = EventTypes.EVENT_SERVICE_PROVIDER_CREATE, eventDescription = "Creating Physical Network ServiceProvider", async = true)
|
||||
public PhysicalNetworkServiceProvider getCreatedPhysicalNetworkServiceProvider(Long providerId) {
|
||||
return getPhysicalNetworkServiceProvider(providerId);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ public class PhysicalNetworkVO implements PhysicalNetwork {
|
|||
if(broadcastDomainRange != null){
|
||||
this.broadcastDomainRange = broadcastDomainRange;
|
||||
}else{
|
||||
this.broadcastDomainRange = BroadcastDomainRange.Pod;
|
||||
this.broadcastDomainRange = BroadcastDomainRange.ZONE;
|
||||
}
|
||||
this.state = State.Disabled;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
|
||||
package com.cloud.network.element;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.ejb.Local;
|
||||
|
|
@ -37,7 +38,6 @@ import com.cloud.host.Host;
|
|||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||
import com.cloud.network.Network;
|
||||
import com.cloud.network.Network.Capability;
|
||||
import com.cloud.network.Network.GuestIpType;
|
||||
import com.cloud.network.Network.Provider;
|
||||
import com.cloud.network.Network.Service;
|
||||
import com.cloud.network.Network.Type;
|
||||
|
|
@ -54,6 +54,8 @@ import com.cloud.vm.VirtualMachineProfile;
|
|||
public class ExternalDhcpElement extends AdapterBase implements NetworkElement {
|
||||
private static final Logger s_logger = Logger.getLogger(ExternalDhcpElement.class);
|
||||
@Inject ExternalDhcpManager _dhcpMgr;
|
||||
private static final Map<Service, Map<Capability, String>> capabilities = setCapabilities();
|
||||
|
||||
private boolean canHandle(DeployDestination dest, TrafficType trafficType, Type networkType) {
|
||||
DataCenter dc = dest.getDataCenter();
|
||||
Pod pod = dest.getPod();
|
||||
|
|
@ -67,9 +69,15 @@ public class ExternalDhcpElement extends AdapterBase implements NetworkElement {
|
|||
return false;
|
||||
}
|
||||
|
||||
private static Map<Service, Map<Capability, String>> setCapabilities() {
|
||||
Map<Service, Map<Capability, String>> capabilities = new HashMap<Service, Map<Capability, String>>();
|
||||
capabilities.put(Service.Dhcp, null);
|
||||
return capabilities;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<Service, Map<Capability, String>> getCapabilities() {
|
||||
return null;
|
||||
return capabilities;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -1771,7 +1771,7 @@ CREATE TABLE `cloud`.`physical_network` (
|
|||
`vnet` varchar(255),
|
||||
`speed` varchar(32),
|
||||
`domain_id` bigint unsigned COMMENT 'foreign key to domain id',
|
||||
`broadcast_domain_range` varchar(32) NOT NULL DEFAULT 'Pod' COMMENT 'range of broadcast domain : Pod/Zone',
|
||||
`broadcast_domain_range` varchar(32) NOT NULL DEFAULT 'ZONE' COMMENT 'range of broadcast domain : POD/ZONE',
|
||||
`state` varchar(32) NOT NULL DEFAULT 'Disabled' COMMENT 'what state is this configuration in',
|
||||
`created` datetime COMMENT 'date created',
|
||||
`removed` datetime COMMENT 'date removed if not null',
|
||||
|
|
|
|||
Loading…
Reference in New Issue