// Copyright 2012 Citrix Systems, Inc. Licensed under the // Apache License, Version 2.0 (the "License"); you may not use this // file except in compliance with the License. Citrix Systems, Inc. // reserves all rights not expressly granted by 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. // // Automatically generated by addcopyright.py at 04/03/2012 package com.cloud.storage; import java.util.ArrayList; import java.util.List; public class Storage { public static enum ImageFormat { QCOW2(true, true, false), RAW(false, false, false), VHD(true, true, true), ISO(false, false, false), OVA(true, true, true, "ova"), BAREMETAL(false, false, false); private final boolean thinProvisioned; private final boolean supportSparse; private final boolean supportSnapshot; private final String fileExtension; private ImageFormat(boolean thinProvisioned, boolean supportSparse, boolean supportSnapshot) { this.thinProvisioned = thinProvisioned; this.supportSparse = supportSparse; this.supportSnapshot = supportSnapshot; fileExtension = null; } private ImageFormat(boolean thinProvisioned, boolean supportSparse, boolean supportSnapshot, String fileExtension) { this.thinProvisioned = thinProvisioned; this.supportSparse = supportSparse; this.supportSnapshot = supportSnapshot; this.fileExtension = fileExtension; } public boolean isThinProvisioned() { return thinProvisioned; } public boolean supportsSparse() { return supportSparse; } public boolean supportSnapshot() { return supportSnapshot; } public String getFileExtension() { if (fileExtension == null) return toString().toLowerCase(); return fileExtension; } } public static enum FileSystem { Unknown, ext3, ntfs, fat, fat32, ext2, ext4, cdfs, hpfs, ufs, hfs, hfsp } public static enum TemplateType { SYSTEM, /* routing, system vm template */ BUILTIN, /* buildin template */ PERHOST, /* every host has this template, don't need to install it in secondary storage */ USER /* User supplied template/iso */ } public static enum StoragePoolType { Filesystem(false), // local directory NetworkFilesystem(true), // NFS or CIFS IscsiLUN(true), // shared LUN, with a clusterfs overlay Iscsi(true), // for e.g., ZFS Comstar ISO(false), // for iso image LVM(false), // XenServer local LVM SR SharedMountPoint(true), VMFS(true), // VMware VMFS storage PreSetup(true), // for XenServer, Storage Pool is set up by customers. EXT(false), // XenServer local EXT SR OCFS2(true); boolean shared; StoragePoolType(boolean shared) { this.shared = shared; } public boolean isShared() { return shared; } } public static List<StoragePoolType> getNonSharedStoragePoolTypes() { List<StoragePoolType> nonSharedStoragePoolTypes = new ArrayList<StoragePoolType>(); for (StoragePoolType storagePoolType : StoragePoolType.values()) { if (!storagePoolType.isShared()) { nonSharedStoragePoolTypes.add(storagePoolType); } } return nonSharedStoragePoolTypes; } public static enum StorageResourceType { STORAGE_POOL, STORAGE_HOST, SECONDARY_STORAGE, LOCAL_SECONDARY_STORAGE } }