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/02/06 03:43:28 UTC

[38/50] [abbrv] squash changes into one giant patch

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/7ff41648/server/src/com/cloud/storage/TemplateProfile.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/TemplateProfile.java b/server/src/com/cloud/storage/TemplateProfile.java
index 1d8b6bf..41bbaaa 100755
--- a/server/src/com/cloud/storage/TemplateProfile.java
+++ b/server/src/com/cloud/storage/TemplateProfile.java
@@ -18,9 +18,9 @@ package com.cloud.storage;
 
 import java.util.Map;
 
+
 import com.cloud.hypervisor.Hypervisor.HypervisorType;
 import com.cloud.storage.Storage.ImageFormat;
-import com.cloud.storage.VMTemplateVO;
 
 public class TemplateProfile {	
 	Long userId;
@@ -46,6 +46,7 @@ public class TemplateProfile {
 	Long templateId;
 	VMTemplateVO template;
 	String templateTag;
+	String imageStoreUuid;
 	Map details;
 	
 	public TemplateProfile(Long templateId, Long userId, String name, String displayText, Integer bits, Boolean passwordEnabled, Boolean requiresHvm,
@@ -83,10 +84,12 @@ public class TemplateProfile {
 	
     public TemplateProfile(Long templateId, Long userId, String name, String displayText, Integer bits, Boolean passwordEnabled, Boolean requiresHvm,
             String url, Boolean isPublic, Boolean featured, Boolean isExtractable, ImageFormat format, Long guestOsId, Long zoneId,
-            HypervisorType hypervisorType, String accountName, Long domainId, Long accountId, String chksum, Boolean bootable, String templateTag, Map details, Boolean sshKeyEnabled) {
+            HypervisorType hypervisorType, String accountName, Long domainId, Long accountId, String chksum, Boolean bootable, String templateTag, Map details, Boolean sshKeyEnabled,
+            String imageStoreUuid) {
         this(templateId, userId, name, displayText, bits, passwordEnabled, requiresHvm, url, isPublic, featured, isExtractable, format, guestOsId, zoneId,
                 hypervisorType, accountName, domainId, accountId, chksum, bootable, details, sshKeyEnabled);
         this.templateTag = templateTag;
+        this.imageStoreUuid = imageStoreUuid;
     }	
 	
 	public Long getTemplateId() {
@@ -252,4 +255,8 @@ public class TemplateProfile {
     public Boolean getSshKeyEnabled() {
     	return this.sshKeyEnbaled;
     }
+    
+    public String getImageStoreUuid() {
+        return this.imageStoreUuid;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/7ff41648/server/src/com/cloud/storage/VolumeManager.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/VolumeManager.java b/server/src/com/cloud/storage/VolumeManager.java
new file mode 100644
index 0000000..41434f4
--- /dev/null
+++ b/server/src/com/cloud/storage/VolumeManager.java
@@ -0,0 +1,99 @@
+/*
+ * 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;
+
+import org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd;
+import org.apache.cloudstack.api.command.user.volume.CreateVolumeCmd;
+import org.apache.cloudstack.api.command.user.volume.DetachVolumeCmd;
+import org.apache.cloudstack.api.command.user.volume.ResizeVolumeCmd;
+import org.apache.cloudstack.api.command.user.volume.UploadVolumeCmd;
+import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
+
+import com.cloud.deploy.DeployDestination;
+import com.cloud.exception.ConcurrentOperationException;
+import com.cloud.exception.InsufficientStorageCapacityException;
+import com.cloud.exception.ResourceAllocationException;
+import com.cloud.exception.StorageUnavailableException;
+import com.cloud.hypervisor.Hypervisor.HypervisorType;
+import com.cloud.storage.Volume.Type;
+import com.cloud.user.Account;
+import com.cloud.vm.DiskProfile;
+import com.cloud.vm.VMInstanceVO;
+import com.cloud.vm.VirtualMachine;
+import com.cloud.vm.VirtualMachineProfile;
+
+public interface VolumeManager extends VolumeApiService {
+
+    VolumeInfo moveVolume(VolumeInfo volume, long destPoolDcId, Long destPoolPodId,
+            Long destPoolClusterId, HypervisorType dataDiskHyperType)
+            throws ConcurrentOperationException;
+
+    VolumeVO uploadVolume(UploadVolumeCmd cmd)
+            throws ResourceAllocationException;
+
+    VolumeVO allocateDuplicateVolume(VolumeVO oldVol, Long templateId);
+
+    boolean volumeOnSharedStoragePool(VolumeVO volume);
+
+    boolean volumeInactive(VolumeVO volume);
+
+    String getVmNameOnVolume(VolumeVO volume);
+
+    VolumeVO allocVolume(CreateVolumeCmd cmd)
+            throws ResourceAllocationException;
+
+    VolumeVO createVolume(CreateVolumeCmd cmd);
+
+    VolumeVO resizeVolume(ResizeVolumeCmd cmd);
+
+    boolean deleteVolume(long volumeId, Account caller)
+            throws ConcurrentOperationException;
+    
+    void destroyVolume(VolumeVO volume);
+
+    DiskProfile allocateRawVolume(Type type, String name, DiskOfferingVO offering, Long size, VMInstanceVO vm, Account owner);
+    Volume attachVolumeToVM(AttachVolumeCmd command);
+
+    Volume detachVolumeFromVM(DetachVolumeCmd cmmd);
+
+    void release(VirtualMachineProfile<? extends VMInstanceVO> profile);
+
+    void cleanupVolumes(long vmId) throws ConcurrentOperationException;
+
+    Volume migrateVolume(Long volumeId, Long storagePoolId)
+            throws ConcurrentOperationException;
+
+    boolean StorageMigration(
+            VirtualMachineProfile<? extends VirtualMachine> vm,
+            StoragePool destPool) throws ConcurrentOperationException;
+
+    void prepareForMigration(
+            VirtualMachineProfile<? extends VirtualMachine> vm,
+            DeployDestination dest);
+
+    void prepare(VirtualMachineProfile<? extends VirtualMachine> vm,
+            DeployDestination dest) throws StorageUnavailableException,
+            InsufficientStorageCapacityException, ConcurrentOperationException;
+
+    boolean canVmRestartOnAnotherServer(long vmId);
+
+    DiskProfile allocateTemplatedVolume(Type type, String name,
+            DiskOfferingVO offering, VMTemplateVO template, VMInstanceVO vm,
+            Account owner);
+}