blob: 2ad5e0b26f701a5ce9220cc76d1b41d0e5dfb34c [file] [log] [blame]
// 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.agent.api.to;
import org.apache.cloudstack.api.InternalIdentity;
import com.cloud.storage.Storage.StoragePoolType;
import com.cloud.storage.StoragePool;
import com.cloud.storage.Volume;
public class VolumeTO implements InternalIdentity {
protected VolumeTO() {
}
private long id;
private String name;
private String mountPoint;
private String path;
private long size;
private Volume.Type type;
private StoragePoolType storagePoolType;
private String storagePoolUuid;
private long deviceId;
private String chainInfo;
private String guestOsType;
private Long bytesReadRate;
private Long bytesWriteRate;
private Long iopsReadRate;
private Long iopsWriteRate;
private String cacheMode;
private Long chainSize;
public VolumeTO(long id, Volume.Type type, StoragePoolType poolType, String poolUuid, String name, String mountPoint, String path, long size, String chainInfo) {
this.id = id;
this.name = name;
this.path = path;
this.size = size;
this.type = type;
this.storagePoolType = poolType;
this.storagePoolUuid = poolUuid;
this.mountPoint = mountPoint;
this.chainInfo = chainInfo;
}
public VolumeTO(long id, Volume.Type type, StoragePoolType poolType, String poolUuid, String name, String mountPoint, String path, long size, String chainInfo,
String guestOsType) {
this.id = id;
this.name = name;
this.path = path;
this.size = size;
this.type = type;
this.storagePoolType = poolType;
this.storagePoolUuid = poolUuid;
this.mountPoint = mountPoint;
this.chainInfo = chainInfo;
this.guestOsType = guestOsType;
}
public VolumeTO(Volume volume, StoragePool pool) {
this.id = volume.getId();
this.name = volume.getName();
this.path = volume.getPath();
this.size = volume.getSize();
this.type = volume.getVolumeType();
this.storagePoolType = pool.getPoolType();
this.storagePoolUuid = pool.getUuid();
this.mountPoint = volume.getFolder();
this.chainInfo = volume.getChainInfo();
this.chainSize = volume.getVmSnapshotChainSize();
if (volume.getDeviceId() != null)
this.deviceId = volume.getDeviceId();
}
public long getDeviceId() {
return deviceId;
}
public void setDeviceId(long id) {
this.deviceId = id;
}
@Override
public long getId() {
return id;
}
public String getPath() {
return path;
}
public long getSize() {
return size;
}
public Volume.Type getType() {
return type;
}
public String getName() {
return name;
}
public String getMountPoint() {
return mountPoint;
}
public StoragePoolType getPoolType() {
return storagePoolType;
}
public String getPoolUuid() {
return storagePoolUuid;
}
public String getChainInfo() {
return chainInfo;
}
public void setChainInfo(String chainInfo) {
this.chainInfo = chainInfo;
}
public String getOsType() {
return guestOsType;
}
public void setPath(String path) {
this.path = path;
}
@Override
public String toString() {
return new StringBuilder("Vol[").append(id).append("|").append(type).append("|").append(path).append("|").append(size).append("]").toString();
}
public void setBytesReadRate(Long bytesReadRate) {
this.bytesReadRate = bytesReadRate;
}
public Long getBytesReadRate() {
return bytesReadRate;
}
public void setBytesWriteRate(Long bytesWriteRate) {
this.bytesWriteRate = bytesWriteRate;
}
public Long getBytesWriteRate() {
return bytesWriteRate;
}
public void setIopsReadRate(Long iopsReadRate) {
this.iopsReadRate = iopsReadRate;
}
public Long getIopsReadRate() {
return iopsReadRate;
}
public void setIopsWriteRate(Long iopsWriteRate) {
this.iopsWriteRate = iopsWriteRate;
}
public Long getIopsWriteRate() {
return iopsWriteRate;
}
public void setCacheMode(String cacheMode) {
this.cacheMode = cacheMode;
}
public String getCacheMode() {
return cacheMode;
}
public Long getChainSize() {
return chainSize;
}
public void setChainSize(Long chainSize) {
this.chainSize = chainSize;
}
}