You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ah...@apache.org on 2012/11/05 18:23:42 UTC
[2/18] Moved from platform to engine
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/37197d63/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/TemplateProfile.java
----------------------------------------------------------------------
diff --git a/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/TemplateProfile.java b/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/TemplateProfile.java
new file mode 100755
index 0000000..e05e7db
--- /dev/null
+++ b/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/TemplateProfile.java
@@ -0,0 +1,287 @@
+// 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 org.apache.cloudstack.engine.subsystem.api.storage;
+
+import java.util.Map;
+
+import com.cloud.hypervisor.Hypervisor.HypervisorType;
+import com.cloud.storage.Storage.ImageFormat;
+import com.cloud.template.VirtualMachineTemplate;
+
+public class TemplateProfile {
+ Long userId;
+ String name;
+ String displayText;
+ Integer bits;
+ Boolean passwordEnabled;
+ Boolean sshKeyEnbaled;
+ 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;
+ Long templateId;
+ VirtualMachineTemplate template;
+ String templateTag;
+ Map details;
+
+ 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, Map details, Boolean sshKeyEnabled) {
+ this.templateId = templateId;
+ this.userId = userId;
+ this.name = name;
+ this.displayText = displayText;
+ this.bits = bits;
+ this.passwordEnabled = passwordEnabled;
+ this.requiresHvm = requiresHvm;
+ this.url = url;
+ this.isPublic = isPublic;
+ this.featured = featured;
+ this.isExtractable = isExtractable;
+ this.format = format;
+ this.guestOsId = guestOsId;
+ this.zoneId = zoneId;
+ this.hypervisorType = hypervisorType;
+ this.accountName = accountName;
+ this.domainId = domainId;
+ this.accountId = accountId;
+ this.chksum = chksum;
+ this.bootable = bootable;
+ this.details = details;
+ this.sshKeyEnbaled = sshKeyEnabled;
+ }
+
+ public TemplateProfile(Long userId, VirtualMachineTemplate template, Long zoneId) {
+ this.userId = userId;
+ this.template = template;
+ this.zoneId = zoneId;
+ }
+
+ 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) {
+ 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;
+ }
+
+ public Long getTemplateId() {
+ return templateId;
+ }
+ public void setTemplateId(Long id) {
+ this.templateId = id;
+ }
+
+ public Long getUserId() {
+ return userId;
+ }
+ public void setUserId(Long userId) {
+ this.userId = userId;
+ }
+
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getDisplayText() {
+ return displayText;
+ }
+ public void setDisplayText(String text) {
+ this.displayText = text;
+ }
+
+ public Integer getBits() {
+ return bits;
+ }
+ public void setBits(Integer bits) {
+ this.bits = bits;
+ }
+
+ public Boolean getPasswordEnabled() {
+ return passwordEnabled;
+ }
+ public void setPasswordEnabled(Boolean enabled) {
+ this.passwordEnabled = enabled;
+ }
+
+ public Boolean getRequiresHVM() {
+ return requiresHvm;
+ }
+ public void setRequiresHVM(Boolean hvm) {
+ this.requiresHvm = hvm;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+ public Boolean getIsPublic() {
+ return isPublic;
+ }
+ public void setIsPublic(Boolean is) {
+ this.isPublic = is;
+ }
+
+ public Boolean getFeatured() {
+ return featured;
+ }
+ public void setFeatured(Boolean featured) {
+ this.featured = featured;
+ }
+
+ public Boolean getIsExtractable() {
+ return isExtractable;
+ }
+ public void setIsExtractable(Boolean is) {
+ this.isExtractable = is;
+ }
+
+ public ImageFormat getFormat() {
+ return format;
+ }
+ public void setFormat(ImageFormat format) {
+ this.format = format;
+ }
+
+ public Long getGuestOsId() {
+ return guestOsId;
+ }
+ public void setGuestOsId(Long id) {
+ this.guestOsId = id;
+ }
+
+ public Long getZoneId() {
+ return zoneId;
+ }
+ public void setZoneId(Long id) {
+ this.zoneId = id;
+ }
+
+ public HypervisorType getHypervisorType() {
+ return hypervisorType;
+ }
+ public void setHypervisorType(HypervisorType type) {
+ this.hypervisorType = type;
+ }
+
+ public Long getDomainId() {
+ return domainId;
+ }
+ public void setDomainId(Long id) {
+ this.domainId = id;
+ }
+
+ public Long getAccountId() {
+ return accountId;
+ }
+ public void setAccountId(Long id) {
+ this.accountId = id;
+ }
+
+ public String getCheckSum() {
+ return chksum;
+ }
+ public void setCheckSum(String chksum) {
+ this.chksum = chksum;
+ }
+
+ public Boolean getBootable() {
+ return this.bootable;
+ }
+ public void setBootable(Boolean bootable) {
+ this.bootable = bootable;
+ }
+
+ public VirtualMachineTemplate getTemplate() {
+ return template;
+ }
+ public void setTemplate(VirtualMachineTemplate template) {
+ this.template = template;
+ }
+
+ public String getTemplateTag() {
+ return templateTag;
+ }
+
+ public void setTemplateTag(String templateTag) {
+ this.templateTag = templateTag;
+ }
+
+ public Map getDetails() {
+ return this.details;
+ }
+
+ public void setDetails(Map details) {
+ this.details = details;
+ }
+
+ public void setSshKeyEnabled(Boolean enabled) {
+ this.sshKeyEnbaled = enabled;
+ }
+
+ public Boolean getSshKeyEnabled() {
+ return this.sshKeyEnbaled;
+ }
+
+ public String getImageStorageUri() {
+ return null;
+ }
+
+ public void setLocalPath(String path) {
+
+ }
+
+ public String getLocalPath() {
+ return null;
+ }
+
+ public String getJobId() {
+ return null;
+ }
+
+ public void setTemplatePoolRefId(long id) {
+
+ }
+
+ public long getId() {
+ return 0;
+ }
+
+ public long getTemplatePoolRefId() {
+ return 0;
+ }
+
+ public long getSize() {
+ return 0;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/37197d63/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/TemplateStrategy.java
----------------------------------------------------------------------
diff --git a/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/TemplateStrategy.java b/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/TemplateStrategy.java
new file mode 100644
index 0000000..b0458aa
--- /dev/null
+++ b/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/TemplateStrategy.java
@@ -0,0 +1,13 @@
+package org.apache.cloudstack.engine.subsystem.api.storage;
+
+import com.cloud.agent.api.storage.DownloadCommand.Proxy;
+
+public interface TemplateStrategy {
+ TemplateProfile install(TemplateProfile tp);
+ TemplateProfile get(long templateId);
+ TemplateProfile register(TemplateProfile tp);
+ boolean canRegister(long templateId);
+ int getDownloadWait();
+ long getMaxTemplateSizeInBytes();
+ Proxy getHttpProxy();
+}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/37197d63/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/VolumeProfile.java
----------------------------------------------------------------------
diff --git a/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/VolumeProfile.java b/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/VolumeProfile.java
new file mode 100644
index 0000000..ed4d421
--- /dev/null
+++ b/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/VolumeProfile.java
@@ -0,0 +1,34 @@
+/*
+ * 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 org.apache.cloudstack.engine.subsystem.api.storage;
+
+public class VolumeProfile {
+ private String _uri;
+ public String getURI() {
+ return _uri;
+ }
+
+ public String getPath() {
+ return null;
+ }
+
+ public long getSize() {
+ return 0;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/37197d63/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/VolumeStrategy.java
----------------------------------------------------------------------
diff --git a/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/VolumeStrategy.java b/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/VolumeStrategy.java
new file mode 100644
index 0000000..dba0077
--- /dev/null
+++ b/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/VolumeStrategy.java
@@ -0,0 +1,16 @@
+package org.apache.cloudstack.engine.subsystem.api.storage;
+
+
+import com.cloud.storage.Volume;
+
+public interface VolumeStrategy {
+ Volume createVolume(Volume vol);
+ Volume createDataVolume(Volume vol);
+ Volume copyVolumeFromBackup(VolumeProfile srcVol, Volume destVol);
+ Volume createVolumeFromSnapshot(SnapshotProfile snapshot, Volume vol);
+ Volume createVolumeFromTemplate(TemplateProfile template, Volume vol);
+ Volume migrateVolume(Volume srcVol, Volume destVol, DataStore destStore);
+ Volume createVolumeFromBaseTemplate(Volume destVol, TemplateProfile tp);
+ boolean deleteVolume(Volume vol);
+ VolumeProfile get(long volumeId);
+}