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/21 20:15:16 UTC
[23/45] squash changes into one giant patch
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/00df9727/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/00df9727/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);
+}