From 9f23fbe7b6a7ac155c42e648943efd546bc9b4c9 Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Sat, 12 Feb 2022 17:02:19 +0530 Subject: [PATCH] [Simulator] Fix NPE in SolidFireHostListener (#5955) * [Simulator] Fix NPE in SolidFireHostListener * address comments * Update plugins/storage/volume/solidfire/src/main/java/org/apache/cloudstack/storage/datastore/provider/SolidFireSharedHostListener.java Co-authored-by: sureshanaparti <12028987+sureshanaparti@users.noreply.github.com> Co-authored-by: sureshanaparti <12028987+sureshanaparti@users.noreply.github.com> --- .../datastore/provider/SolidFireHostListener.java | 9 +++++++-- .../datastore/provider/SolidFireSharedHostListener.java | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/plugins/storage/volume/solidfire/src/main/java/org/apache/cloudstack/storage/datastore/provider/SolidFireHostListener.java b/plugins/storage/volume/solidfire/src/main/java/org/apache/cloudstack/storage/datastore/provider/SolidFireHostListener.java index 4fffb702274..84a3fa97724 100644 --- a/plugins/storage/volume/solidfire/src/main/java/org/apache/cloudstack/storage/datastore/provider/SolidFireHostListener.java +++ b/plugins/storage/volume/solidfire/src/main/java/org/apache/cloudstack/storage/datastore/provider/SolidFireHostListener.java @@ -73,13 +73,18 @@ public class SolidFireHostListener implements HypervisorHostListener { HostVO host = hostDao.findById(hostId); if (host == null) { - LOGGER.error("Failed to add host by SolidFireHostListener as host was not found with id = " + hostId); + LOGGER.error(String.format("Failed to add host by SolidFireHostListener as host was not found with id = %s ", hostId)); return false; } + if (host.getClusterId() == null) { + LOGGER.error("Failed to add host by SolidFireHostListener as host has no associated cluster id"); + return false; + } + SolidFireUtil.hostAddedToCluster(hostId, host.getClusterId(), SolidFireUtil.PROVIDER_NAME, - clusterDao, hostDao, storagePoolDao, storagePoolDetailsDao); + clusterDao, hostDao, storagePoolDao, storagePoolDetailsDao); handleVMware(host, true, ModifyTargetsCommand.TargetTypeToRemove.NEITHER); diff --git a/plugins/storage/volume/solidfire/src/main/java/org/apache/cloudstack/storage/datastore/provider/SolidFireSharedHostListener.java b/plugins/storage/volume/solidfire/src/main/java/org/apache/cloudstack/storage/datastore/provider/SolidFireSharedHostListener.java index 575a3020d37..e01e9822136 100644 --- a/plugins/storage/volume/solidfire/src/main/java/org/apache/cloudstack/storage/datastore/provider/SolidFireSharedHostListener.java +++ b/plugins/storage/volume/solidfire/src/main/java/org/apache/cloudstack/storage/datastore/provider/SolidFireSharedHostListener.java @@ -67,13 +67,18 @@ public class SolidFireSharedHostListener implements HypervisorHostListener { HostVO host = hostDao.findById(hostId); if (host == null) { - LOGGER.error("Failed to add host by SolidFireSharedHostListener as host was not found with id = " + hostId); + LOGGER.error(String.format("Failed to add host by SolidFireSharedHostListener as host was not found with id = %s ", hostId)); return false; } + if (host.getClusterId() == null) { + LOGGER.error("Failed to add host by SolidFireSharedHostListener as host has no associated cluster id"); + return false; + } + SolidFireUtil.hostAddedToCluster(hostId, host.getClusterId(), SolidFireUtil.SHARED_PROVIDER_NAME, - clusterDao, hostDao, storagePoolDao, storagePoolDetailsDao); + clusterDao, hostDao, storagePoolDao, storagePoolDetailsDao); handleVMware(host, true, ModifyTargetsCommand.TargetTypeToRemove.NEITHER);