package com.bocloud.cmp.provider.compute;

import com.bocloud.cmp.model.ResourcePoolBean;
import com.bocloud.cmp.model.ResourcePoolModel;
import com.bocloud.cmp.model.agile.AgileResourcePoolModel;
import com.bocloud.cmp.provider.SuperProvider;
import com.bocloud.common.model.BocloudResult;

/**
 * 资源池操作接口
 *
 * @author wangyu
 * @version 1.0
 * @since 2017年11月23日
 */
public interface ResourcePoolProvider extends SuperProvider {
    @Override
    public boolean accessable();

    /**
     * 创建资源池
     *
     * @param model
     * @return
     */
    public BocloudResult create(ResourcePoolModel model);

    /**
     * 修改资源池
     *
     * @param bean
     * @return
     */
    public BocloudResult modify(ResourcePoolBean bean);

    /**
     * 删除资源池
     *
     * @param poolName
     * @return
     */
    public BocloudResult remove(String poolName);

    /**
     * 获取数据中心下的所有资源池
     *
     * @param vdcName
     * @return
     */
    public BocloudResult list(String vdcName);

    default BocloudResult create(AgileResourcePoolModel model) {
        return new BocloudResult(false, "need implement");
    }

    default BocloudResult listByResign(AgileResourcePoolModel model) {
        return new BocloudResult(true, "");
    }

    default BocloudResult removeHuaWeiSdnPool(AgileResourcePoolModel model) {
        return new BocloudResult(true, "");
    }

    default BocloudResult listResourcePoolLink() {
        return new BocloudResult(true, "");
    }
}
