当前位置: 首页>>代码示例>>Java>>正文


Java Port类代码示例

本文整理汇总了Java中org.onosproject.ovsdb.rfc.table.Port的典型用法代码示例。如果您正苦于以下问题:Java Port类的具体用法?Java Port怎么用?Java Port使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


Port类属于org.onosproject.ovsdb.rfc.table包,在下文中一共展示了Port类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: createPort

import org.onosproject.ovsdb.rfc.table.Port; //导入依赖的package包/类
@Override
public void createPort(String bridgeName, String portName) {
    String bridgeUuid = getBridgeUuid(bridgeName);
    if (bridgeUuid == null) {
        log.error("Can't find bridge {} in {}", bridgeName,
                  nodeId.getIpAddress());
        return;
    }

    DatabaseSchema dbSchema = schema.get(OvsdbConstant.DATABASENAME);
    String portUuid = getPortUuid(portName, bridgeUuid);

    Port port = (Port) TableGenerator
            .createTable(dbSchema, OvsdbTable.PORT);

    port.setName(portName);
    if (portUuid == null) {
        insertConfig(OvsdbConstant.PORT, "_uuid", OvsdbConstant.BRIDGE,
                     "ports", bridgeUuid, port.getRow());
    } else {
        updateConfig(OvsdbConstant.PORT, "_uuid", portUuid, port.getRow());
    }

    return;
}
 
开发者ID:shlee89,项目名称:athena,代码行数:26,代码来源:DefaultOvsdbClient.java

示例2: createPort

import org.onosproject.ovsdb.rfc.table.Port; //导入依赖的package包/类
@Override
public void createPort(String bridgeName, String portName) {
    String bridgeUuid = getBridgeUuid(bridgeName);
    if (bridgeUuid == null) {
        log.error("Can't find bridge {} in {}", bridgeName, nodeId.getIpAddress());
        return;
    }

    DatabaseSchema dbSchema = schema.get(DATABASENAME);
    String portUuid = getPortUuid(portName, bridgeUuid);
    Port port = (Port) TableGenerator.createTable(dbSchema, OvsdbTable.PORT);
    port.setName(portName);
    if (portUuid == null) {
        insertConfig(PORT, UUID, BRIDGE, PORTS, bridgeUuid, port.getRow());
    }
}
 
开发者ID:opennetworkinglab,项目名称:onos,代码行数:17,代码来源:DefaultOvsdbClient.java

示例3: getInterfacebyPort

import org.onosproject.ovsdb.rfc.table.Port; //导入依赖的package包/类
private Interface getInterfacebyPort(String portUuid, String portName) {
    DatabaseSchema dbSchema = schema.get(DATABASENAME);

    Row portRow = getRow(DATABASENAME, PORT, portUuid);
    Port port = (Port) TableGenerator.getTable(dbSchema, portRow,
            OvsdbTable.PORT);
    if (port == null) {
        return null;
    }

    OvsdbSet setInterfaces = (OvsdbSet) port.getInterfacesColumn().data();
    Set<Uuid> interfaces = setInterfaces.set();

    return interfaces.stream().map(intf -> (Interface) TableGenerator
            .getTable(dbSchema, getRow(DATABASENAME,
                    INTERFACE, intf.value()), OvsdbTable.INTERFACE))
            .filter(intf -> Objects.nonNull(intf) && portName.equalsIgnoreCase(intf.getName()))
            .findFirst().orElse(null);
}
 
开发者ID:opennetworkinglab,项目名称:onos,代码行数:20,代码来源:DefaultOvsdbClient.java

示例4: getPortUuid

import org.onosproject.ovsdb.rfc.table.Port; //导入依赖的package包/类
@Override
public String getPortUuid(String portName, String bridgeUuid) {
    DatabaseSchema dbSchema = schema.get(OvsdbConstant.DATABASENAME);

    Row bridgeRow = getRow(OvsdbConstant.DATABASENAME,
                           OvsdbConstant.BRIDGE, bridgeUuid);

    Bridge bridge = (Bridge) TableGenerator.getTable(dbSchema, bridgeRow,
                                                     OvsdbTable.BRIDGE);
    if (bridge != null) {
        OvsdbSet setPorts = (OvsdbSet) bridge.getPortsColumn().data();
        @SuppressWarnings("unchecked")
        Set<Uuid> ports = setPorts.set();
        if (ports == null || ports.size() == 0) {
            log.warn("The port uuid is null");
            return null;
        }

        for (Uuid uuid : ports) {
            Row portRow = getRow(OvsdbConstant.DATABASENAME,
                                 OvsdbConstant.PORT, uuid.value());
            Port port = (Port) TableGenerator.getTable(dbSchema, portRow,
                                                       OvsdbTable.PORT);
            if (port != null && portName.equalsIgnoreCase(port.getName())) {
                return uuid.value();
            }
        }

    }
    return null;
}
 
