lishuai
Committed by Gerrit Code Review

[ONOS-2447]RFC7047's API and its implementation and five main tables.

provide RFC7047's API and its implementation, and five main table which
contain Bridge, Controller, Interface, Open_vSwitch and Port 

Change-Id: I9e995a056fd55c986f5866c85ac712f1792cff4f
Showing 26 changed files with 5456 additions and 0 deletions
......@@ -26,6 +26,14 @@
<groupId>org.onosproject</groupId>
<artifactId>onlab-junit</artifactId>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-buffer</artifactId>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-handler</artifactId>
</dependency>
</dependencies>
<build>
......
/*
* Copyright 2015 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.ovsdb.rfc.jsonrpc;
import java.util.List;
import org.onosproject.ovsdb.rfc.message.UpdateNotification;
/**
* The callback function interface will be used when the server send to the
* client report changes.
*/
public interface Callback {
/**
* The "update" notification is sent by the server to the client to report
* changes in tables that are being monitored following a "*monitor"
* request.
* @param updateNotification the information of the update
*/
void update(UpdateNotification updateNotification);
/**
* The "locked" notification is provided to notify a client that it has been
* granted a lock that it had previously requested with the "lock" method.
* @param ids the locked ids
*/
void locked(List<String> ids);
/**
* The "stolen" notification is provided to notify a client, which had
* previously obtained a lock, that another client has stolen ownership of
* that lock.
* @param ids the stolen ids
*/
void stolen(List<String> ids);
}
/*
* Copyright 2015 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.ovsdb.rfc.jsonrpc;
import java.util.Stack;
/**
* Context for decode parameters.
*/
public class JsonReadContext {
private Stack<Byte> bufStack;
private boolean isStartMatch;
private int lastReadBytes;
/**
* Constructs a JsonReadContext object. This class only need initial
* parameter value for the readToJsonNode method of JsonRpcReaderUtil
* entity.
*/
public JsonReadContext() {
bufStack = new Stack<Byte>();
isStartMatch = false;
lastReadBytes = 0;
}
/**
* Return bufStack.
* @return bufStack
*/
public Stack<Byte> getBufStack() {
return bufStack;
}
/**
* Set bufStack, used for match the braces and double quotes.
* @param bufStack Stack of Byte
*/
public void setBufStack(Stack<Byte> bufStack) {
this.bufStack = bufStack;
}
/**
* Return isStartMatch.
* @return isStartMatch
*/
public boolean isStartMatch() {
return isStartMatch;
}
/**
* Set isStartMatch.
* @param isStartMatch mark whether the matching has started
*/
public void setStartMatch(boolean isStartMatch) {
this.isStartMatch = isStartMatch;
}
/**
* Return lastReadBytes.
* @return lastReadBytes
*/
public int getLastReadBytes() {
return lastReadBytes;
}
/**
* Set lastReadBytes.
* @param lastReadBytes the bytes for last decoding incomplete record
*/
public void setLastReadBytes(int lastReadBytes) {
this.lastReadBytes = lastReadBytes;
}
}
/*
* Copyright 2015 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.ovsdb.rfc.jsonrpc;
import static com.google.common.base.MoreObjects.toStringHelper;
import static com.google.common.base.Preconditions.checkNotNull;
import java.util.List;
import java.util.Objects;
import com.google.common.collect.Lists;
/**
* Json Rpc Request information that include id,method,params.
*/
public class JsonRpcRequest {
private final String id;
private final String method;
private final List<Object> params;
/**
* JsonRpcRequest Constructor.
* @param id the id node of request information
* @param method the method node of request information
*/
public JsonRpcRequest(String id, String method) {
checkNotNull(id, "id cannot be null");
checkNotNull(method, "method cannot be null");
this.id = id;
this.method = method;
this.params = Lists.newArrayList();
}
/**
* JsonRpcRequest Constructor.
* @param id the id node of request information
* @param method the method node of request information
* @param params the params node of request information
*/
public JsonRpcRequest(String id, String method, List<Object> params) {
checkNotNull(id, "id cannot be null");
checkNotNull(method, "method cannot be null");
checkNotNull(params, "params cannot be null");
this.id = id;
this.method = method;
this.params = params;
}
/**
* Returns id.
* @return id
*/
public String getId() {
return id;
}
/**
* Returns method.
* @return method
*/
public String getMethod() {
return method;
}
/**
* Returns params.
* @return params
*/
public List<Object> getParams() {
return params;
}
@Override
public int hashCode() {
return Objects.hash(id, method, params);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj instanceof JsonRpcRequest) {
final JsonRpcRequest other = (JsonRpcRequest) obj;
return Objects.equals(this.id, other.id)
&& Objects.equals(this.method, other.method)
&& Objects.equals(this.params, other.params);
}
return false;
}
@Override
public String toString() {
return toStringHelper(this).add("id", id).add("method", method)
.add("params", params).toString();
}
}
/*
* Copyright 2015 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.ovsdb.rfc.jsonrpc;
import static com.google.common.base.MoreObjects.toStringHelper;
import static com.google.common.base.Preconditions.checkNotNull;
import java.util.List;
import java.util.Objects;
import com.google.common.collect.Lists;
/**
* Json Rpc Response information that include id,error,result.
*/
public class JsonRpcResponse {
private final String id;
private final String error;
private final List<Object> result;
/**
* JsonRpcResponse Constructor.
* @param id the id node of response information
*/
public JsonRpcResponse(String id) {
checkNotNull(id, "id cannot be null");
this.id = id;
this.error = null;
this.result = Lists.newArrayList();
}
/**
* JsonRpcResponse Constructor.
* @param id the id node of response information
* @param error the error node of response information
*/
public JsonRpcResponse(String id, String error) {
checkNotNull(id, "id cannot be null");
checkNotNull(error, "error cannot be null");
this.id = id;
this.error = error;
this.result = Lists.newArrayList();
}
/**
* JsonRpcResponse Constructor.
* @param id the id node of response information
* @param error the error node of response information
* @param result the result node of response information
*/
public JsonRpcResponse(String id, String error, List<Object> result) {
checkNotNull(id, "id cannot be null");
checkNotNull(error, "error cannot be null");
checkNotNull(result, "result cannot be null");
this.id = id;
this.error = error;
this.result = result;
}
/**
* Returns id.
* @return id
*/
public String getId() {
return id;
}
/**
* Returns error.
* @return error
*/
public String getError() {
return error;
}
/**
* Returns result.
* @return result
*/
public List<Object> getResult() {
return result;
}
@Override
public int hashCode() {
return Objects.hash(id, error, result);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj instanceof JsonRpcResponse) {
final JsonRpcResponse other = (JsonRpcResponse) obj;
return Objects.equals(this.id, other.id)
&& Objects.equals(this.error, other.error)
&& Objects.equals(this.result, other.result);
}
return false;
}
@Override
public String toString() {
return toStringHelper(this).add("id", id).add("error", error)
.add("result", result).toString();
}
}
/*
* Copyright 2015 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.ovsdb.rfc.jsonrpc;
import java.util.List;
import org.onosproject.ovsdb.rfc.operations.Operation;
import org.onosproject.ovsdb.rfc.schema.DatabaseSchema;
import com.fasterxml.jackson.databind.JsonNode;
import com.google.common.util.concurrent.ListenableFuture;
/**
* The following interface describe the RPC7047's methods that are supported.
*/
public interface OvsdbRPC {
/**
* This operation retrieves a database-schema that describes hosted database
* db-name.
* @param dbnames database name
* @return ListenableFuture of JsonNode
*/
ListenableFuture<JsonNode> getSchema(List<String> dbnames);
/**
* The "echo" method can be used by both clients and servers to verify the
* liveness of a database connection.
* @return return info
*/
ListenableFuture<List<String>> echo();
/**
* The "monitor" request enables a client to replicate tables or subsets of
* tables within an OVSDB database by requesting notifications of changes to
* those tables and by receiving the complete initial state of a table or a
* subset of a table.
* @param dbSchema databse schema
* @param monitorId a id for monitor
* @return ListenableFuture of JsonNode
*/
ListenableFuture<JsonNode> monitor(DatabaseSchema dbSchema, String monitorId);
/**
* This operation retrieves an array whose elements are the names of the
* databases that can be accessed over this management protocol connection.
* @return database names
*/
ListenableFuture<List<String>> listDbs();
/**
* This RPC method causes the database server to execute a series of
* operations in the specified order on a given database.
* @param dbSchema database schema
* @param operations the operations to execute
* @return result the transact result
*/
ListenableFuture<List<JsonNode>> transact(DatabaseSchema dbSchema,
List<Operation> operations);
}
/*
* Copyright 2015 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.ovsdb.rfc.table;
import java.util.Map;
import java.util.Set;
import org.onosproject.ovsdb.rfc.notation.Column;
import org.onosproject.ovsdb.rfc.notation.Row;
import org.onosproject.ovsdb.rfc.notation.UUID;
import org.onosproject.ovsdb.rfc.schema.DatabaseSchema;
import org.onosproject.ovsdb.rfc.tableservice.AbstractOvsdbTableService;
import org.onosproject.ovsdb.rfc.tableservice.ColumnDescription;
/**
* This class provides operations of Bridge Table.
*/
public class Bridge extends AbstractOvsdbTableService {
/**
* Bridge table column name.
*/
public enum BridgeColumn {
NAME("name"), DATAPATHTYPE("datapath_type"), DATAPATHID("datapath_id"),
STPENABLE("stpenable"), PORTS("ports"), MIRRORS("mirrors"),
NETFLOW("netflow"), SFLOW("sflow"), IPFIX("ipfix"),
CONTROLLER("controller"), PROTOCOLS("protocols"),
FAILMODE("fail_mode"), STATUS("status"), OTHERCONFIG("other_config"),
EXTERNALIDS("external_ids"), FLOODVLANS("flood_vlans"),
FLOWTABLES("flow_tables");
private final String columnName;
private BridgeColumn(String columnName) {
this.columnName = columnName;
}
/**
* Returns the table column name for BridgeColumn.
* @return the table column name
*/
public String columnName() {
return columnName;
}
}
/**
* Constructs a Bridge object. Generate Bridge Table Description.
* @param dbSchema DatabaseSchema
* @param row Row
*/
public Bridge(DatabaseSchema dbSchema, Row row) {
super(dbSchema, row, OvsdbTable.BRIDGE, VersionNum.VERSION100);
}
/**
* Get the Column entity which column name is "name" from the Row entity of
* attributes.
* @return the Column entity which column name is "name"
*/
public Column getNameColumn() {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.NAME
.columnName(),
"getNameColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "name" to the Row entity of
* attributes.
* @param name the column data which column name is "name"
*/
public void setName(String name) {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.NAME
.columnName(),
"setName",
VersionNum.VERSION100);
super.setDataHandler(columndesc, name);
}
/**
* Get the column data which column name is "name" from the Row entity of
* attributes.
* @return the column data which column name is "name"
*/
public String getName() {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.NAME
.columnName(),
"getName",
VersionNum.VERSION100);
return (String) super.getDataHandler(columndesc);
}
/**
* Get the Column entity which column name is "datapath_type" from the Row
* entity of attributes.
* @return the Column entity which column name is "datapath_type"
*/
public Column getDatapathTypeColumn() {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.DATAPATHTYPE
.columnName(),
"getDatapathTypeColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "datapath_type" to the Row
* entity of attributes.
* @param datapathType the column data which column name is "datapath_type"
*/
public void setDatapathType(String datapathType) {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.DATAPATHTYPE
.columnName(),
"setDatapathType",
VersionNum.VERSION100);
super.setDataHandler(columndesc, datapathType);
}
/**
* Get the Column entity which column name is "datapath_id" from the Row
* entity of attributes.
* @return the Column entity which column name is "datapath_id"
*/
public Column getDatapathIdColumn() {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.DATAPATHID
.columnName(),
"getDatapathIdColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "datapath_id" to the Row entity
* of attributes.
* @param datapathId the column data which column name is "datapath_id"
*/
public void setDatapathId(Set<String> datapathId) {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.DATAPATHID
.columnName(),
"setDatapathId",
VersionNum.VERSION100);
super.setDataHandler(columndesc, datapathId);
}
/**
* Get the Column entity which column name is "stpenable" from the Row
* entity of attributes.
* @return the Column entity which column name is "stpenable"
*/
public Column getStpEnableColumn() {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.STPENABLE
.columnName(),
"getStpEnableColumn",
VersionNum.VERSION620);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "stpenable" to the Row entity of
* attributes.
* @param stpenable the column data which column name is "stpenable"
*/
public void setStpEnable(Boolean stpenable) {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.STPENABLE
.columnName(),
"setStpEnable",
VersionNum.VERSION620);
super.setDataHandler(columndesc, stpenable);
}
/**
* Get the Column entity which column name is "ports" from the Row entity of
* attributes.
* @return the Column entity which column name is "ports"
*/
public Column getPortsColumn() {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.PORTS
.columnName(),
"getPortsColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "ports" to the Row entity of
* attributes.
* @param ports the column data which column name is "ports"
*/
public void setPorts(Set<UUID> ports) {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.PORTS
.columnName(),
"setPorts",
VersionNum.VERSION100);
super.setDataHandler(columndesc, ports);
}
/**
* Get the Column entity which column name is "mirrors" from the Row entity
* of attributes.
* @return the Column entity which column name is "mirrors"
*/
public Column getMirrorsColumn() {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.MIRRORS
.columnName(),
"getMirrorsColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "mirrors" to the Row entity of
* attributes.
* @param mirrors the column data which column name is "mirrors"
*/
public void setMirrors(Set<UUID> mirrors) {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.MIRRORS
.columnName(),
"setMirrors",
VersionNum.VERSION100);
super.setDataHandler(columndesc, mirrors);
}
/**
* Get the Column entity which column name is "netflow" from the Row entity
* of attributes.
* @return the Column entity which column name is "netflow"
*/
public Column getNetflowColumn() {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.NETFLOW
.columnName(),
"getNetflowColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "netflow" to the Row entity of
* attributes.
* @param netflow the column data which column name is "netflow"
*/
public void setNetflow(Set<UUID> netflow) {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.NETFLOW
.columnName(),
"setNetflow",
VersionNum.VERSION100);
super.setDataHandler(columndesc, netflow);
}
/**
* Get the Column entity which column name is "sflow" from the Row entity of
* attributes.
* @return the Column entity which column name is "sflow"
*/
public Column getSflowColumn() {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.SFLOW
.columnName(),
"getSflowColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "sflow" to the Row entity of
* attributes.
* @param sflow the column data which column name is "sflow"
*/
public void setSflow(Set<UUID> sflow) {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.SFLOW
.columnName(),
"setSflow",
VersionNum.VERSION100);
super.setDataHandler(columndesc, sflow);
}
/**
* Get the Column entity which column name is "ipfix" from the Row entity of
* attributes.
* @return the Column entity which column name is "ipfix"
*/
public Column getIpfixColumn() {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.IPFIX
.columnName(),
"getIpfixColumn",
VersionNum.VERSION710);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "ipfix" to the Row entity of
* attributes.
* @param ipfix the column data which column name is "ipfix"
*/
public void setIpfix(Set<UUID> ipfix) {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.IPFIX
.columnName(),
"setIpfix",
VersionNum.VERSION710);
super.setDataHandler(columndesc, ipfix);
}
/**
* Get the Column entity which column name is "controller" from the Row
* entity of attributes.
* @return the Column entity which column name is "controller"
*/
public Column getControllerColumn() {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.CONTROLLER
.columnName(),
"getControllerColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "controller" to the Row entity
* of attributes.
* @param controller the column data which column name is "controller"
*/
public void setController(Set<UUID> controller) {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.CONTROLLER
.columnName(),
"setController",
VersionNum.VERSION100);
super.setDataHandler(columndesc, controller);
}
/**
* Get the Column entity which column name is "protocols" from the Row
* entity of attributes.
* @return the Column entity which column name is "protocols"
*/
public Column getProtocolsColumn() {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.PROTOCOLS
.columnName(),
"getProtocolsColumn",
VersionNum.VERSION6111);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "protocols" to the Row entity of
* attributes.
* @param protocols the column data which column name is "protocols"
*/
public void setProtocols(Set<String> protocols) {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.PROTOCOLS
.columnName(),
"setProtocols",
VersionNum.VERSION6111);
super.setDataHandler(columndesc, protocols);
}
/**
* Get the Column entity which column name is "fail_mode" from the Row
* entity of attributes.
* @return the Column entity which column name is "fail_mode"
*/
public Column getFailModeColumn() {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.FAILMODE
.columnName(),
"getFailModeColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "fail_mode" to the Row entity of
* attributes.
* @param failMode the column data which column name is "fail_mode"
*/
public void setFailMode(Set<String> failMode) {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.FAILMODE
.columnName(),
"setFailMode",
VersionNum.VERSION100);
super.setDataHandler(columndesc, failMode);
}
/**
* Get the Column entity which column name is "status" from the Row entity
* of attributes.
* @return the Column entity which column name is "status"
*/
public Column getStatusColumn() {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.STATUS
.columnName(),
"getStatusColumn",
VersionNum.VERSION620);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "status" to the Row entity of
* attributes.
* @param status the column data which column name is "status"
*/
public void setStatus(Map<String, String> status) {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.STATUS
.columnName(),
"setStatus",
VersionNum.VERSION620);
super.setDataHandler(columndesc, status);
}
/**
* Get the Column entity which column name is "other_config" from the Row
* entity of attributes.
* @return the Column entity which column name is "other_config"
*/
public Column getOtherConfigColumn() {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.OTHERCONFIG
.columnName(),
"getOtherConfigColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "other_config" to the Row entity
* of attributes.
* @param otherConfig the column data which column name is "other_config"
*/
public void setOtherConfig(Map<String, String> otherConfig) {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.OTHERCONFIG
.columnName(),
"setOtherConfig",
VersionNum.VERSION100);
super.setDataHandler(columndesc, otherConfig);
}
/**
* Get the Column entity which column name is "external_ids" from the Row
* entity of attributes.
* @return the Column entity which column name is "external_ids"
*/
public Column getExternalIdsColumn() {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.EXTERNALIDS
.columnName(),
"getExternalIdsColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "external_ids" to the Row entity
* of attributes.
* @param externalIds the column data which column name is "external_ids"
*/
public void setExternalIds(Map<String, String> externalIds) {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.EXTERNALIDS
.columnName(),
"setExternalIds",
VersionNum.VERSION100);
super.setDataHandler(columndesc, externalIds);
}
/**
* Get the Column entity which column name is "flood_vlans" from the Row
* entity of attributes.
* @return the Column entity which column name is "flood_vlans"
*/
public Column getFloodVlansColumn() {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.FLOODVLANS
.columnName(),
"getFloodVlansColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "flood_vlans" to the Row entity
* of attributes.
* @param vlans the column data which column name is "flood_vlans"
*/
public void setFloodVlans(Set<Long> vlans) {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.FLOODVLANS
.columnName(),
"setFloodVlans",
VersionNum.VERSION100);
super.setDataHandler(columndesc, vlans);
}
/**
* Get the Column entity which column name is "flow_tables" from the Row
* entity of attributes.
* @return the Column entity which column name is "flow_tables"
*/
public Column getFlowTablesColumn() {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.FLOWTABLES
.columnName(),
"getFlowTablesColumn",
VersionNum.VERSION650);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "flow_tables" to the Row entity
* of attributes.
* @param flowTables the column data which column name is "flow_tables"
*/
public void setFlowTables(Map<Long, UUID> flowTables) {
ColumnDescription columndesc = new ColumnDescription(
BridgeColumn.FLOWTABLES
.columnName(),
"setFlowTables",
VersionNum.VERSION650);
super.setDataHandler(columndesc, flowTables);
}
}
/*
* Copyright 2015 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.ovsdb.rfc.table;
import java.util.Map;
import java.util.Set;
import org.onosproject.ovsdb.rfc.notation.Column;
import org.onosproject.ovsdb.rfc.notation.Row;
import org.onosproject.ovsdb.rfc.schema.DatabaseSchema;
import org.onosproject.ovsdb.rfc.tableservice.AbstractOvsdbTableService;
import org.onosproject.ovsdb.rfc.tableservice.ColumnDescription;
/**
* This class provides operations of Controller Table.
*/
public class Controller extends AbstractOvsdbTableService {
/**
* Controller table column name.
*/
public enum ControllerColumn {
TARGET("target"), BURSTLIMIT("controller_burst_limit"),
RATELIMIT("controller_rate_limit"), CONNECTIONMODE("connection_mode"),
ENABLEASYNCMESSAGES("enable_async_messages"),
EXTERNALIDS("external_ids"), LOCALNETMASK("local_netmask"),
LOCALGATEWAY("local_gateway"), STATUS("status"), ROLE("role"),
INACTIVITYPROBE("inactivity_probe"), ISCONNECTED("is_connected"),
OTHERCONFIG("other_config"), MAXBACKOFF("max_backoff"),
LOCALIP("local_ip"),
DISCOVERUPDATERESOLVCONF("discover_update_resolv_conf"),
DISCOVERACCEPTREGEX("discover_accept_regex");
private final String columnName;
private ControllerColumn(String columnName) {
this.columnName = columnName;
}
/**
* Returns the table column name for ControllerColumn.
* @return the table column name
*/
public String columnName() {
return columnName;
}
}
/**
* Constructs a Controller object. Generate Controller Table Description.
* @param dbSchema DatabaseSchema
* @param row Row
*/
public Controller(DatabaseSchema dbSchema, Row row) {
super(dbSchema, row, OvsdbTable.CONTROLLER, VersionNum.VERSION100);
}
/**
* Get the Column entity which column name is "target" from the Row entity
* of attributes.
* @return the Column entity which column name is "target"
*/
public Column getTargetColumn() {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.TARGET
.columnName(),
"getTargetColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "target" to the Row entity of
* attributes.
* @param target the column data which column name is "target"
*/
public void setTarget(String target) {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.TARGET
.columnName(),
"setTarget",
VersionNum.VERSION100);
super.setDataHandler(columndesc, target);
}
/**
* Get the Column entity which column name is "controller_burst_limit" from
* the Row entity of attributes.
* @return the Column entity which column name is "controller_burst_limit"
*/
public Column getBurstLimitColumn() {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.BURSTLIMIT
.columnName(),
"getBurstLimitColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "controller_burst_limit" to the
* Row entity of attributes.
* @param burstLimit the column data which column name is
* "controller_burst_limit"
*/
public void setBurstLimit(Long burstLimit) {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.BURSTLIMIT
.columnName(),
"setBurstLimit",
VersionNum.VERSION100);
super.setDataHandler(columndesc, burstLimit);
}
/**
* Get the Column entity which column name is "controller_rate_limit" from
* the Row entity of attributes.
* @return the Column entity which column name is "controller_rate_limit"
*/
public Column getRateLimitColumn() {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.RATELIMIT
.columnName(),
"getRateLimitColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "controller_rate_limit" to the
* Row entity of attributes.
* @param rateLimit the column data which column name is
* "controller_rate_limit"
*/
public void setRateLimit(Long rateLimit) {
ColumnDescription columndesc = new ColumnDescription(
"controller_rate_limit",
"setRateLimit",
VersionNum.VERSION100);
super.setDataHandler(columndesc, rateLimit);
}
/**
* Get the Column entity which column name is "connection_mode" from the Row
* entity of attributes.
* @return the Column entity which column name is "connection_mode"
*/
public Column getConnectionModeColumn() {
ColumnDescription columndesc = new ColumnDescription(
"connection_mode",
"getConnectionModeColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "connection_mode" to the Row
* entity of attributes.
* @param connectionMode the column data which column name is
* "connection_mode"
*/
public void setConnectionMode(Set<String> connectionMode) {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.RATELIMIT
.columnName(),
"setConnectionMode",
VersionNum.VERSION100);
super.setDataHandler(columndesc, connectionMode);
}
/**
* Get the Column entity which column name is "enable_async_messages" from
* the Row entity of attributes.
* @return the Column entity which column name is "enable_async_messages"
*/
public Column getEnableAsyncMessagesColumn() {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.ENABLEASYNCMESSAGES
.columnName(),
"getEnableAsyncMessagesColumn",
VersionNum.VERSION670);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "enable_async_messages" to the
* Row entity of attributes.
* @param enableAsyncMessages the column data which column name is
* "enable_async_messages"
*/
public void setEnableAsyncMessages(Set<Boolean> enableAsyncMessages) {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.ENABLEASYNCMESSAGES
.columnName(),
"setEnableAsyncMessages",
VersionNum.VERSION670);
super.setDataHandler(columndesc, enableAsyncMessages);
}
/**
* Get the Column entity which column name is "external_ids" from the Row
* entity of attributes.
* @return the Column entity which column name is "external_ids"
*/
public Column getExternalIdsColumn() {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.EXTERNALIDS
.columnName(),
"getExternalIdsColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "external_ids" to the Row entity
* of attributes.
* @param externalIds the column data which column name is "external_ids"
*/
public void setExternalIds(Map<String, String> externalIds) {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.EXTERNALIDS
.columnName(),
"setExternalIds",
VersionNum.VERSION100);
super.setDataHandler(columndesc, externalIds);
}
/**
* Get the Column entity which column name is "local_netmask" from the Row
* entity of attributes.
* @return the Column entity which column name is "local_netmask"
*/
public Column getLocalNetmaskColumn() {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.LOCALNETMASK
.columnName(),
"getLocalNetmaskColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "local_netmask" to the Row
* entity of attributes.
* @param localNetmask the column data which column name is "local_netmask"
*/
public void setLocalNetmask(Set<String> localNetmask) {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.LOCALNETMASK
.columnName(),
"setLocalNetmask",
VersionNum.VERSION100);
super.setDataHandler(columndesc, localNetmask);
}
/**
* Get the Column entity which column name is "local_gateway" from the Row
* entity of attributes.
* @return the Column entity which column name is "local_gateway"
*/
public Column getLocalGatewayColumn() {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.LOCALGATEWAY
.columnName(),
"getLocalGatewayColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "local_gateway" to the Row
* entity of attributes.
* @param localGateway the column data which column name is "local_gateway"
*/
public void setLocalGateway(Set<String> localGateway) {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.LOCALGATEWAY
.columnName(),
"setLocalGateway",
VersionNum.VERSION100);
super.setDataHandler(columndesc, localGateway);
}
/**
* Get the Column entity which column name is "status" from the Row entity
* of attributes.
* @return the Column entity which column name is "status"
*/
public Column getStatusColumn() {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.STATUS
.columnName(),
"getStatusColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "status" to the Row entity of
* attributes.
* @param status the column data which column name is "status"
*/
public void setStatus(Map<String, String> status) {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.STATUS
.columnName(),
"setStatus",
VersionNum.VERSION100);
super.setDataHandler(columndesc, status);
}
/**
* Get the Column entity which column name is "role" from the Row entity of
* attributes.
* @return the Column entity which column name is "role"
*/
public Column getRoleColumn() {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.ROLE
.columnName(),
"getRoleColumn",
VersionNum.VERSION110);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "role" to the Row entity of
* attributes.
* @param role the column data which column name is "role"
*/
public void setRole(Set<String> role) {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.ROLE
.columnName(),
"setRole",
VersionNum.VERSION110);
super.setDataHandler(columndesc, role);
}
/**
* Get the Column entity which column name is "inactivity_probe" from the
* Row entity of attributes.
* @return the Column entity which column name is "inactivity_probe"
*/
public Column getInactivityProbeColumn() {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.INACTIVITYPROBE
.columnName(),
"getInactivityProbeColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "inactivity_probe" to the Row
* entity of attributes.
* @param inactivityProbe the column data which column name is
* "inactivity_probe"
*/
public void setInactivityProbe(Set<Long> inactivityProbe) {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.INACTIVITYPROBE
.columnName(),
"setInactivityProbe",
VersionNum.VERSION100);
super.setDataHandler(columndesc, inactivityProbe);
}
/**
* Get the Column entity which column name is "is_connected" from the Row
* entity of attributes.
* @return the Column entity which column name is "is_connected"
*/
public Column getIsConnectedColumn() {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.ISCONNECTED
.columnName(),
"getIsConnectedColumn",
VersionNum.VERSION110);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "is_connected" to the Row entity
* of attributes.
* @param isConnected the column data which column name is "is_connected"
*/
public void setIsConnected(Boolean isConnected) {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.ISCONNECTED
.columnName(),
"setIsConnected",
VersionNum.VERSION110);
super.setDataHandler(columndesc, isConnected);
}
/**
* Get the Column entity which column name is "other_config" from the Row
* entity of attributes.
* @return the Column entity which column name is "other_config"
*/
public Column getOtherConfigColumn() {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.OTHERCONFIG
.columnName(),
"getOtherConfigColumn",
VersionNum.VERSION680);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "other_config" to the Row entity
* of attributes.
* @param otherConfig the column data which column name is "other_config"
*/
public void setOtherConfig(Map<String, String> otherConfig) {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.OTHERCONFIG
.columnName(),
"setOtherConfig",
VersionNum.VERSION680);
super.setDataHandler(columndesc, otherConfig);
}
/**
* Get the Column entity which column name is "max_backoff" from the Row
* entity of attributes.
* @return the Column entity which column name is "max_backoff"
*/
public Column getMaxBackoffColumn() {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.MAXBACKOFF
.columnName(),
"getMaxBackoffColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "max_backoff" to the Row entity
* of attributes.
* @param maxBackoff the column data which column name is "max_backoff"
*/
public void setMaxBackoff(Long maxBackoff) {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.MAXBACKOFF
.columnName(),
"setMaxBackoff",
VersionNum.VERSION100);
super.setDataHandler(columndesc, maxBackoff);
}
/**
* Get the Column entity which column name is "local_ip" from the Row entity
* of attributes.
* @return the Column entity which column name is "local_ip"
*/
public Column getLocalIpColumn() {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.LOCALIP
.columnName(),
"getLocalIpColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "local_ip" to the Row entity of
* attributes.
* @param localIp the column data which column name is "local_ip"
*/
public void setLocalIp(Set<String> localIp) {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.LOCALIP
.columnName(),
"setLocalIp",
VersionNum.VERSION100);
super.setDataHandler(columndesc, localIp);
}
/**
* Get the Column entity which column name is "discover_update_resolv_conf"
* from the Row entity of attributes.
* @return the Column entity which column name is
* "discover_update_resolv_conf"
*/
public Column getDiscoverUpdateResolvConfColumn() {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.DISCOVERUPDATERESOLVCONF
.columnName(),
"getDiscoverUpdateResolvConfColumn",
VersionNum.VERSION100,
VersionNum.VERSION300);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "discover_update_resolv_conf" to
* the Row entity of attributes.
* @param discoverUpdateResolvConf the column data which column name is
* "discover_update_resolv_conf"
*/
public void setDiscoverUpdateResolvConf(Set<String> discoverUpdateResolvConf) {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.DISCOVERUPDATERESOLVCONF
.columnName(),
"setDiscoverUpdateResolvConf",
VersionNum.VERSION100,
VersionNum.VERSION300);
super.setDataHandler(columndesc, discoverUpdateResolvConf);
}
/**
* Get the Column entity which column name is "discover_accept_regex" from
* the Row entity of attributes.
* @return the Column entity which column name is "discover_accept_regex"
*/
public Column getDiscoverAcceptRegexColumn() {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.DISCOVERACCEPTREGEX
.columnName(),
"getDiscoverAcceptRegexColumn",
VersionNum.VERSION100,
VersionNum.VERSION300);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "discover_accept_regex" to the
* Row entity of attributes.
* @param discoverAcceptRegex the column data which column name is
* "discover_accept_regex"
*/
public void setDiscoverAcceptRegex(Set<String> discoverAcceptRegex) {
ColumnDescription columndesc = new ColumnDescription(
ControllerColumn.DISCOVERACCEPTREGEX
.columnName(),
"setDiscoverAcceptRegex",
VersionNum.VERSION100,
VersionNum.VERSION300);
super.setDataHandler(columndesc, discoverAcceptRegex);
}
}
/*
* Copyright 2015 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.ovsdb.rfc.table;
import java.util.Map;
import java.util.Set;
import org.onosproject.ovsdb.rfc.notation.Column;
import org.onosproject.ovsdb.rfc.notation.Row;
import org.onosproject.ovsdb.rfc.schema.DatabaseSchema;
import org.onosproject.ovsdb.rfc.tableservice.AbstractOvsdbTableService;
import org.onosproject.ovsdb.rfc.tableservice.ColumnDescription;
/**
* This class provides operations of Interface Table.
*/
public class Interface extends AbstractOvsdbTableService {
/**
* Interface table column name.
*/
public enum InterfaceColumn {
NAME("name"), TYPE("type"), OPTIONS("options"),
INGRESSPOLICINGRATE("ingress_policing_rate"),
INGRESSPOLICINGBURST("ingress_policing_burst"), MACINUSE("mac_in_use"),
MAC("mac"), IFINDEX("ifindex"), EXTERNALIDS("external_ids"),
OFPORT("ofport"), OFPORTREQUEST("ofport_request"), BFD("bfd"),
BFDSTATUS("bfd_status"), MONITOR("monitor"), CFMMPID("cfm_mpid"),
CFMREMOTEMPID("cfm_remote_mpid"), CFMREMOTEMPIDS("cfm_remote_mpids"),
CFMFLAPCOUNT("cfm_flap_count"), CFMFAULT("cfm_fault"),
CFMFAULTSTATUS("cfm_fault_status"),
CFMREMOTEOPSTATE("cfm_remote_opstate"), CFMHEALTH("cfm_health"),
LACPCURRENT("lacp_current"), OTHERCONFIG("other_config"),
STATISTICS("statistics"), STATUS("status"), ADMINSTATE("admin_state"),
LINKSTATE("link_state"), LINKRESETS("link_resets"),
LINKSPEED("link_speed"), DUPLEX("duplex"), MTU("mtu"), ERROR("error");
private final String columnName;
private InterfaceColumn(String columnName) {
this.columnName = columnName;
}
/**
* Returns the table column name for InterfaceColumn.
* @return the table column name
*/
public String columnName() {
return columnName;
}
}
/**
* Constructs a Interface object. Generate Interface Table Description.
* @param dbSchema DatabaseSchema
* @param row Row
*/
public Interface(DatabaseSchema dbSchema, Row row) {
super(dbSchema, row, OvsdbTable.INTERFACE, VersionNum.VERSION100);
}
/**
* Get the Column entity which column name is "name" from the Row entity of
* attributes.
* @return the Column entity which column name is "name"
*/
public Column getNameColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.NAME
.columnName(),
"getNameColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "name" to the Row entity of
* attributes.
* @param name the column data which column name is "name"
*/
public void setName(String name) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.NAME
.columnName(),
"setName",
VersionNum.VERSION100);
super.setDataHandler(columndesc, name);
}
/**
* Get the column data which column name is "name" from the Row entity of
* attributes.
* @return the column data which column name is "name"
*/
public String getName() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.NAME
.columnName(),
"getName",
VersionNum.VERSION100);
return (String) super.getDataHandler(columndesc);
}
/**
* Get the Column entity which column name is "type" from the Row entity of
* attributes.
* @return the Column entity which column name is "type"
*/
public Column getTypeColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.TYPE
.columnName(),
"getTypeColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "type" to the Row entity of
* attributes.
* @param type the column data which column name is "type"
*/
public void setType(String type) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.TYPE
.columnName(),
"setType",
VersionNum.VERSION100);
super.setDataHandler(columndesc, type);
}
/**
* Get the Column entity which column name is "options" from the Row entity
* of attributes.
* @return the Column entity which column name is "options"
*/
public Column getOptionsColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.OPTIONS
.columnName(),
"getOptionsColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "options" to the Row entity of
* attributes.
* @param options the column data which column name is "options"
*/
public void setOptions(Map<String, String> options) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.OPTIONS
.columnName(),
"setOptions",
VersionNum.VERSION100);
super.setDataHandler(columndesc, options);
}
/**
* Get the Column entity which column name is "ingress_policing_rate" from
* the Row entity of attributes.
* @return the Column entity which column name is "ingress_policing_rate"
*/
public Column getIngressPolicingRateColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.INGRESSPOLICINGRATE
.columnName(),
"getIngressPolicingRateColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "ingress_policing_rate" to the
* Row entity of attributes.
* @param ingressPolicingRate the column data which column name is
* "ingress_policing_rate"
*/
public void setIngressPolicingRate(Set<Long> ingressPolicingRate) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.INGRESSPOLICINGRATE
.columnName(),
"setIngressPolicingRate",
VersionNum.VERSION100);
super.setDataHandler(columndesc, ingressPolicingRate);
}
/**
* Get the Column entity which column name is "ingress_policing_burst" from
* the Row entity of attributes.
* @return the Column entity which column name is "ingress_policing_burst"
*/
public Column getIngressPolicingBurstColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.INGRESSPOLICINGBURST
.columnName(),
"getIngressPolicingBurstColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "ingress_policing_burst" to the
* Row entity of attributes.
* @param ingressPolicingBurst the column data which column name is
* "ingress_policing_burst"
*/
public void setIngressPolicingBurst(Set<Long> ingressPolicingBurst) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.INGRESSPOLICINGBURST
.columnName(),
"setIngressPolicingBurst",
VersionNum.VERSION100);
super.setDataHandler(columndesc, ingressPolicingBurst);
}
/**
* Get the Column entity which column name is "mac_in_use" from the Row
* entity of attributes.
* @return the Column entity which column name is "mac_in_use"
*/
public Column getMacInUseColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.MACINUSE
.columnName(),
"getMacInUseColumn",
VersionNum.VERSION710);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "mac_in_use" to the Row entity
* of attributes.
* @param macInUse the column data which column name is "mac_in_use"
*/
public void setMacInUse(Set<String> macInUse) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.MACINUSE
.columnName(),
"setMacInUse",
VersionNum.VERSION710);
super.setDataHandler(columndesc, macInUse);
}
/**
* Get the Column entity which column name is "mac" from the Row entity of
* attributes.
* @return the Column entity which column name is "mac"
*/
public Column getMacColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.MAC
.columnName(),
"getMacColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "mac" to the Row entity of
* attributes.
* @param mac the column data which column name is "mac"
*/
public void setMac(Set<String> mac) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.MAC
.columnName(),
"setMac",
VersionNum.VERSION100);
super.setDataHandler(columndesc, mac);
}
/**
* Get the Column entity which column name is "ifindex" from the Row entity
* of attributes.
* @return the Column entity which column name is "ifindex"
*/
public Column getIfIndexColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.IFINDEX
.columnName(),
"getIfIndexColumn",
VersionNum.VERSION721);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "ifindex" to the Row entity of
* attributes.
* @param ifIndex the column data which column name is "ifindex"
*/
public void setIfIndex(Long ifIndex) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.IFINDEX
.columnName(),
"setIfIndex",
VersionNum.VERSION721);
super.setDataHandler(columndesc, ifIndex);
}
/**
* Get the Column entity which column name is "external_ids" from the Row
* entity of attributes.
* @return the Column entity which column name is "external_ids"
*/
public Column getExternalIdsColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.EXTERNALIDS
.columnName(),
"getExternalIdsColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "external_ids" to the Row entity
* of attributes.
* @param externalIds the column data which column name is "external_ids"
*/
public void setExternalIds(Map<String, String> externalIds) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.EXTERNALIDS
.columnName(),
"setExternalIds",
VersionNum.VERSION100);
super.setDataHandler(columndesc, externalIds);
}
/**
* Get the Column entity which column name is "ofport" from the Row entity
* of attributes.
* @return the Column entity which column name is "ofport"
*/
public Column getOpenFlowPortColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.OFPORT
.columnName(),
"getOpenFlowPortColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "ofport" to the Row entity of
* attributes.
* @param openFlowPort the column data which column name is "ofport"
*/
public void setOpenFlowPort(Set<Long> openFlowPort) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.OFPORT
.columnName(),
"setOpenFlowPort",
VersionNum.VERSION100);
super.setDataHandler(columndesc, openFlowPort);
}
/**
* Get the Column entity which column name is "ofport_request" from the Row
* entity of attributes.
* @return the Column entity which column name is "ofport_request"
*/
public Column getOpenFlowPortRequestColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.OFPORTREQUEST
.columnName(),
"getOpenFlowPortRequestColumn",
VersionNum.VERSION620);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "ofport_request" to the Row
* entity of attributes.
* @param openFlowPortRequest the column data which column name is
* "ofport_request"
*/
public void setOpenFlowPortRequest(String openFlowPortRequest) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.OFPORTREQUEST
.columnName(),
"setOpenFlowPortRequest",
VersionNum.VERSION620);
super.setDataHandler(columndesc, openFlowPortRequest);
}
/**
* Get the Column entity which column name is "bfd" from the Row entity of
* attributes.
* @return the Column entity which column name is "bfd"
*/
public Column getBfdColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.BFD
.columnName(),
"getBfdColumn",
VersionNum.VERSION720);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "bfd" to the Row entity of
* attributes.
* @param bfd the column data which column name is "bfd"
*/
public void setBfd(Map<String, String> bfd) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.BFD
.columnName(),
"setBfd",
VersionNum.VERSION720);
super.setDataHandler(columndesc, bfd);
}
/**
* Get the Column entity which column name is "bfd_status" from the Row
* entity of attributes.
* @return the Column entity which column name is "bfd_status"
*/
public Column getBfdStatusColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.BFDSTATUS
.columnName(),
"getBfdStatusColumn",
VersionNum.VERSION720);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "bfd_status" to the Row entity
* of attributes.
* @param bfdStatus the column data which column name is "bfd_status"
*/
public void setBfdStatus(Map<String, String> bfdStatus) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.BFDSTATUS
.columnName(),
"setBfdStatus",
VersionNum.VERSION720);
super.setDataHandler(columndesc, bfdStatus);
}
/**
* Get the Column entity which column name is "monitor" from the Row entity
* of attributes.
* @return the Column entity which column name is "monitor"
*/
public Column getMonitorColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.MONITOR
.columnName(),
"getMonitorColumn",
VersionNum.VERSION100,
VersionNum.VERSION350);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "monitor" to the Row entity of
* attributes.
* @param monitor the column data which column name is "monitor"
*/
public void setMonitor(String monitor) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.MONITOR
.columnName(),
"setMonitor",
VersionNum.VERSION100,
VersionNum.VERSION350);
super.setDataHandler(columndesc, monitor);
}
/**
* Get the Column entity which column name is "cfm_mpid" from the Row entity
* of attributes.
* @return the Column entity which column name is "cfm_mpid"
*/
public Column getCfmMpidColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.CFMMPID
.columnName(),
"getCfmMpidColumn",
VersionNum.VERSION400);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "cfm_mpid" to the Row entity of
* attributes.
* @param cfmMpid the column data which column name is "cfm_mpid"
*/
public void setCfmMpid(Set<Long> cfmMpid) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.CFMMPID
.columnName(),
"setCfmMpid",
VersionNum.VERSION400);
super.setDataHandler(columndesc, cfmMpid);
}
/**
* Get the Column entity which column name is "cfm_remote_mpid" from the Row
* entity of attributes.
* @return the Column entity which column name is "cfm_remote_mpid"
*/
public Column getCfmRemoteMpidColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.CFMREMOTEMPID
.columnName(),
"getCfmRemoteMpidColumn",
VersionNum.VERSION400,
VersionNum.VERSION520);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "cfm_remote_mpid" to the Row
* entity of attributes.
* @param cfmRemoteMpid the column data which column name is
* "cfm_remote_mpid"
*/
public void setCfmRemoteMpid(Set<Long> cfmRemoteMpid) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.CFMREMOTEMPID
.columnName(),
"setCfmRemoteMpid",
VersionNum.VERSION400,
VersionNum.VERSION520);
super.setDataHandler(columndesc, cfmRemoteMpid);
}
/**
* Get the Column entity which column name is "cfm_remote_mpids" from the
* Row entity of attributes.
* @return the Column entity which column name is "cfm_remote_mpids"
*/
public Column getCfmRemoteMpidsColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.CFMREMOTEMPIDS
.columnName(),
"getCfmRemoteMpidsColumn",
VersionNum.VERSION600);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "cfm_remote_mpids" to the Row
* entity of attributes.
* @param cfmRemoteMpids the column data which column name is
* "cfm_remote_mpids"
*/
public void setCfmRemoteMpids(Set<Long> cfmRemoteMpids) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.CFMREMOTEMPIDS
.columnName(),
"setCfmRemoteMpids",
VersionNum.VERSION600);
super.setDataHandler(columndesc, cfmRemoteMpids);
}
/**
* Get the Column entity which column name is "cfm_flap_count" from the Row
* entity of attributes.
* @return the Column entity which column name is "cfm_flap_count"
*/
public Column getCfmFlapCountColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.CFMFLAPCOUNT
.columnName(),
"getCfmFlapCountColumn",
VersionNum.VERSION730);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "cfm_flap_count" to the Row
* entity of attributes.
* @param cfmFlapCount the column data which column name is "cfm_flap_count"
*/
public void setCfmFlapCount(Set<Long> cfmFlapCount) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.CFMFLAPCOUNT
.columnName(),
"setCfmFlapCount",
VersionNum.VERSION730);
super.setDataHandler(columndesc, cfmFlapCount);
}
/**
* Get the Column entity which column name is "cfm_fault" from the Row
* entity of attributes.
* @return the Column entity which column name is "cfm_fault"
*/
public Column getCfmFaultColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.CFMFAULT
.columnName(),
"getCfmFaultColumn",
VersionNum.VERSION400);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "cfm_fault" to the Row entity of
* attributes.
* @param cfmFault the column data which column name is "cfm_fault"
*/
public void setCfmFault(Set<Boolean> cfmFault) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.CFMFAULT
.columnName(),
"setCfmFault",
VersionNum.VERSION400);
super.setDataHandler(columndesc, cfmFault);
}
/**
* Get the Column entity which column name is "cfm_fault_status" from the
* Row entity of attributes.
* @return the Column entity which column name is "cfm_fault_status"
*/
public Column getCfmFaultStatusColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.CFMFAULTSTATUS
.columnName(),
"getCfmFaultStatusColumn",
VersionNum.VERSION660);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "cfm_fault_status" to the Row
* entity of attributes.
* @param cfmFaultStatus the column data which column name is
* "cfm_fault_status"
*/
public void setCfmFaultStatus(Set<String> cfmFaultStatus) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.CFMFAULTSTATUS
.columnName(),
"setCfmFaultStatus",
VersionNum.VERSION660);
super.setDataHandler(columndesc, cfmFaultStatus);
}
/**
* Get the Column entity which column name is "cfm_remote_opstate" from the
* Row entity of attributes.
* @return the Column entity which column name is "cfm_remote_opstate"
*/
public Column getCfmRemoteOpStateColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.CFMREMOTEOPSTATE
.columnName(),
"getCfmRemoteOpStateColumn",
VersionNum.VERSION6100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "cfm_remote_opstate" to the Row
* entity of attributes.
* @param cfmRemoteOpState the column data which column name is
* "cfm_remote_opstate"
*/
public void setCfmRemoteOpState(Set<String> cfmRemoteOpState) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.CFMREMOTEOPSTATE
.columnName(),
"setCfmRemoteOpState",
VersionNum.VERSION6100);
super.setDataHandler(columndesc, cfmRemoteOpState);
}
/**
* Get the Column entity which column name is "cfm_health" from the Row
* entity of attributes.
* @return the Column entity which column name is "cfm_health"
*/
public Column getCfmHealthColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.CFMHEALTH
.columnName(),
"getCfmHealthColumn",
VersionNum.VERSION690);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "cfm_health" to the Row entity
* of attributes.
* @param cfmHealth the column data which column name is "cfm_health"
*/
public void setCfmHealth(Set<Long> cfmHealth) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.CFMHEALTH
.columnName(),
"setCfmHealth",
VersionNum.VERSION690);
super.setDataHandler(columndesc, cfmHealth);
}
/**
* Get the Column entity which column name is "lacp_current" from the Row
* entity of attributes.
* @return the Column entity which column name is "lacp_current"
*/
public Column getLacpCurrentColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.LACPCURRENT
.columnName(),
"getLacpCurrentColumn",
VersionNum.VERSION330);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "lacp_current" to the Row entity
* of attributes.
* @param lacpCurrent the column data which column name is "lacp_current"
*/
public void setLacpCurrent(Set<Boolean> lacpCurrent) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.LACPCURRENT
.columnName(),
"setLacpCurrent",
VersionNum.VERSION330);
super.setDataHandler(columndesc, lacpCurrent);
}
/**
* Get the Column entity which column name is "other_config" from the Row
* entity of attributes.
* @return the Column entity which column name is "other_config"
*/
public Column getOtherConfigColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.OTHERCONFIG
.columnName(),
"getOtherConfigColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "other_config" to the Row entity
* of attributes.
* @param otherConfig the column data which column name is "other_config"
*/
public void setOtherConfig(Map<String, String> otherConfig) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.OTHERCONFIG
.columnName(),
"setOtherConfig",
VersionNum.VERSION100);
super.setDataHandler(columndesc, otherConfig);
}
/**
* Get the Column entity which column name is "statistics" from the Row
* entity of attributes.
* @return the Column entity which column name is "statistics"
*/
public Column getStatisticsColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.STATISTICS
.columnName(),
"getStatisticsColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "statistics" to the Row entity
* of attributes.
* @param statistics the column data which column name is "statistics"
*/
public void setStatistics(Map<String, Long> statistics) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.STATISTICS
.columnName(),
"setStatistics",
VersionNum.VERSION100);
super.setDataHandler(columndesc, statistics);
}
/**
* Get the Column entity which column name is "status" from the Row entity
* of attributes.
* @return the Column entity which column name is "status"
*/
public Column getStatusColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.STATUS
.columnName(),
"getStatusColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "status" to the Row entity of
* attributes.
* @param status the column data which column name is "status"
*/
public void setStatus(Map<String, String> status) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.STATUS
.columnName(),
"setStatus",
VersionNum.VERSION100);
super.setDataHandler(columndesc, status);
}
/**
* Get the Column entity which column name is "admin_state" from the Row
* entity of attributes.
* @return the Column entity which column name is "admin_state"
*/
public Column getAdminStateColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.ADMINSTATE
.columnName(),
"getAdminStateColumn",
VersionNum.VERSION106);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "admin_state" to the Row entity
* of attributes.
* @param adminState the column data which column name is "admin_state"
*/
public void setAdminState(Set<String> adminState) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.ADMINSTATE
.columnName(),
"setAdminState",
VersionNum.VERSION106);
super.setDataHandler(columndesc, adminState);
}
/**
* Get the Column entity which column name is "link_state" from the Row
* entity of attributes.
* @return the Column entity which column name is "link_state"
*/
public Column getLinkStateColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.LINKSTATE
.columnName(),
"getLinkStateColumn",
VersionNum.VERSION106);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "link_state" to the Row entity
* of attributes.
* @param linkState the column data which column name is "link_state"
*/
public void setLinkState(Map<String, String> linkState) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.LINKSTATE
.columnName(),
"setLinkState",
VersionNum.VERSION106);
super.setDataHandler(columndesc, linkState);
}
/**
* Get the Column entity which column name is "link_resets" from the Row
* entity of attributes.
* @return the Column entity which column name is "link_resets"
*/
public Column getLinkResetsColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.LINKRESETS
.columnName(),
"getLinkResetsColumn",
VersionNum.VERSION620);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "link_resets" to the Row entity
* of attributes.
* @param linkResets the column data which column name is "link_resets"
*/
public void setLinkResets(Set<String> linkResets) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.LINKRESETS
.columnName(),
"setLinkResets",
VersionNum.VERSION620);
super.setDataHandler(columndesc, linkResets);
}
/**
* Get the Column entity which column name is "link_speed" from the Row
* entity of attributes.
* @return the Column entity which column name is "link_speed"
*/
public Column getLinkSpeedColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.LINKSPEED
.columnName(),
"getLinkSpeedColumn",
VersionNum.VERSION106);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "link_speed" to the Row entity
* of attributes.
* @param linkSpeed the column data which column name is "link_speed"
*/
public void setLinkSpeed(Set<Long> linkSpeed) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.LINKSPEED
.columnName(),
"setLinkSpeed",
VersionNum.VERSION106);
super.setDataHandler(columndesc, linkSpeed);
}
/**
* Get the Column entity which column name is "duplex" from the Row entity
* of attributes.
* @return the Column entity which column name is "duplex"
*/
public Column getDuplexColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.DUPLEX
.columnName(),
"getDuplexColumn",
VersionNum.VERSION106);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "duplex" to the Row entity of
* attributes.
* @param duplex the column data which column name is "duplex"
*/
public void setDuplex(Set<Long> duplex) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.DUPLEX
.columnName(),
"setDuplex",
VersionNum.VERSION106);
super.setDataHandler(columndesc, duplex);
}
/**
* Get the Column entity which column name is "mtu" from the Row entity of
* attributes.
* @return the Column entity which column name is "mtu"
*/
public Column getMtuColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.MTU
.columnName(),
"getMtuColumn",
VersionNum.VERSION106);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "mtu" to the Row entity of
* attributes.
* @param mtu the column data which column name is "mtu"
*/
public void setMtu(Set<Long> mtu) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.MTU
.columnName(),
"setMtu",
VersionNum.VERSION106);
super.setDataHandler(columndesc, mtu);
}
/**
* Get the Column entity which column name is "error" from the Row entity of
* attributes.
* @return the Column entity which column name is "error"
*/
public Column getErrorColumn() {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.ERROR
.columnName(),
"getErrorColumn",
VersionNum.VERSION770);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "error" to the Row entity of
* attributes.
* @param error the column data which column name is "error"
*/
public void setError(Set<String> error) {
ColumnDescription columndesc = new ColumnDescription(
InterfaceColumn.ERROR
.columnName(),
"setError",
VersionNum.VERSION770);
super.setDataHandler(columndesc, error);
}
}
package org.onosproject.ovsdb.rfc.table;
import java.util.Map;
import java.util.Set;
import org.onosproject.ovsdb.rfc.notation.Column;
import org.onosproject.ovsdb.rfc.notation.Row;
import org.onosproject.ovsdb.rfc.notation.UUID;
import org.onosproject.ovsdb.rfc.schema.DatabaseSchema;
import org.onosproject.ovsdb.rfc.tableservice.AbstractOvsdbTableService;
import org.onosproject.ovsdb.rfc.tableservice.ColumnDescription;
/**
* This class provides operations of Open_vSwitch Table.
*/
public class OpenVSwitch extends AbstractOvsdbTableService {
/**
* OpenVSwitch table column name.
*/
public enum OpenVSwitchColumn {
BRIDGES("bridges"), MANAGERS("managers"),
MANAGEROPTIONS("manager_options"), SSL("ssl"),
OTHERCONFIG("other_config"), EXTERNALIDS("external_ids"),
NEXTCFG("next_cfg"), CURCFG("cur_cfg"), CAPABILITIES("capabilities"),
STATISTICS("statistics"), OVSVERSION("ovs_version"),
DBVERSION("db_version"), SYSTEMTYPE("system_type"),
SYSTEMVERSION("system_version");
private final String columnName;
private OpenVSwitchColumn(String columnName) {
this.columnName = columnName;
}
/**
* Returns the table column name for OpenVSwitchColumn.
* @return the table column name
*/
public String columnName() {
return columnName;
}
}
/**
* Constructs a OpenVSwitch object. Generate Open_vSwitch Table Description.
* @param dbSchema DatabaseSchema
* @param row Row
*/
public OpenVSwitch(DatabaseSchema dbSchema, Row row) {
super(dbSchema, row, OvsdbTable.OPENVSWITCH, VersionNum.VERSION100);
}
/**
* Get the Column entity which column name is "bridges" from the Row entity
* of attributes.
* @return the Column entity which column name is "bridges"
*/
public Column getBridgesColumn() {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.BRIDGES
.columnName(),
"getBridgesColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "bridges" to the Row entity of
* attributes.
* @param bridges the column data which column name is "bridges"
*/
public void setBridges(Set<UUID> bridges) {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.BRIDGES
.columnName(),
"setBridges",
VersionNum.VERSION100);
super.setDataHandler(columndesc, bridges);
}
/**
* Get the Column entity which column name is "managers" from the Row entity
* of attributes.
* @return the Column entity which column name is "managers"
*/
public Column getManagersColumn() {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.MANAGERS
.columnName(),
"getManagersColumn",
VersionNum.VERSION100,
VersionNum.VERSION200);
return (Column) super.getDataHandler(columndesc);
}
/**
* Add a Column entity which column name is "managers" to the Row entity of
* attributes.
* @param managers the column data which column name is "managers"
*/
public void setManagers(Set<UUID> managers) {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.MANAGERS
.columnName(),
"setManagers",
VersionNum.VERSION100,
VersionNum.VERSION200);
super.setDataHandler(columndesc, managers);
}
/**
* Get the Column entity which column name is "manager_options" from the Row
* entity of attributes.
* @return the Column entity which column name is "manager_options"
*/
public Column getManagerOptionsColumn() {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.MANAGEROPTIONS
.columnName(),
"getManagerOptionsColumn",
VersionNum.VERSION100);
return (Column) super.getDataHandler(columndesc);
}
/**
* Add a Column entity which column name is "manager_options" to the Row
* entity of attributes.
* @param managerOptions the column data which column name is
* "manager_options"
*/
public void setManagerOptions(Set<UUID> managerOptions) {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.MANAGEROPTIONS
.columnName(),
"setManagerOptions",
VersionNum.VERSION100);
super.setDataHandler(columndesc, managerOptions);
}
/**
* Get the Column entity which column name is "ssl" from the Row entity of
* attributes.
* @return the Column entity which column name is "ssl"
*/
public Column getSslColumn() {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.SSL
.columnName(),
"getSslColumn",
VersionNum.VERSION100);
return (Column) super.getDataHandler(columndesc);
}
/**
* Add a Column entity which column name is "ssl" to the Row entity of
* attributes.
* @param ssl the column data which column name is "ssl"
*/
public void setSsl(Set<UUID> ssl) {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.SSL
.columnName(),
"setSsl",
VersionNum.VERSION100);
super.setDataHandler(columndesc, ssl);
}
/**
* Get the Column entity which column name is "other_config" from the Row
* entity of attributes.
* @return the Column entity which column name is "other_config"
*/
public Column getOtherConfigColumn() {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.OTHERCONFIG
.columnName(),
"getOtherConfigColumn",
VersionNum.VERSION510);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "other_config" to the Row entity
* of attributes.
* @param otherConfig the column data which column name is "other_config"
*/
public void setOtherConfig(Map<String, String> otherConfig) {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.OTHERCONFIG
.columnName(),
"setOtherConfig",
VersionNum.VERSION510);
super.setDataHandler(columndesc, otherConfig);
}
/**
* Get the Column entity which column name is "external_ids" from the Row
* entity of attributes.
* @return the Column entity which column name is "external_ids"
*/
public Column getExternalIdsColumn() {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.EXTERNALIDS
.columnName(),
"getExternalIdsColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "external_ids" to the Row entity
* of attributes.
* @param externalIds the column data which column name is "external_ids"
*/
public void setExternalIds(Map<String, String> externalIds) {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.EXTERNALIDS
.columnName(),
"setExternalIds",
VersionNum.VERSION100);
super.setDataHandler(columndesc, externalIds);
}
/**
* Get the Column entity which column name is "next_cfg" from the Row entity
* of attributes.
* @return the Column entity which column name is "next_cfg"
*/
public Column getNextConfigColumn() {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.NEXTCFG
.columnName(),
"getNextConfigColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "next_cfg" to the Row entity of
* attributes.
* @param nextConfig the column data which column name is "next_cfg"
*/
public void setNextConfig(Long nextConfig) {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.NEXTCFG
.columnName(),
"setNextConfig",
VersionNum.VERSION100);
super.setDataHandler(columndesc, nextConfig);
}
/**
* Get the Column entity which column name is "cur_cfg" from the Row entity
* of attributes.
* @return the Column entity which column name is "cur_cfg"
*/
public Column getCurrentConfigColumn() {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.CURCFG
.columnName(),
"getCurrentConfigColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "cur_cfg" to the Row entity of
* attributes.
* @param currentConfig the column data which column name is "cur_cfg"
*/
public void setCurrentConfig(Long currentConfig) {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.CURCFG
.columnName(),
"setCurrentConfig",
VersionNum.VERSION100);
super.setDataHandler(columndesc, currentConfig);
}
/**
* Get the Column entity which column name is "capabilities" from the Row
* entity of attributes.
* @return the Column entity which column name is "capabilities"
*/
public Column getCapabilitiesColumn() {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.CAPABILITIES
.columnName(),
"getCapabilitiesColumn",
VersionNum.VERSION100,
VersionNum.VERSION670);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "capabilities" to the Row entity
* of attributes.
* @param capabilities the column data which column name is "capabilities"
*/
public void setCapabilities(Map<String, UUID> capabilities) {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.CAPABILITIES
.columnName(),
"setCapabilities",
VersionNum.VERSION100,
VersionNum.VERSION670);
super.setDataHandler(columndesc, capabilities);
}
/**
* Get the Column entity which column name is "statistics" from the Row
* entity of attributes.
* @return the Column entity which column name is "statistics"
*/
public Column getStatisticsColumn() {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.STATISTICS
.columnName(),
"getStatisticsColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "statistics" to the Row entity
* of attributes.
* @param statistics the column data which column name is "statistics"
*/
public void setStatistics(Map<String, Long> statistics) {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.STATISTICS
.columnName(),
"setStatistics",
VersionNum.VERSION100);
super.setDataHandler(columndesc, statistics);
}
/**
* Get the Column entity which column name is "ovs_version" from the Row
* entity of attributes.
* @return the Column entity which column name is "ovs_version"
*/
public Column getOvsVersionColumn() {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.OVSVERSION
.columnName(),
"getOvsVersionColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "ovs_version" to the Row entity
* of attributes.
* @param ovsVersion the column data which column name is "ovs_version"
*/
public void setOvsVersion(Set<String> ovsVersion) {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.OVSVERSION
.columnName(),
"setOvsVersion",
VersionNum.VERSION100);
super.setDataHandler(columndesc, ovsVersion);
}
/**
* Get the Column entity which column name is "db_version" from the Row
* entity of attributes.
* @return the Column entity which column name is "db_version"
*/
public Column getDbVersionColumn() {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.DBVERSION
.columnName(),
"getDbVersionColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "db_version" to the Row entity
* of attributes.
* @param dbVersion the column data which column name is "db_version"
*/
public void setDbVersion(Set<String> dbVersion) {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.DBVERSION
.columnName(),
"setDbVersion",
VersionNum.VERSION100);
super.setDataHandler(columndesc, dbVersion);
}
/**
* Get the Column entity which column name is "system_type" from the Row
* entity of attributes.
* @return the Column entity which column name is "system_type"
*/
public Column getSystemTypeColumn() {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.SYSTEMTYPE
.columnName(),
"getSystemTypeColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "system_type" to the Row entity
* of attributes.
* @param systemType the column data which column name is "system_type"
*/
public void setSystemType(Set<String> systemType) {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.SYSTEMTYPE
.columnName(),
"setSystemType",
VersionNum.VERSION100);
super.setDataHandler(columndesc, systemType);
}
/**
* Get the Column entity which column name is "system_version" from the Row
* entity of attributes.
* @return the Column entity which column name is "system_version"
*/
public Column getSystemVersionColumn() {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.SYSTEMVERSION
.columnName(),
"getSystemVersionColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "system_version" to the Row
* entity of attributes.
* @param systemVersion the column data which column name is
* "system_version"
*/
public void setSystemVersion(Set<String> systemVersion) {
ColumnDescription columndesc = new ColumnDescription(
OpenVSwitchColumn.SYSTEMVERSION
.columnName(),
"setSystemVersion",
VersionNum.VERSION100);
super.setDataHandler(columndesc, systemVersion);
}
}
/*
* Copyright 2015 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.ovsdb.rfc.table;
/**
* Ovsdb table name. Refer to RFC7047's Section 9.2.
*/
public enum OvsdbTable {
INTERFACE("Interface"), BRIDGE("Bridge"), CONTROLLER("Controller"),
PORT("Port"), OPENVSWITCH("Open_vSwitch"), FLWTABLE("Flow_Table"),
QOS("Qos"), QUEUE("Queue"), MIRROR("Mirror"), MANAGER("Manager"),
NETFLOW("NetFlow"), SSL("SSL"), SFLOW("sFlow"), IPFIX("IPFIX"),
FLOWSAMPLECOLLECTORSET("Flow_Sample_Collector_Set");
private final String tableName;
private OvsdbTable(String tableName) {
this.tableName = tableName;
}
/**
* Returns the table name for OvsdbTable.
* @return the table name
*/
public String tableName() {
return tableName;
}
}
package org.onosproject.ovsdb.rfc.table;
import java.util.Map;
import java.util.Set;
import org.onosproject.ovsdb.rfc.notation.Column;
import org.onosproject.ovsdb.rfc.notation.Row;
import org.onosproject.ovsdb.rfc.notation.UUID;
import org.onosproject.ovsdb.rfc.schema.DatabaseSchema;
import org.onosproject.ovsdb.rfc.tableservice.AbstractOvsdbTableService;
import org.onosproject.ovsdb.rfc.tableservice.ColumnDescription;
/**
* This class provides operations of Port Table.
*/
public class Port extends AbstractOvsdbTableService {
/**
* Port table column name.
*/
public enum PortColumn {
NAME("name"), INTERFACES("interfaces"), TRUNKS("trunks"), TAG("tag"),
VLANMODE("vlan_mode"), QOS("qos"), MAC("mac"), BONDTYPE("bond_type"),
BONDMODE("bond_mode"), LACP("lacp"), BONDUPDELAY("bond_updelay"),
BONDDOWNDELAY("bond_downdelay"), BONDFAKEIFACE("bond_fake_iface"),
FAKEBRIDGE("fake_bridge"), STATUS("status"), STATISTICS("statistics"),
OTHERCONFIG("other_config"), EXTERNALIDS("external_ids");
private final String columnName;
private PortColumn(String columnName) {
this.columnName = columnName;
}
/**
* Returns the table column name for PortColumn.
* @return the table column name
*/
public String columnName() {
return columnName;
}
}
/**
* Constructs a Port object. Generate Port Table Description.
* @param dbSchema DatabaseSchema
* @param row Row
*/
public Port(DatabaseSchema dbSchema, Row row) {
super(dbSchema, row, OvsdbTable.PORT, VersionNum.VERSION100);
}
/**
* Get the Column entity which column name is "name" from the Row entity of
* attributes.
* @return the Column entity
*/
public Column getNameColumn() {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.NAME
.columnName(),
"getNameColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "name" to the Row entity of
* attributes.
* @param name the column data which column name is "name"
*/
public void setName(String name) {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.NAME
.columnName(),
"setName",
VersionNum.VERSION100);
super.setDataHandler(columndesc, name);
}
/**
* Get the Column entity which column name is "name" from the Row entity of
* attributes.
* @return the Column entity
*/
public String getName() {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.NAME
.columnName(),
"getName",
VersionNum.VERSION100);
return (String) super.getDataHandler(columndesc);
}
/**
* Get the Column entity which column name is "interfaces" from the Row
* entity of attributes.
* @return the Column entity
*/
public Column getInterfacesColumn() {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.INTERFACES
.columnName(),
"getInterfacesColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "interfaces" to the Row entity
* of attributes.
* @param interfaces the column data which column name is "interfaces"
*/
public void setInterfaces(Set<UUID> interfaces) {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.INTERFACES
.columnName(),
"setInterfaces",
VersionNum.VERSION100);
super.setDataHandler(columndesc, interfaces);
}
/**
* Get the Column entity which column name is "trunks" from the Row entity
* of attributes.
* @return the Column entity
*/
public Column getTrunksColumn() {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.TRUNKS
.columnName(),
"getTrunksColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "trunks" to the Row entity of
* attributes.
* @param trunks the column data which column name is "trunks"
*/
public void setTrunks(Set<Long> trunks) {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.TRUNKS
.columnName(),
"setTrunks",
VersionNum.VERSION100);
super.setDataHandler(columndesc, trunks);
}
/**
* Get the Column entity which column name is "tag" from the Row entity of
* attributes.
* @return the Column entity
*/
public Column getTagColumn() {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.TAG
.columnName(),
"getTagColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "tag" to the Row entity of
* attributes.
* @param tag the column data which column name is "tag"
*/
public void setTag(Set<Long> tag) {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.TAG
.columnName(),
"setTag",
VersionNum.VERSION100);
super.setDataHandler(columndesc, tag);
}
/**
* Get the Column entity which column name is "vlan_mode" from the Row
* entity of attributes.
* @return the Column entity
*/
public Column getVlanModeColumn() {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.VLANMODE
.columnName(),
"getVlanModeColumn",
VersionNum.VERSION610);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "vlan_mode" to the Row entity of
* attributes.
* @param vlanMode the column data which column name is "vlan_mode"
*/
public void setVlanMode(Set<String> vlanMode) {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.VLANMODE
.columnName(),
"setVlanMode",
VersionNum.VERSION610);
super.setDataHandler(columndesc, vlanMode);
}
/**
* Get the Column entity which column name is "qos" from the Row entity of
* attributes.
* @return the Column entity
*/
public Column getQosColumn() {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.QOS
.columnName(),
"getQosColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "qos" to the Row entity of
* attributes.
* @param qos the column data which column name is "qos"
*/
public void setQos(Set<UUID> qos) {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.QOS
.columnName(),
"setQos",
VersionNum.VERSION100);
super.setDataHandler(columndesc, qos);
}
/**
* Get the Column entity which column name is "mac" from the Row entity of
* attributes.
* @return the Column entity
*/
public Column getMacColumn() {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.MAC
.columnName(),
"getMacColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "mac" to the Row entity of
* attributes.
* @param mac the column data which column name is "mac"
*/
public void setMac(Set<String> mac) {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.MAC
.columnName(),
"setMac",
VersionNum.VERSION100);
super.setDataHandler(columndesc, mac);
}
/**
* Get the Column entity which column name is "bond_type" from the Row
* entity of attributes.
* @return the Column entity
*/
public Column getBondTypeColumn() {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.BONDTYPE
.columnName(),
"getBondTypeColumn",
VersionNum.VERSION102,
VersionNum.VERSION103);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "bond_type" to the Row entity of
* attributes.
* @param bondtype the column data which column name is "bond_type"
*/
public void setBondType(Set<String> bondtype) {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.BONDTYPE
.columnName(),
"setBondType",
VersionNum.VERSION102,
VersionNum.VERSION103);
super.setDataHandler(columndesc, bondtype);
}
/**
* Get the Column entity which column name is "bond_mode" from the Row
* entity of attributes.
* @return the Column entity
*/
public Column getBondModeColumn() {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.BONDMODE
.columnName(),
"getBondModeColumn",
VersionNum.VERSION104);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "bond_mode" to the Row entity of
* attributes.
* @param bondmode the column data which column name is "bond_mode"
*/
public void setBondMode(Set<String> bondmode) {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.BONDMODE
.columnName(),
"setBondMode",
VersionNum.VERSION104);
super.setDataHandler(columndesc, bondmode);
}
/**
* Get the Column entity which column name is "lacp" from the Row entity of
* attributes.
* @return the Column entity
*/
public Column getLacpColumn() {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.LACP
.columnName(),
"getLacpColumn",
VersionNum.VERSION130);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "lacp" to the Row entity of
* attributes.
* @param lacp the column data which column name is "lacp"
*/
public void setLacp(Set<String> lacp) {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.LACP
.columnName(),
"setLacp",
VersionNum.VERSION130);
super.setDataHandler(columndesc, lacp);
}
/**
* Get the Column entity which column name is "bond_updelay" from the Row
* entity of attributes.
* @return the Column entity
*/
public Column getBondUpDelayColumn() {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.BONDUPDELAY
.columnName(),
"getBondUpDelayColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "bond_updelay" to the Row entity
* of attributes.
* @param bondUpDelay the column data which column name is "bond_updelay"
*/
public void setBondUpDelay(Set<Long> bondUpDelay) {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.BONDUPDELAY
.columnName(),
"setBondUpDelay",
VersionNum.VERSION100);
super.setDataHandler(columndesc, bondUpDelay);
}
/**
* Get the Column entity which column name is "bond_downdelay" from the Row
* entity of attributes.
* @return the Column entity
*/
public Column getBondDownDelayColumn() {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.BONDDOWNDELAY
.columnName(),
"getBondDownDelayColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "bond_downdelay" to the Row
* entity of attributes.
* @param bondDownDelay the column data which column name is
* "bond_downdelay"
*/
public void setBondDownDelay(Set<Long> bondDownDelay) {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.BONDDOWNDELAY
.columnName(),
"setBondDownDelay",
VersionNum.VERSION100);
super.setDataHandler(columndesc, bondDownDelay);
}
/**
* Get the Column entity which column name is "bond_fake_iface" from the Row
* entity of attributes.
* @return the Column entity
*/
public Column getBondFakeInterfaceColumn() {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.BONDFAKEIFACE
.columnName(),
"getBondFakeInterfaceColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "bond_fake_iface" to the Row
* entity of attributes.
* @param bondFakeInterface the column data which column name is
* "bond_fake_iface"
*/
public void setBondFakeInterface(Set<Boolean> bondFakeInterface) {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.BONDFAKEIFACE
.columnName(),
"setBondFakeInterface",
VersionNum.VERSION100);
super.setDataHandler(columndesc, bondFakeInterface);
}
/**
* Get the Column entity which column name is "fake_bridge" from the Row
* entity of attributes.
* @return the Column entity
*/
public Column getFakeBridgeColumn() {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.FAKEBRIDGE
.columnName(),
"getFakeBridgeColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "fake_bridge" to the Row entity
* of attributes.
* @param fakeBridge the column data which column name is "fake_bridge"
*/
public void setFakeBridge(Set<Boolean> fakeBridge) {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.FAKEBRIDGE
.columnName(),
"setFakeBridge",
VersionNum.VERSION100);
super.setDataHandler(columndesc, fakeBridge);
}
/**
* Get the Column entity which column name is "status" from the Row entity
* of attributes.
* @return the Column entity
*/
public Column getStatusColumn() {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.STATUS
.columnName(),
"getStatusColumn",
VersionNum.VERSION620);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "status" to the Row entity of
* attributes.
* @param status the column data which column name is "status"
*/
public void setStatus(Map<String, String> status) {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.STATUS
.columnName(),
"setStatus",
VersionNum.VERSION620);
super.setDataHandler(columndesc, status);
}
/**
* Get the Column entity which column name is "statistics" from the Row
* entity of attributes.
* @return the Column entity
*/
public Column getStatisticsColumn() {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.STATISTICS
.columnName(),
"getStatisticsColumn",
VersionNum.VERSION630);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "statistics" to the Row entity
* of attributes.
* @param statistics the column data which column name is "statistics"
*/
public void setStatistics(Map<String, Long> statistics) {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.STATISTICS
.columnName(),
"setStatistics",
VersionNum.VERSION630);
super.setDataHandler(columndesc, statistics);
}
/**
* Get the Column entity which column name is "other_config" from the Row
* entity of attributes.
* @return the Column entity
*/
public Column getOtherConfigColumn() {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.OTHERCONFIG
.columnName(),
"getOtherConfigColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "other_config" to the Row entity
* of attributes.
* @param otherConfig the column data which column name is "other_config"
*/
public void setOtherConfig(Map<String, String> otherConfig) {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.OTHERCONFIG
.columnName(),
"setOtherConfig",
VersionNum.VERSION100);
super.setDataHandler(columndesc, otherConfig);
}
/**
* Get the Column entity which column name is "external_ids" from the Row
* entity of attributes.
* @return the Column entity
*/
public Column getExternalIdsColumn() {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.EXTERNALIDS
.columnName(),
"getExternalIdsColumn",
VersionNum.VERSION100);
return (Column) super.getColumnHandler(columndesc);
}
/**
* Add a Column entity which column name is "external_ids" to the Row entity
* of attributes.
* @param externalIds the column data which column name is "external_ids"
*/
public void setExternalIds(Map<String, String> externalIds) {
ColumnDescription columndesc = new ColumnDescription(
PortColumn.EXTERNALIDS
.columnName(),
"setExternalIds",
VersionNum.VERSION100);
super.setDataHandler(columndesc, externalIds);
}
}
/*
* Copyright 2015 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.ovsdb.rfc.table;
import org.onosproject.ovsdb.rfc.notation.Row;
import org.onosproject.ovsdb.rfc.schema.DatabaseSchema;
/**
* Table generator.
*/
public final class TableGenerator {
/**
* Constructs a TableGenerator object. Utility classes should not have a
* public or default constructor, otherwise it will compile failed. This
* class should not be instantiated.
*/
private TableGenerator() {
}
/**
* Create table.
* @param dbSchema DatabaseSchema entity
* @param tableName table name
* @return Object table entity
*/
public static Object createTable(DatabaseSchema dbSchema,
OvsdbTable tableName) {
Row row = new Row();
return generateTable(dbSchema, row, tableName);
}
/**
* Get table from Row.
* @param dbSchema DatabaseSchema entity
* @param row Row entity
* @param tableName table name
* @return Object table entity
*/
public static Object getTable(DatabaseSchema dbSchema, Row row,
OvsdbTable tableName) {
return generateTable(dbSchema, row, tableName);
}
/**
* Generate the table by table name.
* @param dbSchema DatabaseSchema entity
* @param row Row entity
* @param tableName table name
* @return Object Table entity
*/
private static Object generateTable(DatabaseSchema dbSchema, Row row,
OvsdbTable tableName) {
switch (tableName) {
case INTERFACE:
return new Interface(dbSchema, row);
case BRIDGE:
return new Bridge(dbSchema, row);
case CONTROLLER:
return new Controller(dbSchema, row);
case OPENVSWITCH:
return new OpenVSwitch(dbSchema, row);
case PORT:
return new Port(dbSchema, row);
default:
return null;
}
}
}
/*
* Copyright 2015 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.ovsdb.rfc.table;
/**
* The version number of tables and columns.
*/
public enum VersionNum {
VERSION100("1.0.0"), VERSION102("1.0.2"), VERSION103("1.0.3"),
VERSION104("1.0.4"), VERSION106("1.0.6"), VERSION110("1.1.0"),
VERSION130("1.3.0"), VERSION200("2.0.0"), VERSION300("3.0.0"),
VERSION330("3.3.0"), VERSION350("3.5.0"), VERSION400("4.0.0"),
VERSION510("5.1.0"), VERSION520("5.2.0"), VERSION600("6.0.0"),
VERSION610("6.1.0"), VERSION620("6.2.0"), VERSION630("6.3.0"),
VERSION640("6.4.0"), VERSION650("6.5.0"), VERSION660("6.6.0"),
VERSION670("6.7.0"), VERSION680("6.8.0"), VERSION690("6.9.0"),
VERSION6100("6.10.0"), VERSION6111("6.11.1"), VERSION710("7.1.0"),
VERSION720("7.2.0"), VERSION721("7.2.1"), VERSION730("7.3.0"),
VERSION740("7.4.0"), VERSION750("7.5.0"), VERSION770("7.7.0");
private final String versionNum;
private VersionNum(String versionNum) {
this.versionNum = versionNum;
}
/**
* Returns the version number for VersionNum.
* @return the version number
*/
public String versionNum() {
return versionNum;
}
}
/*
* Copyright 2015 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.ovsdb.rfc.tableservice;
import static com.google.common.base.MoreObjects.toStringHelper;
import static com.google.common.base.Preconditions.checkNotNull;
import java.util.Objects;
import org.onosproject.ovsdb.rfc.error.ColumnSchemaNotFoundException;
import org.onosproject.ovsdb.rfc.error.TableSchemaNotFoundException;
import org.onosproject.ovsdb.rfc.error.TypedSchemaException;
import org.onosproject.ovsdb.rfc.error.VersionMismatchException;
import org.onosproject.ovsdb.rfc.notation.Column;
import org.onosproject.ovsdb.rfc.notation.Row;
import org.onosproject.ovsdb.rfc.notation.UUID;
import org.onosproject.ovsdb.rfc.schema.ColumnSchema;
import org.onosproject.ovsdb.rfc.schema.DatabaseSchema;
import org.onosproject.ovsdb.rfc.schema.TableSchema;
import org.onosproject.ovsdb.rfc.table.OvsdbTable;
import org.onosproject.ovsdb.rfc.table.VersionNum;
import org.onosproject.ovsdb.rfc.utils.VersionUtil;
/**
* Representation of conversion between Ovsdb table and Row.
*/
public abstract class AbstractOvsdbTableService implements OvsdbTableService {
private final DatabaseSchema dbSchema;
private final Row row;
private final TableDescription tableDesc;
/**
* Constructs a AbstractOvsdbTableService object.
* @param dbSchema DatabaseSchema entity
* @param row Row entity
* @param table table name
* @param formVersion the initial version
*/
public AbstractOvsdbTableService(DatabaseSchema dbSchema, Row row,
OvsdbTable table, VersionNum formVersion) {
checkNotNull(dbSchema, "database schema cannot be null");
checkNotNull(row, "row cannot be null");
checkNotNull(table, "table cannot be null");
checkNotNull(formVersion, "the initial version cannot be null");
this.dbSchema = dbSchema;
this.row = row;
TableDescription tableDesc = new TableDescription(table, formVersion);
this.tableDesc = tableDesc;
row.setTableSchema(dbSchema.getTableSchema(table.tableName()));
}
/**
* Check whether the parameter of dbSchema is valid and check whether the
* table is existent in Database Schema.
*/
private boolean isValid() {
if (dbSchema == null) {
return false;
}
if (!dbSchema.name().equalsIgnoreCase(tableDesc.database())) {
return false;
}
checkTableSchemaVersion();
return true;
}
/**
* Check the table version.
*/
private void checkTableSchemaVersion() {
String fromVersion = tableDesc.fromVersion();
String untilVersion = tableDesc.untilVersion();
String schemaVersion = dbSchema.version();
checkVersion(schemaVersion, fromVersion, untilVersion);
}
/**
* Check the column version.
* @param columnDesc ColumnDescription entity
*/
private void checkColumnSchemaVersion(ColumnDescription columnDesc) {
String fromVersion = columnDesc.fromVersion();
String untilVersion = columnDesc.untilVersion();
String schemaVersion = dbSchema.version();
checkVersion(schemaVersion, fromVersion, untilVersion);
}
/**
* Check whether the DatabaseSchema version between the initial version and
* the end of the version.
* @param schemaVersion DatabaseSchema version
* @param fromVersion The initial version
* @param untilVersion The end of the version
* @throws VersionMismatchException this is a version mismatch exception
*/
private void checkVersion(String schemaVersion, String fromVersion,
String untilVersion) {
VersionUtil.versionMatch(fromVersion);
VersionUtil.versionMatch(untilVersion);
if (!fromVersion.equals(VersionUtil.DEFAULT_VERSION_STRING)) {
if (VersionUtil.versionCompare(schemaVersion, fromVersion) < 0) {
String message = VersionMismatchException
.createFromMessage(schemaVersion, fromVersion);
throw new VersionMismatchException(message);
}
}
if (!untilVersion.equals(VersionUtil.DEFAULT_VERSION_STRING)) {
if (VersionUtil.versionCompare(untilVersion, schemaVersion) < 0) {
String message = VersionMismatchException
.createToMessage(schemaVersion, untilVersion);
throw new VersionMismatchException(message);
}
}
}
/**
* Returns TableSchema from dbSchema by table name.
* @return TableSchema
*/
private TableSchema getTableSchema() {
String tableName = tableDesc.name();
return dbSchema.getTableSchema(tableName);
}
/**
* Returns ColumnSchema from TableSchema by column name.
* @param tableSchema TableSchema entity
* @param columnName column name
* @return ColumnSchema
*/
private ColumnSchema getColumnSchema(TableSchema tableSchema,
String columnName) {
return tableSchema.getColumnSchema(columnName);
}
@Override
public Column getColumnHandler(ColumnDescription columnDesc) {
if (!isValid()) {
return null;
}
String columnName = columnDesc.name();
checkColumnSchemaVersion(columnDesc);
if (columnName == null) {
throw new TypedSchemaException("Error processing GetColumn : "
+ tableDesc.name() + "." + columnDesc.method());
}
TableSchema tableSchema = getTableSchema();
if (tableSchema == null) {
String message = TableSchemaNotFoundException
.createMessage(tableDesc.name(), dbSchema.name());
throw new TableSchemaNotFoundException(message);
}
ColumnSchema columnSchema = getColumnSchema(tableSchema, columnName);
if (columnSchema == null) {
String message = ColumnSchemaNotFoundException
.createMessage(columnName, tableSchema.name());
throw new ColumnSchemaNotFoundException(message);
}
if (row == null) {
return new Column(columnSchema, null);
}
return row.getColumn(columnSchema);
}
@Override
public Object getDataHandler(ColumnDescription columnDesc) {
if (!isValid()) {
return null;
}
String columnName = columnDesc.name();
checkColumnSchemaVersion(columnDesc);
if (columnName == null) {
throw new TypedSchemaException("Error processing GetColumn : "
+ tableDesc.name() + "." + columnDesc.method());
}
TableSchema tableSchema = getTableSchema();
if (tableSchema == null) {
String message = TableSchemaNotFoundException
.createMessage(tableDesc.name(), dbSchema.name());
throw new TableSchemaNotFoundException(message);
}
ColumnSchema columnSchema = getColumnSchema(tableSchema, columnName);
if (columnSchema == null) {
String message = ColumnSchemaNotFoundException
.createMessage(columnName, tableSchema.name());
throw new ColumnSchemaNotFoundException(message);
}
if (row == null || row.getColumn(columnSchema) == null) {
return null;
}
return row.getColumn(columnSchema).data();
}
@Override
public void setDataHandler(ColumnDescription columnDesc, Object obj) {
if (!isValid()) {
return;
}
String columnName = columnDesc.name();
checkColumnSchemaVersion(columnDesc);
if (columnName == null) {
throw new TypedSchemaException("Unable to locate Column Name for "
+ tableDesc.name() + "." + columnDesc.method());
}
TableSchema tableSchema = getTableSchema();
ColumnSchema columnSchema = getColumnSchema(tableSchema, columnName);
Column column = new Column(columnSchema, obj);
row.addColumn(columnName, column);
}
@Override
public Object getTbSchema() {
if (!isValid()) {
return null;
}
if (dbSchema == null) {
return null;
}
return getTableSchema();
}
@Override
public UUID getUuid() {
if (!isValid()) {
return null;
}
ColumnDescription columnDesc = new ColumnDescription("_uuid",
"getTbUuid");
return (UUID) getDataHandler(columnDesc);
}
@Override
public Column getUuidColumn() {
if (!isValid()) {
return null;
}
ColumnDescription columnDesc = new ColumnDescription("_uuid",
"getTbUuidColumn");
return (Column) getColumnHandler(columnDesc);
}
@Override
public UUID getVersion() {
if (!isValid()) {
return null;
}
ColumnDescription columnDesc = new ColumnDescription("_version",
"getTbVersion");
return (UUID) getDataHandler(columnDesc);
}
@Override
public Column getVersionColumn() {
if (!isValid()) {
return null;
}
ColumnDescription columnDesc = new ColumnDescription("_version",
"getTbVersionColumn");
return (Column) getColumnHandler(columnDesc);
}
/**
* Get DatabaseSchema entity.
* @return DatabaseSchema entity
*/
public DatabaseSchema dbSchema() {
return dbSchema;
}
/**
* Get Row entity.
* @return Row entity
*/
public Row getRow() {
if (!isValid()) {
return null;
}
return this.row;
}
/**
* Get TableDescription entity.
* @return TableDescription entity
*/
public TableDescription tableDesc() {
return tableDesc;
}
@Override
public int hashCode() {
return Objects.hash(row);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj instanceof AbstractOvsdbTableService) {
final AbstractOvsdbTableService other = (AbstractOvsdbTableService) obj;
return Objects.equals(this.row, other.row);
}
return false;
}
@Override
public String toString() {
TableSchema schema = (TableSchema) getTbSchema();
String tableName = schema.name();
return toStringHelper(this).add("tableName", tableName).add("row", row)
.toString();
}
}
/*
* Copyright 2015 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.ovsdb.rfc.tableservice;
import static com.google.common.base.Preconditions.checkNotNull;
import org.onosproject.ovsdb.rfc.table.VersionNum;
import org.onosproject.ovsdb.rfc.utils.VersionUtil;
/**
* Column description.
*/
public class ColumnDescription {
// The column name
private final String name;
// The method name
private final String method;
// The initial version
private final String fromVersion;
// The end of the version
private final String untilVersion;
/**
* Constructs a MonitorRequest object.
* @param name column name
* @param method method name
*/
public ColumnDescription(String name, String method) {
checkNotNull(name, "name cannot be null");
checkNotNull(method, "method cannot be null");
this.name = name;
this.method = method;
this.fromVersion = VersionUtil.DEFAULT_VERSION_STRING;
this.untilVersion = VersionUtil.DEFAULT_VERSION_STRING;
}
/**
* Constructs a MonitorRequest object.
* @param name column name
* @param method method name
* @param fromVersion the initial version
*/
public ColumnDescription(String name, String method, VersionNum fromVersion) {
checkNotNull(name, "name cannot be null");
checkNotNull(method, "method cannot be null");
checkNotNull(fromVersion, "the initial version cannot be null");
this.name = name;
this.method = method;
this.fromVersion = fromVersion.versionNum();
this.untilVersion = VersionUtil.DEFAULT_VERSION_STRING;
}
/**
* Constructs a MonitorRequest object.
* @param name column name
* @param method method name
* @param fromVersion the initial version
* @param untilVersion the end of the version
*/
public ColumnDescription(String name, String method, VersionNum fromVersion,
VersionNum untilVersion) {
checkNotNull(name, "name cannot be null");
checkNotNull(method, "method cannot be null");
checkNotNull(fromVersion, "the initial version cannot be null");
checkNotNull(untilVersion, "the end of the version cannot be null");
this.name = name;
this.method = method;
this.fromVersion = fromVersion.versionNum();
this.untilVersion = untilVersion.versionNum();
}
/**
* Returns the column name.
* @return the column name
*/
public String name() {
return name;
}
/**
* Returns the method name.
* @return the method name
*/
public String method() {
return method;
}
/**
* Returns the initial version.
* @return the initial version
*/
public String fromVersion() {
return fromVersion;
}
/**
* Returns the end of the version.
* @return the end of the version
*/
public String untilVersion() {
return untilVersion;
}
}
/*
* Copyright 2015 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.ovsdb.rfc.tableservice;
import org.onosproject.ovsdb.rfc.notation.Column;
import org.onosproject.ovsdb.rfc.notation.UUID;
/**
* Representation of conversion between Ovsdb table and Row.
*/
public interface OvsdbTableService {
/**
* Get Column from row.
* @param columndesc Column description
* @return Column
*/
public Column getColumnHandler(ColumnDescription columndesc);
/**
* Get Data from row.
* @param columndesc Column description
* @return Object column data
*/
public Object getDataHandler(ColumnDescription columndesc);
/**
* Set column data of row.
* @param columndesc Column description
* @param obj column data
*/
public void setDataHandler(ColumnDescription columndesc, Object obj);
/**
* Returns the TableSchema from row.
* @return Object TableSchema
*/
public Object getTbSchema();
/**
* Returns UUID which column name is _uuid.
* @return UUID
*/
public UUID getUuid();
/**
* Returns UUID Column which column name is _uuid.
* @return UUID Column
*/
public Column getUuidColumn();
/**
* Returns UUID which column name is _version.
* @return UUID
*/
public UUID getVersion();
/**
* Returns UUID Column which column name is _version.
* @return UUID Column
*/
public Column getVersionColumn();
}
/*
* Copyright 2015 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.ovsdb.rfc.tableservice;
import static com.google.common.base.Preconditions.checkNotNull;
import org.onosproject.ovsdb.rfc.table.OvsdbTable;
import org.onosproject.ovsdb.rfc.table.VersionNum;
import org.onosproject.ovsdb.rfc.utils.VersionUtil;
/**
* Table description.
*/
public class TableDescription {
// The table name
private final String name;
// The database name
private final String database = "Open_vSwitch";
// The initial version
private final String fromVersion;
// The end of the version
private final String untilVersion;
/**
* Constructs a MonitorRequest object.
* @param table OvsdbTable entity
*/
public TableDescription(OvsdbTable table) {
checkNotNull(table, "table cannot be null");
this.name = table.tableName();
this.fromVersion = VersionUtil.DEFAULT_VERSION_STRING;
this.untilVersion = VersionUtil.DEFAULT_VERSION_STRING;
}
/**
* Constructs a MonitorRequest object.
* @param table OvsdbTable entity
* @param fromVersion the initial version
*/
public TableDescription(OvsdbTable table, VersionNum fromVersion) {
checkNotNull(table, "table cannot be null");
checkNotNull(fromVersion, "the initial version cannot be null");
this.name = table.tableName();
this.fromVersion = fromVersion.versionNum();
this.untilVersion = VersionUtil.DEFAULT_VERSION_STRING;
}
/**
* Constructs a MonitorRequest object.
* @param table OvsdbTable entity
* @param fromVersion the initial version
* @param untilVersion the end of the version
*/
public TableDescription(OvsdbTable table, VersionNum fromVersion, VersionNum untilVersion) {
checkNotNull(table, "table cannot be null");
checkNotNull(fromVersion, "the initial version cannot be null");
checkNotNull(untilVersion, "the end of the version cannot be null");
this.name = table.tableName();
this.fromVersion = fromVersion.versionNum();
this.untilVersion = untilVersion.versionNum();
}
/**
* Returns the column name.
* @return the column name
*/
public String name() {
return name;
}
/**
* Returns the database name.
* @return the database name
*/
public String database() {
return database;
}
/**
* Returns the initial version.
* @return the initial version
*/
public String fromVersion() {
return fromVersion;
}
/**
* Returns the end of the version.
* @return the end of the version
*/
public String untilVersion() {
return untilVersion;
}
}
/*
* Copyright 2015 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.ovsdb.rfc.utils;
import org.onosproject.ovsdb.rfc.notation.Condition;
import org.onosproject.ovsdb.rfc.notation.Condition.Function;
/**
* Condition utility class.
*/
public final class ConditionUtil {
/**
* Constructs a ConditionUtil object. Utility classes should not have a
* public or default constructor, otherwise IDE will compile unsuccessfully. This
* class should not be instantiated.
*/
private ConditionUtil() {
}
/**
* Returns a Condition that means Function.EQUALS .
* @param columnName column name
* @param data column value
* @return Condition
*/
public static Condition equals(String columnName, Object data) {
Object value = TransValueUtil.getFormatData(data);
return new Condition(columnName, Function.EQUALS, value);
}
/**
* Returns a Condition that means Function.NOT_EQUALS .
* @param columnName column name
* @param data column value
* @return Condition
*/
public static Condition unEquals(String columnName, Object data) {
Object value = TransValueUtil.getFormatData(data);
return new Condition(columnName, Function.NOT_EQUALS, value);
}
/**
* Returns a Condition that means Function.GREATER_THAN .
* @param columnName column name
* @param data column value
* @return Condition
*/
public static Condition greaterThan(String columnName, Object data) {
Object value = TransValueUtil.getFormatData(data);
return new Condition(columnName, Function.GREATER_THAN, value);
}
/**
* Returns a Condition that means Function.GREATER_THAN_OR_EQUALS .
* @param columnName column name
* @param data column value
* @return Condition
*/
public static Condition greaterThanOrEquals(String columnName, Object data) {
Object value = TransValueUtil.getFormatData(data);
return new Condition(columnName, Function.GREATER_THAN_OR_EQUALS, value);
}
/**
* Returns a Condition that means Function.LESS_THAN .
* @param columnName column name
* @param data column value
* @return Condition
*/
public static Condition lesserThan(String columnName, Object data) {
Object value = TransValueUtil.getFormatData(data);
return new Condition(columnName, Function.LESS_THAN, value);
}
/**
* Returns a Condition that means Function.LESS_THAN_OR_EQUALS .
* @param columnName column name
* @param data column value
* @return Condition
*/
public static Condition lesserThanOrEquals(String columnName, Object data) {
Object value = TransValueUtil.getFormatData(data);
return new Condition(columnName, Function.LESS_THAN_OR_EQUALS, value);
}
/**
* Returns a Condition that means Function.INCLUDES .
* @param columnName column name
* @param data column value
* @return Condition
*/
public static Condition includes(String columnName, Object data) {
Object value = TransValueUtil.getFormatData(data);
return new Condition(columnName, Function.INCLUDES, value);
}
/**
* Returns a Condition that means Function.EXCLUDES .
* @param columnName column name
* @param data column value
* @return Condition
*/
public static Condition excludes(String columnName, Object data) {
Object value = TransValueUtil.getFormatData(data);
return new Condition(columnName, Function.EXCLUDES, value);
}
}
/*
* Copyright 2015 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.ovsdb.rfc.utils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.onosproject.ovsdb.rfc.error.AbnormalSchemaException;
import org.onosproject.ovsdb.rfc.error.JsonParsingException;
import org.onosproject.ovsdb.rfc.error.UnknownResultException;
import org.onosproject.ovsdb.rfc.jsonrpc.Callback;
import org.onosproject.ovsdb.rfc.jsonrpc.JsonRpcResponse;
import org.onosproject.ovsdb.rfc.message.OperationResult;
import org.onosproject.ovsdb.rfc.message.RowUpdate;
import org.onosproject.ovsdb.rfc.message.TableUpdate;
import org.onosproject.ovsdb.rfc.message.TableUpdates;
import org.onosproject.ovsdb.rfc.message.UpdateNotification;
import org.onosproject.ovsdb.rfc.notation.Column;
import org.onosproject.ovsdb.rfc.notation.Row;
import org.onosproject.ovsdb.rfc.notation.UUID;
import org.onosproject.ovsdb.rfc.operations.Operation;
import org.onosproject.ovsdb.rfc.schema.ColumnSchema;
import org.onosproject.ovsdb.rfc.schema.DatabaseSchema;
import org.onosproject.ovsdb.rfc.schema.TableSchema;
import org.onosproject.ovsdb.rfc.schema.type.ColumnTypeFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
/**
* JsonNode utility class. convert JsonNode into Object.
*/
public final class FromJsonUtil {
private static final Logger log = LoggerFactory
.getLogger(FromJsonUtil.class);
/**
* Constructs a FromJsonUtil object. Utility classes should not have a
* public or default constructor, otherwise IDE will compile unsuccessfully. This
* class should not be instantiated.
*/
private FromJsonUtil() {
}
/**
* convert JsonNode into DatabaseSchema.
* @param dbName database name
* @param json the JsonNode of get_schema result
* @return DatabaseSchema
* @throws JsonParsingException this is a JsonNode parse exception
*/
public static DatabaseSchema jsonNodeToDbSchema(String dbName, JsonNode json) {
if (!json.isObject() || !json.has("tables")) {
throw new JsonParsingException(
"bad DatabaseSchema root, expected \"tables\" as child but was not found");
}
if (!json.isObject() || !json.has("version")) {
throw new JsonParsingException(
"bad DatabaseSchema root, expected \"version\" as child but was not found");
}
String dbVersion = json.get("version").asText();
Map<String, TableSchema> tables = new HashMap<>();
for (Iterator<Map.Entry<String, JsonNode>> iter = json.get("tables")
.fields(); iter.hasNext();) {
Map.Entry<String, JsonNode> table = iter.next();
tables.put(table.getKey(),
jsonNodeToTableSchema(table.getKey(), table.getValue()));
}
return new DatabaseSchema(dbName, dbVersion, tables);
}
/**
* convert JsonNode into TableSchema.
* @param tableName table name
* @param json table JsonNode
* @return TableSchema
* @throws AbnormalSchemaException this is an abnormal schema exception
*/
private static TableSchema jsonNodeToTableSchema(String tableName,
JsonNode json) {
if (!json.isObject() || !json.has("columns")) {
throw new AbnormalSchemaException(
"bad tableschema root, expected \"columns\" as child");
}
Map<String, ColumnSchema> columns = new HashMap<>();
for (Iterator<Map.Entry<String, JsonNode>> iter = json.get("columns")
.fields(); iter.hasNext();) {
Map.Entry<String, JsonNode> column = iter.next();
columns.put(column.getKey(),
jsonNodeToColumnSchema(column.getKey(),
column.getValue()));
}
return new TableSchema(tableName, columns);
}
/**
* convert JsonNode into ColumnSchema.
* @param name column name
* @param json JsonNode
* @return ColumnSchema
* @throws AbnormalSchemaException this is an abnormal schema exception
*/
private static ColumnSchema jsonNodeToColumnSchema(String name,
JsonNode json) {
if (!json.isObject() || !json.has("type")) {
throw new AbnormalSchemaException(
"bad column schema root, expected \"type\" as child");
}
return new ColumnSchema(name,
ColumnTypeFactory.getColumnTypeFromJson(json
.get("type")));
}
/**
* convert JsonNode into the returnType of methods in OvsdbRPC class.
* @param resultJsonNode the result JsonNode
* @param methodName the method name of methods in OvsdbRPC class
* @param objectMapper ObjectMapper entity
* @return Object
* @throws UnknownResultException this is an unknown result exception
*/
private static Object convertResultType(JsonNode resultJsonNode,
String methodName,
ObjectMapper objectMapper) {
switch (methodName) {
case "getSchema":
case "monitor":
return resultJsonNode;
case "echo":
case "listDbs":
return objectMapper
.convertValue(resultJsonNode, objectMapper.getTypeFactory()
.constructParametricType(List.class, String.class));
case "transact":
return objectMapper
.convertValue(resultJsonNode,
objectMapper
.getTypeFactory()
.constructParametricType(List.class,
JsonNode.class));
default:
throw new UnknownResultException("Don't know how to handle this");
}
}
/**
* convert JsonNode into the returnType of methods in OvsdbRPC class.
* @param jsonNode the result JsonNode
* @param methodName the method name of methods in OvsdbRPC class
* @return Object
*/
public static Object jsonResultParser(JsonNode jsonNode, String methodName) {
ObjectMapper objectMapper = ObjectMapperUtil.getObjectMapper();
JsonNode error = jsonNode.get("error");
if (error != null && !error.isNull()) {
log.error("Error : {}", error.toString());
}
JsonNode resultJsonNode = jsonNode.get("result");
Object result = convertResultType(resultJsonNode, methodName,
objectMapper);
return result;
}
/**
* When monitor the ovsdb tables, if a table update, ovs send update
* notification, then call callback function.
* @param jsonNode the result JsonNode
* @param callback the callback function
* @throws UnknownResultException this is an unknown result exception
*/
public static void jsonCallbackRequestParser(JsonNode jsonNode,
Callback callback) {
ObjectMapper objectMapper = ObjectMapperUtil.getObjectMapper();
JsonNode params = jsonNode.get("params");
Object param = null;
String methodName = jsonNode.get("method").asText();
switch (methodName) {
case "update":
param = objectMapper.convertValue(params, UpdateNotification.class);
callback.update((UpdateNotification) param);
break;
default:
throw new UnknownResultException("Cannot handle this method: "
+ methodName);
}
}
/**
* Ovs send echo request to keep the heart, need we return echo result.
* @param jsonNode the result JsonNode
* @return JsonRpcResponse String
*/
public static String getEchoRequestStr(JsonNode jsonNode) {
ObjectMapper objectMapper = ObjectMapperUtil.getObjectMapper();
String str = null;
if (jsonNode.get("method").asText().equals("echo")) {
JsonRpcResponse response = new JsonRpcResponse(jsonNode.get("id")
.asText());
try {
str = objectMapper.writeValueAsString(response);
} catch (JsonProcessingException e) {
log.error("JsonProcessingException while converting JsonNode into string ", e);
}
}
return str;
}
/**
* Convert the List of Operation result into List of OperationResult .
* @param input the List of JsonNode
* @param operations the List of Operation
* @return the List of OperationResult
*/
public static List<OperationResult> jsonNodeToOperationResult(List<JsonNode> input,
List<Operation> operations) {
ObjectMapper objectMapper = ObjectMapperUtil.getObjectMapper(false);
List<OperationResult> operationResults = new ArrayList<OperationResult>();
for (int i = 0; i < input.size(); i++) {
JsonNode jsonNode = input.get(i);
Operation operation = operations.get(i);
if (jsonNode != null && jsonNode.size() > 0) {
if (i >= operations.size() || operation.getOp() != "select") {
OperationResult or = objectMapper.convertValue(jsonNode,
OperationResult.class);
operationResults.add(or);
} else {
List<Row> rows = createRows(operation.getTableSchema(), jsonNode);
OperationResult or = new OperationResult(rows);
operationResults.add(or);
}
}
}
return operationResults;
}
/**
* Convert Operation JsonNode into Rows.
* @param tableSchema TableSchema entity
* @param rowsNode JsonNode
* @return ArrayList<Row> the List of Row
*/
private static ArrayList<Row> createRows(TableSchema tableSchema,
JsonNode rowsNode) {
ArrayList<Row> rows = Lists.newArrayList();
for (JsonNode rowNode : rowsNode.get("rows")) {
rows.add(createRow(tableSchema, rowNode));
}
return rows;
}
/**
* convert the params of Update Notification into TableUpdates.
* @param updatesJson the params of Update Notification
* @param dbSchema DatabaseSchema entity
* @return TableUpdates
*/
public static TableUpdates jsonNodeToTableUpdates(JsonNode updatesJson,
DatabaseSchema dbSchema) {
Map<String, TableUpdate> tableUpdateMap = Maps.newHashMap();
for (Iterator<Map.Entry<String, JsonNode>> itr = updatesJson.fields(); itr
.hasNext();) {
Map.Entry<String, JsonNode> entry = itr.next();
TableSchema tableSchema = dbSchema.getTableSchema(entry.getKey());
TableUpdate tableUpdate = jsonNodeToTableUpdate(tableSchema,
entry.getValue());
tableUpdateMap.put(entry.getKey(), tableUpdate);
}
return TableUpdates.tableUpdates(tableUpdateMap);
}
/**
* convert the params of Update Notification into TableUpdate.
* @param tableSchema TableSchema entity
* @param value the table-update in params of Update Notification
* @return TableUpdate
*/
public static TableUpdate jsonNodeToTableUpdate(TableSchema tableSchema,
JsonNode value) {
Map<UUID, RowUpdate> rows = Maps.newHashMap();
Iterator<Entry<String, JsonNode>> fields = value.fields();
while (fields.hasNext()) {
Map.Entry<String, JsonNode> idOldNew = fields.next();
String uuidStr = idOldNew.getKey();
UUID uuid = UUID.uuid(uuidStr);
JsonNode newR = idOldNew.getValue().get("new");
JsonNode oldR = idOldNew.getValue().get("old");
Row newRow = newR != null ? createRow(tableSchema, newR) : null;
Row oldRow = oldR != null ? createRow(tableSchema, oldR) : null;
RowUpdate rowUpdate = new RowUpdate(uuid, oldRow, newRow);
rows.put(uuid, rowUpdate);
}
return TableUpdate.tableUpdate(rows);
}
/**
* Convert Operation JsonNode into Row.
* @param tableSchema TableSchema entity
* @param rowNode JsonNode
* @return Row
*/
private static Row createRow(TableSchema tableSchema, JsonNode rowNode) {
List<Column> columns = Lists.newArrayList();
for (Iterator<Map.Entry<String, JsonNode>> iter = rowNode.fields(); iter
.hasNext();) {
Map.Entry<String, JsonNode> next = iter.next();
ColumnSchema schema = tableSchema.getColumnSchema(next.getKey());
if (schema != null) {
Object o = TransValueUtil.getValueFromJson(next.getValue(), schema.type());
columns.add(new Column(schema, o));
}
}
return new Row(tableSchema, columns);
}
}
/*
* Copyright 2015 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.ovsdb.rfc.utils;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufInputStream;
import java.io.IOException;
import java.util.List;
import java.util.Stack;
import org.onosproject.ovsdb.rfc.error.UnsupportedEncodingException;
import org.onosproject.ovsdb.rfc.jsonrpc.JsonReadContext;
import com.fasterxml.jackson.core.JsonEncoding;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.io.IOContext;
import com.fasterxml.jackson.core.json.ByteSourceJsonBootstrapper;
import com.fasterxml.jackson.core.util.BufferRecycler;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.MappingJsonFactory;
/**
* Decoder utility class.
*/
public final class JsonRpcReaderUtil {
/**
* Constructs a JsonRpcReaderUtil object. Utility classes should not have a
* public or default constructor, otherwise IDE will compile unsuccessfully.
* This class should not be instantiated.
*/
private JsonRpcReaderUtil() {
}
/**
* Decode the bytes to Json object.
* @param in input of bytes
* @param out ouput of Json object list
* @param jrContext context for the last decoding process
* @throws IOException IOException
* @throws JsonParseException JsonParseException
*/
public static void readToJsonNode(ByteBuf in, List<Object> out,
JsonReadContext jrContext)
throws JsonParseException, IOException {
int lastReadBytes = jrContext.getLastReadBytes();
if (lastReadBytes == 0) {
if (in.readableBytes() < 4) {
return;
}
checkEncoding(in);
}
int i = lastReadBytes + in.readerIndex();
Stack<Byte> bufStack = jrContext.getBufStack();
for (; i < in.writerIndex(); i++) {
byte b = in.getByte(i);
switch (b) {
case '{':
if (!isDoubleQuote(bufStack)) {
bufStack.push(b);
jrContext.setStartMatch(true);
}
break;
case '}':
if (!isDoubleQuote(bufStack)) {
bufStack.pop();
}
break;
case '"':
if (in.getByte(i - 1) != '\\') {
if (!bufStack.isEmpty() && bufStack.peek() != '"') {
bufStack.push(b);
} else {
bufStack.pop();
}
}
break;
default:
break;
}
if (jrContext.isStartMatch() && bufStack.isEmpty()) {
ByteBuf buf = in.readSlice(i - in.readerIndex() + 1);
JsonParser jf = new MappingJsonFactory()
.createParser(new ByteBufInputStream(buf));
JsonNode jsonNode = jf.readValueAsTree();
out.add(jsonNode);
lastReadBytes = 0;
jrContext.setLastReadBytes(lastReadBytes);
break;
}
}
if (i >= in.writerIndex()) {
lastReadBytes = in.readableBytes();
jrContext.setLastReadBytes(lastReadBytes);
}
}
/**
* Filter the invalid characters before decoding.
* @param in input of bytes
* @param lastReadBytes the bytes for last decoding incomplete record
*/
private static void fliterCharaters(ByteBuf in) {
while (in.isReadable()) {
int ch = in.getByte(in.readerIndex());
if ((ch != ' ') && (ch != '\n') && (ch != '\t') && (ch != '\r')) {
break;
} else {
in.readByte();
}
}
}
/**
* Check whether the peek of the stack element is double quote.
* @param jrContext context for the last decoding process
* @return boolean
*/
private static boolean isDoubleQuote(Stack<Byte> bufStack) {
if (!bufStack.isEmpty() && bufStack.peek() == '"') {
return true;
}
return false;
}
/**
* Check whether the encoding is valid.
* @param in input of bytes
* @throws IOException this is an IO exception
* @throws UnsupportedEncodingException this is an unsupported encode
* exception
*/
private static void checkEncoding(ByteBuf in) throws IOException {
int inputStart = 0;
int inputLength = 4;
fliterCharaters(in);
byte[] buff = new byte[4];
in.getBytes(in.readerIndex(), buff);
ByteSourceJsonBootstrapper strapper = new ByteSourceJsonBootstrapper(
new IOContext(
new BufferRecycler(),
null,
false),
buff,
inputStart,
inputLength);
JsonEncoding jsonEncoding = strapper.detectEncoding();
if (!JsonEncoding.UTF8.equals(jsonEncoding)) {
throw new UnsupportedEncodingException(
"Only UTF-8 encoding is supported.");
}
}
}
/*
* Copyright 2015 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.ovsdb.rfc.utils;
import java.util.List;
import org.onosproject.ovsdb.rfc.jsonrpc.JsonRpcRequest;
import org.onosproject.ovsdb.rfc.operations.Operation;
import org.onosproject.ovsdb.rfc.schema.DatabaseSchema;
/**
* RPC Methods request utility class. Refer to RFC7047's Section 4.1.
*/
public final class JsonRpcWriterUtil {
/**
* Constructs a JsonRpcWriterUtil object. Utility classes should not have a
* public or default constructor, otherwise IDE will compile unsuccessfully.
* This class should not be instantiated.
*/
private JsonRpcWriterUtil() {
}
/**
* Returns string of RPC request.
* @param uuid id of request object
* @param methodName method of request object
* @param params params of request object
* @return RPC Request String
*/
private static String getRequestStr(String uuid, String methodName,
List params) {
JsonRpcRequest request;
if (params != null) {
request = new JsonRpcRequest(uuid, methodName, params);
} else {
request = new JsonRpcRequest(uuid, methodName);
}
String str = ObjectMapperUtil.convertToString(request);
return str;
}
/**
* Returns string of get_schema request.
* @param uuid id of get_schema request
* @param dbnames params of get_schema request
* @return get_schema Request String
*/
public static String getSchemaStr(String uuid, List<String> dbnames) {
String methodName = "get_schema";
return getRequestStr(uuid, methodName, dbnames);
}
/**
* Returns string of echo request.
* @param uuid id of echo request
* @return echo Request String
*/
public static String echoStr(String uuid) {
String methodName = "echo";
return getRequestStr(uuid, methodName, null);
}
/**
* Returns string of monitor request.
* @param uuid id of monitor request
* @param monotorId json-value in params of monitor request
* @param dbSchema DatabaseSchema entity
* @return monitor Request String
*/
public static String monitorStr(String uuid, String monotorId,
DatabaseSchema dbSchema) {
String methodName = "monitor";
return getRequestStr(uuid, methodName,
ParamUtil.getMonitorParams(monotorId, dbSchema));
}
/**
* Returns string of list_dbs request.
* @param uuid id of list_dbs request
* @return list_dbs Request String
*/
public static String listDbsStr(String uuid) {
String methodName = "list_dbs";
return getRequestStr(uuid, methodName, null);
}
/**
* Returns string of transact request.
* @param uuid id of transact request
* @param dbSchema DatabaseSchema entity
* @param operations operation* in params of transact request
* @return transact Request String
*/
public static String transactStr(String uuid, DatabaseSchema dbSchema,
List<Operation> operations) {
String methodName = "transact";
return getRequestStr(uuid, methodName,
ParamUtil.getTransactParams(dbSchema, operations));
}
}
package org.onosproject.ovsdb.rfc.utils;
import org.onosproject.ovsdb.rfc.notation.Mutation;
import org.onosproject.ovsdb.rfc.notation.Mutation.Mutator;
public final class MutationUtil {
/**
* Constructs a MutationUtil object. Utility classes should not have a
* public or default constructor, otherwise IDE will compile unsuccessfully. This
* class should not be instantiated.
*/
private MutationUtil() {
}
/**
* Returns a Mutation that means += .
* @param columnName column name
* @param data column value
* @return Mutation
*/
public static Mutation sum(String columnName, Object data) {
Object value = TransValueUtil.getFormatData(data);
return new Mutation(columnName, Mutator.SUM, value);
}
/**
* Returns a Mutation that means -= .
* @param columnName column name
* @param data column value
* @return Mutation
*/
public static Mutation difference(String columnName, Object data) {
Object value = TransValueUtil.getFormatData(data);
return new Mutation(columnName, Mutator.DIFFERENCE, value);
}
/**
* Returns a Mutation that means *= .
* @param columnName column name
* @param data column value
* @return Mutation
*/
public static Mutation product(String columnName, Object data) {
Object value = TransValueUtil.getFormatData(data);
return new Mutation(columnName, Mutator.PRODUCT, value);
}
/**
* Returns a Mutation that means /= .
* @param columnName column name
* @param data column value
* @return Mutation
*/
public static Mutation quotient(String columnName, Object data) {
Object value = TransValueUtil.getFormatData(data);
return new Mutation(columnName, Mutator.QUOTIENT, value);
}
/**
* Returns a Mutation that means %= .
* @param columnName column name
* @param data column value
* @return Mutation
*/
public static Mutation remainder(String columnName, Object data) {
Object value = TransValueUtil.getFormatData(data);
return new Mutation(columnName, Mutator.REMAINDER, value);
}
/**
* Returns a Mutation that means insert .
* @param columnName column name
* @param data column value
* @return Mutation
*/
public static Mutation insert(String columnName, Object data) {
Object value = TransValueUtil.getFormatData(data);
return new Mutation(columnName, Mutator.INSERT, value);
}
/**
* Returns a Mutation that means delete .
* @param columnName column name
* @param data column value
* @return Mutation
*/
public static Mutation delete(String columnName, Object data) {
Object value = TransValueUtil.getFormatData(data);
return new Mutation(columnName, Mutator.DELETE, value);
}
}
/*
* Copyright 2015 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.ovsdb.rfc.utils;
import java.util.List;
import java.util.Set;
import org.onosproject.ovsdb.rfc.message.MonitorRequest;
import org.onosproject.ovsdb.rfc.message.MonitorSelect;
import org.onosproject.ovsdb.rfc.operations.Operation;
import org.onosproject.ovsdb.rfc.schema.DatabaseSchema;
import org.onosproject.ovsdb.rfc.schema.TableSchema;
import com.google.common.base.Function;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
/**
* Params utility class. Params of the request object, refer to RFC7047's Section
* 4.1.
*/
public final class ParamUtil {
/**
* Constructs a ParamUtil object. Utility classes should not have a
* public or default constructor, otherwise IDE will compile unsuccessfully. This
* class should not be instantiated.
*/
private ParamUtil() {
}
/**
* Returns MonitorRequest, refer to RFC7047's Section 4.1.5.
* @param tableSchema entity
* @return MonitorRequest
*/
private static MonitorRequest getAllColumnsMonitorRequest(TableSchema tableSchema) {
String tableName = tableSchema.name();
Set<String> columns = tableSchema.getColumnNames();
MonitorSelect select = new MonitorSelect(true, true, true, true);
MonitorRequest monitorRequest = new MonitorRequest(tableName, columns,
select);
return monitorRequest;
}
/**
* Returns params of monitor method, refer to RFC7047's Section 4.1.5.
* @param monotorId json-value, refer to RFC7047's Section 4.1.5.
* @param dbSchema DatabaseSchema entity
* @return List of Object, the params of monitor request
*/
public static List<Object> getMonitorParams(String monotorId,
DatabaseSchema dbSchema) {
Set<String> tables = dbSchema.getTableNames();
List<MonitorRequest> monitorRequests = Lists.newArrayList();
for (String tableName : tables) {
TableSchema tableSchema = dbSchema.getTableSchema(tableName);
monitorRequests.add(getAllColumnsMonitorRequest(tableSchema));
}
ImmutableMap<String, MonitorRequest> reqMap = Maps
.uniqueIndex(monitorRequests,
new Function<MonitorRequest, String>() {
@Override
public String apply(MonitorRequest input) {
return input.getTableName();
}
});
return Lists.<Object>newArrayList(dbSchema.name(), monotorId,
reqMap);
}
/**
* Returns params of transact method, refer to RFC7047's Section 4.1.3.
* @param dbSchema DatabaseSchema entity
* @param operations operation*, refer to RFC7047's Section 4.1.3.
* @return List of Object, the params of transact request
*/
public static List<Object> getTransactParams(DatabaseSchema dbSchema,
List<Operation> operations) {
List<Object> lists = Lists.newArrayList((Object) dbSchema.name());
lists.addAll(operations);
return lists;
}
}
/*
* Copyright 2015 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.ovsdb.rfc.utils;
import io.netty.handler.codec.string.StringEncoder;
import io.netty.util.CharsetUtil;
/**
* StringEncoder utility class.Only UTF-8 encoding is supported refer to
* RFC7047's Section 3.1.
*/
public final class StringEncoderUtil {
/**
* Constructs a StringEncoderUtil object. Utility classes should not have a
* public or default constructor, otherwise IDE will compile unsuccessfully. This
* class should not be instantiated.
*/
private StringEncoderUtil() {
}
/**
* Returns StringEncoder of UTF_8 .
* @return StringEncoder
*/
public static StringEncoder getEncoder() {
return new StringEncoder(CharsetUtil.UTF_8);
}
}
/*
* Copyright 2015 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.ovsdb.rfc.utils;
/**
* Version utility class.
*/
public final class VersionUtil {
/**
* Constructs a VersionUtil object. Utility classes should not have a public
* or default constructor, otherwise IDE will compile unsuccessfully. This
* class should not be instantiated.
*/
private VersionUtil() {
}
public static final String DEFAULT_VERSION_STRING = "0.0.0";
private static final String FORMAT = "(\\d+)\\.(\\d+)\\.(\\d+)";
/**
* Match version by the format.
* @param version the version String
* @throws IllegalArgumentException this is an illegal argument exception
*/
public static void versionMatch(String version) {
if (!version.matches(FORMAT)) {
throw new IllegalArgumentException("<" + version
+ "> does not match format " + FORMAT);
}
}
/**
* Compare fromVersion and toVersion.
* @param fromVersion the initial version
* @param toVersion the end of the version
* @return a long number
*/
public static long versionCompare(String fromVersion, String toVersion) {
Long fromNum = Long.parseLong(fromVersion.replace(".", ""));
Long toNum = Long.parseLong(toVersion.replace(".", ""));
return (fromNum - toNum);
}
}