package com.bocloud.cmp.provider.storage;

import com.bocloud.cmp.model.VolumePoolModel;
import com.bocloud.cmp.provider.SuperProvider;
import com.bocloud.common.model.BocloudResult;

/**
 * 存储池
 *
 * @author luyanchao
 * @since 2019/1/24 16:15
 */
public interface VolumePoolProvider extends SuperProvider {
    /**
     * 查询所有存储池
     *
     * @return
     */
    default public BocloudResult list() {
        return null;
    }

    /**
     * 查询存储服务器下所有存储池
     *
     * @param storageHostName 存储服务器的hostName
     */
    default public BocloudResult list(String storageHostName) {
        return null;
    }

    ;

    /**
     * 查询存储池
     *
     * @param volumePoolUuid 存储池uuid
     * @return
     */
    default public BocloudResult get(String volumePoolUuid) {
        return null;
    }

    /**
     * 查询存储池
     *
     * @param volumePoolUuid 存储池uuid
     * @return
     */
    default public BocloudResult get(String volumePoolUuid, String poolType) {
        return null;
    }

    /**
     * 创建存储池
     *
     * @param model
     * @return
     */
    default public BocloudResult create(VolumePoolModel model) {
        return null;
    }

    /**
     * 修改存储池
     *
     * @param model
     * @return
     */
    default public BocloudResult modify(VolumePoolModel model) {
        return null;
    }

    /**
     * 删除存储池
     *
     * @param model
     * @return
     */
    default public BocloudResult remove(VolumePoolModel model) {
        return null;
    }

    /**
     * 添加成员（硬盘或者OSD）
     *
     * @param model
     * @return
     */
    default public BocloudResult addMember(VolumePoolModel model) {
        return null;
    }

    /**
     * 删除成员（硬盘或者OSD）
     *
     * @param model
     * @return
     */
    default public BocloudResult removeMember(VolumePoolModel model) {
        return null;
    }
}