开发者ID:shlee89,项目名称:athena,代码行数:32,代码来源:DefaultOvsdbClient.java

示例5: getInterfaceUuid

import org.onosproject.ovsdb.rfc.table.Port; //导入依赖的package包/类
@Override
public String getInterfaceUuid(String portUuid, String portName) {
    DatabaseSchema dbSchema = schema.get(OvsdbConstant.DATABASENAME);

    Row portRow = getRow(OvsdbConstant.DATABASENAME, OvsdbConstant.PORT,
                         portUuid);
    Port port = (Port) TableGenerator.getTable(dbSchema, portRow,
                                               OvsdbTable.PORT);

    if (port != null) {
        OvsdbSet setInterfaces = (OvsdbSet) port.getInterfacesColumn().data();
        @SuppressWarnings("unchecked")
        Set<Uuid> interfaces = setInterfaces.set();

        if (interfaces == null || interfaces.size() == 0) {
            log.warn("The interface uuid is null");
            return null;
        }

        for (Uuid uuid : interfaces) {
            Row intfRow = getRow(OvsdbConstant.DATABASENAME,
                                 OvsdbConstant.INTERFACE, uuid.value());
            Interface intf = (Interface) TableGenerator
                    .getTable(dbSchema, intfRow, OvsdbTable.INTERFACE);
            if (intf != null && portName.equalsIgnoreCase(intf.getName())) {
                return uuid.value();
            }
        }

    }

    return null;
}
 
开发者ID:shlee89,项目名称:athena,代码行数:34,代码来源:DefaultOvsdbClient.java

示例6: getPortUuid

import org.onosproject.ovsdb.rfc.table.Port; //导入依赖的package包/类
@Override
public String getPortUuid(String portName, String bridgeUuid) {
    DatabaseSchema dbSchema = schema.get(DATABASENAME);

    Row bridgeRow = getRow(DATABASENAME, BRIDGE, bridgeUuid);
    Bridge bridge = (Bridge) TableGenerator.getTable(dbSchema, bridgeRow,
                                                     OvsdbTable.BRIDGE);
    if (bridge != null) {
        OvsdbSet setPorts = (OvsdbSet) bridge.getPortsColumn().data();
        @SuppressWarnings("unchecked")
        Set<Uuid> ports = setPorts.set();
        if (ports == null || ports.isEmpty()) {
            log.warn("The port uuid is null");
            return null;
        }

        for (Uuid uuid : ports) {
            Row portRow = getRow(DATABASENAME, PORT, uuid.value());
            Port port = (Port) TableGenerator.getTable(dbSchema, portRow,
                                                       OvsdbTable.PORT);
            if (port != null && portName.equalsIgnoreCase(port.getName())) {
                return uuid.value();
            }
        }
    }
    return null;
}
 
开发者ID:opennetworkinglab,项目名称:onos,代码行数:28,代码来源:DefaultOvsdbClient.java

示例7: applyQos

import org.onosproject.ovsdb.rfc.table.Port; //导入依赖的package包/类
@Override
public void applyQos(PortNumber portNumber, String qosName) {
    DatabaseSchema dbSchema = schema.get(DATABASENAME);
    OvsdbRowStore portRowStore = getRowStore(DATABASENAME, PORT);
    if (portRowStore == null) {
        log.debug("The port uuid is null");
        return;
    }
    OvsdbRowStore qosRowStore = getRowStore(DATABASENAME, QOS);
    if (qosRowStore == null) {
        log.debug("The qos uuid is null");
        return;
    }

    // Due to Qos Table doesn't have a unique identifier except uuid, unlike
    // Bridge or Port Table has a name column,in order to make the api more
    // general, put qos name in external_ids column of Qos Table if this qos
    // created by onos.
    ConcurrentMap<String, Row> qosTableRows = qosRowStore.getRowStore();
    ConcurrentMap<String, Row> portTableRows = portRowStore.getRowStore();
    Row qosRow = qosTableRows.values().stream().filter(r -> {
        OvsdbMap ovsdbMap = (OvsdbMap) (r.getColumn(EXTERNAL_ID).data());
        return qosName.equals(ovsdbMap.map().get(QOS_EXTERNAL_ID_KEY));
    }).findFirst().orElse(null);

    Row portRow = portTableRows.values().stream()
            .filter(r -> r.getColumn("name").data().equals(portNumber.name()))
            .findFirst().orElse(null);
    if (portRow != null && qosRow != null) {
        String qosId = qosRow.uuid().value();
        Uuid portUuid = portRow.uuid();
        Map<String, Column> columns = new HashMap<>();
        Row newPortRow = new Row(PORT, portUuid, columns);
        Port newport = new Port(dbSchema, newPortRow);
        columns.put(Port.PortColumn.QOS.columnName(), newport.getQosColumn());
        newport.setQos(Uuid.uuid(qosId));
        updateConfig(PORT, UUID, portUuid.value(), newport.getRow());
    }
}
 
