public ManagerEntryBuilder(ManagerEntry base) { if (base.getKey() == null) { this._key = new ManagerEntryKey( base.getTarget() ); this._target = base.getTarget(); } else { this._key = base.getKey(); this._target = _key.getTarget(); } this._numberOfConnections = base.getNumberOfConnections(); this._connected = base.isConnected(); if (base instanceof ManagerEntryImpl) { ManagerEntryImpl impl = (ManagerEntryImpl) base; if (!impl.augmentation.isEmpty()) { this.augmentation = new HashMap<>(impl.augmentation); } } else if (base instanceof AugmentationHolder) { @SuppressWarnings("unchecked") AugmentationHolder<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ManagerEntry> casted =(AugmentationHolder<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ManagerEntry>) base; if (!casted.augmentations().isEmpty()) { this.augmentation = new HashMap<>(casted.augmentations()); } } }
private boolean checkIfOnlyConnectedManager(OvsdbNodeAugmentation ovsdbNodeAugmentation) { ManagerEntry onlyConnectedManager = null; if (ovsdbNodeAugmentation != null) { int connectedManager = 0; if (ovsdbNodeAugmentation.getManagerEntry() != null) { for (ManagerEntry manager : ovsdbNodeAugmentation.getManagerEntry()) { if (manager.isConnected()) { connectedManager++; if (connectedManager > ONE_CONNECTED_MANAGER) { return false; } onlyConnectedManager = manager; } } } if (connectedManager == 0) { return true; } /*When switch is listening in passive mode, this number represent number of active connection to the device This is to handle the controller initiated connection scenario, where all the controller will connect, but switch will have only one manager. */ if (onlyConnectedManager.getNumberOfConnections() > ONE_ACTIVE_CONNECTION_IN_PASSIVE_MODE) { return false; } } return true; } }
/** * Create the {@link ManagerEntry} list given an MDSAL {@link Node} ovsdbNode * and {@link Manager} rows. * * @param ovsdbNode the {@link Node} to update * @param updatedManagerRows the list of {@link Manager} managers with updates * @return list of {@link ManagerEntry} entries */ public static List<ManagerEntry> createManagerEntries(Node ovsdbNode, Map<Uri, Manager> updatedManagerRows) { LOG.debug("createManagerEntries based on OVSDB Node: {}\n, updatedManagerRows: {}", ovsdbNode, updatedManagerRows); final List<ManagerEntry> managerEntriesCreated = new ArrayList<>(); final OvsdbNodeAugmentation ovsdbNodeAugmentation = ovsdbNode.getAugmentation(OvsdbNodeAugmentation.class); if (ovsdbNodeAugmentation == null) { return managerEntriesCreated; } final List<ManagerEntry> managerEntries = ovsdbNodeAugmentation.getManagerEntry(); if (managerEntries != null) { for (ManagerEntry managerEntry : managerEntries) { final Manager manager = updatedManagerRows.get(managerEntry.getTarget()); addManagerEntries(managerEntriesCreated, manager); } } LOG.debug("managerEntries: {}", managerEntriesCreated); return managerEntriesCreated; }
InstanceIdentifier<ManagerEntry> iid = connectionIId .augmentation(OvsdbNodeAugmentation.class) .child(ManagerEntry.class, managerEntry.getKey()); transaction.merge(LogicalDatastoreType.OPERATIONAL, iid, managerEntry);
if (managerEntries != null && !managerEntries.isEmpty()) { for (ManagerEntry managerEntry : managerEntries) { if (managerEntry == null || managerEntry.getTarget() == null) { continue; String[] tokens = managerEntry.getTarget().getValue().split(":"); if (tokens.length == 3 && tokens[0].equalsIgnoreCase("tcp")) { controllersStr.add(OPENFLOW_CONNECTION_PROTOCOL managerEntry.getTarget(), node.getNodeId().getValue());
/** * Create the {@link InstanceIdentifier} for the {@link ManagerEntry}. * * @param managerEntry the {@link ManagerEntry} * @return the {@link InstanceIdentifier} */ private InstanceIdentifier<ManagerEntry> getManagerEntryIid(ManagerEntry managerEntry) { OvsdbConnectionInstance client = getOvsdbConnectionInstance(); String nodeString = client.getNodeKey().getNodeId().getValue(); NodeId nodeId = new NodeId(new Uri(nodeString)); NodeKey nodeKey = new NodeKey(nodeId); InstanceIdentifier<Node> ovsdbNodeIid = InstanceIdentifier.builder(NetworkTopology.class) .child(Topology.class,new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) .child(Node.class,nodeKey) .build(); return ovsdbNodeIid .augmentation(OvsdbNodeAugmentation.class) .child(ManagerEntry.class, managerEntry.getKey()); }
if (!Objects.equals(_key, other.getKey())) { return false; if (!Objects.equals(_numberOfConnections, other.getNumberOfConnections())) { return false; if (!Objects.equals(_target, other.getTarget())) { return false; if (!Objects.equals(_connected, other.isConnected())) { return false; if (!e.getValue().equals(other.getAugmentation(e.getKey()))) { return false;
if (managerEntries != null && !managerEntries.isEmpty()) { for (ManagerEntry managerEntry : managerEntries) { if (managerEntry == null || managerEntry.getTarget() == null) { continue; String[] tokens = managerEntry.getTarget().getValue().split(":"); if (tokens.length == 3 && tokens[0].equalsIgnoreCase("tcp")) { controllersStr.add(Constants.OPENFLOW_CONNECTION_PROTOCOL managerEntry.getTarget(), node.getNodeId().getValue());
if (managerEntries != null && !managerEntries.isEmpty()) { for (ManagerEntry managerEntry : managerEntries) { if (managerEntry == null || managerEntry.getTarget() == null) { continue; String[] tokens = managerEntry.getTarget().getValue().split(":"); if (tokens.length == 3 && tokens[0].equalsIgnoreCase("tcp")) { controllersStr.add(Constants.OPENFLOW_CONNECTION_PROTOCOL managerEntry.getTarget(), node.getNodeId().getValue());