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/07/13 10:52:18 UTC

[2/4] add inital swift support

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c888fc6b/server/src/com/cloud/capacity/CapacityManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/capacity/CapacityManagerImpl.java b/server/src/com/cloud/capacity/CapacityManagerImpl.java
index 4214683..8d2855c 100755
--- a/server/src/com/cloud/capacity/CapacityManagerImpl.java
+++ b/server/src/com/cloud/capacity/CapacityManagerImpl.java
@@ -68,7 +68,6 @@ import com.cloud.storage.VMTemplateVO;
 import com.cloud.storage.VolumeVO;
 import com.cloud.storage.dao.VMTemplatePoolDao;
 import com.cloud.storage.dao.VolumeDao;
-import com.cloud.storage.swift.SwiftManager;
 import com.cloud.uservm.UserVm;
 import com.cloud.utils.DateUtil;
 import com.cloud.utils.NumbersUtil;
@@ -117,8 +116,6 @@ public class CapacityManagerImpl extends ManagerBase implements CapacityManager,
     @Inject
     StorageManager _storageMgr;
     @Inject
-    SwiftManager _swiftMgr;
-    @Inject
     ConfigurationManager _configMgr;
     @Inject
     HypervisorCapabilitiesDao _hypervisorCapabilitiesDao;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c888fc6b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
index 8d8b126..c3209a9 100755
--- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
+++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
@@ -172,12 +172,8 @@ import com.cloud.service.ServiceOfferingVO;
 import com.cloud.service.dao.ServiceOfferingDao;
 import com.cloud.service.dao.ServiceOfferingDetailsDao;
 import com.cloud.storage.DiskOfferingVO;
-import com.cloud.storage.SwiftVO;
 import com.cloud.storage.dao.DiskOfferingDao;
 import com.cloud.storage.dao.S3Dao;
-import com.cloud.storage.dao.SwiftDao;
-import com.cloud.storage.s3.S3Manager;
-import com.cloud.storage.swift.SwiftManager;
 import com.cloud.test.IPRangeConfig;
 import com.cloud.user.Account;
 import com.cloud.user.AccountDetailVO;
@@ -227,8 +223,6 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
     @Inject
     DomainDao _domainDao;
     @Inject
-    SwiftDao _swiftDao;
-    @Inject
     S3Dao _s3Dao;
     @Inject
     ServiceOfferingDao _serviceOfferingDao;
@@ -277,10 +271,6 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
     @Inject
     PhysicalNetworkDao _physicalNetworkDao;
     @Inject
-    SwiftManager _swiftMgr;
-    @Inject
-    S3Manager _s3Mgr;
-    @Inject
     PhysicalNetworkTrafficTypeDao _trafficTypeDao;
     @Inject
     NicDao _nicDao;
@@ -720,24 +710,6 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
                 s_logger.error("Configuration variable " + name + " is expecting true or false in stead of " + value);
                 return "Please enter either 'true' or 'false'.";
             }
-            if (Config.SwiftEnable.key().equals(name)) {
-                List<DataStore> stores = this._dataStoreMgr.listImageStores();
-                if (stores != null && stores.size() > 0) {
-                    return " can not change " + Config.SwiftEnable.key() + " after you have added secondary storage";
-                }
-                SwiftVO swift = _swiftDao.findById(1L);
-                if (swift != null) {
-                    return " can not change " + Config.SwiftEnable.key() + " after you have added Swift";
-                }
-                if (this._s3Mgr.isS3Enabled()) {
-                    return String.format("Swift is not supported when S3 is enabled.");
-                }
-            }
-            if (Config.S3Enable.key().equals(name)) {
-                if (this._swiftMgr.isSwiftEnabled()) {
-                    return String.format("S3-backed Secondary Storage is not supported when Swift is enabled.");
-                }
-            }
             return null;
         }
 
@@ -1980,9 +1952,6 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
 
             // Create default system networks
             createDefaultSystemNetworks(zone.getId());
