diff --git a/server/src/com/cloud/api/ApiDispatcher.java b/server/src/com/cloud/api/ApiDispatcher.java index ec0ae60e1d6..477b200add0 100644 --- a/server/src/com/cloud/api/ApiDispatcher.java +++ b/server/src/com/cloud/api/ApiDispatcher.java @@ -18,6 +18,7 @@ import com.cloud.network.NetworkManager; import com.cloud.network.security.NetworkGroupManager; import com.cloud.server.ManagementServer; import com.cloud.storage.StorageManager; +import com.cloud.storage.snapshot.SnapshotManager; import com.cloud.utils.DateUtil; import com.cloud.utils.component.ComponentLocator; import com.cloud.utils.exception.CloudRuntimeException; @@ -33,6 +34,7 @@ public class ApiDispatcher { private ManagementServer _mgmtServer; private NetworkGroupManager _networkGroupMgr; private NetworkManager _networkMgr; + private SnapshotManager _snapshotMgr; private StorageManager _storageMgr; private UserVmManager _userVmMgr; @@ -42,6 +44,7 @@ public class ApiDispatcher { _configMgr = locator.getManager(ConfigurationManager.class); _networkGroupMgr = locator.getManager(NetworkGroupManager.class); _networkMgr = locator.getManager(NetworkManager.class); + _snapshotMgr = locator.getManager(SnapshotManager.class); _storageMgr = locator.getManager(StorageManager.class); _userVmMgr = locator.getManager(UserVmManager.class); } @@ -95,6 +98,9 @@ public class ApiDispatcher { case NetworkManager: mgr = _networkMgr; break; + case SnapshotManager: + mgr = _snapshotMgr; + break; case StorageManager: mgr = _storageMgr; break; diff --git a/server/src/com/cloud/api/BaseCmd.java b/server/src/com/cloud/api/BaseCmd.java index 6587f01b450..bd44715bcb6 100644 --- a/server/src/com/cloud/api/BaseCmd.java +++ b/server/src/com/cloud/api/BaseCmd.java @@ -48,7 +48,7 @@ public abstract class BaseCmd { } public enum Manager { - ConfigManager, ManagementServer, NetworkGroupManager, NetworkManager, StorageManager, UserVmManager, AccountManager, AgentManager + AccountManager, AgentManager, ConfigManager, ManagementServer, NetworkGroupManager, NetworkManager, StorageManager, UserVmManager } // FIXME: Extract these out into a separate file diff --git a/server/src/com/cloud/api/commands/CreateSnapshotCmd.java b/server/src/com/cloud/api/commands/CreateSnapshotCmd.java index 9be0bd6f275..ef8b4fc5f89 100644 --- a/server/src/com/cloud/api/commands/CreateSnapshotCmd.java +++ b/server/src/com/cloud/api/commands/CreateSnapshotCmd.java @@ -24,7 +24,10 @@ import java.util.Map; import org.apache.log4j.Logger; +import com.cloud.api.BaseAsyncCreateCmd; import com.cloud.api.BaseCmd; +import com.cloud.api.BaseCmd.Manager; +import com.cloud.api.Implementation; import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.async.AsyncJobResult; @@ -36,10 +39,10 @@ import com.cloud.server.ManagementServer; import com.cloud.storage.VolumeVO; import com.cloud.utils.Pair; -public class CreateSnapshotCmd extends BaseCmd { +@Implementation(createMethod="createSnapshotDB", method="createSnapshot", manager=Manager.SnapshotManager) +public class CreateSnapshotCmd extends BaseAsyncCreateCmd { public static final Logger s_logger = Logger.getLogger(CreateSnapshotCmd.class.getName()); private static final String s_name = "createsnapshotresponse"; - private static final List> s_properties = new ArrayList>(); ///////////////////////////////////////////////////// //////////////// API parameters ///////////////////// @@ -54,7 +57,6 @@ public class CreateSnapshotCmd extends BaseCmd { @Parameter(name="volumeid", type=CommandType.LONG, required=true) private Long volumeId; - ///////////////////////////////////////////////////// /////////////////// Accessors /////////////////////// ///////////////////////////////////////////////////// @@ -71,11 +73,11 @@ public class CreateSnapshotCmd extends BaseCmd { return volumeId; } - ///////////////////////////////////////////////////// /////////////// API Implementation/////////////////// ///////////////////////////////////////////////////// + @Override public String getName() { return s_name; } @@ -83,9 +85,9 @@ public class CreateSnapshotCmd extends BaseCmd { public static String getResultObjectName() { return "snapshot"; } - - public List> getProperties() { - return s_properties; + + @Override + public String getResponse() { } @Override diff --git a/server/src/com/cloud/storage/StorageManager.java b/server/src/com/cloud/storage/StorageManager.java index 167983f1269..045268a5ea9 100644 --- a/server/src/com/cloud/storage/StorageManager.java +++ b/server/src/com/cloud/storage/StorageManager.java @@ -37,7 +37,6 @@ import com.cloud.host.Host; import com.cloud.host.HostVO; import com.cloud.service.ServiceOfferingVO; import com.cloud.user.Account; -import com.cloud.uservm.UserVm; import com.cloud.utils.Pair; import com.cloud.utils.component.Manager; import com.cloud.utils.exception.ExecutionException; diff --git a/server/src/com/cloud/storage/StorageManagerImpl.java b/server/src/com/cloud/storage/StorageManagerImpl.java index 65ad99e69c6..561298acba9 100644 --- a/server/src/com/cloud/storage/StorageManagerImpl.java +++ b/server/src/com/cloud/storage/StorageManagerImpl.java @@ -68,7 +68,6 @@ import com.cloud.async.AsyncJobExecutor; import com.cloud.async.AsyncJobManager; import com.cloud.async.AsyncJobVO; import com.cloud.async.BaseAsyncJobExecutor; -import com.cloud.async.executor.VMOperationParam; import com.cloud.capacity.CapacityVO; import com.cloud.capacity.dao.CapacityDao; import com.cloud.configuration.Config; @@ -95,9 +94,9 @@ import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceInUseException; import com.cloud.exception.StorageUnavailableException; import com.cloud.host.Host; +import com.cloud.host.Host.Type; import com.cloud.host.HostVO; import com.cloud.host.Status; -import com.cloud.host.Host.Type; import com.cloud.host.dao.DetailsDao; import com.cloud.host.dao.HostDao; import com.cloud.hypervisor.Hypervisor; @@ -142,7 +141,6 @@ import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.db.Transaction; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.ExecutionException; -import com.cloud.vm.ConsoleProxyVO; import com.cloud.vm.State; import com.cloud.vm.UserVmManager; import com.cloud.vm.UserVmVO; diff --git a/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java b/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java index 617f4db7aa1..c13da3e27bc 100644 --- a/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java +++ b/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java @@ -60,18 +60,18 @@ import com.cloud.host.dao.DetailsDao; import com.cloud.host.dao.HostDao; import com.cloud.serializer.GsonHelper; import com.cloud.storage.Snapshot; +import com.cloud.storage.Snapshot.SnapshotType; +import com.cloud.storage.Snapshot.Status; import com.cloud.storage.SnapshotPolicyRefVO; import com.cloud.storage.SnapshotPolicyVO; import com.cloud.storage.SnapshotScheduleVO; import com.cloud.storage.SnapshotVO; +import com.cloud.storage.Storage.ImageFormat; import com.cloud.storage.StorageManager; import com.cloud.storage.VMTemplateStoragePoolVO; import com.cloud.storage.VMTemplateVO; -import com.cloud.storage.VolumeVO; -import com.cloud.storage.Snapshot.SnapshotType; -import com.cloud.storage.Snapshot.Status; -import com.cloud.storage.Storage.ImageFormat; import com.cloud.storage.Volume.VolumeType; +import com.cloud.storage.VolumeVO; import com.cloud.storage.dao.DiskOfferingDao; import com.cloud.storage.dao.SnapshotDao; import com.cloud.storage.dao.SnapshotPolicyDao; @@ -86,7 +86,6 @@ import com.cloud.user.AccountManager; import com.cloud.user.AccountVO; import com.cloud.user.dao.AccountDao; import com.cloud.user.dao.UserDao; -import com.cloud.uservm.UserVm; import com.cloud.utils.DateUtil; import com.cloud.utils.NumbersUtil; import com.cloud.utils.component.ComponentLocator;