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/06/15 03:26:49 UTC

git commit: updated refs/heads/object_store to e8b0cff

Updated Branches:
  refs/heads/object_store c4267b546 -> e8b0cff1c


CLOUDSTACK-2658: timeout can't be null


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

Branch: refs/heads/object_store
Commit: e8b0cff1c607888ea9299f3aa92dd7c27c5692e5
Parents: c4267b5
Author: Edison Su <su...@gmail.com>
Authored: Fri Jun 14 18:26:20 2013 -0700
Committer: Edison Su <su...@gmail.com>
Committed: Fri Jun 14 18:26:20 2013 -0700

----------------------------------------------------------------------
 .../VmwareSecondaryStorageResourceHandler.java  | 135 ++++----
 .../resource/NfsSecondaryStorageResource.java   | 323 +++++++++++--------
 2 files changed, 252 insertions(+), 206 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e8b0cff1/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareSecondaryStorageResourceHandler.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareSecondaryStorageResourceHandler.java b/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareSecondaryStorageResourceHandler.java
index 4d04ffe..22ba59f 100644
--- a/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareSecondaryStorageResourceHandler.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareSecondaryStorageResourceHandler.java
@@ -18,13 +18,9 @@ package com.cloud.storage.resource;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
-
-import com.google.gson.Gson;
-import com.vmware.vim25.ManagedObjectReference;
-
 import org.apache.cloudstack.storage.command.StorageSubSystemCommand;
 import org.apache.cloudstack.storage.resource.SecondaryStorageResourceHandler;
+import org.apache.log4j.Logger;
 
 import com.cloud.agent.api.Answer;
 import com.cloud.agent.api.BackupSnapshotCommand;
@@ -50,8 +46,11 @@ import com.cloud.hypervisor.vmware.util.VmwareContext;
 import com.cloud.hypervisor.vmware.util.VmwareHelper;
 import com.cloud.serializer.GsonHelper;
 import com.cloud.utils.Pair;
+import com.google.gson.Gson;
+import com.vmware.vim25.ManagedObjectReference;
 
