Added unique constraint on providername <-> physical network mapping.

This commit is contained in:
prachi 2011-11-22 13:10:34 -08:00
parent ac973fbf48
commit a8ffd0ea06
2 changed files with 6 additions and 1 deletions

View File

@ -4143,6 +4143,10 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
throw new InvalidParameterValueException("Invalid Network Service Provider=" + providerName);
}
}
if(_pNSPDao.findByServiceProvider(physicalNetworkId, providerName) != null){
throw new CloudRuntimeException("The '"+ providerName +"' provider already exists on physical network : "+physicalNetworkId);
}
//check if services can be turned off
NetworkElement element = getElementImplementingProvider(providerName);

View File

@ -1937,7 +1937,8 @@ CREATE TABLE `cloud`.`physical_network_service_providers` (
`security_group_service_provided` tinyint(1) unsigned NOT NULL DEFAULT 0 COMMENT 'Is SG service provided',
PRIMARY KEY (`id`),
CONSTRAINT `fk_pnetwork_service_providers__physical_network_id` FOREIGN KEY (`physical_network_id`) REFERENCES `physical_network`(`id`) ON DELETE CASCADE,
CONSTRAINT `uc_service_providers__uuid` UNIQUE (`uuid`)
CONSTRAINT `uc_service_providers__uuid` UNIQUE (`uuid`),
UNIQUE KEY(`physical_network_id`, `provider_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `cloud`.`external_load_balancer_devices` (