| // 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.api.query.vo; | |
| import java.util.Date; | |
| import javax.persistence.Column; | |
| import javax.persistence.Convert; | |
| import javax.persistence.Entity; | |
| import javax.persistence.EnumType; | |
| import javax.persistence.Enumerated; | |
| import javax.persistence.Table; | |
| import javax.persistence.Temporal; | |
| import javax.persistence.TemporalType; | |
| import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine; | |
| import org.apache.cloudstack.util.CPUArchConverter; | |
| import org.apache.cloudstack.util.HypervisorTypeConverter; | |
| import com.cloud.cpu.CPU; | |
| import com.cloud.hypervisor.Hypervisor.HypervisorType; | |
| import com.cloud.storage.ScopeType; | |
| import com.cloud.storage.Storage; | |
| import com.cloud.storage.VMTemplateStorageResourceAssoc.Status; | |
| import com.cloud.template.VirtualMachineTemplate; | |
| import com.cloud.template.VirtualMachineTemplate.State; | |
| import com.cloud.user.Account; | |
| import com.cloud.utils.db.GenericDao; | |
| @Entity | |
| @Table(name = "template_view") | |
| public class TemplateJoinVO extends BaseViewWithTagInformationVO implements ControlledViewEntity { | |
| @Column(name = "uuid") | |
| private String uuid; | |
| @Column(name = "unique_name") | |
| private String uniqueName; | |
| @Column(name = "name") | |
| private String name; | |
| @Column(name = "format") | |
| private Storage.ImageFormat format; | |
| @Column(name = "public") | |
| private boolean publicTemplate = true; | |
| @Column(name = "featured") | |
| private boolean featured; | |
| @Column(name = "type") | |
| private Storage.TemplateType templateType; | |
| @Column(name = "url") | |
| private String url = null; | |
| @Column(name = "hvm") | |
| private boolean requiresHvm; | |
| @Column(name = "arch") | |
| @Convert(converter = CPUArchConverter.class) | |
| private CPU.CPUArch arch; | |
| @Column(name = "bits") | |
| private int bits; | |
| @Temporal(value = TemporalType.TIMESTAMP) | |
| @Column(name = GenericDao.CREATED_COLUMN) | |
| private Date created = null; | |
| @Temporal(value = TemporalType.TIMESTAMP) | |
| @Column(name = "created_on_store") | |
| private Date createdOnStore = null; | |
| @Column(name = GenericDao.REMOVED_COLUMN) | |
| @Temporal(TemporalType.TIMESTAMP) | |
| private Date removed; | |
| @Column(name = "checksum") | |
| private String checksum; | |
| @Column(name = "display_text", length = 4096) | |
| private String displayText; | |
| @Column(name = "enable_password") | |
| private boolean enablePassword; | |
| @Column(name = "dynamically_scalable") | |
| private boolean dynamicallyScalable; | |
| @Column(name = "guest_os_id") | |
| private long guestOSId; | |
| @Column(name = "guest_os_uuid") | |
| private String guestOSUuid; | |
| @Column(name = "guest_os_name") | |
| private String guestOSName; | |
| @Column(name = "guest_os_category_id") | |
| private Long guestOSCategoryId; | |
| @Column(name = "bootable") | |
| private boolean bootable = true; | |
| @Column(name = "prepopulate") | |
| private boolean prepopulate = false; | |
| @Column(name = "cross_zones") | |
| private boolean crossZones = false; | |
| @Column(name = "hypervisor_type") | |
| @Convert(converter = HypervisorTypeConverter.class) | |
| private HypervisorType hypervisorType; | |
| @Column(name = "extractable") | |
| private boolean extractable = true; | |
| @Column(name = "source_template_id") | |
| private Long sourceTemplateId; | |
| @Column(name = "source_template_uuid") | |
| private String sourceTemplateUuid; | |
| @Column(name = "template_tag") | |
| private String templateTag; | |
| @Column(name = "sort_key") | |
| private int sortKey; | |
| @Column(name = "enable_sshkey") | |
| private boolean enableSshKey; | |
| @Column(name = "account_id") | |
| private long accountId; | |
| @Column(name = "account_uuid") | |
| private String accountUuid; | |
| @Column(name = "account_name") | |
| private String accountName = null; | |
| @Column(name = "account_type") | |
| @Enumerated(value = EnumType.ORDINAL) | |
| private Account.Type accountType; | |
| @Column(name = "domain_id") | |
| private long domainId; | |
| @Column(name = "domain_uuid") | |
| private String domainUuid; | |
| @Column(name = "domain_name") | |
| private String domainName = null; | |
| @Column(name = "domain_path") | |
| private String domainPath = null; | |
| @Column(name = "project_id") | |
| private long projectId; | |
| @Column(name = "project_uuid") | |
| private String projectUuid; | |
| @Column(name = "project_name") | |
| private String projectName; | |
| @Column(name = "data_center_id") | |
| private long dataCenterId; | |
| @Column(name = "data_center_uuid") | |
| private String dataCenterUuid; | |
| @Column(name = "data_center_name") | |
| private String dataCenterName; | |
| @Column(name = "store_scope") | |
| @Enumerated(value = EnumType.STRING) | |
| private ScopeType dataStoreScope; | |
| @Column(name = "store_id") | |
| private Long dataStoreId; // this can be null for baremetal templates | |
| @Column(name = "download_state") | |
| @Enumerated(EnumType.STRING) | |
| private Status downloadState; | |
| @Column(name = "download_pct") | |
| private int downloadPercent; | |
| @Column(name = "error_str") | |
| private String errorString; | |
| @Column(name = "size") | |
| private long size; | |
| @Column(name = "physical_size") | |
| private long physicalSize; | |
| @Column(name = "template_state") | |
| @Enumerated(EnumType.STRING) | |
| private State templateState; | |
| @Column(name = "destroyed") | |
| boolean destroyed = false; | |
| @Column(name = "lp_account_id") | |
| private Long sharedAccountId; | |
| @Column(name = "parent_template_id") | |
| private Long parentTemplateId; | |
| @Column(name = "parent_template_uuid") | |
| private String parentTemplateUuid; | |
| @Column(name = "detail_name") | |
| private String detailName; | |
| @Column(name = "detail_value") | |
| private String detailValue; | |
| @Column(name = "state") | |
| @Enumerated(EnumType.STRING) | |
| ObjectInDataStoreStateMachine.State state; | |
| @Column(name = "temp_zone_pair") | |
| private String tempZonePair; // represent a distinct (templateId, data_center_id) pair | |
| @Column(name = "direct_download") | |
| private boolean directDownload; | |
| @Column(name = "deploy_as_is") | |
| private boolean deployAsIs; | |
| @Column(name = "for_cks") | |
| private boolean forCks; | |
| @Column(name = "user_data_id") | |
| private Long userDataId; | |
| @Column(name = "user_data_uuid") | |
| private String userDataUuid; | |
| @Column(name = "user_data_name") | |
| private String userDataName; | |
| @Column(name = "user_data_policy") | |
| private String userDataPolicy; | |
| @Column(name = "user_data_params") | |
| private String userDataParams; | |
| @Column(name = "extension_id") | |
| private Long extensionId; | |
| @Column(name = "extension_uuid") | |
| private String extensionUuid; | |
| @Column(name = "extension_name") | |
| private String extensionName; | |
| public TemplateJoinVO() { | |
| } | |
| @Override | |
| public String getUuid() { | |
| return uuid; | |
| } | |
| public String getName() { | |
| return name; | |
| } | |
| public Date getCreated() { | |
| return created; | |
| } | |
| public Date getRemoved() { | |
| return removed; | |
| } | |
| @Override | |
| public long getAccountId() { | |
| return accountId; | |
| } | |
| @Override | |
| public String getAccountUuid() { | |
| return accountUuid; | |
| } | |
| @Override | |
| public String getAccountName() { | |
| return accountName; | |
| } | |
| @Override | |
| public Account.Type getAccountType() { | |
| return accountType; | |
| } | |
| @Override | |
| public long getDomainId() { | |
| return domainId; | |
| } | |
| @Override | |
| public String getDomainUuid() { | |
| return domainUuid; | |
| } | |
| @Override | |
| public String getDomainName() { | |
| return domainName; | |
| } | |
| @Override | |
| public String getDomainPath() { | |
| return domainPath; | |
| } | |
| public long getProjectId() { | |
| return projectId; | |
| } | |
| @Override | |
| public String getProjectUuid() { | |
| return projectUuid; | |
| } | |
| @Override | |
| public String getProjectName() { | |
| return projectName; | |
| } | |
| public boolean isExtractable() { | |
| return extractable; | |
| } | |
| public Storage.TemplateType getTemplateType() { | |
| return templateType; | |
| } | |
| public long getDataCenterId() { | |
| return dataCenterId; | |
| } | |
| public String getDataCenterUuid() { | |
| return dataCenterUuid; | |
| } | |
| public String getDataCenterName() { | |
| return dataCenterName; | |
| } | |
| public String getUniqueName() { | |
| return uniqueName; | |
| } | |
| public boolean isPublicTemplate() { | |
| return publicTemplate; | |
| } | |
| public boolean isFeatured() { | |
| return featured; | |
| } | |
| public String getUrl() { | |
| return url; | |
| } | |
| public boolean isRequiresHvm() { | |
| return requiresHvm; | |
| } | |
| public int getBits() { | |
| return bits; | |
| } | |
| public String getChecksum() { | |
| return checksum; | |
| } | |
| public String getDisplayText() { | |
| return displayText; | |
| } | |
| public boolean isEnablePassword() { | |
| return enablePassword; | |
| } | |
| public boolean isDynamicallyScalable() { | |
| return dynamicallyScalable; | |
| } | |
| public long getGuestOSId() { | |
| return guestOSId; | |
| } | |
| public String getGuestOSUuid() { | |
| return guestOSUuid; | |
| } | |
| public String getGuestOSName() { | |
| return guestOSName; | |
| } | |
| public Long getGuestOSCategoryId() { | |
| return guestOSCategoryId; | |
| } | |
| public boolean isBootable() { | |
| return bootable; | |
| } | |
| public boolean isPrepopulate() { | |
| return prepopulate; | |
| } | |
| public boolean isCrossZones() { | |
| return crossZones; | |
| } | |
| public HypervisorType getHypervisorType() { | |
| return hypervisorType; | |
| } | |
| public Long getSourceTemplateId() { | |
| return sourceTemplateId; | |
| } | |
| public String getSourceTemplateUuid() { | |
| return sourceTemplateUuid; | |
| } | |
| public String getTemplateTag() { | |
| return templateTag; | |
| } | |
| public int getSortKey() { | |
| return sortKey; | |
| } | |
| public boolean isEnableSshKey() { | |
| return enableSshKey; | |
| } | |
| public Status getDownloadState() { | |
| return downloadState; | |
| } | |
| public long getSize() { | |
| return size; | |
| } | |
| public long getPhysicalSize() { | |
| return physicalSize; | |
| } | |
| public boolean isDestroyed() { | |
| return destroyed; | |
| } | |
| public Long getSharedAccountId() { | |
| return sharedAccountId; | |
| } | |
| public String getDetailName() { | |
| return detailName; | |
| } | |
| public String getDetailValue() { | |
| return detailValue; | |
| } | |
| public Date getCreatedOnStore() { | |
| return createdOnStore; | |
| } | |
| public Storage.ImageFormat getFormat() { | |
| return format; | |
| } | |
| public int getDownloadPercent() { | |
| return downloadPercent; | |
| } | |
| public String getErrorString() { | |
| return errorString; | |
| } | |
| public Long getDataStoreId() { | |
| return dataStoreId; | |
| } | |
| public ObjectInDataStoreStateMachine.State getState() { | |
| return state; | |
| } | |
| public ScopeType getDataStoreScope() { | |
| return dataStoreScope; | |
| } | |
| public String getTempZonePair() { | |
| return tempZonePair; | |
| } | |
| public State getTemplateState() { | |
| return templateState; | |
| } | |
| @Override | |
| public Class<?> getEntityType() { | |
| return VirtualMachineTemplate.class; | |
| } | |
| public void setAccountId(long accountId) { | |
| this.accountId = accountId; | |
| } | |
| public boolean isDirectDownload() { | |
| return directDownload; | |
| } | |
| public boolean isDeployAsIs() { | |
| return deployAsIs; | |
| } | |
| public boolean isForCks() { | |
| return forCks; | |
| } | |
| public Object getParentTemplateId() { | |
| return parentTemplateId; | |
| } | |
| public String getParentTemplateUuid() { | |
| return parentTemplateUuid; | |
| } | |
| public Long getUserDataId() { | |
| return userDataId; | |
| } | |
| public String getUserDataUUid() { | |
| return userDataUuid; | |
| } | |
| public String getUserDataName() { | |
| return userDataName; | |
| } | |
| public String getUserDataPolicy() { | |
| return userDataPolicy; | |
| } | |
| public String getUserDataParams() { | |
| return userDataParams; | |
| } | |
| public CPU.CPUArch getArch() { | |
| return arch; | |
| } | |
| public Long getExtensionId() { | |
| return extensionId; | |
| } | |
| public String getExtensionUuid() { | |
| return extensionUuid; | |
| } | |
| public String getExtensionName() { | |
| return extensionName; | |
| } | |
| } |