diff options
Diffstat (limited to 'res/ais/clm.c')
-rw-r--r-- | res/ais/clm.c | 168 |
1 files changed, 0 insertions, 168 deletions
diff --git a/res/ais/clm.c b/res/ais/clm.c deleted file mode 100644 index d290ee2cd..000000000 --- a/res/ais/clm.c +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Asterisk -- An open source telephony toolkit. - * - * Copyright (C) 2007, Digium, Inc. - * - * Russell Bryant <russell@digium.com> - * - * See http://www.asterisk.org for more information about - * the Asterisk project. Please do not directly contact - * any of the maintainers of this project for assistance; - * the project provides a web site, mailing lists and IRC - * channels for your use. - * - * This program is free software, distributed under the terms of - * the GNU General Public License Version 2. See the LICENSE file - * at the top of the source tree. - */ - -/*! - * \file - * \author Russell Bryant <russell@digium.com> - * - * \brief Usage of the SAForum AIS (Application Interface Specification) - * - * \arg http://www.openais.org/ - * - * This file contains the code specific to the use of the CLM - * (Cluster Membership) Service. - */ - -#include "asterisk.h" - -ASTERISK_FILE_VERSION(__FILE__, "$Revision$"); - -#include <stdlib.h> -#include <stdio.h> -#include <string.h> -#include <unistd.h> -#include <errno.h> - -#include "ais.h" - -#include "asterisk/module.h" -#include "asterisk/utils.h" -#include "asterisk/cli.h" -#include "asterisk/logger.h" - -SaClmHandleT clm_handle; -static SaAisErrorT clm_init_res; - -static void clm_node_get_cb(SaInvocationT invocation, - const SaClmClusterNodeT *cluster_node, SaAisErrorT error); -static void clm_track_cb(const SaClmClusterNotificationBufferT *notif_buffer, - SaUint32T num_members, SaAisErrorT error); - -static const SaClmCallbacksT clm_callbacks = { - .saClmClusterNodeGetCallback = clm_node_get_cb, - .saClmClusterTrackCallback = clm_track_cb, -}; - -static void clm_node_get_cb(SaInvocationT invocation, - const SaClmClusterNodeT *cluster_node, SaAisErrorT error) -{ - -} - -static void clm_track_cb(const SaClmClusterNotificationBufferT *notif_buffer, - SaUint32T num_members, SaAisErrorT error) -{ - -} - -static char *ais_clm_show_members(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a) -{ - int i; - SaClmClusterNotificationBufferT buf; - SaClmClusterNotificationT notif[64]; - SaAisErrorT ais_res; - - switch (cmd) { - case CLI_INIT: - e->command = "ais clm show members"; - e->usage = - "Usage: ais clm show members\n" - " List members of the cluster using the CLM (Cluster Membership) service.\n"; - return NULL; - - case CLI_GENERATE: - return NULL; /* no completion */ - } - - if (a->argc != e->args) - return CLI_SHOWUSAGE; - - buf.notification = notif; - buf.numberOfItems = ARRAY_LEN(notif); - - ais_res = saClmClusterTrack(clm_handle, SA_TRACK_CURRENT, &buf); - if (ais_res != SA_AIS_OK) { - ast_cli(a->fd, "Error retrieving current cluster members.\n"); - return CLI_FAILURE; - } - - ast_cli(a->fd, "\n" - "=============================================================\n" - "=== Cluster Members =========================================\n" - "=============================================================\n" - "===\n"); - - for (i = 0; i < buf.numberOfItems; i++) { - SaClmClusterNodeT *node = &buf.notification[i].clusterNode; - - ast_cli(a->fd, "=== ---------------------------------------------------------\n" - "=== Node Name: %s\n" - "=== ==> ID: 0x%x\n" - "=== ==> Address: %s\n" - "=== ==> Member: %s\n", - (char *) node->nodeName.value, (int) node->nodeId, - (char *) node->nodeAddress.value, - node->member ? "Yes" : "No"); - - ast_cli(a->fd, "=== ---------------------------------------------------------\n" - "===\n"); - } - - ast_cli(a->fd, "=============================================================\n" - "\n"); - - return CLI_SUCCESS; -} - -static struct ast_cli_entry ais_cli[] = { - AST_CLI_DEFINE(ais_clm_show_members, "List current members of the cluster"), -}; - -int ast_ais_clm_load_module(void) -{ - clm_init_res = saClmInitialize(&clm_handle, &clm_callbacks, &ais_version); - if (clm_init_res != SA_AIS_OK) { - ast_log(LOG_ERROR, "Could not initialize cluster membership service: %s\n", - ais_err2str(clm_init_res)); - return -1; - } - - ast_cli_register_multiple(ais_cli, ARRAY_LEN(ais_cli)); - - return 0; -} - -int ast_ais_clm_unload_module(void) -{ - SaAisErrorT ais_res; - - if (clm_init_res != SA_AIS_OK) { - return 0; - } - - ast_cli_unregister_multiple(ais_cli, ARRAY_LEN(ais_cli)); - - ais_res = saClmFinalize(clm_handle); - if (ais_res != SA_AIS_OK) { - ast_log(LOG_ERROR, "Problem stopping cluster membership service: %s\n", - ais_err2str(ais_res)); - return -1; - } - - return 0; -} |