ctdb-daemon: Do not allow mixed ctdb versions in a cluster
[samba.git] / ctdb / include / ctdb_private.h
index 40dea09a2b469b5901f22daed112b77fe2cef468..6c7dd7941b7c8e7f465a0fbc670477382eb81e7f 100644 (file)
@@ -45,12 +45,6 @@ struct ctdb_registered_call {
  */
 #define ctdb_validate_pnn(ctdb, pnn) (((uint32_t)(pnn)) < (ctdb)->num_nodes)
 
-
-/* called from the queue code when a packet comes in. Called with data==NULL
-   on error */
-typedef void (*ctdb_queue_cb_fn_t)(uint8_t *data, size_t length,
-                                  void *private_data);
-
 /* used for callbacks in ctdb_control requests */
 typedef void (*ctdb_control_callback_fn_t)(struct ctdb_context *,
                                           int32_t status, TDB_DATA data, 
@@ -248,10 +242,10 @@ struct ctdb_daemon_data {
 
 
 struct ctdb_cluster_mutex_handle;
+struct eventd_context;
 
 enum ctdb_freeze_mode {CTDB_FREEZE_NONE, CTDB_FREEZE_PENDING, CTDB_FREEZE_FROZEN};
 
-#define NUM_DB_PRIORITIES 3
 /* main state of the ctdb daemon */
 struct ctdb_context {
        struct tevent_context *ev;
@@ -318,11 +312,7 @@ struct ctdb_context {
        TALLOC_CTX *recd_ctx; /* a context used to track recoverd monitoring events */
        TALLOC_CTX *release_ips_ctx; /* a context used to automatically drop all IPs if we fail to recover the node */
 
-       TALLOC_CTX *event_script_ctx;
-       int active_events;
-
-       struct ctdb_event_script_state *current_monitor;
-       struct ctdb_script_list_old *last_status[CTDB_EVENT_MAX];
+       struct eventd_context *ectx;
 
        TALLOC_CTX *banning_ctx;
 
@@ -337,9 +327,6 @@ struct ctdb_context {
        /* if we are a child process, do we have a domain socket to send controls on */
        bool can_send_controls;
 
-       /* list of event script callback functions that are active */
-       struct event_script_callback *script_callbacks;
-
        struct ctdb_reloadips_handle *reload_ips;
 
        const char *nodes_file;
@@ -400,6 +387,8 @@ struct ctdb_db_context {
 
        bool push_started;
        void *push_state;
+
+       struct hash_count_context *migratedb;
 };
 
 
@@ -522,8 +511,6 @@ struct ctdb_call_state *ctdb_daemon_call_send_remote(
 int ctdb_daemon_call_recv(struct ctdb_call_state *state,
                          struct ctdb_call *call);
 
-void ctdb_send_keepalive(struct ctdb_context *ctdb, uint32_t destnode);
-
 int ctdb_start_revoke_ro_record(struct ctdb_context *ctdb,
                                struct ctdb_db_context *ctdb_db,
                                TDB_DATA key, struct ctdb_ltdb_header *header,
@@ -534,6 +521,8 @@ int ctdb_add_revoke_deferred_call(struct ctdb_context *ctdb,
                                  TDB_DATA key, struct ctdb_req_header *hdr,
                                  deferred_requeue_fn fn, void *call_context);
 
+int ctdb_migration_init(struct ctdb_db_context *ctdb_db);
+
 /* from server/ctdb_control.c */
 
 int32_t ctdb_dump_memory(struct ctdb_context *ctdb, TDB_DATA *outdata);
@@ -600,16 +589,16 @@ int ctdb_control_getnodesfile(struct ctdb_context *ctdb, uint32_t opcode,
 
 void ctdb_shutdown_sequence(struct ctdb_context *ctdb, int exit_code);
 
-int switch_from_server_to_client(struct ctdb_context *ctdb,
-                                const char *fmt, ...);
+int switch_from_server_to_client(struct ctdb_context *ctdb);
 
 /* From server/ctdb_fork.c */
 
-void ctdb_set_child_info(TALLOC_CTX *mem_ctx, const char *child_name_fmt, ...);
-
 void ctdb_track_child(struct ctdb_context *ctdb, pid_t pid);
 
 pid_t ctdb_fork(struct ctdb_context *ctdb);
+pid_t ctdb_vfork_exec(TALLOC_CTX *mem_ctx, struct ctdb_context *ctdb,
+                     const char *helper, int helper_argc,
+                     const char **helper_argv);
 
 struct tevent_signal *ctdb_init_sigchld(struct ctdb_context *ctdb);
 
@@ -635,10 +624,6 @@ int32_t ctdb_control_db_transaction_cancel(struct ctdb_context *ctdb,
 int32_t ctdb_control_db_transaction_commit(struct ctdb_context *ctdb,
                                           TDB_DATA indata);
 
-int32_t ctdb_control_transaction_start(struct ctdb_context *ctdb, uint32_t id);
-int32_t ctdb_control_transaction_cancel(struct ctdb_context *ctdb);
-int32_t ctdb_control_transaction_commit(struct ctdb_context *ctdb, uint32_t id);
-
 int32_t ctdb_control_wipe_database(struct ctdb_context *ctdb, TDB_DATA indata);
 
 bool ctdb_db_frozen(struct ctdb_db_context *ctdb_db);
@@ -649,6 +634,9 @@ bool ctdb_db_all_frozen(struct ctdb_context *ctdb);
 void ctdb_start_keepalive(struct ctdb_context *ctdb);
 void ctdb_stop_keepalive(struct ctdb_context *ctdb);
 
+void ctdb_request_keepalive(struct ctdb_context *ctdb,
+                           struct ctdb_req_header *hdr);
+
 /* from server/ctdb_lock.c */
 
 struct lock_request;
@@ -678,15 +666,8 @@ struct lock_request *ctdb_lock_db(TALLOC_CTX *mem_ctx,
 
 /* from ctdb_logging.c */
 
-extern const char *debug_extra;
-
-typedef int (*ctdb_log_setup_fn_t)(TALLOC_CTX *mem_ctx,
-                                  const char *logging,
-                                  const char *app_name);
-
-void ctdb_log_register_backend(const char *prefix, ctdb_log_setup_fn_t init);
-
-bool ctdb_logging_init(TALLOC_CTX *mem_ctx, const char *logging);
+bool ctdb_logging_init(TALLOC_CTX *mem_ctx, const char *logging,
+                      const char *debug_level);
 
 struct ctdb_log_state *ctdb_vfork_with_logging(TALLOC_CTX *mem_ctx,
                                               struct ctdb_context *ctdb,
@@ -699,7 +680,6 @@ struct ctdb_log_state *ctdb_vfork_with_logging(TALLOC_CTX *mem_ctx,
                                               void *logfn_private, pid_t *pid);
 
 int ctdb_set_child_logging(struct ctdb_context *ctdb);
-int ctdb_init_tevent_logging(struct ctdb_context *ctdb);
 
 /* from ctdb_logging_file.c */
 
@@ -912,9 +892,6 @@ int32_t ctdb_control_ipreallocated(struct ctdb_context *ctdb,
 
 int ctdb_set_public_addresses(struct ctdb_context *ctdb, bool check_addresses);
 
-int ctdb_takeover_run(struct ctdb_context *ctdb, struct ctdb_node_map_old *nodemap,
-                     uint32_t *force_rebalance_nodes);
-
 int32_t ctdb_control_tcp_client(struct ctdb_context *ctdb, uint32_t client_id,
                                TDB_DATA indata);
 int32_t ctdb_control_tcp_add(struct ctdb_context *ctdb, TDB_DATA indata,
@@ -953,8 +930,7 @@ int32_t ctdb_control_send_gratious_arp(struct ctdb_context *ctdb,
 int32_t ctdb_control_add_public_address(struct ctdb_context *ctdb,
                                        TDB_DATA indata);
 int32_t ctdb_control_del_public_address(struct ctdb_context *ctdb,
-                                       struct ctdb_req_control_old *c,
-                                       TDB_DATA recdata, bool *async_reply);
+                                       TDB_DATA recdata);
 
 int32_t ctdb_control_reload_public_ips(struct ctdb_context *ctdb,
                                       struct ctdb_req_control_old *c,
@@ -1015,9 +991,8 @@ void ctdb_local_remove_from_delete_queue(struct ctdb_db_context *ctdb_db,
 
 /* from eventscript.c */
 
-int32_t ctdb_control_get_event_script_status(struct ctdb_context *ctdb,
-                                            uint32_t call_type,
-                                            TDB_DATA *outdata);
+int ctdb_start_eventd(struct ctdb_context *ctdb);
+void ctdb_stop_eventd(struct ctdb_context *ctdb);
 
 int ctdb_event_script_callback(struct ctdb_context *ctdb,
                               TALLOC_CTX *mem_ctx,
@@ -1034,11 +1009,4 @@ int ctdb_event_script_args(struct ctdb_context *ctdb,
 int ctdb_event_script(struct ctdb_context *ctdb,
                      enum ctdb_event call);
 
-int32_t ctdb_run_eventscripts(struct ctdb_context *ctdb,
-                             struct ctdb_req_control_old *c,
-                             TDB_DATA data, bool *async_reply);
-
-int32_t ctdb_control_enable_script(struct ctdb_context *ctdb, TDB_DATA indata);
-int32_t ctdb_control_disable_script(struct ctdb_context *ctdb, TDB_DATA indata);
-
 #endif