1 /* 2 * Copyright (C) 2010 - 2011, Red Hat, Inc. 3 * 4 * This program is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2.1 of the License, or (at your option) any later version. 8 * 9 * This software is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library; if not, write to the Free Software 16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 */ 18 19 #ifndef SERVICES_PRIVATE__H 20 # define SERVICES_PRIVATE__H 21 22 # include <glib.h> 23 # include "crm/services.h" 24 25 #if SUPPORT_DBUS 26 # include <dbus/dbus.h> 27 #endif 28 29 #define MAX_ARGC 255 30 struct svc_action_private_s { 31 char *exec; 32 char *args[MAX_ARGC]; 33 34 uid_t uid; 35 gid_t gid; 36 37 guint repeat_timer; 38 void (*callback) (svc_action_t * op); 39 void (*fork_callback) (svc_action_t * op); 40 41 int stderr_fd; 42 mainloop_io_t *stderr_gsource; 43 44 int stdout_fd; 45 mainloop_io_t *stdout_gsource; 46 47 int stdin_fd; 48 #if SUPPORT_DBUS 49 DBusPendingCall* pending; 50 unsigned timerid; 51 #endif 52 }; 53 54 G_GNUC_INTERNAL 55 GList *services_os_get_directory_list(const char *root, gboolean files, gboolean executable); 56 57 G_GNUC_INTERNAL 58 gboolean services_os_action_execute(svc_action_t * op); 59 60 G_GNUC_INTERNAL 61 GList *resources_os_list_lsb_agents(void); 62 63 G_GNUC_INTERNAL 64 GList *resources_os_list_ocf_providers(void); 65 66 G_GNUC_INTERNAL 67 GList *resources_os_list_ocf_agents(const char *provider); 68 69 G_GNUC_INTERNAL 70 GList *resources_os_list_nagios_agents(void); 71 72 G_GNUC_INTERNAL 73 gboolean cancel_recurring_action(svc_action_t * op); 74 75 G_GNUC_INTERNAL 76 gboolean recurring_action_timer(gpointer data); 77 78 G_GNUC_INTERNAL 79 gboolean operation_finalize(svc_action_t * op); 80 81 G_GNUC_INTERNAL 82 void services_add_inflight_op(svc_action_t *op); 83 84 G_GNUC_INTERNAL 85 void services_untrack_op(svc_action_t *op); 86 87 G_GNUC_INTERNAL 88 gboolean is_op_blocked(const char *rsc); 89 90 #if SUPPORT_DBUS 91 G_GNUC_INTERNAL 92 void services_set_op_pending(svc_action_t *op, DBusPendingCall *pending); 93 #endif 94 95 #endif /* SERVICES_PRIVATE__H */ 96