From ad33f0ad66f11712d94ad3661dbaf7f72330402a Mon Sep 17 00:00:00 2001 From: Koushik Das Date: Thu, 26 Dec 2013 17:01:33 +0530 Subject: [PATCH] CLOUDSTACK-2560: Adding duplicate ASA device entity failure should be handled with API Handling duplicate ASA appliance addition gracefully --- .../src/com/cloud/network/element/CiscoVnmcElement.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/plugins/network-elements/cisco-vnmc/src/com/cloud/network/element/CiscoVnmcElement.java b/plugins/network-elements/cisco-vnmc/src/com/cloud/network/element/CiscoVnmcElement.java index e8b6aa213fe..03fac266700 100644 --- a/plugins/network-elements/cisco-vnmc/src/com/cloud/network/element/CiscoVnmcElement.java +++ b/plugins/network-elements/cisco-vnmc/src/com/cloud/network/element/CiscoVnmcElement.java @@ -27,6 +27,7 @@ import java.util.UUID; import javax.ejb.Local; import javax.inject.Inject; import javax.naming.ConfigurationException; +import javax.persistence.EntityExistsException; import org.apache.log4j.Logger; @@ -847,8 +848,12 @@ public class CiscoVnmcElement extends AdapterBase implements SourceNatServicePro throw new InvalidParameterValueException("Could not find phyical network with ID: " + physicalNetworkId); } - ciscoAsa1000vResource = new CiscoAsa1000vDeviceVO(physicalNetworkId, cmd.getManagementIp(), cmd.getInPortProfile(), cmd.getClusterId()); - _ciscoAsa1000vDao.persist((CiscoAsa1000vDeviceVO)ciscoAsa1000vResource); + ciscoAsa1000vResource = new CiscoAsa1000vDeviceVO(physicalNetworkId, cmd.getManagementIp().trim(), cmd.getInPortProfile(), cmd.getClusterId()); + try { + _ciscoAsa1000vDao.persist((CiscoAsa1000vDeviceVO)ciscoAsa1000vResource); + } catch (EntityExistsException e) { + throw new InvalidParameterValueException("An ASA 1000v appliance already exists with same configuration"); + } return ciscoAsa1000vResource; }