开发者ID:opennetworkinglab,项目名称:onos,代码行数:40,代码来源:DefaultOvsdbClient.java

示例8: getPorts

import org.onosproject.ovsdb.rfc.table.Port; //导入依赖的package包/类
@Override
public List<OvsdbPortName> getPorts(List<String> portNames, DeviceId deviceId) {
    Uuid bridgeUuid = getBridgeUuid(deviceId);
    if (bridgeUuid == null) {
        log.error("Can't find the bridge for the deviceId {}", deviceId);
        return Collections.emptyList();
    }
    DatabaseSchema dbSchema = schema.get(DATABASENAME);
    Row bridgeRow = getRow(DATABASENAME, BRIDGE, bridgeUuid.value());
    Bridge bridge = (Bridge) TableGenerator.getTable(dbSchema, bridgeRow, OvsdbTable.BRIDGE);
    if (bridge == null) {
        return Collections.emptyList();
    }
    OvsdbSet setPorts = (OvsdbSet) bridge.getPortsColumn().data();
    Set<Uuid> portSet = setPorts.set();
    if (portSet.isEmpty()) {
        return Collections.emptyList();
    }

    Map<Uuid, Port> portMap = portSet.stream().collect(Collectors.toMap(
            java.util.function.Function.identity(), port -> (Port) TableGenerator
                    .getTable(dbSchema, getRow(DATABASENAME,
                            PORT, port.value()), OvsdbTable.PORT)));

    List<OvsdbPortName> portList = portMap.entrySet().stream().filter(port -> Objects.nonNull(port.getValue())
            && portNames.contains(port.getValue().getName())
            && Objects.nonNull(getInterfacebyPort(port.getKey().value(), port.getValue().getName())))
            .map(port -> new OvsdbPortName(port.getValue().getName())).collect(Collectors.toList());

    return Collections.unmodifiableList(portList);
}
 
开发者ID:opennetworkinglab,项目名称:onos,代码行数:32,代码来源:DefaultOvsdbClient.java

示例9: createBridge

import org.onosproject.ovsdb.rfc.table.Port; //导入依赖的package包/类
@Override
public void createBridge(String bridgeName) {
    log.debug("create bridge {}", bridgeName);

    DatabaseSchema dbSchema = schema.get(OvsdbConstant.DATABASENAME);
    if (dbSchema == null) {
        log.warn("The schema is null");
        return;
    }

    Bridge bridge = (Bridge) TableGenerator.createTable(dbSchema,
                                                        OvsdbTable.BRIDGE);
    if (bridge == null) {
        log.debug("Can not create bridge");
        return;
    }

    Set<String> failModes = new HashSet<>();
    failModes.add("secure");
    bridge.setFailMode(failModes);

    Set<String> protocols = new HashSet<>();
    protocols.add(OvsdbConstant.OPENFLOW13);
    bridge.setProtocols(protocols);

    String ovsUuid = getOvsUuid(OvsdbConstant.DATABASENAME);
    if (ovsUuid == null) {
        log.warn("The Open_vSwitch is null");
        return;
    }

    Map<String, String> options = new HashMap<>();
    options.put("disable-in-band", "true");
    bridge.setOtherConfig(options);

    String bridgeUuid = getBridgeUuid(bridgeName);
    if (bridgeUuid == null) {
        log.debug("Create a new bridge");

        bridge.setName(bridgeName);
        bridgeUuid = insertConfig(OvsdbConstant.BRIDGE, "_uuid",
                                  OvsdbConstant.DATABASENAME, "bridges",
                                  ovsUuid, bridge.getRow());

        if (bridgeUuid != null) {
            Port port = (Port) TableGenerator.createTable(dbSchema,
                                                          OvsdbTable.PORT);
            if (port != null) {
                log.debug("the port is not null");
                port.setName(bridgeName);

                insertConfig(OvsdbConstant.PORT, "_uuid", "Bridge", "ports", bridgeUuid,
                             port.getRow());
            }
        } else {
            String message = BridgeCreateException.createMessage(ovsUuid);
            throw new BridgeCreateException(message);
        }

    } else {
        log.info("Update a bridge");
        updateConfig(OvsdbConstant.BRIDGE, "_uuid", bridgeUuid, bridge.getRow());
    }

    setControllerAuto(bridgeUuid);
    log.info("Create bridge success");
}
 
开发者ID:shlee89,项目名称:athena,代码行数:68,代码来源:DefaultOvsdbClient.java

示例10: createTunnel

