Interface OvsdbClient

  • All Known Implementing Classes:
    OvsdbClientImpl

    public interface OvsdbClient
    The main interface to interact with a device speaking ovsdb protocol in an asynchronous fashion and hence most operations return a Future object representing the eventual response data from the remote.
    • Method Detail

      • getDatabases

        com.google.common.util.concurrent.ListenableFuture<List<String>> getDatabases()
        Gets the list of database names exposed by this ovsdb capable device.
        Returns:
        list of database names
      • getSchema

        com.google.common.util.concurrent.ListenableFuture<TypedDatabaseSchema> getSchema​(String database)
        Asynchronously returns the schema object for a specific database.
        Parameters:
        database - name of the database schema
        Returns:
        DatabaseSchema future
      • transactBuilder

        TransactionBuilder transactBuilder​(DatabaseSchema dbSchema)
        Allows for a mini DSL way of collecting the transactions to be executed against the ovsdb instance.
        Returns:
        TransactionBuilder
      • transact

        com.google.common.util.concurrent.ListenableFuture<List<OperationResult>> transact​(DatabaseSchema dbSchema,
                                                                                           List<Operation> operations)
        Execute the list of operations in a single Transactions. Similar to the transactBuilder() method
        Parameters:
        operations - List of operations that needs to be part of a transact call
        Returns:
        Future object representing the result of the transaction. Calling cancel on the Future would cause OVSDB cancel operation to be fired against the device.
      • cancelMonitor

        void cancelMonitor​(MonitorHandle handler)
        Cancels an existing monitor method.
        Parameters:
        handler - Handle identifying a specific monitor request that is being cancelled.
        Throws:
        IllegalStateException - if there is no outstanding monitor request for this handle
      • cancelMonitor

        void cancelMonitor​(MonitorHandle handler,
                           int timeout)
        Cancels an existing monitor method.
        Parameters:
        handler - Handle identifying a specific monitor request that is being cancelled.
        timeout - time in seconds for monitor transaction timeout
        Throws:
        IllegalStateException - if there is no outstanding monitor request for this handle
      • lock

        void lock​(String lockId,
                  LockAquisitionCallback lockedCallBack,
                  LockStolenCallback stolenCallback)
        ovsdb lock operation.
        Parameters:
        lockId - a client specified id for the lock; this can be used for unlocking (unLock(String))
        lockedCallBack - Callback to nofify when the lock is acquired
        stolenCallback - Callback to notify when an acquired lock is stolen by another client
      • unLock

        com.google.common.util.concurrent.ListenableFuture<Boolean> unLock​(String lockId)
        ovsdb unlock operation. See unLock(String)
      • echo

        com.google.common.util.concurrent.ListenableFuture<List<String>> echo()
        ovsdb echo operation.
      • startEchoService

        void startEchoService​(EchoServiceCallbackFilters callbackFilters)
        Starts the echo service. The callbackFilters can be used to get notified on the absence of echo notifications from the remote device and control the frequency of such notifications.
        Parameters:
        callbackFilters - callbacks for notifying the client of missing echo calls from remote.
      • stopEchoService

        void stopEchoService()
        Stops the echo service, i.e echo requests from the remote would not be acknowledged after this call.
      • isActive

        boolean isActive()
      • disconnect

        void disconnect()
      • createTypedRowWrapper

        <T extends TypedBaseTable<?>> T createTypedRowWrapper​(Class<T> klazz)
        User friendly convenient methods that make use of TyperUtils.getTypedRowWrapper to create a Typed Row Proxy given the Typed Table Class.
        Parameters:
        klazz - Typed Interface
        Returns:
        Proxy wrapper for the actual raw Row class.
      • createTypedRowWrapper

        <T extends TypedBaseTable<?>> T createTypedRowWrapper​(DatabaseSchema dbSchema,
                                                              Class<T> klazz)
        User friendly convenient methods that make use of getTypedRowWrapper to create a Typed Row Proxy given DatabaseSchema and Typed Table Class.
        Parameters:
        dbSchema - Database Schema of interest
        klazz - Typed Interface
        Returns:
        Proxy wrapper for the actual raw Row class.
      • getTypedRowWrapper

        <T extends TypedBaseTable<?>> T getTypedRowWrapper​(Class<T> klazz,
                                                           Row<GenericTableSchema> row)
        User friendly convenient method to get a Typed Row Proxy given a Typed Table Class and the Row to be wrapped.
        Parameters:
        klazz - Typed Interface
        row - The actual Row that the wrapper is operating on. It can be null if the caller is just interested in getting ColumnSchema.
        Returns:
        Proxy wrapper for the actual raw Row class.
      • isConnectionPublished

        boolean isConnectionPublished()
      • setConnectionPublished

        void setConnectionPublished​(boolean status)