mirror of https://github.com/apache/cloudstack.git
127 lines
4.0 KiB
Java
Executable File
127 lines
4.0 KiB
Java
Executable File
// 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
|
|
}
|
|
}
|