You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ed...@apache.org on 2013/08/19 01:26:43 UTC
git commit: updated refs/heads/4.2 to 3c40e8b
Updated Branches:
refs/heads/4.2 e6d7cdf70 -> 3c40e8bb3
CLOUDSTACK-4338: fix NPE if create volume failed
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/3c40e8bb
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/3c40e8bb
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/3c40e8bb
Branch: refs/heads/4.2
Commit: 3c40e8bb3f6278f78c24c6317d513bd5ad599944
Parents: e6d7cdf
Author: Edison Su <ed...@citrix.com>
Authored: Sun Aug 18 16:25:59 2013 -0700
Committer: Edison Su <ed...@citrix.com>
Committed: Sun Aug 18 16:26:08 2013 -0700
----------------------------------------------------------------------
.../kvm/storage/KVMStorageProcessorTest.java | 47 ++++++++++++++++++++
.../CloudStackPrimaryDataStoreDriverImpl.java | 10 ++++-
2 files changed, 56 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3c40e8bb/plugins/hypervisors/kvm/test/com/cloud/hypervisor/kvm/storage/KVMStorageProcessorTest.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/kvm/test/com/cloud/hypervisor/kvm/storage/KVMStorageProcessorTest.java b/plugins/hypervisors/kvm/test/com/cloud/hypervisor/kvm/storage/KVMStorageProcessorTest.java
new file mode 100644
index 0000000..f107bff
--- /dev/null
+++ b/plugins/hypervisors/kvm/test/com/cloud/hypervisor/kvm/storage/KVMStorageProcessorTest.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package com.cloud.hypervisor.kvm.storage;
+
+import com.cloud.hypervisor.kvm.resource.LibvirtComputingResource;
+import org.junit.Before;
+import org.junit.Test;
+
+import javax.naming.ConfigurationException;
+import java.util.HashMap;
+
+public class KVMStorageProcessorTest {
+ KVMStorageProcessor processor;
+ LibvirtComputingResource resource;
+ @Before
+ public void setUp() throws ConfigurationException {
+ System.setProperty("paths.script", "/devel/asf-master");
+ resource = new LibvirtComputingResource();
+ resource.configure("testResource", new HashMap<String, Object>());
+ }
+ @Test
+ public void testCloneVolumeFromBaseTemplate() throws Exception {
+
+
+ }
+
+ @Test
+ public void testCopyVolumeFromImageCacheToPrimary() throws Exception {
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3c40e8bb/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/driver/CloudStackPrimaryDataStoreDriverImpl.java
----------------------------------------------------------------------
diff --git a/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/driver/CloudStackPrimaryDataStoreDriverImpl.java b/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/driver/CloudStackPrimaryDataStoreDriverImpl.java
index c071c08..1e04a76 100644
--- a/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/driver/CloudStackPrimaryDataStoreDriverImpl.java
+++ b/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/driver/CloudStackPrimaryDataStoreDriverImpl.java
@@ -104,9 +104,18 @@ public class CloudStackPrimaryDataStoreDriverImpl implements PrimaryDataStoreDri
public void createAsync(DataStore dataStore, DataObject data, AsyncCompletionCallback<CreateCmdResult> callback) {
String errMsg = null;
Answer answer = null;
+ CreateCmdResult result = new CreateCmdResult(null, null);
if (data.getType() == DataObjectType.VOLUME) {
try {
answer = createVolume((VolumeInfo) data);
+ if ((answer == null) || (!answer.getResult())) {
+ result.setSuccess(false);
+ if (answer != null) {
+ result.setResult(answer.getDetails());
+ }
+ } else {
+ result.setAnswer(answer);
+ }
} catch (StorageUnavailableException e) {
s_logger.debug("failed to create volume", e);
errMsg = e.toString();
@@ -115,7 +124,6 @@ public class CloudStackPrimaryDataStoreDriverImpl implements PrimaryDataStoreDri
errMsg = e.toString();
}
}
- CreateCmdResult result = new CreateCmdResult(null, answer);
if (errMsg != null) {
result.setResult(errMsg);
}