Search in sources :

Example 6 with TableSchema

use of org.onosproject.ovsdb.rfc.schema.TableSchema in project onos by opennetworkinglab.

the class AbstractOvsdbTableService method toString.

@Override
public String toString() {
    TableSchema schema = getTableSchema();
    String tableName = schema.name();
    return toStringHelper(this).add("tableName", tableName).add("row", row).toString();
}
Also used : TableSchema(org.onosproject.ovsdb.rfc.schema.TableSchema)

Example 7 with TableSchema

use of org.onosproject.ovsdb.rfc.schema.TableSchema in project onos by opennetworkinglab.

the class DefaultOvsdbClient method updateConfig.

/**
 * Update transact config.
 *
 * @param tableName  table name
 * @param columnName column name
 * @param uuid       uuid
 * @param row        the config data
 */
private void updateConfig(String tableName, String columnName, String uuid, Row row) {
    DatabaseSchema dbSchema = schema.get(DATABASENAME);
    TableSchema tableSchema = dbSchema.getTableSchema(tableName);
    List<Condition> conditions = Lists.newArrayList();
    Condition condition = ConditionUtil.isEqual(columnName, Uuid.uuid(uuid));
    conditions.add(condition);
    Update update = new Update(tableSchema, row, conditions);
    ArrayList<Operation> operations = Lists.newArrayList();
    operations.add(update);
    transactConfig(DATABASENAME, operations);
}
Also used : Condition(org.onosproject.ovsdb.rfc.notation.Condition) TableSchema(org.onosproject.ovsdb.rfc.schema.TableSchema) Operation(org.onosproject.ovsdb.rfc.operations.Operation) Update(org.onosproject.ovsdb.rfc.operations.Update) DatabaseSchema(org.onosproject.ovsdb.rfc.schema.DatabaseSchema)

Example 8 with TableSchema

use of org.onosproject.ovsdb.rfc.schema.TableSchema in project onos by opennetworkinglab.

the class DefaultOvsdbClient method unbindQueues.

@SuppressWarnings("unchecked")
@Override
public void unbindQueues(QosId qosId, List<Long> queueKeys) {
    DatabaseSchema dbSchema = schema.get(DATABASENAME);
    OvsdbRowStore qosRowStore = getRowStore(DATABASENAME, QOS);
    if (qosRowStore == null) {
        return;
    }
    ConcurrentMap<String, Row> qosTableRows = qosRowStore.getRowStore();
    Row qosRow = qosTableRows.values().stream().filter(r -> {
        OvsdbMap ovsdbMap = (OvsdbMap) (r.getColumn(EXTERNAL_ID).data());
        return qosId.name().equals(ovsdbMap.map().get(QOS_EXTERNAL_ID_KEY));
    }).findFirst().orElse(null);
    if (qosRow == null) {
        log.warn("Can't find QoS {}", qosId);
        return;
    }
    Map<Long, Uuid> deleteQueuesMap;
    Map<Integer, Uuid> queuesMap = ((OvsdbMap) qosRow.getColumn(QUEUES).data()).map();
    deleteQueuesMap = queueKeys.stream().filter(key -> queuesMap.containsKey(key.intValue())).collect(Collectors.toMap(key -> key, key -> queuesMap.get(key.intValue()), (a, b) -> b));
    if (deleteQueuesMap.size() != 0) {
        TableSchema parentTableSchema = dbSchema.getTableSchema(QOS);
        ColumnSchema parentColumnSchema = parentTableSchema.getColumnSchema(QUEUES);
        Mutation mutation = MutationUtil.delete(parentColumnSchema.name(), OvsdbMap.ovsdbMap(deleteQueuesMap));
        List<Mutation> mutations = Collections.singletonList(mutation);
        Condition condition = ConditionUtil.isEqual(UUID, qosRow.uuid());
        List<Condition> conditionList = Collections.singletonList(condition);
        List<Operation> operations = Collections.singletonList(new Mutate(parentTableSchema, conditionList, mutations));
        transactConfig(DATABASENAME, operations);
    }
}
Also used : Condition(org.onosproject.ovsdb.rfc.notation.Condition) TableSchema(org.onosproject.ovsdb.rfc.schema.TableSchema) ColumnSchema(org.onosproject.ovsdb.rfc.schema.ColumnSchema) Mutate(org.onosproject.ovsdb.rfc.operations.Mutate) Operation(org.onosproject.ovsdb.rfc.operations.Operation) OvsdbRowStore(org.onosproject.ovsdb.controller.OvsdbRowStore) Uuid(org.onosproject.ovsdb.rfc.notation.Uuid) OvsdbMap(org.onosproject.ovsdb.rfc.notation.OvsdbMap) Row(org.onosproject.ovsdb.rfc.notation.Row) Mutation(org.onosproject.ovsdb.rfc.notation.Mutation) DatabaseSchema(org.onosproject.ovsdb.rfc.schema.DatabaseSchema)