import org.onosproject.ovsdb.rfc.table.Port; //导入依赖的package包/类
@Override
public boolean createTunnel(String bridgeName, String portName, String tunnelType, Map<String, String> options) {

    String bridgeUuid  = getBridgeUuid(bridgeName);
    if (bridgeUuid == null) {
        log.warn("Couldn't find bridge {} in {}", bridgeName, nodeId.getIpAddress());
        return false;
    }

    if (getPortUuid(portName, bridgeUuid) != null) {
        log.warn("Port {} already exists", portName);
        // remove existing one and re-create?
        return false;
    }

    ArrayList<Operation> operations = Lists.newArrayList();
    DatabaseSchema dbSchema = schema.get(OvsdbConstant.DATABASENAME);

    // insert a new port to the port table
    Port port = (Port) TableGenerator.createTable(dbSchema, OvsdbTable.PORT);
    port.setName(portName);
    Insert portInsert = new Insert(dbSchema.getTableSchema("Port"), "Port", port.getRow());
    portInsert.getRow().put("interfaces", Uuid.uuid("Interface"));
    operations.add(portInsert);

    // update the bridge table
    Condition condition = ConditionUtil.isEqual("_uuid", Uuid.uuid(bridgeUuid));
    Mutation mutation = MutationUtil.insert("ports", Uuid.uuid("Port"));
    List<Condition> conditions = new ArrayList<>(Arrays.asList(condition));
    List<Mutation> mutations = new ArrayList<>(Arrays.asList(mutation));
    operations.add(new Mutate(dbSchema.getTableSchema("Bridge"), conditions, mutations));

    // insert a tunnel interface
    Interface intf = (Interface) TableGenerator.createTable(dbSchema, OvsdbTable.INTERFACE);
    intf.setName(portName);
    intf.setType(tunnelType);
    intf.setOptions(options);
    Insert intfInsert = new Insert(dbSchema.getTableSchema("Interface"), "Interface", intf.getRow());
    operations.add(intfInsert);

    transactConfig(OvsdbConstant.DATABASENAME, operations);
    return true;
}
 
开发者ID:shlee89,项目名称:athena,代码行数:44,代码来源:DefaultOvsdbClient.java

示例11: createInterface

import org.onosproject.ovsdb.rfc.table.Port; //导入依赖的package包/类
@Override
public boolean createInterface(String bridgeName, OvsdbInterface ovsdbIface) {
    String bridgeUuid  = getBridgeUuid(bridgeName);
    if (bridgeUuid == null) {
        log.warn("Couldn't find bridge {} in {}", bridgeName, nodeId.getIpAddress());
        return false;
    }

    if (getPortUuid(ovsdbIface.name(), bridgeUuid) != null) {
        log.warn("Interface {} already exists", ovsdbIface.name());
        // remove existing one and re-create?
        return false;
    }

    ArrayList<Operation> operations = Lists.newArrayList();
    DatabaseSchema dbSchema = schema.get(DATABASENAME);

    // insert a new port with the interface name
    Port port = (Port) TableGenerator.createTable(dbSchema, OvsdbTable.PORT);
    port.setName(ovsdbIface.name());
    Insert portInsert = new Insert(dbSchema.getTableSchema(PORT), PORT, port.getRow());
    portInsert.getRow().put(INTERFACES, Uuid.uuid(INTERFACE));
    operations.add(portInsert);

    // update the bridge table with the new port
    Condition condition = ConditionUtil.isEqual(UUID, Uuid.uuid(bridgeUuid));
    Mutation mutation = MutationUtil.insert(PORTS, Uuid.uuid(PORT));
    List<Condition> conditions = Lists.newArrayList(condition);
    List<Mutation> mutations = Lists.newArrayList(mutation);
    operations.add(new Mutate(dbSchema.getTableSchema(BRIDGE), conditions, mutations));

    // insert an interface
    Interface intf = (Interface) TableGenerator.createTable(dbSchema, OvsdbTable.INTERFACE);
    intf.setName(ovsdbIface.name());

    intf.setType(ovsdbIface.typeToString());

    if (ovsdbIface.mtu().isPresent()) {
        Set<Long> mtuSet = Sets.newConcurrentHashSet();
        mtuSet.add(ovsdbIface.mtu().get());
        intf.setMtu(mtuSet);
        intf.setMtuRequest(mtuSet);
    }

    intf.setOptions(ovsdbIface.options());
    Insert intfInsert = new Insert(dbSchema.getTableSchema(INTERFACE), INTERFACE, intf.getRow());
    operations.add(intfInsert);

    transactConfig(DATABASENAME, operations);
    log.info("Created interface {}", ovsdbIface);
    return true;
}
 
开发者ID:opennetworkinglab,项目名称:onos,代码行数:53,代码来源:DefaultOvsdbClient.java


注:本文中的org.onosproject.ovsdb.rfc.table.Port类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。