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 2012/11/15 02:47:35 UTC
git commit: add storage motion interface
Updated Branches:
refs/heads/javelin b38d9b82b -> cad75e722
add storage motion interface
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/cad75e72
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/cad75e72
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/cad75e72
Branch: refs/heads/javelin
Commit: cad75e7220a85c03891b0708e11a59297f5a8007
Parents: b38d9b8
Author: Edison Su <su...@gmail.com>
Authored: Wed Nov 14 17:47:09 2012 -0800
Committer: Edison Su <su...@gmail.com>
Committed: Wed Nov 14 17:47:24 2012 -0800
----------------------------------------------------------------------
.../com/cloud/template/VirtualMachineTemplate.java | 1 -
.../engine/cloud/entity/api/TemplateEntity.java | 2 +-
.../storage/StorageOrchestratorImpl.java | 2 +-
.../datastore/DefaultPrimaryDataStoreImpl.java | 20 +++++---
.../storage/datastore/PrimaryDataStore.java | 2 +
.../storage/image/ImageMotionService.java | 24 ---------
.../storage/image/ImageMotionServiceImpl.java | 35 -------------
.../cloudstack/storage/image/TemplateObject.java | 8 +++
.../image/motion/DefaultImageMotionProvider.java | 23 +++++++++
.../storage/image/motion/ImageMotionProvider.java | 26 ++++++++++
.../storage/image/motion/ImageMotionService.java | 27 ++++++++++
.../image/motion/ImageMotionServiceImpl.java | 38 +++++++++++++++
12 files changed, 139 insertions(+), 69 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/cad75e72/api/src/com/cloud/template/VirtualMachineTemplate.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/template/VirtualMachineTemplate.java b/api/src/com/cloud/template/VirtualMachineTemplate.java
index 27f5871..00a4143 100755
--- a/api/src/com/cloud/template/VirtualMachineTemplate.java
+++ b/api/src/com/cloud/template/VirtualMachineTemplate.java
@@ -92,6 +92,5 @@ public interface VirtualMachineTemplate extends ControlledEntity {
Long getSourceTemplateId();
String getTemplateTag();
-
Map getDetails();
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/cad75e72/engine/api/src/org/apache/cloudstack/engine/cloud/entity/api/TemplateEntity.java
----------------------------------------------------------------------
diff --git a/engine/api/src/org/apache/cloudstack/engine/cloud/entity/api/TemplateEntity.java b/engine/api/src/org/apache/cloudstack/engine/cloud/entity/api/TemplateEntity.java
index 5978cc7..ac01bde 100755
--- a/engine/api/src/org/apache/cloudstack/engine/cloud/entity/api/TemplateEntity.java
+++ b/engine/api/src/org/apache/cloudstack/engine/cloud/entity/api/TemplateEntity.java
@@ -23,5 +23,5 @@ import org.apache.cloudstack.engine.entity.api.CloudStackEntity;
import com.cloud.template.VirtualMachineTemplate;
public interface TemplateEntity extends CloudStackEntity, VirtualMachineTemplate {
-
+
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/cad75e72/engine/storage/src/org/apache/cloudstack/storage/StorageOrchestratorImpl.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/StorageOrchestratorImpl.java b/engine/storage/src/org/apache/cloudstack/storage/StorageOrchestratorImpl.java
index eb3b1e0..356190f 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/StorageOrchestratorImpl.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/StorageOrchestratorImpl.java
@@ -348,7 +348,7 @@ public class StorageOrchestratorImpl implements StorageOrchestrator {
PrimaryDataStore pd = primaryStorageMgr.getPrimaryDataStore(dataStoreId);
boolean existsOnPrimaryStorage = pd.templateExists(template.getId());
if (!existsOnPrimaryStorage) {
-
+ pd.installTemplate(template);
}
return false;
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/cad75e72/engine/storage/src/org/apache/cloudstack/storage/datastore/DefaultPrimaryDataStoreImpl.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/datastore/DefaultPrimaryDataStoreImpl.java b/engine/storage/src/org/apache/cloudstack/storage/datastore/DefaultPrimaryDataStoreImpl.java
index bafd280..a87b195 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/datastore/DefaultPrimaryDataStoreImpl.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/datastore/DefaultPrimaryDataStoreImpl.java
@@ -14,6 +14,7 @@ import org.apache.cloudstack.engine.subsystem.api.storage.disktype.VolumeDiskTyp
import org.apache.cloudstack.storage.HypervisorHostEndPoint;
import org.apache.cloudstack.storage.datastore.db.DataStoreVO;
import org.apache.cloudstack.storage.datastore.driver.PrimaryDataStoreDriver;
+import org.apache.cloudstack.storage.image.TemplateInfo;
import org.apache.cloudstack.storage.volume.VolumeEntityImpl;
import org.apache.cloudstack.storage.volume.VolumeEvent;
@@ -66,13 +67,6 @@ public class DefaultPrimaryDataStoreImpl implements PrimaryDataStore {
}
@Override
- public VolumeInfo createVolume(VolumeInfo vol, VolumeDiskType diskType) {
-
-
-
- }
-
- @Override
public List<EndPoint> getEndPoints() {
Long clusterId = pdsv.getClusterId();
if (clusterId == null) {
@@ -141,4 +135,16 @@ public class DefaultPrimaryDataStoreImpl implements PrimaryDataStore {
// TODO Auto-generated method stub
return false;
}
+
+ @Override
+ public boolean templateExists(long templateId) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean createTemplate(TemplateObject template) {
+ // TODO Auto-generated method stub
+ return false;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/cad75e72/engine/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStore.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStore.java b/engine/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStore.java
index dd9be51..4917fc3 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStore.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStore.java
@@ -25,6 +25,7 @@ import org.apache.cloudstack.engine.subsystem.api.storage.EndPoint;
import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreInfo;
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
import org.apache.cloudstack.engine.subsystem.api.storage.disktype.VolumeDiskType;
+import org.apache.cloudstack.storage.image.TemplateObject;
import org.apache.cloudstack.storage.volume.VolumeObject;
@@ -37,4 +38,5 @@ public interface PrimaryDataStore extends PrimaryDataStoreInfo {
PrimaryDataStoreInfo getDataStoreInfo();
boolean exists(VolumeInfo vi);
boolean templateExists(long templateId);
+ boolean installTemplate(TemplateObject template);
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/cad75e72/engine/storage/src/org/apache/cloudstack/storage/image/ImageMotionService.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/image/ImageMotionService.java b/engine/storage/src/org/apache/cloudstack/storage/image/ImageMotionService.java
deleted file mode 100644
index dd35e5d..0000000
--- a/engine/storage/src/org/apache/cloudstack/storage/image/ImageMotionService.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * 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 org.apache.cloudstack.storage.image;
-
-public interface ImageMotionService {
- boolean copyTemplate(String templateUri, String destTemplateUri);
- boolean copyIso(String isoUri, String destIsoUri);
-}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/cad75e72/engine/storage/src/org/apache/cloudstack/storage/image/ImageMotionServiceImpl.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/image/ImageMotionServiceImpl.java b/engine/storage/src/org/apache/cloudstack/storage/image/ImageMotionServiceImpl.java
deleted file mode 100644
index 2dc4e74..0000000
--- a/engine/storage/src/org/apache/cloudstack/storage/image/ImageMotionServiceImpl.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * 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 org.apache.cloudstack.storage.image;
-
-public class ImageMotionServiceImpl implements ImageMotionService {
-
- @Override
- public boolean copyTemplate(String templateUri, String destTemplateUri) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public boolean copyIso(String isoUri, String destIsoUri) {
- // TODO Auto-generated method stub
- return false;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/cad75e72/engine/storage/src/org/apache/cloudstack/storage/image/TemplateObject.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/image/TemplateObject.java b/engine/storage/src/org/apache/cloudstack/storage/image/TemplateObject.java
index f1181db..ad43ec9 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/image/TemplateObject.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/image/TemplateObject.java
@@ -18,6 +18,14 @@
*/
package org.apache.cloudstack.storage.image;
+import org.apache.cloudstack.storage.image.store.ImageDataStoreInfo;
+
public class TemplateObject implements TemplateInfo {
+ @Override
+ public ImageDataStoreInfo getImageDataStore() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/cad75e72/engine/storage/src/org/apache/cloudstack/storage/image/motion/DefaultImageMotionProvider.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/image/motion/DefaultImageMotionProvider.java b/engine/storage/src/org/apache/cloudstack/storage/image/motion/DefaultImageMotionProvider.java
new file mode 100644
index 0000000..f645233
--- /dev/null
+++ b/engine/storage/src/org/apache/cloudstack/storage/image/motion/DefaultImageMotionProvider.java
@@ -0,0 +1,23 @@
+/*
+ * 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 org.apache.cloudstack.storage.image.motion;
+
+public class DefaultImageMotionProvider implements ImageMotionProvider {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/cad75e72/engine/storage/src/org/apache/cloudstack/storage/image/motion/ImageMotionProvider.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/image/motion/ImageMotionProvider.java b/engine/storage/src/org/apache/cloudstack/storage/image/motion/ImageMotionProvider.java
new file mode 100644
index 0000000..342ebe6
--- /dev/null
+++ b/engine/storage/src/org/apache/cloudstack/storage/image/motion/ImageMotionProvider.java
@@ -0,0 +1,26 @@
+/*
+ * 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 org.apache.cloudstack.storage.image.motion;
+
+import org.apache.cloudstack.engine.cloud.entity.api.TemplateEntity;
+import org.apache.cloudstack.storage.datastore.PrimaryDataStore;
+
+public interface ImageMotionProvider {
+ public boolean canHandle(TemplateEntity template, PrimaryDataStore dataStoe);
+}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/cad75e72/engine/storage/src/org/apache/cloudstack/storage/image/motion/ImageMotionService.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/image/motion/ImageMotionService.java b/engine/storage/src/org/apache/cloudstack/storage/image/motion/ImageMotionService.java
new file mode 100644
index 0000000..a98be67
--- /dev/null
+++ b/engine/storage/src/org/apache/cloudstack/storage/image/motion/ImageMotionService.java
@@ -0,0 +1,27 @@
+/*
+ * 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 org.apache.cloudstack.storage.image.motion;
+
+import org.apache.cloudstack.engine.cloud.entity.api.TemplateEntity;
+import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreInfo;
+
+public interface ImageMotionService {
+ boolean copyTemplate(TemplateEntity template, PrimaryDataStoreInfo dataStore);
+ boolean copyIso(String isoUri, String destIsoUri);
+}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/cad75e72/engine/storage/src/org/apache/cloudstack/storage/image/motion/ImageMotionServiceImpl.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/image/motion/ImageMotionServiceImpl.java b/engine/storage/src/org/apache/cloudstack/storage/image/motion/ImageMotionServiceImpl.java
new file mode 100644
index 0000000..e5b7b25
--- /dev/null
+++ b/engine/storage/src/org/apache/cloudstack/storage/image/motion/ImageMotionServiceImpl.java
@@ -0,0 +1,38 @@
+/*
+ * 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 org.apache.cloudstack.storage.image.motion;
+
+import org.apache.cloudstack.engine.cloud.entity.api.TemplateEntity;
+import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreInfo;
+import org.apache.cloudstack.storage.datastore.PrimaryDataStore;
+
+public class ImageMotionServiceImpl implements ImageMotionService {
+ @Override
+ public boolean copyIso(String isoUri, String destIsoUri) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean copyTemplate(TemplateEntity template, PrimaryDataStore dataStore) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+}
Re: git commit: add storage motion interface
Posted by David Nalley <da...@gnsa.us>.
Is this a reshuffling of the current storage motion or is there
something new planned for here?
--David
On Wed, Nov 14, 2012 at 8:47 PM, <ed...@apache.org> wrote:
> Updated Branches:
> refs/heads/javelin b38d9b82b -> cad75e722
>
>
> add storage motion interface
>
>
> Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
> Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/cad75e72
> Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/cad75e72
> Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/cad75e72
>
> Branch: refs/heads/javelin
> Commit: cad75e7220a85c03891b0708e11a59297f5a8007
> Parents: b38d9b8
> Author: Edison Su <su...@gmail.com>
> Authored: Wed Nov 14 17:47:09 2012 -0800
> Committer: Edison Su <su...@gmail.com>
> Committed: Wed Nov 14 17:47:24 2012 -0800
>
> ----------------------------------------------------------------------
> .../com/cloud/template/VirtualMachineTemplate.java | 1 -
> .../engine/cloud/entity/api/TemplateEntity.java | 2 +-
> .../storage/StorageOrchestratorImpl.java | 2 +-
> .../datastore/DefaultPrimaryDataStoreImpl.java | 20 +++++---
> .../storage/datastore/PrimaryDataStore.java | 2 +
> .../storage/image/ImageMotionService.java | 24 ---------
> .../storage/image/ImageMotionServiceImpl.java | 35 -------------
> .../cloudstack/storage/image/TemplateObject.java | 8 +++
> .../image/motion/DefaultImageMotionProvider.java | 23 +++++++++
> .../storage/image/motion/ImageMotionProvider.java | 26 ++++++++++
> .../storage/image/motion/ImageMotionService.java | 27 ++++++++++
> .../image/motion/ImageMotionServiceImpl.java | 38 +++++++++++++++
> 12 files changed, 139 insertions(+), 69 deletions(-)
> ----------------------------------------------------------------------
>
>
> http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/cad75e72/api/src/com/cloud/template/VirtualMachineTemplate.java
> ----------------------------------------------------------------------
> diff --git a/api/src/com/cloud/template/VirtualMachineTemplate.java b/api/src/com/cloud/template/VirtualMachineTemplate.java
> index 27f5871..00a4143 100755
> --- a/api/src/com/cloud/template/VirtualMachineTemplate.java
> +++ b/api/src/com/cloud/template/VirtualMachineTemplate.java
> @@ -92,6 +92,5 @@ public interface VirtualMachineTemplate extends ControlledEntity {
> Long getSourceTemplateId();
>
> String getTemplateTag();
> -
> Map getDetails();
> }
>
> http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/cad75e72/engine/api/src/org/apache/cloudstack/engine/cloud/entity/api/TemplateEntity.java
> ----------------------------------------------------------------------
> diff --git a/engine/api/src/org/apache/cloudstack/engine/cloud/entity/api/TemplateEntity.java b/engine/api/src/org/apache/cloudstack/engine/cloud/entity/api/TemplateEntity.java
> index 5978cc7..ac01bde 100755
> --- a/engine/api/src/org/apache/cloudstack/engine/cloud/entity/api/TemplateEntity.java
> +++ b/engine/api/src/org/apache/cloudstack/engine/cloud/entity/api/TemplateEntity.java
> @@ -23,5 +23,5 @@ import org.apache.cloudstack.engine.entity.api.CloudStackEntity;
> import com.cloud.template.VirtualMachineTemplate;
>
> public interface TemplateEntity extends CloudStackEntity, VirtualMachineTemplate {
> -
> +
> }
>
> http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/cad75e72/engine/storage/src/org/apache/cloudstack/storage/StorageOrchestratorImpl.java
> ----------------------------------------------------------------------
> diff --git a/engine/storage/src/org/apache/cloudstack/storage/StorageOrchestratorImpl.java b/engine/storage/src/org/apache/cloudstack/storage/StorageOrchestratorImpl.java
> index eb3b1e0..356190f 100644
> --- a/engine/storage/src/org/apache/cloudstack/storage/StorageOrchestratorImpl.java
> +++ b/engine/storage/src/org/apache/cloudstack/storage/StorageOrchestratorImpl.java
> @@ -348,7 +348,7 @@ public class StorageOrchestratorImpl implements StorageOrchestrator {
> PrimaryDataStore pd = primaryStorageMgr.getPrimaryDataStore(dataStoreId);
> boolean existsOnPrimaryStorage = pd.templateExists(template.getId());
> if (!existsOnPrimaryStorage) {
> -
> + pd.installTemplate(template);
> }
> return false;
> }
>
> http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/cad75e72/engine/storage/src/org/apache/cloudstack/storage/datastore/DefaultPrimaryDataStoreImpl.java
> ----------------------------------------------------------------------
> diff --git a/engine/storage/src/org/apache/cloudstack/storage/datastore/DefaultPrimaryDataStoreImpl.java b/engine/storage/src/org/apache/cloudstack/storage/datastore/DefaultPrimaryDataStoreImpl.java
> index bafd280..a87b195 100644
> --- a/engine/storage/src/org/apache/cloudstack/storage/datastore/DefaultPrimaryDataStoreImpl.java
> +++ b/engine/storage/src/org/apache/cloudstack/storage/datastore/DefaultPrimaryDataStoreImpl.java
> @@ -14,6 +14,7 @@ import org.apache.cloudstack.engine.subsystem.api.storage.disktype.VolumeDiskTyp
> import org.apache.cloudstack.storage.HypervisorHostEndPoint;
> import org.apache.cloudstack.storage.datastore.db.DataStoreVO;
> import org.apache.cloudstack.storage.datastore.driver.PrimaryDataStoreDriver;
> +import org.apache.cloudstack.storage.image.TemplateInfo;
>
> import org.apache.cloudstack.storage.volume.VolumeEntityImpl;
> import org.apache.cloudstack.storage.volume.VolumeEvent;
> @@ -66,13 +67,6 @@ public class DefaultPrimaryDataStoreImpl implements PrimaryDataStore {
> }
>
> @Override
> - public VolumeInfo createVolume(VolumeInfo vol, VolumeDiskType diskType) {
> -
> -
> -
> - }
> -
> - @Override
> public List<EndPoint> getEndPoints() {
> Long clusterId = pdsv.getClusterId();
> if (clusterId == null) {
> @@ -141,4 +135,16 @@ public class DefaultPrimaryDataStoreImpl implements PrimaryDataStore {
> // TODO Auto-generated method stub
> return false;
> }
> +
> + @Override
> + public boolean templateExists(long templateId) {
> + // TODO Auto-generated method stub
> + return false;
> + }
> +
> + @Override
> + public boolean createTemplate(TemplateObject template) {
> + // TODO Auto-generated method stub
> + return false;
> + }
> }
>
> http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/cad75e72/engine/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStore.java
> ----------------------------------------------------------------------
> diff --git a/engine/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStore.java b/engine/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStore.java
> index dd9be51..4917fc3 100644
> --- a/engine/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStore.java
> +++ b/engine/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStore.java
> @@ -25,6 +25,7 @@ import org.apache.cloudstack.engine.subsystem.api.storage.EndPoint;
> import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreInfo;
> import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
> import org.apache.cloudstack.engine.subsystem.api.storage.disktype.VolumeDiskType;
> +import org.apache.cloudstack.storage.image.TemplateObject;
> import org.apache.cloudstack.storage.volume.VolumeObject;
>
>
> @@ -37,4 +38,5 @@ public interface PrimaryDataStore extends PrimaryDataStoreInfo {
> PrimaryDataStoreInfo getDataStoreInfo();
> boolean exists(VolumeInfo vi);
> boolean templateExists(long templateId);
> + boolean installTemplate(TemplateObject template);
> }
>
> http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/cad75e72/engine/storage/src/org/apache/cloudstack/storage/image/ImageMotionService.java
> ----------------------------------------------------------------------
> diff --git a/engine/storage/src/org/apache/cloudstack/storage/image/ImageMotionService.java b/engine/storage/src/org/apache/cloudstack/storage/image/ImageMotionService.java
> deleted file mode 100644
> index dd35e5d..0000000
> --- a/engine/storage/src/org/apache/cloudstack/storage/image/ImageMotionService.java
> +++ /dev/null
> @@ -1,24 +0,0 @@
> -/*
> - * 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 org.apache.cloudstack.storage.image;
> -
> -public interface ImageMotionService {
> - boolean copyTemplate(String templateUri, String destTemplateUri);
> - boolean copyIso(String isoUri, String destIsoUri);
> -}
>
> http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/cad75e72/engine/storage/src/org/apache/cloudstack/storage/image/ImageMotionServiceImpl.java
> ----------------------------------------------------------------------
> diff --git a/engine/storage/src/org/apache/cloudstack/storage/image/ImageMotionServiceImpl.java b/engine/storage/src/org/apache/cloudstack/storage/image/ImageMotionServiceImpl.java
> deleted file mode 100644
> index 2dc4e74..0000000
> --- a/engine/storage/src/org/apache/cloudstack/storage/image/ImageMotionServiceImpl.java
> +++ /dev/null
> @@ -1,35 +0,0 @@
> -/*
> - * 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 org.apache.cloudstack.storage.image;
> -
> -public class ImageMotionServiceImpl implements ImageMotionService {
> -
> - @Override
> - public boolean copyTemplate(String templateUri, String destTemplateUri) {
> - // TODO Auto-generated method stub
> - return false;
> - }
> -
> - @Override
> - public boolean copyIso(String isoUri, String destIsoUri) {
> - // TODO Auto-generated method stub
> - return false;
> - }
> -
> -}
>
> http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/cad75e72/engine/storage/src/org/apache/cloudstack/storage/image/TemplateObject.java
> ----------------------------------------------------------------------
> diff --git a/engine/storage/src/org/apache/cloudstack/storage/image/TemplateObject.java b/engine/storage/src/org/apache/cloudstack/storage/image/TemplateObject.java
> index f1181db..ad43ec9 100644
> --- a/engine/storage/src/org/apache/cloudstack/storage/image/TemplateObject.java
> +++ b/engine/storage/src/org/apache/cloudstack/storage/image/TemplateObject.java
> @@ -18,6 +18,14 @@
> */
> package org.apache.cloudstack.storage.image;
>
> +import org.apache.cloudstack.storage.image.store.ImageDataStoreInfo;
> +
> public class TemplateObject implements TemplateInfo {
>
> + @Override
> + public ImageDataStoreInfo getImageDataStore() {
> + // TODO Auto-generated method stub
> + return null;
> + }
> +
> }
>
> http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/cad75e72/engine/storage/src/org/apache/cloudstack/storage/image/motion/DefaultImageMotionProvider.java
> ----------------------------------------------------------------------
> diff --git a/engine/storage/src/org/apache/cloudstack/storage/image/motion/DefaultImageMotionProvider.java b/engine/storage/src/org/apache/cloudstack/storage/image/motion/DefaultImageMotionProvider.java
> new file mode 100644
> index 0000000..f645233
> --- /dev/null
> +++ b/engine/storage/src/org/apache/cloudstack/storage/image/motion/DefaultImageMotionProvider.java
> @@ -0,0 +1,23 @@
> +/*
> + * 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 org.apache.cloudstack.storage.image.motion;
> +
> +public class DefaultImageMotionProvider implements ImageMotionProvider {
> +
> +}
>
> http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/cad75e72/engine/storage/src/org/apache/cloudstack/storage/image/motion/ImageMotionProvider.java
> ----------------------------------------------------------------------
> diff --git a/engine/storage/src/org/apache/cloudstack/storage/image/motion/ImageMotionProvider.java b/engine/storage/src/org/apache/cloudstack/storage/image/motion/ImageMotionProvider.java
> new file mode 100644
> index 0000000..342ebe6
> --- /dev/null
> +++ b/engine/storage/src/org/apache/cloudstack/storage/image/motion/ImageMotionProvider.java
> @@ -0,0 +1,26 @@
> +/*
> + * 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 org.apache.cloudstack.storage.image.motion;
> +
> +import org.apache.cloudstack.engine.cloud.entity.api.TemplateEntity;
> +import org.apache.cloudstack.storage.datastore.PrimaryDataStore;
> +
> +public interface ImageMotionProvider {
> + public boolean canHandle(TemplateEntity template, PrimaryDataStore dataStoe);
>
> +}
>
> http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/cad75e72/engine/storage/src/org/apache/cloudstack/storage/image/motion/ImageMotionService.java
> ----------------------------------------------------------------------
> diff --git a/engine/storage/src/org/apache/cloudstack/storage/image/motion/ImageMotionService.java b/engine/storage/src/org/apache/cloudstack/storage/image/motion/ImageMotionService.java
> new file mode 100644
> index 0000000..a98be67
> --- /dev/null
> +++ b/engine/storage/src/org/apache/cloudstack/storage/image/motion/ImageMotionService.java
> @@ -0,0 +1,27 @@
> +/*
> + * 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 org.apache.cloudstack.storage.image.motion;
> +
> +import org.apache.cloudstack.engine.cloud.entity.api.TemplateEntity;
> +import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreInfo;
> +
> +public interface ImageMotionService {
> + boolean copyTemplate(TemplateEntity template, PrimaryDataStoreInfo dataStore);
> + boolean copyIso(String isoUri, String destIsoUri);
> +}
>
> http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/cad75e72/engine/storage/src/org/apache/cloudstack/storage/image/motion/ImageMotionServiceImpl.java
> ----------------------------------------------------------------------
> diff --git a/engine/storage/src/org/apache/cloudstack/storage/image/motion/ImageMotionServiceImpl.java b/engine/storage/src/org/apache/cloudstack/storage/image/motion/ImageMotionServiceImpl.java
> new file mode 100644
> index 0000000..e5b7b25
> --- /dev/null
> +++ b/engine/storage/src/org/apache/cloudstack/storage/image/motion/ImageMotionServiceImpl.java
> @@ -0,0 +1,38 @@
> +/*
> + * 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 org.apache.cloudstack.storage.image.motion;
> +
> +import org.apache.cloudstack.engine.cloud.entity.api.TemplateEntity;
> +import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreInfo;
> +import org.apache.cloudstack.storage.datastore.PrimaryDataStore;
> +
> +public class ImageMotionServiceImpl implements ImageMotionService {
> + @Override
> + public boolean copyIso(String isoUri, String destIsoUri) {
> + // TODO Auto-generated method stub
> + return false;
> + }
> +
> + @Override
> + public boolean copyTemplate(TemplateEntity template, PrimaryDataStore dataStore) {
> + // TODO Auto-generated method stub
> + return false;
> + }
> +
> +}
>