All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.huawei.openstack4j.openstack.storage.block.domain.CinderBackendStoragePool Maven / Gradle / Ivy

/*******************************************************************************
 * 	Copyright 2016 ContainX and OpenStack4j                                          
 * 	                                                                                 
 * 	Licensed 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.huawei.openstack4j.openstack.storage.block.domain;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.huawei.openstack4j.openstack.common.ListResult;

import java.util.List;

/**
 * Represents a back-end storage pool for Cinder.
 *
 * @author chenguofeng
 *
 */
public class CinderBackendStoragePool implements VolumeBackendPool {
    private String name;
    private CinderCapabilities capabilities;

    @Override
    public String getName() {
        return name;
    }

    @Override
    public Capabilities getCapabilities() {
        return capabilities;
    }

    public static class CinderCapabilities implements Capabilities {
        @JsonProperty("pool_name")
        private String poolname;
        @JsonProperty("filter_function")
        private String filterfunction;
        @JsonProperty("goodness_function")
        private String goodnessfunction;
        @JsonProperty("total_volumes")
        private Integer totalvolumes;
        @JsonProperty("multiattach")
        private Boolean multiattach;
        @JsonProperty("provisioned_capacity_gb")
        private Long provisionedcapacitygb;
        @JsonProperty("timestamp")
        private String timestamp;
        @JsonProperty("allocated_capacity_gb")
        private Integer allocatedcapacitygb;
        @JsonProperty("volume_backend_name")
        private String volumeBackendName;
        @JsonProperty("thin_provisioning_support")
        private Boolean thinprovisioningsupport;
        @JsonProperty("free_capacity_gb")
        private Long freeCapacityGb;
        @JsonProperty("driver_version")
        private String driverVersion;
        @JsonProperty("location_info")
        private String locationinfo;
        @JsonProperty("total_capacity_gb")
        private Long totalCapacityGb;
        @JsonProperty("thick_provisioning_support")
        private Boolean thickprovisioningsupport;
        @JsonProperty("reserved_percentage")
        private Integer reservedPercentage;
        @JsonProperty("QoS_support")
        private Boolean qosSupport;
        @JsonProperty("max_over_subscription_ratio")
        private Long maxoversubscription_ratio;
        @JsonProperty("vendor_name")
        private String vendorname;
        private String pools;
        @JsonProperty("storage_protocol")
        private String storageProtocol;



        @Override
        public String getPoolname() {
            return poolname;
        }

        @Override
        public String getGoodnessfunction() { return goodnessfunction; }
        @Override
        public Integer getTotalvolumes() {
            return totalvolumes;
        }
        @Override
        public Boolean getMultiattach() { return multiattach; }
        @Override
        public Long getProvisionedcapacitygb() { return provisionedcapacitygb; }
        @Override
        public String getTimestamp() { return timestamp; }
        @Override
        public Integer getAllocatedcapacitygb() { return allocatedcapacitygb; }

        @Override
        public Boolean getThinprovisioningsupport() { return thinprovisioningsupport; }
        @Override
        public String getLocationinfo() { return locationinfo; }
        @Override
        public Boolean getThickprovisioningsupport() { return thickprovisioningsupport; }
        @Override
        public Long getMaxoversubscription_ratio() { return maxoversubscription_ratio; }
        @Override
        public String getvendorname() { return vendorname; }
        @Override
        public String getFilterfunction() { return filterfunction; }
        @Override
        public Boolean getQosSupport() {
            return qosSupport;
        }

        @Override
        public String getVolumeBackendName() {
            return volumeBackendName;
        }

        @Override
        public String getDriverVersion() {
            return driverVersion;
        }

        @Override
        public Long getTotalCapacityGb() {
            return totalCapacityGb;
        }

        @Override
        public Long getFreeCapacityGb() {
            return freeCapacityGb;
        }

        @Override
        public Integer getReservedPercentage() {
            return reservedPercentage;
        }

        @Override
        public String getStorageProtocol() {
            return storageProtocol;
        }
    }

    public static class VolumeBackendPools extends ListResult {
        private static final long serialVersionUID = 1L;

        @JsonProperty("pools")
        private List pools;

        @Override
        protected List value() {
            return pools;
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy