Return-Path: X-Original-To: apmail-cloudstack-commits-archive@www.apache.org Delivered-To: apmail-cloudstack-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 23EB910BA9 for ; Wed, 3 Jul 2013 22:25:50 +0000 (UTC) Received: (qmail 75453 invoked by uid 500); 3 Jul 2013 22:25:43 -0000 Delivered-To: apmail-cloudstack-commits-archive@cloudstack.apache.org Received: (qmail 75243 invoked by uid 500); 3 Jul 2013 22:25:43 -0000 Mailing-List: contact commits-help@cloudstack.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cloudstack.apache.org Delivered-To: mailing list commits@cloudstack.apache.org Received: (qmail 74139 invoked by uid 99); 3 Jul 2013 22:25:42 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 03 Jul 2013 22:25:42 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id D716082A178; Wed, 3 Jul 2013 22:25:41 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: ahuang@apache.org To: commits@cloudstack.apache.org Date: Wed, 03 Jul 2013 22:26:17 -0000 Message-Id: In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [38/50] [abbrv] git commit: updated refs/heads/vmsync to 78fa5e1 CLOUDSTACK-3110: [VMWARE]NPE while adding primary storage(scope=cluster) with Invalid hostname Description: When retrieving primary datastore, handle case for non-existing datastores/hosts. Throw exception and handle the exception in datastore mgmt layer and pass onward to create storage pool API. Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/6bad34c5 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/6bad34c5 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/6bad34c5 Branch: refs/heads/vmsync Commit: 6bad34c50996217688b55f69433ddbb0aeb3911b Parents: 141fbc7 Author: Vijayendra Bhamidipati Authored: Tue Jul 2 10:52:41 2013 -0700 Committer: Chip Childers Committed: Wed Jul 3 09:43:00 2013 -0400 ---------------------------------------------------------------------- .../storage/datastore/DataStoreManagerImpl.java | 16 ++++++++++------ .../PrimaryDataStoreProviderManagerImpl.java | 4 ++++ 2 files changed, 14 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6bad34c5/engine/storage/src/org/apache/cloudstack/storage/datastore/DataStoreManagerImpl.java ---------------------------------------------------------------------- diff --git a/engine/storage/src/org/apache/cloudstack/storage/datastore/DataStoreManagerImpl.java b/engine/storage/src/org/apache/cloudstack/storage/datastore/DataStoreManagerImpl.java index 71df262..2d7e99e 100644 --- a/engine/storage/src/org/apache/cloudstack/storage/datastore/DataStoreManagerImpl.java +++ b/engine/storage/src/org/apache/cloudstack/storage/datastore/DataStoreManagerImpl.java @@ -40,12 +40,16 @@ public class DataStoreManagerImpl implements DataStoreManager { @Override public DataStore getDataStore(long storeId, DataStoreRole role) { - if (role == DataStoreRole.Primary) { - return primaryStoreMgr.getPrimaryDataStore(storeId); - } else if (role == DataStoreRole.Image) { - return imageDataStoreMgr.getImageStore(storeId); - } else if (role == DataStoreRole.ImageCache) { - return imageDataStoreMgr.getImageStore(storeId); + try { + if (role == DataStoreRole.Primary) { + return primaryStoreMgr.getPrimaryDataStore(storeId); + } else if (role == DataStoreRole.Image) { + return imageDataStoreMgr.getImageStore(storeId); + } else if (role == DataStoreRole.ImageCache) { + return imageDataStoreMgr.getImageStore(storeId); + } + } catch (CloudRuntimeException e) { + throw e; } throw new CloudRuntimeException("un recognized type" + role); } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6bad34c5/engine/storage/volume/src/org/apache/cloudstack/storage/datastore/manager/PrimaryDataStoreProviderManagerImpl.java ---------------------------------------------------------------------- diff --git a/engine/storage/volume/src/org/apache/cloudstack/storage/datastore/manager/PrimaryDataStoreProviderManagerImpl.java b/engine/storage/volume/src/org/apache/cloudstack/storage/datastore/manager/PrimaryDataStoreProviderManagerImpl.java index 06b54e0..db14f6d 100644 --- a/engine/storage/volume/src/org/apache/cloudstack/storage/datastore/manager/PrimaryDataStoreProviderManagerImpl.java +++ b/engine/storage/volume/src/org/apache/cloudstack/storage/datastore/manager/PrimaryDataStoreProviderManagerImpl.java @@ -36,6 +36,7 @@ import org.apache.cloudstack.storage.datastore.db.StoragePoolVO; import org.springframework.stereotype.Component; import com.cloud.storage.StorageManager; +import com.cloud.utils.exception.CloudRuntimeException; @Component public class PrimaryDataStoreProviderManagerImpl implements PrimaryDataStoreProviderManager { @@ -55,6 +56,9 @@ public class PrimaryDataStoreProviderManagerImpl implements PrimaryDataStoreProv @Override public PrimaryDataStore getPrimaryDataStore(long dataStoreId) { StoragePoolVO dataStoreVO = dataStoreDao.findById(dataStoreId); + if (dataStoreVO == null) { + throw new CloudRuntimeException("Unable to locate datastore with id " + dataStoreId); + } String providerName = dataStoreVO.getStorageProviderName(); DataStoreProvider provider = providerManager.getDataStoreProvider(providerName); PrimaryDataStoreImpl dataStore = PrimaryDataStoreImpl.createDataStore(dataStoreVO,