-
-            _swiftMgr.propagateSwiftTmplteOnZone(zone.getId());
-            _s3Mgr.propagateTemplatesToZone(zone);
             txn.commit();
             return zone;
         } catch (Exception ex) {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c888fc6b/server/src/com/cloud/resource/ResourceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/resource/ResourceManagerImpl.java b/server/src/com/cloud/resource/ResourceManagerImpl.java
index 34e5b21..8dee893 100755
--- a/server/src/com/cloud/resource/ResourceManagerImpl.java
+++ b/server/src/com/cloud/resource/ResourceManagerImpl.java
@@ -41,10 +41,6 @@ import org.apache.cloudstack.api.command.admin.host.PrepareForMaintenanceCmd;
 import org.apache.cloudstack.api.command.admin.host.ReconnectHostCmd;
 import org.apache.cloudstack.api.command.admin.host.UpdateHostCmd;
 import org.apache.cloudstack.api.command.admin.host.UpdateHostPasswordCmd;
-import org.apache.cloudstack.api.command.admin.storage.AddS3Cmd;
-import org.apache.cloudstack.api.command.admin.storage.ListS3sCmd;
-import org.apache.cloudstack.api.command.admin.swift.AddSwiftCmd;
-import org.apache.cloudstack.api.command.admin.swift.ListSwiftsCmd;
 import org.apache.cloudstack.region.dao.RegionDao;
 import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
 import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
@@ -120,22 +116,17 @@ import com.cloud.org.Grouping.AllocationState;
 import com.cloud.org.Managed;
 import com.cloud.service.ServiceOfferingVO;
 import com.cloud.storage.GuestOSCategoryVO;
-import com.cloud.storage.S3;
-import com.cloud.storage.S3VO;
 import com.cloud.storage.StorageManager;
 import com.cloud.storage.StoragePool;
 import com.cloud.storage.StoragePoolHostVO;
 import com.cloud.storage.StoragePoolStatus;
 import com.cloud.storage.StorageService;
-import com.cloud.storage.Swift;
-import com.cloud.storage.SwiftVO;
 import com.cloud.storage.VMTemplateVO;
 import com.cloud.storage.dao.GuestOSCategoryDao;
 import com.cloud.storage.dao.StoragePoolHostDao;
 import com.cloud.storage.dao.VMTemplateDao;
 import com.cloud.storage.s3.S3Manager;
 import com.cloud.storage.secondary.SecondaryStorageVmManager;
-import com.cloud.storage.swift.SwiftManager;
 import com.cloud.template.VirtualMachineTemplate;
 import com.cloud.user.Account;
 import com.cloud.user.AccountManager;
@@ -194,8 +185,6 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
     @Inject
     protected HostDao _hostDao;
     @Inject
-    protected SwiftManager _swiftMgr;
-    @Inject
     protected S3Manager _s3Mgr;
     @Inject
     protected HostDetailsDao _hostDetailsDao;
@@ -621,28 +610,6 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
         return discoverHostsFull(dcId, null, null, null, url, null, null, "SecondaryStorage", null, null, false);
     }
 
