cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kis...@apache.org
Subject git commit: updated refs/heads/master to c09888f
Date Wed, 06 Aug 2014 12:33:39 GMT
Repository: cloudstack
Updated Branches:
  refs/heads/master 6bccf5ff4 -> c09888fcb


CLOUDSTACK-7237 : Added TAR image processor for templates with tar extension


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/c09888fc
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/c09888fc
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/c09888fc

Branch: refs/heads/master
Commit: c09888fcb581e6e8b6708f25d0eb9c2b9e3498e4
Parents: 6bccf5f
Author: Kishan Kavala <kishan.kavala@citrix.com>
Authored: Wed Aug 6 10:55:26 2014 +0530
Committer: Kishan Kavala <kishan.kavala@citrix.com>
Committed: Wed Aug 6 18:03:02 2014 +0530

----------------------------------------------------------------------
 .../cloud/storage/template/TARProcessor.java    | 79 ++++++++++++++++++++
 .../resource/NfsSecondaryStorageResource.java   |  3 +
 .../storage/template/DownloadManagerImpl.java   |  5 ++
 3 files changed, 87 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c09888fc/core/src/com/cloud/storage/template/TARProcessor.java
----------------------------------------------------------------------
diff --git a/core/src/com/cloud/storage/template/TARProcessor.java b/core/src/com/cloud/storage/template/TARProcessor.java
new file mode 100644
index 0000000..96c866e
--- /dev/null
+++ b/core/src/com/cloud/storage/template/TARProcessor.java
@@ -0,0 +1,79 @@
+//
+// 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.storage.template;
+
+import com.cloud.storage.Storage.ImageFormat;
+import com.cloud.storage.StorageLayer;
+import com.cloud.utils.component.AdapterBase;
+import org.apache.log4j.Logger;
+
+import javax.ejb.Local;
+import javax.naming.ConfigurationException;
+import java.io.File;
+import java.util.Map;
+
+@Local(value = Processor.class)
+public class TARProcessor extends AdapterBase implements Processor {
+    private static final Logger s_logger = Logger.getLogger(TARProcessor.class);
+
+    private StorageLayer _storage;
+
+    @Override
+    public FormatInfo process(String templatePath, ImageFormat format, String templateName)
{
+        if (format != null) {
+            s_logger.debug("We currently don't handle conversion from " + format + " to TAR.");
+            return null;
+        }
+
+        String tarPath = templatePath + File.separator + templateName + "." + ImageFormat.TAR.getFileExtension();
+
+        if (!_storage.exists(tarPath)) {
+            s_logger.debug("Unable to find the tar file: " + tarPath);
+            return null;
+        }
+
+        FormatInfo info = new FormatInfo();
+        info.format = ImageFormat.TAR;
+        info.filename = templateName + "." + ImageFormat.TAR.getFileExtension();
+
+        File tarFile = _storage.getFile(tarPath);
+
+        info.size = _storage.getSize(tarPath);
+
+        info.virtualSize = getVirtualSize(tarFile);
+
+        return info;
+    }
+
+    @Override
+    public long getVirtualSize(File file) {
+        return file.length();
+    }
+
+    @Override
+    public boolean configure(String name, Map<String, Object> params) throws ConfigurationException
{
+        _storage = (StorageLayer)params.get(StorageLayer.InstanceConfigKey);
+        if (_storage == null) {
+            throw new ConfigurationException("Unable to get storage implementation");
+        }
+
+        return true;
+    }
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c09888fc/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java
----------------------------------------------------------------------
diff --git a/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java
b/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java
index 7582b73..d8b19d3 100755
--- a/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java
+++ b/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java
@@ -121,6 +121,7 @@ import com.cloud.storage.template.Processor;
 import com.cloud.storage.template.Processor.FormatInfo;
 import com.cloud.storage.template.QCOW2Processor;
 import com.cloud.storage.template.RawImageProcessor;
+import com.cloud.storage.template.TARProcessor;
 import com.cloud.storage.template.TemplateLocation;
 import com.cloud.storage.template.TemplateProp;
 import com.cloud.storage.template.VhdProcessor;
@@ -813,6 +814,8 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements
S
                 processor = new RawImageProcessor();
             } else if (format == ImageFormat.VMDK) {
                 processor = new VmdkProcessor();
+            } if (format == ImageFormat.TAR) {
+                processor = new TARProcessor();
             }
 
             if (processor == null) {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c09888fc/services/secondary-storage/server/src/org/apache/cloudstack/storage/template/DownloadManagerImpl.java
----------------------------------------------------------------------
diff --git a/services/secondary-storage/server/src/org/apache/cloudstack/storage/template/DownloadManagerImpl.java
b/services/secondary-storage/server/src/org/apache/cloudstack/storage/template/DownloadManagerImpl.java
index ec5b569..9678b6b 100755
--- a/services/secondary-storage/server/src/org/apache/cloudstack/storage/template/DownloadManagerImpl.java
+++ b/services/secondary-storage/server/src/org/apache/cloudstack/storage/template/DownloadManagerImpl.java
@@ -67,6 +67,7 @@ import com.cloud.storage.template.Processor;
 import com.cloud.storage.template.Processor.FormatInfo;
 import com.cloud.storage.template.QCOW2Processor;
 import com.cloud.storage.template.RawImageProcessor;
+import com.cloud.storage.template.TARProcessor;
 import com.cloud.storage.template.S3TemplateDownloader;
 import com.cloud.storage.template.ScpTemplateDownloader;
 import com.cloud.storage.template.TemplateConstants;
@@ -996,6 +997,10 @@ public class DownloadManagerImpl extends ManagerBase implements DownloadManager
         processor.configure("Raw Image Processor", params);
         _processors.put("Raw Image Processor", processor);
 
+        processor = new TARProcessor();
+        processor.configure("TAR Processor", params);
+        _processors.put("TAR Processor", processor);
+
         _templateDir = (String)params.get("public.templates.root.dir");
         if (_templateDir == null) {
             _templateDir = TemplateConstants.DEFAULT_TMPLT_ROOT_DIR;


Mime
View raw message