import org.opendaylight.ovsdb.lib.OvsdbClient;
import org.opendaylight.ovsdb.lib.OvsdbConnectionInfo;
+import org.opendaylight.ovsdb.lib.error.SchemaVersionMismatchException;
import org.opendaylight.ovsdb.lib.notation.UUID;
import org.opendaylight.ovsdb.lib.schema.DatabaseSchema;
import org.opendaylight.ovsdb.lib.schema.typed.TyperUtils;
}
public static List<ProtocolEntry> createMdsalProtocols(Bridge bridge) {
- Set<String> protocols = bridge.getProtocolsColumn().getData();
+ Set<String> protocols = null;
+ try {
+ protocols = bridge.getProtocolsColumn().getData();
+ } catch (SchemaVersionMismatchException e) {
+ LOG.warn("protocols not supported by this version of ovsdb", e);
+ }
List<ProtocolEntry> protocolList = new ArrayList<ProtocolEntry>();
if (protocols != null && protocols.size() > 0) {
ImmutableBiMap<String, Class<? extends OvsdbBridgeProtocolBase>> mapper =
import java.util.Set;
import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
+import org.opendaylight.ovsdb.lib.error.SchemaVersionMismatchException;
import org.opendaylight.ovsdb.lib.notation.Mutator;
import org.opendaylight.ovsdb.lib.operations.TransactionBuilder;
import org.opendaylight.ovsdb.lib.schema.typed.TyperUtils;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ProtocolEntry;
import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import com.google.common.base.Optional;
import com.google.common.collect.Sets;
public class ProtocolRemovedCommand extends AbstractTransactCommand {
+ private static final Logger LOG = LoggerFactory.getLogger(ProtocolRemovedCommand.class);
private Set<InstanceIdentifier<ProtocolEntry>> removed;
private Map<InstanceIdentifier<ProtocolEntry>, ProtocolEntry> operationalProtocolEntries;
private Map<InstanceIdentifier<OvsdbBridgeAugmentation>, OvsdbBridgeAugmentation> updatedBridges;
String protocolString = SouthboundConstants.OVSDB_PROTOCOL_MAP.get(protocolEntry.getProtocol());
if (protocolString != null) {
bridge.setProtocols(Sets.newHashSet(protocolString));
- transaction.add(op.mutate(bridge).addMutation(bridge.getProtocolsColumn().getSchema(),
- Mutator.DELETE, bridge.getProtocolsColumn().getData()));
+ try {
+ transaction.add(op.mutate(bridge).addMutation(bridge.getProtocolsColumn().getSchema(),
+ Mutator.DELETE,bridge.getProtocolsColumn().getData()));
+ } catch (SchemaVersionMismatchException e) {
+ LOG.warn("protocol is not supported by this version of ovsdb", e);
+ }
}
}
}
import java.util.Map.Entry;
import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
+import org.opendaylight.ovsdb.lib.error.SchemaVersionMismatchException;
import org.opendaylight.ovsdb.lib.notation.Mutator;
import org.opendaylight.ovsdb.lib.operations.TransactionBuilder;
import org.opendaylight.ovsdb.lib.schema.typed.TyperUtils;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ProtocolEntry;
import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import com.google.common.base.Optional;
import com.google.common.collect.Sets;
public class ProtocolUpdateCommand extends AbstractTransactCommand {
+ private static final Logger LOG = LoggerFactory.getLogger(ProtocolUpdateCommand.class);
private Map<InstanceIdentifier<ProtocolEntry>, ProtocolEntry> protocols;
private Map<InstanceIdentifier<OvsdbBridgeAugmentation>, OvsdbBridgeAugmentation> bridges;
if (protocolString != null) {
Bridge bridge = TyperUtils.getTypedRowWrapper(transaction.getDatabaseSchema(), Bridge.class);
bridge.setName(ovsdbBridge.getBridgeName().getValue());
- bridge.setProtocols(Sets.newHashSet(protocolString));
- transaction.add(op.mutate(bridge)
- .addMutation(bridge.getProtocolsColumn().getSchema(),
+ try {
+ bridge.setProtocols(Sets.newHashSet(protocolString));
+ transaction.add(op.mutate(bridge).addMutation(bridge.getProtocolsColumn().getSchema(),
Mutator.INSERT,bridge.getProtocolsColumn().getData())
.where(bridge.getNameColumn().getSchema().opEqual(bridge.getNameColumn().getData()))
.build());
+ } catch (SchemaVersionMismatchException e) {
+ LOG.warn("protocol not supported by this version of ovsdb", e);
+ }
}
}
}
import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
+import org.opendaylight.ovsdb.lib.error.SchemaVersionMismatchException;
import org.opendaylight.ovsdb.lib.message.TableUpdates;
import org.opendaylight.ovsdb.lib.notation.UUID;
import org.opendaylight.ovsdb.lib.schema.DatabaseSchema;
new ArrayList<InstanceIdentifier<ProtocolEntry>>();
Bridge oldBridge = oldBridgeRows.get(bridge.getUuid());
- if (oldBridge != null && oldBridge.getProtocolsColumn() != null) {
- for (String protocol: oldBridge.getProtocolsColumn().getData()) {
- if (bridge.getProtocolsColumn() == null
- || !bridge.getProtocolsColumn().getData().contains(protocol)) {
- Class<? extends OvsdbBridgeProtocolBase> proto =
- SouthboundConstants.OVSDB_PROTOCOL_MAP.inverse().get(protocol);
- InstanceIdentifier<ProtocolEntry> iid = bridgeIid
- .augmentation(OvsdbBridgeAugmentation.class)
- .child(ProtocolEntry.class,
- new ProtocolEntryKey(proto));
- result.add(iid);
+ try {
+ if (oldBridge != null && oldBridge.getProtocolsColumn() != null) {
+ for (String protocol : oldBridge.getProtocolsColumn().getData()) {
+ if (bridge.getProtocolsColumn() == null || !bridge.getProtocolsColumn().getData()
+ .contains(protocol)) {
+ Class<? extends OvsdbBridgeProtocolBase> proto = SouthboundConstants.OVSDB_PROTOCOL_MAP
+ .inverse().get(protocol);
+ InstanceIdentifier<ProtocolEntry> iid = bridgeIid
+ .augmentation(OvsdbBridgeAugmentation.class)
+ .child(ProtocolEntry.class,
+ new ProtocolEntryKey(proto));
+ result.add(iid);
+ }
}
}
+ } catch (SchemaVersionMismatchException e) {
+ LOG.warn("protocol not supported by this version of ovsdb", e);
}
return result;
}
try {
node = transaction.read(LogicalDatastoreType.OPERATIONAL, connectionIid).checkedGet();
} catch (final ReadFailedException e) {
- LOG.debug("Read Operational/DS for Node fail! {}", connectionIid, e);
+ LOG.warn("Read Operational/DS for Node fail! {}", connectionIid, e);
}
return node;
}
}
}
} catch (Exception e) {
- LOG.debug("Error getting local ip address {}", e);
+ LOG.warn("Error getting local ip address {}", e);
}
}
}
import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
+import org.opendaylight.ovsdb.lib.error.ColumnSchemaNotFoundException;
import org.opendaylight.ovsdb.lib.message.TableUpdates;
import org.opendaylight.ovsdb.lib.notation.Column;
import org.opendaylight.ovsdb.lib.notation.UUID;
final String bridge,
final OvsdbTerminationPointAugmentationBuilder ovsdbTerminationPointBuilder) {
- Set<Long> ofPortRequests = interf
- .getOpenFlowPortRequestColumn().getData();
+ Set<Long> ofPortRequests = null;
+ try {
+ ofPortRequests = interf.getOpenFlowPortRequestColumn().getData();
+ } catch (ColumnSchemaNotFoundException e) {
+ LOG.warn("Cannot find openflow column", e);
+ }
if (ofPortRequests != null && !ofPortRequests.isEmpty()) {
Iterator<Long> ofPortRequestsIter = ofPortRequests.iterator();
int ofPort = ofPortRequestsIter.next().intValue();