Example 9 with TableSchema

use of org.onosproject.ovsdb.rfc.schema.TableSchema in project onos by opennetworkinglab.

the class DefaultOvsdbClient method deleteConfig.

/**
 * Delete transact config.
 *
 * @param childTableName   child table name
 * @param childColumnName  child column name
 * @param childUuid        child row uuid
 * @param parentTableName  parent table name
 * @param parentColumnName parent column
 * @param referencedValue  referenced value
 */
private void deleteConfig(String childTableName, String childColumnName, String childUuid, String parentTableName, String parentColumnName, Object referencedValue) {
    DatabaseSchema dbSchema = schema.get(DATABASENAME);
    TableSchema childTableSchema = dbSchema.getTableSchema(childTableName);
    ArrayList<Operation> operations = Lists.newArrayList();
    if (parentTableName != null && parentColumnName != null && referencedValue != null) {
        TableSchema parentTableSchema = dbSchema.getTableSchema(parentTableName);
        ColumnSchema parentColumnSchema = parentTableSchema.getColumnSchema(parentColumnName);
        List<Mutation> mutations = Lists.newArrayList();
        Mutation mutation = MutationUtil.delete(parentColumnSchema.name(), referencedValue);
        mutations.add(mutation);
        List<Condition> conditions = Lists.newArrayList();
        Condition condition = ConditionUtil.includes(parentColumnName, referencedValue);
        conditions.add(condition);
        Mutate op = new Mutate(parentTableSchema, conditions, mutations);
        operations.add(op);
    }
    List<Condition> conditions = Lists.newArrayList();
    Condition condition = ConditionUtil.isEqual(childColumnName, Uuid.uuid(childUuid));
    conditions.add(condition);
    Delete del = new Delete(childTableSchema, conditions);
    operations.add(del);
    transactConfig(DATABASENAME, operations);
}
Also used : Condition(org.onosproject.ovsdb.rfc.notation.Condition) Delete(org.onosproject.ovsdb.rfc.operations.Delete) TableSchema(org.onosproject.ovsdb.rfc.schema.TableSchema) ColumnSchema(org.onosproject.ovsdb.rfc.schema.ColumnSchema) Mutate(org.onosproject.ovsdb.rfc.operations.Mutate) Operation(org.onosproject.ovsdb.rfc.operations.Operation) Mutation(org.onosproject.ovsdb.rfc.notation.Mutation) DatabaseSchema(org.onosproject.ovsdb.rfc.schema.DatabaseSchema)

Aggregations

TableSchema (org.onosproject.ovsdb.rfc.schema.TableSchema)9 ColumnSchema (org.onosproject.ovsdb.rfc.schema.ColumnSchema)5 DatabaseSchema (org.onosproject.ovsdb.rfc.schema.DatabaseSchema)5 Condition (org.onosproject.ovsdb.rfc.notation.Condition)4 Operation (org.onosproject.ovsdb.rfc.operations.Operation)4 Mutation (org.onosproject.ovsdb.rfc.notation.Mutation)3 Mutate (org.onosproject.ovsdb.rfc.operations.Mutate)3 Insert (org.onosproject.ovsdb.rfc.operations.Insert)2 JsonNode (com.fasterxml.jackson.databind.JsonNode)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1 ExecutionException (java.util.concurrent.ExecutionException)1 TimeoutException (java.util.concurrent.TimeoutException)1 OvsdbInterface (org.onosproject.ovsdb.controller.OvsdbInterface)1 OvsdbRowStore (org.onosproject.ovsdb.controller.OvsdbRowStore)1 ColumnSchemaNotFoundException (org.onosproject.ovsdb.rfc.exception.ColumnSchemaNotFoundException)1 TableSchemaNotFoundException (org.onosproject.ovsdb.rfc.exception.TableSchemaNotFoundException)1 MonitorRequest (org.onosproject.ovsdb.rfc.message.MonitorRequest)1 OperationResult (org.onosproject.ovsdb.rfc.message.OperationResult)1 TableUpdate (org.onosproject.ovsdb.rfc.message.TableUpdate)1