-public class VmwareSecondaryStorageResourceHandler implements SecondaryStorageResourceHandler, VmwareHostService, VmwareStorageMount {
+public class VmwareSecondaryStorageResourceHandler implements SecondaryStorageResourceHandler, VmwareHostService,
+        VmwareStorageMount {
     private static final Logger s_logger = Logger.getLogger(VmwareSecondaryStorageResourceHandler.class);
 
     private final PremiumSecondaryStorageResource _resource;
@@ -61,17 +60,16 @@ public class VmwareSecondaryStorageResourceHandler implements SecondaryStorageRe
     private final StorageSubsystemCommandHandler storageSubsystemHandler;
 
     /*
-	private Map<String, HostMO> _activeHosts = new HashMap<String, HostMO>();
+     * private Map<String, HostMO> _activeHosts = new HashMap<String, HostMO>();
      */
 
     public VmwareSecondaryStorageResourceHandler(PremiumSecondaryStorageResource resource) {
         _resource = resource;
         _storageMgr = new VmwareStorageManagerImpl(this);
         _gson = GsonHelper.getGsonLogger();
-      
-        VmwareStorageProcessor storageProcessor = new VmwareStorageProcessor(this, true, this,
-        		null, null, null
-        		);
+
+        VmwareStorageProcessor storageProcessor = new VmwareStorageProcessor(this, true, this, resource.getTimeout(),
+                null, null);
         storageSubsystemHandler = new StorageSubsystemCommandHandlerBase(storageProcessor);
     }
 
@@ -79,37 +77,37 @@ public class VmwareSecondaryStorageResourceHandler implements SecondaryStorageRe
     public Answer executeRequest(Command cmd) {
         Answer answer;
         if (cmd instanceof PrimaryStorageDownloadCommand) {
-            answer = execute((PrimaryStorageDownloadCommand)cmd);
-        } else if(cmd instanceof BackupSnapshotCommand) {
-            answer = execute((BackupSnapshotCommand)cmd);
-        } else if(cmd instanceof CreatePrivateTemplateFromVolumeCommand) {
-            answer = execute((CreatePrivateTemplateFromVolumeCommand)cmd);
-        } else if(cmd instanceof CreatePrivateTemplateFromSnapshotCommand) {
-            answer = execute((CreatePrivateTemplateFromSnapshotCommand)cmd);
-        } else if(cmd instanceof CopyVolumeCommand) {
-            answer = execute((CopyVolumeCommand)cmd);
-        } else if(cmd instanceof CreateVolumeOVACommand) {
-            answer = execute((CreateVolumeOVACommand)cmd);
+            answer = execute((PrimaryStorageDownloadCommand) cmd);
+        } else if (cmd instanceof BackupSnapshotCommand) {
+            answer = execute((BackupSnapshotCommand) cmd);
+        } else if (cmd instanceof CreatePrivateTemplateFromVolumeCommand) {
+            answer = execute((CreatePrivateTemplateFromVolumeCommand) cmd);
+        } else if (cmd instanceof CreatePrivateTemplateFromSnapshotCommand) {
+            answer = execute((CreatePrivateTemplateFromSnapshotCommand) cmd);
+        } else if (cmd instanceof CopyVolumeCommand) {
+            answer = execute((CopyVolumeCommand) cmd);
+        } else if (cmd instanceof CreateVolumeOVACommand) {
+            answer = execute((CreateVolumeOVACommand) cmd);
         } else if (cmd instanceof PrepareOVAPackingCommand) {
-            answer = execute((PrepareOVAPackingCommand)cmd);
-        } else if(cmd instanceof CreateVolumeFromSnapshotCommand) {
-            answer = execute((CreateVolumeFromSnapshotCommand)cmd);
+            answer = execute((PrepareOVAPackingCommand) cmd);
+        } else if (cmd instanceof CreateVolumeFromSnapshotCommand) {
+            answer = execute((CreateVolumeFromSnapshotCommand) cmd);
         } else if (cmd instanceof StorageSubSystemCommand) {
-        	answer = storageSubsystemHandler.handleStorageCommands((StorageSubSystemCommand)cmd);
+            answer = storageSubsystemHandler.handleStorageCommands((StorageSubSystemCommand) cmd);
         } else {
-            answer =  _resource.defaultAction(cmd);
+            answer = _resource.defaultAction(cmd);
         }
 
         // special handling to pass-back context info for cleanups
-        if(cmd.getContextParam("execid") != null) {
+        if (cmd.getContextParam("execid") != null) {
             answer.setContextParam("execid", cmd.getContextParam("execid"));
         }
 
-        if(cmd.getContextParam("checkpoint") != null) {
+        if (cmd.getContextParam("checkpoint") != null) {
             answer.setContextParam("checkpoint", cmd.getContextParam("checkpoint"));
         }
 
-        if(cmd.getContextParam("checkpoint2") != null) {
+        if (cmd.getContextParam("checkpoint2") != null) {
             answer.setContextParam("checkpoint2", cmd.getContextParam("checkpoint2"));
         }
 
@@ -184,13 +182,13 @@ public class VmwareSecondaryStorageResourceHandler implements SecondaryStorageRe
     @Override
     public VmwareContext getServiceContext(Command cmd) {
         String guid = cmd.getContextParam("guid");
-        if(guid == null || guid.isEmpty()) {
+        if (guid == null || guid.isEmpty()) {
             s_logger.error("Invalid command context parameter guid");
             return null;
         }
 
         String username = cmd.getContextParam("username");
-        if(username == null || username.isEmpty()) {
+        if (username == null || username.isEmpty()) {
             s_logger.error("Invalid command context parameter username");
             return null;
         }
@@ -199,14 +197,14 @@ public class VmwareSecondaryStorageResourceHandler implements SecondaryStorageRe
 
         // validate command guid parameter
         String[] tokens = guid.split("@");
-        if(tokens == null || tokens.length != 2) {
+        if (tokens == null || tokens.length != 2) {
             s_logger.error("Invalid content in command context parameter guid");
             return null;
         }
 
         String vCenterAddress = tokens[1];
         String[] hostTokens = tokens[0].split(":");
-        if(hostTokens == null || hostTokens.length != 2) {
+        if (hostTokens == null || hostTokens.length != 2) {
             s_logger.error("Invalid content in command context parameter guid");
             return null;
         }
@@ -215,20 +213,21 @@ public class VmwareSecondaryStorageResourceHandler implements SecondaryStorageRe
             _resource.ensureOutgoingRuleForAddress(vCenterAddress);
             VmwareContext context = null;
 
-            // cached VmwareContext may be timed out in vCenter, give it a chance to reclaim a new context from factory
-            for(int i = 0; i < 2; i++) {
+            // cached VmwareContext may be timed out in vCenter, give it a
+            // chance to reclaim a new context from factory
+            for (int i = 0; i < 2; i++) {
                 context = VmwareSecondaryStorageContextFactory.create(vCenterAddress, username, password);
-                if(!validateContext(context, cmd)) {
+                if (!validateContext(context, cmd)) {
                     invalidateServiceContext(context);
                 }
             }
 
-            if(context != null) {
+            if (context != null) {
                 context.registerStockObject("serviceconsole", cmd.getContextParam("serviceconsole"));
                 context.registerStockObject("manageportgroup", cmd.getContextParam("manageportgroup"));
             }
             return context;
-        } catch(Exception e) {
+        } catch (Exception e) {
             s_logger.error("Unexpected exception " + e.toString(), e);
             return null;
         }
@@ -242,14 +241,14 @@ public class VmwareSecondaryStorageResourceHandler implements SecondaryStorageRe
     @Override
     public VmwareHypervisorHost getHyperHost(VmwareContext context, Command cmd) {
         String guid = cmd.getContextParam("guid");
-        assert(guid != null);
+        assert (guid != null);
 
         String[] tokens = guid.split("@");
-        assert(tokens != null && tokens.length == 2);
+        assert (tokens != null && tokens.length == 2);
 
         ManagedObjectReference morHyperHost = new ManagedObjectReference();
         String[] hostTokens = tokens[0].split(":");
-        if(hostTokens == null || hostTokens.length != 2) {
+        if (hostTokens == null || hostTokens.length != 2) {
             s_logger.error("Invalid content in command context parameter guid");
             return null;
         }
@@ -257,40 +256,42 @@ public class VmwareSecondaryStorageResourceHandler implements SecondaryStorageRe
         morHyperHost.setType(hostTokens[0]);
         morHyperHost.setValue(hostTokens[1]);
 
-        if(morHyperHost.getType().equalsIgnoreCase("HostSystem")) {
-            HostMO hostMo =  new HostMO(context, morHyperHost);
+        if (morHyperHost.getType().equalsIgnoreCase("HostSystem")) {
+            HostMO hostMo = new HostMO(context, morHyperHost);
 
             try {
 
                 ManagedObjectReference mor = hostMo.getHyperHostCluster();
                 ClusterMO clusterMo = new ClusterMO(hostMo.getContext(), mor);
                 List<Pair<ManagedObjectReference, String>> hostsInCluster = clusterMo.getClusterHosts();
-                for(Pair<ManagedObjectReference, String> hostPair : hostsInCluster) {
+                for (Pair<ManagedObjectReference, String> hostPair : hostsInCluster) {
                     HostMO hostIteratorMo = new HostMO(hostMo.getContext(), hostPair.first());
 
-                    VmwareHypervisorHostNetworkSummary netSummary = hostIteratorMo.getHyperHostNetworkSummary(
-                            hostIteratorMo.getHostType() == VmwareHostType.ESXi ? cmd.getContextParam("manageportgroup") : cmd.getContextParam("serviceconsole"));
+                    VmwareHypervisorHostNetworkSummary netSummary = hostIteratorMo
+                            .getHyperHostNetworkSummary(hostIteratorMo.getHostType() == VmwareHostType.ESXi ? cmd
+                                    .getContextParam("manageportgroup") : cmd.getContextParam("serviceconsole"));
                     _resource.ensureOutgoingRuleForAddress(netSummary.getHostIp());
 
                     s_logger.info("Setup firewall rule for host: " + netSummary.getHostIp());
                 }
-            } catch(Throwable e) {
-                s_logger.warn("Unable to retrive host network information due to exception " + e.toString() + ", host: " + hostTokens[0] + "-" + hostTokens[1]);
+            } catch (Throwable e) {
+                s_logger.warn("Unable to retrive host network information due to exception " + e.toString()
+                        + ", host: " + hostTokens[0] + "-" + hostTokens[1]);
             }
 
             return hostMo;
         }
 
-        assert(false);
+        assert (false);
         return new ClusterMO(context, morHyperHost);
     }
 
     @Override
     public String getWorkerName(VmwareContext context, Command cmd, int workerSequence) {
-        assert(cmd.getContextParam("worker") != null);
-        assert(workerSequence < 2);
+        assert (cmd.getContextParam("worker") != null);
+        assert (workerSequence < 2);
 
-        if(workerSequence == 0)
+        if (workerSequence == 0)
             return cmd.getContextParam("worker");
         return cmd.getContextParam("worker2");
     }
@@ -302,40 +303,42 @@ public class VmwareSecondaryStorageResourceHandler implements SecondaryStorageRe
 
     private boolean validateContext(VmwareContext context, Command cmd) {
         String guid = cmd.getContextParam("guid");
-        assert(guid != null);
+        assert (guid != null);
 
         String[] tokens = guid.split("@");
-        assert(tokens != null && tokens.length == 2);
+        assert (tokens != null && tokens.length == 2);
 
         ManagedObjectReference morHyperHost = new ManagedObjectReference();
         String[] hostTokens = tokens[0].split(":");
-        assert(hostTokens.length == 2);
+        assert (hostTokens.length == 2);
 
         morHyperHost.setType(hostTokens[0]);
         morHyperHost.setValue(hostTokens[1]);
 
-        if(morHyperHost.getType().equalsIgnoreCase("HostSystem")) {
-            HostMO hostMo =  new HostMO(context, morHyperHost);
+        if (morHyperHost.getType().equalsIgnoreCase("HostSystem")) {
+            HostMO hostMo = new HostMO(context, morHyperHost);
             try {
-                VmwareHypervisorHostNetworkSummary netSummary = hostMo.getHyperHostNetworkSummary(
-                	hostMo.getHostType() == VmwareHostType.ESXi ? cmd.getContextParam("manageportgroup") : cmd.getContextParam("serviceconsole"));
-                assert(netSummary != null);
-                if(netSummary.getHostIp() != null && !netSummary.getHostIp().isEmpty()) {
-                    if(s_logger.isDebugEnabled()) {
-                        s_logger.debug("Context validation succeeded. Validated via host: " + netSummary.getHostIp() + ", guid: " + guid);
+                VmwareHypervisorHostNetworkSummary netSummary = hostMo
+                        .getHyperHostNetworkSummary(hostMo.getHostType() == VmwareHostType.ESXi ? cmd
+                                .getContextParam("manageportgroup") : cmd.getContextParam("serviceconsole"));
+                assert (netSummary != null);
+                if (netSummary.getHostIp() != null && !netSummary.getHostIp().isEmpty()) {
+                    if (s_logger.isDebugEnabled()) {
+                        s_logger.debug("Context validation succeeded. Validated via host: " + netSummary.getHostIp()
+                                + ", guid: " + guid);
                     }
                     return true;
                 }
 
                 s_logger.warn("Context validation failed due to invalid host network summary");
                 return false;
-            } catch(Throwable e) {
+            } catch (Throwable e) {
                 s_logger.warn("Context validation failed due to " + VmwareHelper.getExceptionMessage(e));
                 return false;
             }
         }
 
-        assert(false);
+        assert (false);
         return true;
     }
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e8b0cff1/services/secondary-storage/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java
----------------------------------------------------------------------
diff --git a/services/secondary-storage/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java b/services/secondary-storage/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java
index be352db..17ec0bb 100755
--- a/services/secondary-storage/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java
+++ b/services/secondary-storage/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java
@@ -129,6 +129,14 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
 
     int _timeout;
 
+    public int getTimeout() {
+        return _timeout;
+    }
+
+    public void setTimeout(int _timeout) {
+        this._timeout = _timeout;
+    }
+
     String _instance;
     String _dc;
     String _pod;
@@ -229,12 +237,13 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
                 s_logger.debug("Directory " + downloadPath + " already exists");
             }
 
-            File destFile = S3Utils.getFile(s3, s3.getBucketName(), srcData.getPath(), downloadDirectory, new FileNamingStrategy() {
-                @Override
-                public String determineFileName(final String key) {
-                    return substringAfterLast(key, S3Utils.SEPARATOR);
-                }
-            });
+            File destFile = S3Utils.getFile(s3, s3.getBucketName(), srcData.getPath(), downloadDirectory,
+                    new FileNamingStrategy() {
+                        @Override
+                        public String determineFileName(final String key) {
+                            return substringAfterLast(key, S3Utils.SEPARATOR);
+                        }
+                    });
 
             if (destFile == null) {
                 return new CopyCmdAnswer("Can't find template");
@@ -310,9 +319,8 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
         }
     }
 
-
-    protected Answer copySnapshotToTemplateFromNfsToNfsXenserver(CopyCommand cmd, SnapshotObjectTO srcData, NfsTO srcDataStore,
-            TemplateObjectTO destData, NfsTO destDataStore) {
+    protected Answer copySnapshotToTemplateFromNfsToNfsXenserver(CopyCommand cmd, SnapshotObjectTO srcData,
+            NfsTO srcDataStore, TemplateObjectTO destData, NfsTO destDataStore) {
         String srcMountPoint = this.getRootDir(srcDataStore.getUrl());
         String snapshotPath = srcData.getPath();
         int index = snapshotPath.lastIndexOf("/");
@@ -373,8 +381,8 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
         return new CopyCmdAnswer(errMsg);
     }
 
-    protected Answer copySnapshotToTemplateFromNfsToNfs(CopyCommand cmd, SnapshotObjectTO srcData, NfsTO srcDataStore, TemplateObjectTO destData,
-            NfsTO destDataStore) {
+    protected Answer copySnapshotToTemplateFromNfsToNfs(CopyCommand cmd, SnapshotObjectTO srcData, NfsTO srcDataStore,
+            TemplateObjectTO destData, NfsTO destDataStore) {
 
         if (srcData.getHypervisorType() == HypervisorType.XenServer) {
             return copySnapshotToTemplateFromNfsToNfsXenserver(cmd, srcData, srcDataStore, destData, destDataStore);
@@ -395,8 +403,8 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
             }
 
             if (destDataStore instanceof NfsTO) {
-                return copySnapshotToTemplateFromNfsToNfs(cmd, (SnapshotObjectTO) srcData, (NfsTO) srcDataStore, (TemplateObjectTO) destData,
-                        (NfsTO) destDataStore);
+                return copySnapshotToTemplateFromNfsToNfs(cmd, (SnapshotObjectTO) srcData, (NfsTO) srcDataStore,
+                        (TemplateObjectTO) destData, (NfsTO) destDataStore);
             }
 
         }
@@ -424,7 +432,8 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
             return createTemplateFromSnapshot(cmd);
         }
 
-        if (srcDataStore instanceof S3TO && destDataStore instanceof NfsTO && destDataStore.getRole() == DataStoreRole.ImageCache) {
+        if (srcDataStore instanceof S3TO && destDataStore instanceof NfsTO
+                && destDataStore.getRole() == DataStoreRole.ImageCache) {
             S3TO s3 = (S3TO) srcDataStore;
             NfsTO destImageStore = (NfsTO) destDataStore;
             return this.copyFromS3ToNfs(cmd, srcData, s3, destData, destImageStore);
@@ -438,13 +447,15 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
     }
 
     @SuppressWarnings("unchecked")
-    protected String determineS3TemplateDirectory(final Long accountId, final Long templateId, final String templateUniqueName) {
+    protected String determineS3TemplateDirectory(final Long accountId, final Long templateId,
+            final String templateUniqueName) {
         return join(asList(TEMPLATE_ROOT_DIR, accountId, templateId, templateUniqueName), S3Utils.SEPARATOR);
     }
 
     @SuppressWarnings("unchecked")
     private String determineS3TemplateNameFromKey(String key) {
-        return StringUtils.substringAfterLast(StringUtils.substringBeforeLast(key, S3Utils.SEPARATOR), S3Utils.SEPARATOR);
+        return StringUtils.substringAfterLast(StringUtils.substringBeforeLast(key, S3Utils.SEPARATOR),
+                S3Utils.SEPARATOR);
     }
 
     @SuppressWarnings("unchecked")
@@ -454,7 +465,8 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
 
     @SuppressWarnings("unchecked")
     protected Long determineS3VolumeIdFromKey(String key) {
-        return Long.parseLong(StringUtils.substringAfterLast(StringUtils.substringBeforeLast(key, S3Utils.SEPARATOR), S3Utils.SEPARATOR));
+        return Long.parseLong(StringUtils.substringAfterLast(StringUtils.substringBeforeLast(key, S3Utils.SEPARATOR),
+                S3Utils.SEPARATOR));
     }
 
     @SuppressWarnings("unchecked")
@@ -482,7 +494,8 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
             String lPath = lDir + "/" + path;
             result = swiftDownload(swift, "T-" + templateId.toString(), path, lPath);
             if (result != null) {
-                errMsg = "failed to download template " + path + " from Swift to secondary storage " + lPath + " , err=" + result;
+                errMsg = "failed to download template " + path + " from Swift to secondary storage " + lPath
+                        + " , err=" + result;
                 s_logger.warn(errMsg);
                 throw new CloudRuntimeException(errMsg);
             }
@@ -490,7 +503,8 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
             lPath = lDir + "/" + path;
             result = swiftDownload(swift, "T-" + templateId.toString(), path, lPath);
             if (result != null) {
-                errMsg = "failed to download template " + path + " from Swift to secondary storage " + lPath + " , err=" + result;
+                errMsg = "failed to download template " + path + " from Swift to secondary storage " + lPath
+                        + " , err=" + result;
                 s_logger.warn(errMsg);
                 throw new CloudRuntimeException(errMsg);
             }
@@ -511,55 +525,40 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
             return _dlMgr.handleDownloadCommand(this, cmd);
         }
         /*
-        else if (dstore instanceof S3TO) {
-            // TODO: start download job to handle this
-            // TODO: how to handle download progress for S3
-            S3TO s3 = (S3TO) cmd.getDataStore();
-            String url = cmd.getUrl();
-            String user = null;
-            String password = null;
-            if (cmd.getAuth() != null) {
-                user = cmd.getAuth().getUserName();
-                password = new String(cmd.getAuth().getPassword());
-            }
-            // get input stream from the given url
-            InputStream in = UriUtils.getInputStreamFromUrl(url, user, password);
-            URI uri;
-            URL urlObj;
-            try {
-                uri = new URI(url);
-                urlObj = new URL(url);
-            } catch (URISyntaxException e) {
-                throw new CloudRuntimeException("URI is incorrect: " + url);
-            } catch (MalformedURLException e) {
-                throw new CloudRuntimeException("URL is incorrect: " + url);
-            }
-
-            final String bucket = s3.getBucketName();
-            String path = null;
-            if (cmd.getResourceType() == ResourceType.TEMPLATE) {
-                // convention is no / in the end for install path based on
-                // S3Utils implementation.
-                // template key is
-                // TEMPLATE_ROOT_DIR/account_id/template_id/template_name, by
-                // adding template_name in the key, I can avoid generating a
-                // template.properties file
-                // for listTemplateCommand.
-                path = determineS3TemplateDirectory(cmd.getAccountId(), cmd.getResourceId(), cmd.getName());
-            } else {
-                path = determineS3VolumeDirectory(cmd.getAccountId(), cmd.getResourceId());
-            }
-
-            String key = join(asList(path, urlObj.getFile()), S3Utils.SEPARATOR);
-            S3Utils.putObject(s3, in, bucket, key);
-            List<S3ObjectSummary> s3Obj = S3Utils.getDirectory(s3, bucket, path);
-            if (s3Obj == null || s3Obj.size() == 0) {
-                return new Answer(cmd, false, "Failed to download to S3 bucket: " + bucket + " with key: " + key);
-            } else {
-                return new DownloadAnswer(null, 100, null, Status.DOWNLOADED, path, path, s3Obj.get(0).getSize(), s3Obj.get(0).getSize(), s3Obj
-                        .get(0).getETag());
-            }
-        } */
+         * else if (dstore instanceof S3TO) { // TODO: start download job to
+         * handle this // TODO: how to handle download progress for S3 S3TO s3 =
+         * (S3TO) cmd.getDataStore(); String url = cmd.getUrl(); String user =
+         * null; String password = null; if (cmd.getAuth() != null) { user =
+         * cmd.getAuth().getUserName(); password = new
+         * String(cmd.getAuth().getPassword()); } // get input stream from the
+         * given url InputStream in = UriUtils.getInputStreamFromUrl(url, user,
+         * password); URI uri; URL urlObj; try { uri = new URI(url); urlObj =
+         * new URL(url); } catch (URISyntaxException e) { throw new
+         * CloudRuntimeException("URI is incorrect: " + url); } catch
+         * (MalformedURLException e) { throw new
+         * CloudRuntimeException("URL is incorrect: " + url); }
+         * 
+         * final String bucket = s3.getBucketName(); String path = null; if
+         * (cmd.getResourceType() == ResourceType.TEMPLATE) { // convention is
+         * no / in the end for install path based on // S3Utils implementation.
+         * // template key is //
+         * TEMPLATE_ROOT_DIR/account_id/template_id/template_name, by // adding
+         * template_name in the key, I can avoid generating a //
+         * template.properties file // for listTemplateCommand. path =
+         * determineS3TemplateDirectory(cmd.getAccountId(), cmd.getResourceId(),
+         * cmd.getName()); } else { path =
+         * determineS3VolumeDirectory(cmd.getAccountId(), cmd.getResourceId());
+         * }
+         * 
+         * String key = join(asList(path, urlObj.getFile()), S3Utils.SEPARATOR);
+         * S3Utils.putObject(s3, in, bucket, key); List<S3ObjectSummary> s3Obj =
+         * S3Utils.getDirectory(s3, bucket, path); if (s3Obj == null ||
+         * s3Obj.size() == 0) { return new Answer(cmd, false,
+         * "Failed to download to S3 bucket: " + bucket + " with key: " + key);
+         * } else { return new DownloadAnswer(null, 100, null,
+         * Status.DOWNLOADED, path, path, s3Obj.get(0).getSize(),
+         * s3Obj.get(0).getSize(), s3Obj .get(0).getETag()); } }
+         */
         else if (dstore instanceof SwiftTO) {
             // TODO: need to move code from
             // execute(uploadTemplateToSwiftFromSecondaryStorageCommand) here,
@@ -588,7 +587,8 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
             }
             String result = swiftUpload(swift, "T-" + templateId.toString(), lPath, "*");
             if (result != null) {
-                String errMsg = "failed to upload template from secondary storage " + lPath + " to swift  , err=" + result;
+                String errMsg = "failed to upload template from secondary storage " + lPath + " to swift  , err="
+                        + result;
                 s_logger.debug(errMsg);
                 return new Answer(cmd, false, errMsg);
             }
@@ -638,7 +638,8 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
             final String templatePath = determineStorageTemplatePath(srcStore.getUrl(), srcData.getPath());
 
             if (s_logger.isDebugEnabled()) {
-                s_logger.debug("Found " + srcData.getObjectType() + " from directory " + templatePath + " to upload to S3.");
+                s_logger.debug("Found " + srcData.getObjectType() + " from directory " + templatePath
+                        + " to upload to S3.");
             }
 
             final String bucket = s3.getBucketName();
@@ -671,8 +672,9 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
     String swiftDownload(SwiftTO swift, String container, String rfilename, String lFullPath) {
         Script command = new Script("/bin/bash", s_logger);
         command.add("-c");
-        command.add("/usr/bin/python /usr/local/cloud/systemvm/scripts/storage/secondary/swift -A " + swift.getUrl() + " -U " + swift.getAccount()
-                + ":" + swift.getUserName() + " -K " + swift.getKey() + " download " + container + " " + rfilename + " -o " + lFullPath);
+        command.add("/usr/bin/python /usr/local/cloud/systemvm/scripts/storage/secondary/swift -A " + swift.getUrl()
+                + " -U " + swift.getAccount() + ":" + swift.getUserName() + " -K " + swift.getKey() + " download "
+                + container + " " + rfilename + " -o " + lFullPath);
         OutputInterpreter.AllLinesParser parser = new OutputInterpreter.AllLinesParser();
         String result = command.execute(parser);
         if (result != null) {
@@ -697,8 +699,9 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
     String swiftDownloadContainer(SwiftTO swift, String container, String ldir) {
         Script command = new Script("/bin/bash", s_logger);
         command.add("-c");
-        command.add("cd " + ldir + ";/usr/bin/python /usr/local/cloud/systemvm/scripts/storage/secondary/swift -A " + swift.getUrl() + " -U "
-                + swift.getAccount() + ":" + swift.getUserName() + " -K " + swift.getKey() + " download " + container);
+        command.add("cd " + ldir + ";/usr/bin/python /usr/local/cloud/systemvm/scripts/storage/secondary/swift -A "
+                + swift.getUrl() + " -U " + swift.getAccount() + ":" + swift.getUserName() + " -K " + swift.getKey()
+                + " download " + container);
         OutputInterpreter.AllLinesParser parser = new OutputInterpreter.AllLinesParser();
         String result = command.execute(parser);
         if (result != null) {
@@ -741,12 +744,15 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
             Script command = new Script("/bin/bash", s_logger);
             command.add("-c");
             if (size <= SWIFT_MAX_SIZE) {
-                command.add("cd " + lDir + ";/usr/bin/python /usr/local/cloud/systemvm/scripts/storage/secondary/swift -A " + swift.getUrl() + " -U "
-                        + swift.getAccount() + ":" + swift.getUserName() + " -K " + swift.getKey() + " upload " + container + " " + file);
+                command.add("cd " + lDir
+                        + ";/usr/bin/python /usr/local/cloud/systemvm/scripts/storage/secondary/swift -A "
+                        + swift.getUrl() + " -U " + swift.getAccount() + ":" + swift.getUserName() + " -K "
+                        + swift.getKey() + " upload " + container + " " + file);
             } else {
-                command.add("cd " + lDir + ";/usr/bin/python /usr/local/cloud/systemvm/scripts/storage/secondary/swift -A " + swift.getUrl() + " -U "
-                        + swift.getAccount() + ":" + swift.getUserName() + " -K " + swift.getKey() + " upload -S " + SWIFT_MAX_SIZE + " " + container
-                        + " " + file);
+                command.add("cd " + lDir
+                        + ";/usr/bin/python /usr/local/cloud/systemvm/scripts/storage/secondary/swift -A "
+                        + swift.getUrl() + " -U " + swift.getAccount() + ":" + swift.getUserName() + " -K "
+                        + swift.getKey() + " upload -S " + SWIFT_MAX_SIZE + " " + container + " " + file);
             }
             OutputInterpreter.AllLinesParser parser = new OutputInterpreter.AllLinesParser();
             String result = command.execute(parser);
@@ -773,8 +779,9 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
     String[] swiftList(SwiftTO swift, String container, String rFilename) {
         Script command = new Script("/bin/bash", s_logger);
         command.add("-c");
-        command.add("/usr/bin/python /usr/local/cloud/systemvm/scripts/storage/secondary/swift -A " + swift.getUrl() + " -U " + swift.getAccount()
-                + ":" + swift.getUserName() + " -K " + swift.getKey() + " list " + container + " " + rFilename);
+        command.add("/usr/bin/python /usr/local/cloud/systemvm/scripts/storage/secondary/swift -A " + swift.getUrl()
+                + " -U " + swift.getAccount() + ":" + swift.getUserName() + " -K " + swift.getKey() + " list "
+                + container + " " + rFilename);
         OutputInterpreter.AllLinesParser parser = new OutputInterpreter.AllLinesParser();
         String result = command.execute(parser);
         if (result == null && parser.getLines() != null) {
@@ -795,8 +802,9 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
     String swiftDelete(SwiftTO swift, String container, String object) {
         Script command = new Script("/bin/bash", s_logger);
         command.add("-c");
-        command.add("/usr/bin/python /usr/local/cloud/systemvm/scripts/storage/secondary/swift -A " + swift.getUrl() + " -U " + swift.getAccount()
-                + ":" + swift.getUserName() + " -K " + swift.getKey() + " delete " + container + " " + object);
+        command.add("/usr/bin/python /usr/local/cloud/systemvm/scripts/storage/secondary/swift -A " + swift.getUrl()
+                + " -U " + swift.getAccount() + ":" + swift.getUserName() + " -K " + swift.getKey() + " delete "
+                + container + " " + object);
         OutputInterpreter.AllLinesParser parser = new OutputInterpreter.AllLinesParser();
         String result = command.execute(parser);
         if (result != null) {
@@ -849,7 +857,8 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
             }
             // delete the directory
             if (!snapshotDir.delete()) {
-                details = "Unable to delete directory " + snapshotDir.getName() + " under snapshot path " + relativeSnapshotPath;
+                details = "Unable to delete directory " + snapshotDir.getName() + " under snapshot path "
+                        + relativeSnapshotPath;
                 s_logger.debug(details);
                 return new Answer(cmd, false, details);
             }
@@ -862,7 +871,8 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
                 S3Utils.deleteDirectory(s3, bucket, path);
                 return new Answer(cmd, true, String.format("Deleted snapshot %1%s from bucket %2$s.", path, bucket));
             } catch (Exception e) {
-                final String errorMessage = String.format("Failed to delete snapshot %1$s from bucket %2$s due to the following error: %3$s", path,
+                final String errorMessage = String.format(
+                        "Failed to delete snapshot %1$s from bucket %2$s due to the following error: %3$s", path,
                         bucket, e.getMessage());
                 s_logger.error(errorMessage, e);
                 return new Answer(cmd, false, errorMessage);
@@ -906,30 +916,35 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
                 @Override
                 public Void call() throws Exception {
 
-                    final String directoryName = determineSnapshotLocalDirectory(secondaryStorageUrl, accountId, volumeId);
+                    final String directoryName = determineSnapshotLocalDirectory(secondaryStorageUrl, accountId,
+                            volumeId);
 
                     String result = createLocalDir(directoryName);
                     if (result != null) {
-                        throw new InternalErrorException(format("Failed to create directory %1$s during S3 snapshot download.", directoryName));
+                        throw new InternalErrorException(format(
+                                "Failed to create directory %1$s during S3 snapshot download.", directoryName));
                     }
 
                     final String snapshotFileName = determineSnapshotBackupFilename(cmd.getSnapshotUuid());
                     final String key = determineSnapshotS3Key(accountId, volumeId, snapshotFileName);
-                    final File targetFile = S3Utils.getFile(s3, s3.getBucketName(), key, _storage.getFile(directoryName), new FileNamingStrategy() {
+                    final File targetFile = S3Utils.getFile(s3, s3.getBucketName(), key,
+                            _storage.getFile(directoryName), new FileNamingStrategy() {
 
-                        @Override
-                        public String determineFileName(String key) {
-                            return snapshotFileName;
-                        }
+                                @Override
+                                public String determineFileName(String key) {
+                                    return snapshotFileName;
+                                }
 
-                    });
+                            });
 
                     if (cmd.getParent() != null) {
 
-                        final String parentPath = join(File.pathSeparator, directoryName, determineSnapshotBackupFilename(cmd.getParent()));
+                        final String parentPath = join(File.pathSeparator, directoryName,
+                                determineSnapshotBackupFilename(cmd.getParent()));
                         result = setVhdParent(targetFile.getAbsolutePath(), parentPath);
                         if (result != null) {
-                            throw new InternalErrorException(format("Failed to set the parent for backup %1$s to %2$s due to %3$s.",
+                            throw new InternalErrorException(format(
+                                    "Failed to set the parent for backup %1$s to %2$s due to %3$s.",
                                     targetFile.getAbsolutePath(), parentPath, result));
                         }
 
@@ -941,12 +956,14 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
 
             });
 
-            return new Answer(cmd, true, format("Succesfully retrieved volume id %1$s for account id %2$s to %3$s from S3.", volumeId, accountId,
+            return new Answer(cmd, true, format(
+                    "Succesfully retrieved volume id %1$s for account id %2$s to %3$s from S3.", volumeId, accountId,
                     secondaryStorageUrl));
 
         } catch (Exception e) {
-            final String errMsg = format("Failed to retrieve volume id %1$s for account id %2$s to %3$s from S3 due to exception %4$s", volumeId,
-                    accountId, secondaryStorageUrl, e.getMessage());
+            final String errMsg = format(
+                    "Failed to retrieve volume id %1$s for account id %2$s to %3$s from S3 due to exception %4$s",
+                    volumeId, accountId, secondaryStorageUrl, e.getMessage());
             s_logger.error(errMsg);
             return new Answer(cmd, false, errMsg);
         }
@@ -964,7 +981,8 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
 
     }
 
-    private String determineSnapshotLocalDirectory(final String secondaryStorageUrl, final Long accountId, final Long volumeId) {
+    private String determineSnapshotLocalDirectory(final String secondaryStorageUrl, final Long accountId,
+            final Long volumeId) {
         return join(File.pathSeparator, getRootDir(secondaryStorageUrl), SNAPSHOT_ROOT_DIR, accountId, volumeId);
     }
 
@@ -1149,8 +1167,8 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
         }
     }
 
-    private String deleteSnapshotBackupFromLocalFileSystem(final String secondaryStorageUrl, final Long accountId, final Long volumeId,
-            final String name, final Boolean deleteAllFlag) {
+    private String deleteSnapshotBackupFromLocalFileSystem(final String secondaryStorageUrl, final Long accountId,
+            final Long volumeId, final String name, final Boolean deleteAllFlag) {
         String lPath = null;
         int index = name.lastIndexOf(File.separator);
         String snapshotPath = name.substring(0, index);
@@ -1170,34 +1188,41 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
 
     }
 
-    private String deleteSnapshotBackupfromS3(final S3TO s3, final Long accountId, final Long volumeId, final String name, final Boolean deleteAllFlag) {
+    private String deleteSnapshotBackupfromS3(final S3TO s3, final Long accountId, final Long volumeId,
+            final String name, final Boolean deleteAllFlag) {
 
         try {
 
             final String bucket = s3.getBucketName();
 
-            final String result = executeWithNoWaitLock(determineSnapshotLockId(accountId, volumeId), new Callable<String>() {
+            final String result = executeWithNoWaitLock(determineSnapshotLockId(accountId, volumeId),
+                    new Callable<String>() {
 
-                @Override
-                public String call() throws Exception {
+                        @Override
+                        public String call() throws Exception {
 
-                    if (deleteAllFlag) {
-                        S3Utils.deleteDirectory(s3, bucket, determineSnapshotS3Directory(accountId, volumeId));
-                    } else {
-                        S3Utils.deleteObject(s3, bucket, determineSnapshotS3Key(accountId, volumeId, determineSnapshotBackupFilename(name)));
-                    }
+                            if (deleteAllFlag) {
+                                S3Utils.deleteDirectory(s3, bucket, determineSnapshotS3Directory(accountId, volumeId));
+                            } else {
+                                S3Utils.deleteObject(
+                                        s3,
+                                        bucket,
+                                        determineSnapshotS3Key(accountId, volumeId,
+                                                determineSnapshotBackupFilename(name)));
+                            }
 
-                    return null;
+                            return null;
 
-                }
+                        }
 
-            });
+                    });
 
             return result;
 
         } catch (Exception e) {
 
-            s_logger.error(String.format("Failed to delete snapshot backup for account id %1$s volume id %2$sfrom S3.", accountId, volumeId), e);
+            s_logger.error(String.format("Failed to delete snapshot backup for account id %1$s volume id %2$sfrom S3.",
+                    accountId, volumeId), e);
             return e.getMessage();
 
         }
@@ -1237,7 +1262,8 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
             }
 
             if (!snapshot.delete()) {
-                return new Answer(cmd, false, "Unable to delete file " + snapshot.getName() + " under install path " + relativeSnapshotPath);
+                return new Answer(cmd, false, "Unable to delete file " + snapshot.getName() + " under install path "
+                        + relativeSnapshotPath);
             }
 
             return new Answer(cmd, true, null);
@@ -1249,7 +1275,8 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
                 S3Utils.deleteObject(s3, bucket, path);
                 return new Answer(cmd, true, String.format("Deleted snapshot %1%s from bucket %2$s.", path, bucket));
             } catch (Exception e) {
-                final String errorMessage = String.format("Failed to delete snapshot %1$s from bucket %2$s due to the following error: %3$s", path,
+                final String errorMessage = String.format(
+                        "Failed to delete snapshot %1$s from bucket %2$s due to the following error: %3$s", path,
                         bucket, e.getMessage());
                 s_logger.error(errorMessage, e);
                 return new Answer(cmd, false, errorMessage);
@@ -1281,7 +1308,6 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
 
     }
 
-
     Map<String, TemplateProp> swiftListTemplate(SwiftTO swift) {
         String[] containers = swiftList(swift, "", "");
         if (containers == null) {
@@ -1324,10 +1350,12 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
         Map<String, TemplateProp> tmpltInfos = new HashMap<String, TemplateProp>();
         for (S3ObjectSummary objectSummary : objectSummaries) {
             String key = objectSummary.getKey();
-            //String installPath = StringUtils.substringBeforeLast(key, S3Utils.SEPARATOR);
+            // String installPath = StringUtils.substringBeforeLast(key,
+            // S3Utils.SEPARATOR);
             String uniqueName = this.determineS3TemplateNameFromKey(key);
             // TODO: isPublic value, where to get?
-            TemplateProp tInfo = new TemplateProp(uniqueName, key, objectSummary.getSize(), objectSummary.getSize(), true, false);
+            TemplateProp tInfo = new TemplateProp(uniqueName, key, objectSummary.getSize(), objectSummary.getSize(),
+                    true, false);
             tmpltInfos.put(uniqueName, tInfo);
         }
         return tmpltInfos;
@@ -1343,10 +1371,12 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
         Map<Long, TemplateProp> tmpltInfos = new HashMap<Long, TemplateProp>();
         for (S3ObjectSummary objectSummary : objectSummaries) {
             String key = objectSummary.getKey();
-            //String installPath = StringUtils.substringBeforeLast(key, S3Utils.SEPARATOR);
+            // String installPath = StringUtils.substringBeforeLast(key,
+            // S3Utils.SEPARATOR);
             Long id = this.determineS3VolumeIdFromKey(key);
             // TODO: how to get volume template name
-            TemplateProp tInfo = new TemplateProp(id.toString(), key, objectSummary.getSize(), objectSummary.getSize(), true, false);
+            TemplateProp tInfo = new TemplateProp(id.toString(), key, objectSummary.getSize(), objectSummary.getSize(),
+                    true, false);
             tmpltInfos.put(id, tInfo);
         }
         return tmpltInfos;
@@ -1407,8 +1437,9 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
         for (String cidr : cmd.getAllowedInternalSites()) {
             if (nfsIps.contains(cidr)) {
                 /*
-                 * if the internal download ip is the same with secondary storage ip, adding internal sites will flush
-                 * ip route to nfs through storage ip.
+                 * if the internal download ip is the same with secondary
+                 * storage ip, adding internal sites will flush ip route to nfs
+                 * through storage ip.
                  */
                 continue;
             }
@@ -1490,7 +1521,8 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
         Script command = new Script("/bin/bash", s_logger);
         String intf = "eth1";
         command.add("-c");
-        command.add("iptables -I OUTPUT -o " + intf + " -d " + destCidr + " -p tcp -m state --state NEW -m tcp  -j ACCEPT");
+        command.add("iptables -I OUTPUT -o " + intf + " -d " + destCidr
+                + " -p tcp -m state --state NEW -m tcp  -j ACCEPT");
 
         String result = command.execute();
         if (result != null) {
@@ -1535,10 +1567,10 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
         }
     }
 
-    protected Answer execute(final DeleteCommand cmd){
+    protected Answer execute(final DeleteCommand cmd) {
         DataTO obj = cmd.getData();
         DataObjectType objType = obj.getObjectType();
-        switch (objType){
+        switch (objType) {
         case TEMPLATE:
             return deleteTemplate(cmd);
         case VOLUME:
@@ -1595,7 +1627,8 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
                     }
 
                     if (!f.delete()) {
-                        return new Answer(cmd, false, "Unable to delete file " + f.getName() + " under Template path " + relativeTemplatePath);
+                        return new Answer(cmd, false, "Unable to delete file " + f.getName() + " under Template path "
+                                + relativeTemplatePath);
                     }
                 }
 
@@ -1605,7 +1638,8 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
                 }
             }
             if (!tmpltParent.delete()) {
-                details = "Unable to delete directory " + tmpltParent.getName() + " under Template path " + relativeTemplatePath;
+                details = "Unable to delete directory " + tmpltParent.getName() + " under Template path "
+                        + relativeTemplatePath;
                 s_logger.debug(details);
                 return new Answer(cmd, false, details);
             }
@@ -1618,7 +1652,8 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
                 S3Utils.deleteDirectory(s3, bucket, path);
                 return new Answer(cmd, true, String.format("Deleted template %1$s from bucket %2$s.", path, bucket));
             } catch (Exception e) {
-                final String errorMessage = String.format("Failed to delete template %1$s from bucket %2$s due to the following error: %3$s", path,
+                final String errorMessage = String.format(
+                        "Failed to delete template %1$s from bucket %2$s due to the following error: %3$s", path,
                         bucket, e.getMessage());
                 s_logger.error(errorMessage, e);
                 return new Answer(cmd, false, errorMessage);
@@ -1692,7 +1727,8 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
                     }
 
                     if (!f.delete()) {
-                        return new Answer(cmd, false, "Unable to delete file " + f.getName() + " under Volume path " + relativeVolumePath);
+                        return new Answer(cmd, false, "Unable to delete file " + f.getName() + " under Volume path "
+                                + relativeVolumePath);
                     }
                 }
                 if (!found) {
@@ -1701,7 +1737,8 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
                 }
             }
             if (!tmpltParent.delete()) {
-                details = "Unable to delete directory " + tmpltParent.getName() + " under Volume path " + relativeVolumePath;
+                details = "Unable to delete directory " + tmpltParent.getName() + " under Volume path "
+                        + relativeVolumePath;
                 s_logger.debug(details);
                 return new Answer(cmd, false, details);
             }
@@ -1714,8 +1751,9 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
                 S3Utils.deleteDirectory(s3, bucket, path);
                 return new Answer(cmd, true, String.format("Deleted volume %1%s from bucket %2$s.", path, bucket));
             } catch (Exception e) {
-                final String errorMessage = String.format("Failed to delete volume %1$s from bucket %2$s due to the following error: %3$s", path,
-                        bucket, e.getMessage());
+                final String errorMessage = String.format(
+                        "Failed to delete volume %1$s from bucket %2$s due to the following error: %3$s", path, bucket,
+                        e.getMessage());
                 s_logger.error(errorMessage, e);
                 return new Answer(cmd, false, errorMessage);
             }
@@ -1880,9 +1918,11 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
             s_logger.info("_configIpFirewallScr found in " + _configIpFirewallScr);
         }
 
-        createTemplateFromSnapshotXenScript = Script.findScript(getDefaultScriptsDir(), "create_privatetemplate_from_snapshot_xen.sh");
+        createTemplateFromSnapshotXenScript = Script.findScript(getDefaultScriptsDir(),
+                "create_privatetemplate_from_snapshot_xen.sh");
         if (createTemplateFromSnapshotXenScript == null) {
-            throw new ConfigurationException("create_privatetemplate_from_snapshot_xen.sh not found in " + getDefaultScriptsDir());
+            throw new ConfigurationException("create_privatetemplate_from_snapshot_xen.sh not found in "
+                    + getDefaultScriptsDir());
         }
 
         _role = (String) params.get("role");
@@ -1969,7 +2009,8 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
         if (!_inSystemVM) {
             return;
         }
-        s_logger.debug("addRouteToInternalIp: localgw=" + localgw + ", eth1ip=" + eth1ip + ", eth1mask=" + eth1mask + ",destIp=" + destIpOrCidr);
+        s_logger.debug("addRouteToInternalIp: localgw=" + localgw + ", eth1ip=" + eth1ip + ", eth1mask=" + eth1mask
+                + ",destIp=" + destIpOrCidr);
         if (destIpOrCidr == null) {
             s_logger.debug("addRouteToInternalIp: destIp is null");
             return;
@@ -1983,14 +2024,16 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
             if (eth1ip != null && eth1mask != null) {
                 inSameSubnet = NetUtils.sameSubnet(eth1ip, destIpOrCidr, eth1mask);
             } else {
-                s_logger.warn("addRouteToInternalIp: unable to determine same subnet: _eth1ip=" + eth1ip + ", dest ip=" + destIpOrCidr
-                        + ", _eth1mask=" + eth1mask);
+                s_logger.warn("addRouteToInternalIp: unable to determine same subnet: _eth1ip=" + eth1ip + ", dest ip="
+                        + destIpOrCidr + ", _eth1mask=" + eth1mask);
             }
         } else {
-            inSameSubnet = NetUtils.isNetworkAWithinNetworkB(destIpOrCidr, NetUtils.ipAndNetMaskToCidr(eth1ip, eth1mask));
+            inSameSubnet = NetUtils.isNetworkAWithinNetworkB(destIpOrCidr,
+                    NetUtils.ipAndNetMaskToCidr(eth1ip, eth1mask));
         }
         if (inSameSubnet) {
-            s_logger.debug("addRouteToInternalIp: dest ip " + destIpOrCidr + " is in the same subnet as eth1 ip " + eth1ip);
+            s_logger.debug("addRouteToInternalIp: dest ip " + destIpOrCidr + " is in the same subnet as eth1 ip "
+                    + eth1ip);
             return;
         }
         Script command = new Script("/bin/bash", s_logger);