package com.bocloud.cmp.provider.agile.network;

import com.bocloud.common.model.BocloudResult;

/**
 * @Company: 博云 www.bocloud.com
 * @ClassName: LogicTopoProvider
 * @Description:拓扑结构
 * @author: zhenpingLi/李振平
 * @date: 2020/3/18 15:38
 */
public interface TopologyProvider {
    //-------------------------------逻辑拓扑------------------------------------------
    //查询终端端口，VM/BM列表
    default BocloudResult<String> logicEndport() {
        return new BocloudResult<>(false, "need implement");
    }

    //查询逻辑接口的设备映射信息列表
    default BocloudResult<String> logicInterfaceMap() {
        return new BocloudResult<>(false, "need implement");
    }

    //查询逻辑端口的设备映射信息列表
    default BocloudResult<String> logicPortMap() {
        return new BocloudResult<>(false, "need implement");
    }

    //查询指定条件下所有逻辑路由器列表的设备映射信息
    default BocloudResult<String> logicRouterMap() {
        return new BocloudResult<>(false, "need implement");
    }

    //查询逻辑交换机的设备映射信息列表
    default BocloudResult<String> logicSwitchMap() {
        return new BocloudResult<>(false, "need implement");
    }

    //查询vxlan隧道列表
    default BocloudResult<String> logicVxlanTunnels() {
        return new BocloudResult<>(false, "need implement");
    }

    //查询所有VXLAN头端复制表信息
    default BocloudResult<String> logicVniPeers() {
        return new BocloudResult<>(false, "need implement");
    }

    //根据条件查询设备
    default BocloudResult<String> logicVasMap() {
        return new BocloudResult<>(false, "need implement");
    }

    //查询设备组下所有设备及端口
    default BocloudResult<String> logicDevice(String deviceUuid) {
        return new BocloudResult<>(false, "need implement");
    }

    //查询设备组详情
    default BocloudResult<String> logicDevicegroup(String deviceGroupUuid) {
        return new BocloudResult<>(false, "need implement");
    }

    //获取版本号
    default BocloudResult<String> logicAcVersion() {
        return new BocloudResult<>(false, "need implement");
    }

    //-------------------------------物理拓扑------------------------------------------
    //查询设备组列表
    default BocloudResult<String> dcnDeviceGroup() {
        return new BocloudResult<>(false, "need implement");
    }

    //查询设备列表
    default BocloudResult<String> dcnDevice() {
        return new BocloudResult<>(false, "need implement");
    }

    //查询主机链路
    default BocloudResult<String> dcnGetHostLinks() {
        return new BocloudResult<>(false, "need implement");
    }

    //查询Host列表
    default BocloudResult<String> dcnGetHosts() {
        return new BocloudResult<>(false, "need implement");
    }

    //查询设备链路
    default BocloudResult<String> dcnGetLinks() {
        return new BocloudResult<>(false, "need implement");
    }

    //查询端口列表
    default BocloudResult<String> dcnGetPorts() {
        return new BocloudResult<>(false, "need implement");
    }

    //查询资源池内拓扑
    default BocloudResult<String> dcnPool(String poolUuid) {
        return new BocloudResult<>(false, "need implement");
    }

    //查询DCN网络拓扑
    default BocloudResult<String> dcnResourcePool() {
        return new BocloudResult<>(false, "need implement");
    }
}
