2
0
mirror of https://github.com/openvswitch/ovs synced 2025-10-25 15:07:05 +00:00
Files
openvswitch/ovsdb/replication.h
Andy Zhou 60e0cd0419 ovsdb: Replication usability improvements
Based on feedbacks from initial HA manager integration, added the
'--active' command line option and appctl command
"ovsdb-server/sync-status. See man page updates for details.

Added the RPL_S_INIT state in the state machine. This state is
not strictly necessary for the replication state machine, but is
introduced to make sure the state is update immediately when
the state machine is reset, via replication_init(). Without it
ovsdb/sync-status may display "replicating" or crash, if the command
is issued between after replication_init() is called, but before
the state variable is updated from replication_run().

Added a test to simulate the integration of HA manager with OVSDB
server using replication.

Other documentation and API improvements.

Tested-by: Numan Siddique <nusiddiq@redhat.com>
Signed-off-by: Andy Zhou <azhou@ovn.org>
Acked-by: Ben Pfaff <blp@ovn.org>
2016-09-03 21:15:12 -07:00

63 lines
2.1 KiB
C

/*
* (c) Copyright 2016 Hewlett Packard Enterprise Development LP
* Copyright (c) 2009, 2010, 2012, 2013 Nicira, Inc.
*
* 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.
*/
#ifndef REPLICATION_H
#define REPLICATION_H 1
#include <stdbool.h>
struct ovsdb;
/* Replication module runs when OVSDB server runs in the backup mode.
*
* API Usage
*===========
*
* - replication_init() needs to be called whenever OVSDB server switches into
* the backup mode.
*
* - replication_add_local_db() should be called immediately after to add all
* known database that OVSDB server owns, one at a time.
*
* - replication_destroy() should be called when OVSDB server shutdown to
* reclaim resources.
*
* - replication_run(), replication_wait(), replication_is_alive() and
* replication_get_last_error() should be call within the main loop
* whenever OVSDB server runs in the backup mode.
*
* - set_blacklist_tables(), get_blacklist_tables(),
* disconnect_active_server() and replication_usage() are support functions
* used mainly by uinxctl commands.
*/
void replication_init(const char *sync_from, const char *exclude_tables);
void replication_run(void);
void replication_wait(void);
void replication_destroy(void);
void replication_usage(void);
void replication_add_local_db(const char *databse, struct ovsdb *db);
bool replication_is_alive(void);
int replication_get_last_error(void);
char *replication_status(void);
char *set_blacklist_tables(const char *blacklist, bool dryrun)
OVS_WARN_UNUSED_RESULT;
char *get_blacklist_tables(void) OVS_WARN_UNUSED_RESULT;
void disconnect_active_server(void);
#endif /* ovsdb/replication.h */