-    @Override
-    public Swift discoverSwift(AddSwiftCmd cmd) throws DiscoveryException {
-        return _swiftMgr.addSwift(cmd);
-    }
-
-    @Override
-    public Pair<List<? extends Swift>, Integer> listSwifts(ListSwiftsCmd cmd) {
-        Pair<List<SwiftVO>, Integer> swifts = _swiftMgr.listSwifts(cmd);
-        return new Pair<List<? extends Swift>, Integer>(swifts.first(), swifts.second());
-    }
-
-    @Override
-    public S3 discoverS3(final AddS3Cmd cmd) throws DiscoveryException {
-        return this._s3Mgr.addS3(cmd);
-    }
-
-    @Override
-    public List<S3VO> listS3s(final ListS3sCmd cmd) {
-        return this._s3Mgr.listS3s(cmd);
-    }
-
-
     private List<HostVO> discoverHostsFull(Long dcId, Long podId, Long clusterId, String clusterName, String url, String username, String password,
             String hypervisorType, List<String> hostTags, Map<String, String> params, boolean deferAgentCreation) throws IllegalArgumentException,
             DiscoveryException, InvalidParameterValueException {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c888fc6b/server/src/com/cloud/server/ManagementServerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java
index 58e4b44..cdffb16 100755
--- a/server/src/com/cloud/server/ManagementServerImpl.java
+++ b/server/src/com/cloud/server/ManagementServerImpl.java
@@ -154,8 +154,6 @@ import org.apache.cloudstack.api.command.admin.storage.ListStoragePoolsCmd;
 import org.apache.cloudstack.api.command.admin.storage.ListStorageProvidersCmd;
 import org.apache.cloudstack.api.command.admin.storage.PreparePrimaryStorageForMaintenanceCmd;
 import org.apache.cloudstack.api.command.admin.storage.UpdateStoragePoolCmd;
-import org.apache.cloudstack.api.command.admin.swift.AddSwiftCmd;
-import org.apache.cloudstack.api.command.admin.swift.ListSwiftsCmd;
 import org.apache.cloudstack.api.command.admin.systemvm.*;
 import org.apache.cloudstack.api.command.admin.template.PrepareTemplateCmd;
 import org.apache.cloudstack.api.command.admin.usage.AddTrafficMonitorCmd;
@@ -503,7 +501,6 @@ import com.cloud.storage.dao.VolumeDao;
 import com.cloud.storage.s3.S3Manager;
 import com.cloud.storage.secondary.SecondaryStorageVmManager;
 import com.cloud.storage.snapshot.SnapshotManager;
-import com.cloud.storage.swift.SwiftManager;
 import com.cloud.storage.upload.UploadMonitor;
 import com.cloud.tags.ResourceTagVO;
 import com.cloud.tags.dao.ResourceTagDao;
@@ -601,8 +598,6 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
     @Inject
     private SecondaryStorageVmManager _secStorageVmMgr;
     @Inject
-    private SwiftManager _swiftMgr;
-    @Inject
     private ServiceOfferingDao _offeringsDao;
     @Inject
     private DiskOfferingDao _diskOfferingDao;
@@ -2531,8 +2526,6 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
         cmdList.add(FindStoragePoolsForMigrationCmd.class);
         cmdList.add(PreparePrimaryStorageForMaintenanceCmd.class);
         cmdList.add(UpdateStoragePoolCmd.class);
-        cmdList.add(AddSwiftCmd.class);
-        cmdList.add(ListSwiftsCmd.class);
         cmdList.add(DestroySystemVmCmd.class);
         cmdList.add(ListSystemVMsCmd.class);
         cmdList.add(MigrateSystemVMCmd.class);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c888fc6b/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java b/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java
index ebe06e7..a67316f 100755
--- a/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java
+++ b/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java
@@ -99,7 +99,6 @@ import com.cloud.storage.dao.VMTemplateDao;
 import com.cloud.storage.dao.VolumeDao;
 import com.cloud.storage.s3.S3Manager;
 import com.cloud.storage.secondary.SecondaryStorageVmManager;
-import com.cloud.storage.swift.SwiftManager;
 import com.cloud.storage.template.TemplateConstants;
 import com.cloud.tags.ResourceTagVO;
 import com.cloud.tags.dao.ResourceTagDao;
@@ -179,8 +178,6 @@ public class SnapshotManagerImpl extends ManagerBase implements SnapshotManager,
     @Inject
     private ResourceLimitService _resourceLimitMgr;
     @Inject
-    private SwiftManager _swiftMgr;
-    @Inject
     private S3Manager _s3Mgr;
     @Inject
     private SecondaryStorageVmManager _ssvmMgr;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c888fc6b/server/src/com/cloud/storage/swift/SwiftManager.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/swift/SwiftManager.java b/server/src/com/cloud/storage/swift/SwiftManager.java
deleted file mode 100644
index 2abdac7..0000000
--- a/server/src/com/cloud/storage/swift/SwiftManager.java
+++ /dev/null
@@ -1,57 +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 com.cloud.storage.swift;
-
-import java.util.List;
-
-import com.cloud.agent.api.to.SwiftTO;
-import org.apache.cloudstack.api.command.admin.swift.AddSwiftCmd;
-import org.apache.cloudstack.api.command.admin.swift.ListSwiftsCmd;
-import org.apache.cloudstack.api.command.user.iso.DeleteIsoCmd;
-import org.apache.cloudstack.api.command.user.template.DeleteTemplateCmd;
-import com.cloud.exception.DiscoveryException;
-import com.cloud.storage.Swift;
-import com.cloud.storage.SwiftVO;
-import com.cloud.storage.VMTemplateSwiftVO;
-import com.cloud.utils.Pair;
-import com.cloud.utils.component.Manager;
-public interface SwiftManager extends Manager {
-
-    SwiftTO getSwiftTO(Long swiftId);
-
-    SwiftTO getSwiftTO();
-
-    Swift addSwift(AddSwiftCmd cmd) throws DiscoveryException;
-
-    boolean isSwiftEnabled();
-
-    public boolean isTemplateInstalled(Long templateId);
-
-    void deleteIso(DeleteIsoCmd cmd);
-
-    void deleteTemplate(DeleteTemplateCmd cmd);
-
-    void propagateTemplateOnAllZones(Long tmpltId);
-
-    void propagateSwiftTmplteOnZone(Long zoneId);
-
-    Long chooseZoneForTmpltExtract(Long tmpltId);
-
-    Pair<List<SwiftVO>, Integer> listSwifts(ListSwiftsCmd cmd);
-
-    VMTemplateSwiftVO findByTmpltId(Long tmpltId);
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c888fc6b/server/src/com/cloud/storage/swift/SwiftManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/swift/SwiftManagerImpl.java b/server/src/com/cloud/storage/swift/SwiftManagerImpl.java
deleted file mode 100644
index 3149f5a..0000000
--- a/server/src/com/cloud/storage/swift/SwiftManagerImpl.java
+++ /dev/null
@@ -1,298 +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 com.cloud.storage.swift;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-import javax.ejb.Local;
-import javax.inject.Inject;
-import javax.naming.ConfigurationException;
-
-import org.apache.cloudstack.api.command.admin.swift.ListSwiftsCmd;
-import org.apache.cloudstack.api.command.user.iso.DeleteIsoCmd;
-import org.apache.cloudstack.api.command.user.template.DeleteTemplateCmd;
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
-
-import com.cloud.agent.AgentManager;
-import com.cloud.agent.api.Answer;
-import com.cloud.agent.api.to.SwiftTO;
-import org.apache.cloudstack.api.command.admin.swift.AddSwiftCmd;
-import org.apache.cloudstack.storage.command.DeleteCommand;
-import org.apache.cloudstack.storage.to.TemplateObjectTO;
-
-import com.cloud.configuration.Config;
-import com.cloud.configuration.dao.ConfigurationDao;
-import com.cloud.dc.DataCenterVO;
-import com.cloud.dc.dao.DataCenterDao;
-import com.cloud.exception.DiscoveryException;
-import com.cloud.host.HostVO;
-import com.cloud.host.dao.HostDao;
-import com.cloud.storage.SwiftVO;
-import com.cloud.storage.VMTemplateHostVO;
-import com.cloud.storage.VMTemplateSwiftVO;
-import com.cloud.storage.VMTemplateZoneVO;
-import com.cloud.storage.dao.SwiftDao;
-import com.cloud.storage.dao.VMTemplateHostDao;
-import com.cloud.storage.dao.VMTemplateSwiftDao;
-import com.cloud.storage.dao.VMTemplateZoneDao;
-import com.cloud.utils.Pair;
-import com.cloud.utils.component.ManagerBase;
-import com.cloud.utils.db.Filter;
-import com.cloud.utils.db.SearchCriteria;
-import com.cloud.utils.db.SearchCriteria.Op;
-import com.cloud.utils.db.SearchCriteria2;
-import com.cloud.utils.db.SearchCriteriaService;
-import com.cloud.utils.exception.CloudRuntimeException;
-
-@Component
-@Local(value = { SwiftManager.class })
-public class SwiftManagerImpl extends ManagerBase implements SwiftManager {
-    private static final Logger s_logger = Logger.getLogger(SwiftManagerImpl.class);
-
-    @Inject
-    private SwiftDao _swiftDao;
-    @Inject
-    VMTemplateSwiftDao _vmTmpltSwiftlDao;
-    @Inject
-    private ConfigurationDao _configDao;
-    @Inject
-    private AgentManager _agentMgr;
-    @Inject
-    private DataCenterDao _dcDao;
-    @Inject
-    private VMTemplateZoneDao _vmTmpltZoneDao;
-    @Inject
-    private VMTemplateHostDao _vmTmpltHostDao;
-    @Inject
-    private HostDao _hostDao;
-
-    @Override
-    public SwiftTO getSwiftTO(Long swiftId) {
-        return _swiftDao.getSwiftTO(swiftId);
-    }
-
-    @Override
-    public SwiftTO getSwiftTO() {
-        return _swiftDao.getSwiftTO(null);
-    }
-
-    @Override
-    public boolean isSwiftEnabled() {
-        Boolean swiftEnable = Boolean.valueOf(_configDao.getValue(Config.SwiftEnable.key()));
-        if (swiftEnable) {
-            return true;
-        }
-        return false;
-    }
-
-    @Override
-    public boolean isTemplateInstalled(Long templateId) {
-
-        SearchCriteriaService<VMTemplateSwiftVO, VMTemplateSwiftVO> sc = SearchCriteria2.create(VMTemplateSwiftVO.class);
-        sc.addAnd(sc.getEntity().getTemplateId(), Op.EQ, templateId);
-        return !sc.list().isEmpty();
-    }
-
-    @Override
-    public SwiftVO addSwift(AddSwiftCmd cmd) throws DiscoveryException {
-        if (!isSwiftEnabled()) {
-            throw new DiscoveryException("Swift is not enabled");
-        }
-        SwiftVO swift = new SwiftVO(cmd.getUrl(), cmd.getAccount(), cmd.getUsername(), cmd.getKey());
-        swift = _swiftDao.persist(swift);
-        return swift;
-    }
-
-    @Override
-    public boolean start() {
-        if (s_logger.isInfoEnabled()) {
-            s_logger.info("Start Swift Manager");
-        }
-
-        return true;
-    }
-
-    @Override
-    public void deleteIso(DeleteIsoCmd cmd) {
-        String msg;
-        SwiftTO swift = getSwiftTO();
-        if (swift == null) {
-            msg = "There is no Swift in this setup";
-            s_logger.warn(msg);
-            throw new CloudRuntimeException(msg);
-        }
-        VMTemplateSwiftVO tmpltSwiftRef = _vmTmpltSwiftlDao.findBySwiftTemplate(swift.getId(), cmd.getId());
-        if ( tmpltSwiftRef == null ) {
-           msg = "Delete ISO failed due to  cannot find ISO " + cmd.getId() + " in Swift ";
-           s_logger.warn(msg);
-           throw new CloudRuntimeException(msg);
-        }
-        TemplateObjectTO tmplTO = new TemplateObjectTO();
-        tmplTO.setDataStore(swift);
-        tmplTO.setId(cmd.getId());
-        Answer answer = _agentMgr.sendToSSVM(null, new DeleteCommand(tmplTO));
-        if (answer == null || !answer.getResult()) {
-            msg = "Failed to delete " + tmpltSwiftRef + " due to " + ((answer == null) ? "answer is null" : answer.getDetails());
-            s_logger.warn(msg);
-            throw new CloudRuntimeException(msg);
-        } else {
-            _vmTmpltSwiftlDao.remove(tmpltSwiftRef.getId());
-            s_logger.debug("Deleted template " + cmd.getId() + " in Swift");
-        }
-    }
-
-    @Override
-    public void deleteTemplate(DeleteTemplateCmd cmd) {
-        String msg;
-        SwiftTO swift = getSwiftTO();
-        if (swift == null) {
-            msg = "There is no Swift in this setup";
-            s_logger.warn(msg);
-            throw new CloudRuntimeException(msg);
-        }
-        VMTemplateSwiftVO tmpltSwiftRef = _vmTmpltSwiftlDao.findBySwiftTemplate(swift.getId(), cmd.getId());
-        if (tmpltSwiftRef == null) {
-            msg = "Delete Template failed due to cannot find Template" + cmd.getId() + " in Swift ";
-            s_logger.warn(msg);
-            throw new CloudRuntimeException(msg);
-        }
-        TemplateObjectTO tmplTO = new TemplateObjectTO();
-        tmplTO.setId(cmd.getId());
-        Answer answer = _agentMgr.sendToSSVM(null, new DeleteCommand(tmplTO));
-        if (answer == null || !answer.getResult()) {
-            msg = "Failed to delete " + tmpltSwiftRef + " due to " + ((answer == null) ? "answer is null" : answer.getDetails());
-            s_logger.warn(msg);
-            throw new CloudRuntimeException(msg);
-        } else {
-            _vmTmpltSwiftlDao.remove(tmpltSwiftRef.getId());
-            s_logger.debug("Deleted template " + cmd.getId() + " in Swift");
-        }
-    }
-
-    @Override
-    public void propagateTemplateOnAllZones(Long tmpltId) {
-        String msg;
-        SwiftTO swift = getSwiftTO();
-        if (swift == null) {
-            msg = "There is no Swift in this setup";
-            s_logger.trace(msg);
-            return;
-        }
-        VMTemplateSwiftVO tmpltSwiftRef = _vmTmpltSwiftlDao.findOneByTemplateId(tmpltId);
-        if (tmpltSwiftRef != null) {
-            List<DataCenterVO> dcs = _dcDao.listAll();
-            for (DataCenterVO dc : dcs) {
-                VMTemplateZoneVO tmpltZoneVO = new VMTemplateZoneVO(dc.getId(), tmpltId, new Date());
-                try {
-                    _vmTmpltZoneDao.persist(tmpltZoneVO);
-                } catch (Exception e) {
-                }
-            }
-        }
-    }
-
-    @Override
-    public void propagateSwiftTmplteOnZone(Long zoneId) {
-        String msg;
-        SwiftTO swift = getSwiftTO();
-        if (swift == null) {
-            msg = "There is no Swift in this setup";
-            s_logger.trace(msg);
-            return;
-        }
-        List<Long> tmpltIds = new ArrayList<Long>();
-        List<VMTemplateSwiftVO> tmpltSwiftRefs = _vmTmpltSwiftlDao.listAll();
-        if (tmpltSwiftRefs == null) {
-            return;
-        }
-        for (VMTemplateSwiftVO tmpltSwiftRef : tmpltSwiftRefs) {
-            Long tmpltId = tmpltSwiftRef.getTemplateId();
-            if (!tmpltIds.contains(tmpltId)) {
-                tmpltIds.add(tmpltId);
-                VMTemplateZoneVO tmpltZoneVO = new VMTemplateZoneVO(zoneId, tmpltId, new Date());
-                try {
-                    _vmTmpltZoneDao.persist(tmpltZoneVO);
-                } catch (Exception e) {
-                }
-            }
-        }
-    }
-
-    @Override
-    public Long chooseZoneForTmpltExtract(Long tmpltId) {
-        SwiftTO swift = getSwiftTO();
-        if (swift == null) {
-            return null;
-        }
-
-        List<VMTemplateHostVO> tmpltHosts = _vmTmpltHostDao.listByOnlyTemplateId(tmpltId);
-        if (tmpltHosts != null) {
-            Collections.shuffle(tmpltHosts);
-            for (VMTemplateHostVO tHost : tmpltHosts) {
-                HostVO host = _hostDao.findById(tHost.getHostId());
-                if (host != null) {
-                    return host.getDataCenterId();
-                }
-                throw new CloudRuntimeException("can not find secondary storage host");
-            }
-        }
-        List<DataCenterVO> dcs = _dcDao.listAll();
-        Collections.shuffle(dcs);
-        return dcs.get(0).getId();
-    }
-
-    @Override
-    public Pair<List<SwiftVO>, Integer> listSwifts(ListSwiftsCmd cmd) {
-        Filter searchFilter = new Filter(SwiftVO.class, "id", Boolean.TRUE, cmd.getStartIndex(), cmd.getPageSizeVal());
-        SearchCriteria<SwiftVO> sc = _swiftDao.createSearchCriteria();
-        if (cmd.getId() != null) {
-            sc.addAnd("id", SearchCriteria.Op.EQ, cmd.getId());
-        }
-        return _swiftDao.searchAndCount(sc, searchFilter);
-
-    }
-
-    @Override
-    public VMTemplateSwiftVO findByTmpltId(Long tmpltId) {
-        return _vmTmpltSwiftlDao.findOneByTemplateId(tmpltId);
-    }
-
-    @Override
-    public boolean stop() {
-        if (s_logger.isInfoEnabled()) {
-            s_logger.info("Stop Swift Manager");
-        }
-        return true;
-    }
-
-    @Override
-    public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
-        if (s_logger.isInfoEnabled()) {
-            s_logger.info("Start configuring Swift Manager : " + name);
-        }
-
-        return true;
-    }
-
-    protected SwiftManagerImpl() {
-    }
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c888fc6b/server/src/com/cloud/template/HypervisorTemplateAdapter.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/template/HypervisorTemplateAdapter.java b/server/src/com/cloud/template/HypervisorTemplateAdapter.java
index 06bc094..6531838 100755
--- a/server/src/com/cloud/template/HypervisorTemplateAdapter.java
+++ b/server/src/com/cloud/template/HypervisorTemplateAdapter.java
@@ -160,8 +160,7 @@ public class HypervisorTemplateAdapter extends TemplateAdapterBase {
             AsyncCallbackDispatcher<HypervisorTemplateAdapter, TemplateApiResult> caller = AsyncCallbackDispatcher.create(this);
             caller.setCallback(caller.getTarget().createTemplateAsyncCallBack(null, null));
             caller.setContext(context);
-            this.imageService
-            .createTemplateAsync(tmpl, imageStore, caller);
+            this.imageService.createTemplateAsync(tmpl, imageStore, caller);
         }
         _resourceLimitMgr.incrementResourceCount(profile.getAccountId(), ResourceType.template);
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c888fc6b/server/test/com/cloud/resource/MockResourceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/resource/MockResourceManagerImpl.java b/server/test/com/cloud/resource/MockResourceManagerImpl.java
index a1c52aa..c975fc1 100644
--- a/server/test/com/cloud/resource/MockResourceManagerImpl.java
+++ b/server/test/com/cloud/resource/MockResourceManagerImpl.java
@@ -28,8 +28,6 @@ import org.apache.cloudstack.api.command.admin.cluster.AddClusterCmd;
 import org.apache.cloudstack.api.command.admin.cluster.DeleteClusterCmd;
 import org.apache.cloudstack.api.command.admin.host.*;
 import org.apache.cloudstack.api.command.admin.storage.*;
-import org.apache.cloudstack.api.command.admin.swift.*;
-
 import com.cloud.agent.api.StartupCommand;
 import com.cloud.agent.api.StartupRoutingCommand;
 
@@ -50,8 +48,6 @@ import com.cloud.org.Cluster;
 import com.cloud.resource.ResourceState.Event;
 import com.cloud.service.ServiceOfferingVO;
 import com.cloud.storage.ImageStore;
-import com.cloud.storage.S3;
-import com.cloud.storage.Swift;
 import com.cloud.template.VirtualMachineTemplate;
 import com.cloud.utils.Pair;
 import com.cloud.utils.component.ManagerBase;
@@ -175,23 +171,6 @@ public class MockResourceManagerImpl extends ManagerBase implements ResourceMana
         return null;
     }
 
-    /* (non-Javadoc)
-     * @see com.cloud.resource.ResourceService#discoverSwift(com.cloud.api.commands.AddSwiftCmd)
-     */
-    @Override
-    public Swift discoverSwift(AddSwiftCmd addSwiftCmd) throws DiscoveryException {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see com.cloud.resource.ResourceService#discoverS3(com.cloud.api.commands.AddS3Cmd)
-     */
-    @Override
-    public S3 discoverS3(AddS3Cmd cmd) throws DiscoveryException {
-        // TODO Auto-generated method stub
-        return null;
-    }
 
     /* (non-Javadoc)
      * @see com.cloud.resource.ResourceService#getSupportedHypervisorTypes(long, boolean, java.lang.Long)
@@ -203,24 +182,6 @@ public class MockResourceManagerImpl extends ManagerBase implements ResourceMana
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.resource.ResourceService#listSwifts(com.cloud.api.commands.ListSwiftsCmd)
-     */
-    @Override
-    public Pair<List<? extends Swift>, Integer> listSwifts(ListSwiftsCmd cmd) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see com.cloud.resource.ResourceService#listS3s(com.cloud.api.commands.ListS3sCmd)
-     */
-    @Override
-    public List<? extends S3> listS3s(ListS3sCmd cmd) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    /* (non-Javadoc)
      * @see com.cloud.resource.ResourceManager#registerResourceEvent(java.lang.Integer, com.cloud.resource.ResourceListener)
      */
     @Override

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c888fc6b/server/test/org/apache/cloudstack/networkoffering/ChildTestConfiguration.java
----------------------------------------------------------------------
diff --git a/server/test/org/apache/cloudstack/networkoffering/ChildTestConfiguration.java b/server/test/org/apache/cloudstack/networkoffering/ChildTestConfiguration.java
index 6398e20..27faa4d 100644
--- a/server/test/org/apache/cloudstack/networkoffering/ChildTestConfiguration.java
+++ b/server/test/org/apache/cloudstack/networkoffering/ChildTestConfiguration.java
@@ -100,11 +100,8 @@ import com.cloud.storage.dao.DiskOfferingDaoImpl;
 import com.cloud.storage.dao.S3DaoImpl;
 import com.cloud.storage.dao.SnapshotDaoImpl;
 import com.cloud.storage.dao.StoragePoolDetailsDaoImpl;
-import com.cloud.storage.dao.SwiftDaoImpl;
 import com.cloud.storage.dao.VolumeDaoImpl;
-import com.cloud.storage.s3.S3Manager;
 import com.cloud.storage.secondary.SecondaryStorageVmManager;
-import com.cloud.storage.swift.SwiftManager;
 import com.cloud.tags.dao.ResourceTagsDaoImpl;
 import com.cloud.user.AccountDetailsDao;
 import com.cloud.user.AccountManager;
@@ -126,7 +123,6 @@ import org.apache.cloudstack.region.PortableIpRangeDaoImpl;
         VolumeDaoImpl.class,
         HostPodDaoImpl.class,
         DomainDaoImpl.class,
-        SwiftDaoImpl.class,
         ServiceOfferingDaoImpl.class,
         ServiceOfferingDetailsDaoImpl.class,
         VlanDaoImpl.class,
@@ -225,16 +221,6 @@ public class ChildTestConfiguration {
     }
 
     @Bean
-    public SwiftManager swiftMgr() {
-        return Mockito.mock(SwiftManager.class);
-    }
-
-    @Bean
-    public S3Manager s3Mgr() {
-        return Mockito.mock(S3Manager.class);
-    }
-
-    @Bean
     public VpcManager vpcMgr() {
         return Mockito.mock(VpcManager.class);
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c888fc6b/services/secondary-storage/pom.xml
----------------------------------------------------------------------
diff --git a/services/secondary-storage/pom.xml b/services/secondary-storage/pom.xml
index eb6c0ee..124fa5e 100644
--- a/services/secondary-storage/pom.xml
+++ b/services/secondary-storage/pom.xml
@@ -63,6 +63,7 @@
   <build>
     <defaultGoal>install</defaultGoal>
     <sourceDirectory>src</sourceDirectory>
+    <testSourceDirectory>test</testSourceDirectory>
     <plugins>
       <plugin>
         <groupId>org.codehaus.mojo</groupId>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c888fc6b/services/secondary-storage/src/org/apache/cloudstack/storage/resource/LocalNfsSecondaryStorageResource.java
----------------------------------------------------------------------
diff --git a/services/secondary-storage/src/org/apache/cloudstack/storage/resource/LocalNfsSecondaryStorageResource.java b/services/secondary-storage/src/org/apache/cloudstack/storage/resource/LocalNfsSecondaryStorageResource.java
index 02ff8bc..1a6dcf8 100644
--- a/services/secondary-storage/src/org/apache/cloudstack/storage/resource/LocalNfsSecondaryStorageResource.java
+++ b/services/secondary-storage/src/org/apache/cloudstack/storage/resource/LocalNfsSecondaryStorageResource.java
@@ -32,7 +32,6 @@ import java.util.List;
 import java.util.UUID;
 import java.util.concurrent.Executors;
 
-import org.apache.cloudstack.storage.command.DownloadSystemTemplateCommand;
 import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;
 
@@ -77,66 +76,7 @@ public class LocalNfsSecondaryStorageResource extends NfsSecondaryStorageResourc
 
     @Override
     public Answer executeRequest(Command cmd) {
-        if (cmd instanceof DownloadSystemTemplateCommand) {
-            return execute((DownloadSystemTemplateCommand) cmd);
-        } else {
-            // return Answer.createUnsupportedCommandAnswer(cmd);
-            return super.executeRequest(cmd);
-        }
-    }
-
-    private Answer execute(DownloadSystemTemplateCommand cmd) {
-        DataStoreTO dstore = cmd.getDataStore();
-        if (dstore instanceof S3TO) {
-            // 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();
-            // convention is no / in the end for install path based on S3Utils
-            // implementation.
-            String path = determineS3TemplateDirectory(cmd.getAccountId(), cmd.getResourceId(), cmd.getName());
-            // template key is
-            // TEMPLATE_ROOT_DIR/account_id/template_id/template_name
-            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 NfsTO) {
-            return new Answer(cmd, false, "Nfs needs to be pre-installed with system vm templates");
-        } else if (dstore instanceof SwiftTO) {
-            // TODO: need to move code from
-            // execute(uploadTemplateToSwiftFromSecondaryStorageCommand) here,
-            // but we need to handle
-            // source is url, most likely we need to modify our existing
-            // swiftUpload python script.
-            return new Answer(cmd, false, "Swift is not currently support DownloadCommand");
-        } else {
-            return new Answer(cmd, false, "Unsupported image data store: " + dstore);
-        }
+         return super.executeRequest(cmd);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c888fc6b/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 17ec0bb..cefc08a 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
@@ -519,6 +519,10 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
         }
     }
 
+    protected Answer registerTemplateOnSwift(DownloadCommand cmd) {
+
+        return null;
+    }
     private Answer execute(DownloadCommand cmd) {
         DataStoreTO dstore = cmd.getDataStore();
         if (dstore instanceof NfsTO || dstore instanceof S3TO) {
@@ -560,12 +564,7 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
          * s3Obj.get(0).getSize(), s3Obj .get(0).getETag()); } }
          */
         else if (dstore instanceof SwiftTO) {
-            // TODO: need to move code from
-            // execute(uploadTemplateToSwiftFromSecondaryStorageCommand) here,
-            // but we need to handle
-            // source is url, most likely we need to modify our existing
-            // swiftUpload python script.
-            return new Answer(cmd, false, "Swift is not currently support DownloadCommand");
+            return registerTemplateOnSwift(cmd);
         } else {
             return new Answer(cmd, false, "Unsupported image data store: " + dstore);
         }