From 53703c98fea54a835f794aa358745794591b420e Mon Sep 17 00:00:00 2001 From: wrodrigues Date: Thu, 11 Sep 2014 20:41:23 +0200 Subject: [PATCH] Fixing the NetworkHelperImpl class. It was throwing a NPE due to a hypervisor type SIMULATOR not being in the hashmap. When the refactor took place, we should have changed first structure, then behaviour. By refactoring the deployRouter method we changed how the templateName was retrieved. Fixed and tested using the simulator and the following Marvin tests test_privategateway_acl test_routers test_vpc_vpn test_service_offerings test_volumes test_reset_vm_on_reboot test_multipleips_per_nic Conflicts: server/src/com/cloud/network/router/NetworkHelperImpl.java --- .../network/router/NetworkHelperImpl.java | 28 +++++++------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/server/src/com/cloud/network/router/NetworkHelperImpl.java b/server/src/com/cloud/network/router/NetworkHelperImpl.java index 357802f2783..f589394103e 100644 --- a/server/src/com/cloud/network/router/NetworkHelperImpl.java +++ b/server/src/com/cloud/network/router/NetworkHelperImpl.java @@ -372,14 +372,6 @@ public class NetworkHelperImpl implements NetworkHelper { return null; } - // @Override - /* - * (non-Javadoc) - * - * @see - * com.cloud.network.router.NetworkHelper#startRouters(org.cloud.network - * .router.deployment.RouterDeploymentDefinition) - */ @Override public List startRouters(final RouterDeploymentDefinition routerDeploymentDefinition) throws StorageUnavailableException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException { @@ -407,15 +399,6 @@ public class NetworkHelperImpl implements NetworkHelper { return runningRouters; } - // @Override - /* - * (non-Javadoc) - * - * @see - * com.cloud.network.router.NetworkHelper#startVirtualRouter(com.cloud.vm - * .DomainRouterVO, com.cloud.user.User, com.cloud.user.Account, - * java.util.Map) - */ @Override public DomainRouterVO startVirtualRouter(final DomainRouterVO router, final User user, final Account caller, final Map params) throws StorageUnavailableException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException { @@ -513,7 +496,16 @@ public class NetworkHelperImpl implements NetworkHelper { } } - return hypervisorsMap.get(hType).valueIn(datacenterId); + // Returning NULL is fine because the simulator will need it when being + // used instead of a real hypervisor. + // The hypervisorsMap contains only real hypervisors. + String templateName = null; + ConfigKey hypervisorConfigKey = hypervisorsMap.get(hType); + + if (hypervisorConfigKey != null) { + templateName = hypervisorConfigKey.valueIn(datacenterId); + } + return templateName; } @Override