From 20e53ce90fb3c6842696f1f26cb77c0836970025 Mon Sep 17 00:00:00 2001 From: prachi Date: Fri, 11 Nov 2011 14:16:26 -0800 Subject: [PATCH] - fixing updateProvider to throw error when the underlying element is not ready - not use includingRemoved while listing networks - Processing checkNetworkCommand dummy method to avoid failures connecting to Vmware and hyperv resource --- .../cloud/api/commands/UpdateNetworkServiceProviderCmd.java | 2 +- .../com/cloud/hypervisor/hyperv/resource/HypervResource.java | 3 +++ .../com/cloud/hypervisor/vmware/resource/VmwareResource.java | 3 +++ server/src/com/cloud/network/NetworkManagerImpl.java | 4 +++- server/src/com/cloud/network/dao/NetworkDao.java | 2 +- server/src/com/cloud/network/dao/NetworkDaoImpl.java | 4 ++-- 6 files changed, 13 insertions(+), 5 deletions(-) diff --git a/api/src/com/cloud/api/commands/UpdateNetworkServiceProviderCmd.java b/api/src/com/cloud/api/commands/UpdateNetworkServiceProviderCmd.java index 2aaca817e8d..021401309a5 100644 --- a/api/src/com/cloud/api/commands/UpdateNetworkServiceProviderCmd.java +++ b/api/src/com/cloud/api/commands/UpdateNetworkServiceProviderCmd.java @@ -90,7 +90,7 @@ public class UpdateNetworkServiceProviderCmd extends BaseAsyncCmd { response.setResponseName(getCommandName()); this.setResponseObject(response); }else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to add service provider to physical network"); + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to update service provider"); } } diff --git a/core/src/com/cloud/hypervisor/hyperv/resource/HypervResource.java b/core/src/com/cloud/hypervisor/hyperv/resource/HypervResource.java index f61f4cc7779..e83b9a7d1d6 100755 --- a/core/src/com/cloud/hypervisor/hyperv/resource/HypervResource.java +++ b/core/src/com/cloud/hypervisor/hyperv/resource/HypervResource.java @@ -42,6 +42,7 @@ import com.cloud.agent.api.AttachIsoCommand; import com.cloud.agent.api.AttachVolumeCommand; import com.cloud.agent.api.BackupSnapshotCommand; import com.cloud.agent.api.CheckHealthCommand; +import com.cloud.agent.api.CheckNetworkCommand; import com.cloud.agent.api.CheckOnHostCommand; import com.cloud.agent.api.CheckVirtualMachineCommand; import com.cloud.agent.api.Command; @@ -244,6 +245,8 @@ public class HypervResource extends ServerResourceBase implements ServerResource //return execute((VpnUsersCfgCommand) cmd); } else if (cmd instanceof CheckSshCommand) { return execute((CheckSshCommand)cmd); + } else if (cmd instanceof CheckNetworkCommand) { + //return execute((CheckNetworkCommand) cmd); } else { s_logger.info("SCVMM agent recived unimplemented command: " + _gson.toJson(cmd)); return Answer.createUnsupportedCommandAnswer(cmd); diff --git a/core/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java b/core/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java index 2861ded6cf4..feeea35eda4 100755 --- a/core/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java +++ b/core/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java @@ -38,6 +38,7 @@ import com.cloud.agent.api.BackupSnapshotCommand; import com.cloud.agent.api.BumpUpPriorityCommand; import com.cloud.agent.api.CheckHealthAnswer; import com.cloud.agent.api.CheckHealthCommand; +import com.cloud.agent.api.CheckNetworkCommand; import com.cloud.agent.api.CheckOnHostAnswer; import com.cloud.agent.api.CheckOnHostCommand; import com.cloud.agent.api.CheckRouterAnswer; @@ -393,6 +394,8 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa answer = execute((BumpUpPriorityCommand)cmd); } else if (cmd instanceof GetDomRVersionCmd) { answer = execute((GetDomRVersionCmd)cmd); + } else if (cmd instanceof CheckNetworkCommand) { + //answer = execute((CheckNetworkCommand) cmd); } else { answer = Answer.createUnsupportedCommandAnswer(cmd); } diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index fb3f282e467..e13a040239a 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -3912,7 +3912,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag } // Delete networks - List networks = _networksDao.listByPhysicalNetworkIncludingRemoved(physicalNetworkId); + List networks = _networksDao.listByPhysicalNetwork(physicalNetworkId); if (networks != null && !networks.isEmpty()) { for (NetworkVO network : networks) { _networksDao.remove(network.getId()); @@ -4170,6 +4170,8 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag if(element != null && element.isReady(provider)){ provider.setState(PhysicalNetworkServiceProvider.State.Enabled); update = true; + }else{ + throw new CloudRuntimeException("Provider is not ready, cannot Enable the provider, please configure the provider first"); } break; case Disabled: diff --git a/server/src/com/cloud/network/dao/NetworkDao.java b/server/src/com/cloud/network/dao/NetworkDao.java index f9b60e9e7f8..eed3330d634 100644 --- a/server/src/com/cloud/network/dao/NetworkDao.java +++ b/server/src/com/cloud/network/dao/NetworkDao.java @@ -76,7 +76,7 @@ public interface NetworkDao extends GenericDao { Long getNetworkCountByOfferingId(long offeringId); - List listByPhysicalNetworkIncludingRemoved(long physicalNetworkId); + List listByPhysicalNetwork(long physicalNetworkId); List listSecurityGroupEnabledNetworks(); diff --git a/server/src/com/cloud/network/dao/NetworkDaoImpl.java b/server/src/com/cloud/network/dao/NetworkDaoImpl.java index ba42f4cf71d..cc92e12cf5e 100644 --- a/server/src/com/cloud/network/dao/NetworkDaoImpl.java +++ b/server/src/com/cloud/network/dao/NetworkDaoImpl.java @@ -346,10 +346,10 @@ public class NetworkDaoImpl extends GenericDaoBase implements N } @Override - public List listByPhysicalNetworkIncludingRemoved(long physicalNetworkId) { + public List listByPhysicalNetwork(long physicalNetworkId) { SearchCriteria sc = PhysicalNetworkSearch.create(); sc.setParameters("physicalNetworkId", physicalNetworkId); - return listIncludingRemovedBy(sc); + return listBy(sc); } @Override