e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina/*
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina Authors:
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina Pavel Březina <pbrezina@redhat.com>
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina Copyright (C) 2016 Red Hat
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina This program is free software; you can redistribute it and/or modify
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina it under the terms of the GNU General Public License as published by
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina the Free Software Foundation; either version 3 of the License, or
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina (at your option) any later version.
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina This program is distributed in the hope that it will be useful,
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina but WITHOUT ANY WARRANTY; without even the implied warranty of
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina GNU General Public License for more details.
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina You should have received a copy of the GNU General Public License
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina along with this program. If not, see <http://www.gnu.org/licenses/>.
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina*/
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina#ifndef _SSSCTL_H_
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina#define _SSSCTL_H_
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina#include "lib/sifp/sss_sifp.h"
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina#include "lib/sifp/sss_sifp_dbus.h"
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina#include "tools/common/sss_tools.h"
9b74009c1260e6f3b1031a6ae110bf1d957cba81Pavel Březina#include "sbus/sssd_dbus.h"
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březinaenum sssctl_prompt_result {
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina SSSCTL_PROMPT_YES,
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina SSSCTL_PROMPT_NO,
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina SSSCTL_PROMPT_ERROR
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina};
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březinaenum sssctl_svc_action {
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina SSSCTL_SVC_START,
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina SSSCTL_SVC_STOP,
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina SSSCTL_SVC_RESTART
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina};
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březinaenum sssctl_prompt_result
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březinasssctl_prompt(const char *message,
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina enum sssctl_prompt_result defval);
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březinaerrno_t sssctl_run_command(const char *command);
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březinabool sssctl_start_sssd(bool force);
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březinabool sssctl_stop_sssd(bool force);
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březinabool sssctl_restart_sssd(bool force);
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březinasss_sifp_error sssctl_sifp_init(struct sss_tool_ctx *tool_ctx,
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina sss_sifp_ctx **_sifp);
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březinavoid _sssctl_sifp_error(sss_sifp_ctx *sifp,
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina sss_sifp_error error,
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina const char *message);
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina#define sssctl_sifp_error(sifp, error, message) \
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina _sssctl_sifp_error(sifp, error, _(message))
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina
9b74009c1260e6f3b1031a6ae110bf1d957cba81Pavel Březinasss_sifp_error _sssctl_sifp_send(TALLOC_CTX *mem_ctx,
9b74009c1260e6f3b1031a6ae110bf1d957cba81Pavel Březina sss_sifp_ctx *sifp,
9b74009c1260e6f3b1031a6ae110bf1d957cba81Pavel Březina DBusMessage **_reply,
9b74009c1260e6f3b1031a6ae110bf1d957cba81Pavel Březina const char *path,
9b74009c1260e6f3b1031a6ae110bf1d957cba81Pavel Březina const char *iface,
9b74009c1260e6f3b1031a6ae110bf1d957cba81Pavel Březina const char *method,
9b74009c1260e6f3b1031a6ae110bf1d957cba81Pavel Březina int first_arg_type,
9b74009c1260e6f3b1031a6ae110bf1d957cba81Pavel Březina ...);
9b74009c1260e6f3b1031a6ae110bf1d957cba81Pavel Březina
9b74009c1260e6f3b1031a6ae110bf1d957cba81Pavel Březina#define sssctl_sifp_send(mem_ctx, sifp, reply, path, iface, method, ...) \
9b74009c1260e6f3b1031a6ae110bf1d957cba81Pavel Březina _sssctl_sifp_send(mem_ctx, sifp, reply, path, iface, method, \
9b74009c1260e6f3b1031a6ae110bf1d957cba81Pavel Březina ##__VA_ARGS__, DBUS_TYPE_INVALID);
9b74009c1260e6f3b1031a6ae110bf1d957cba81Pavel Březina
f4f2edba5c555773d7c9adfa95562b96b0c0cdb2Pavel Březinaerrno_t sssctl_systemd_start(void);
f4f2edba5c555773d7c9adfa95562b96b0c0cdb2Pavel Březinaerrno_t sssctl_systemd_stop(void);
f4f2edba5c555773d7c9adfa95562b96b0c0cdb2Pavel Březinaerrno_t sssctl_systemd_restart(void);
f4f2edba5c555773d7c9adfa95562b96b0c0cdb2Pavel Březina
488b455f6b7881ec108a127840b1c1f1523d937fMichal Židekerrno_t sssctl_domain_list(struct sss_cmdline *cmdline,
488b455f6b7881ec108a127840b1c1f1523d937fMichal Židek struct sss_tool_ctx *tool_ctx,
488b455f6b7881ec108a127840b1c1f1523d937fMichal Židek void *pvt);
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březinaerrno_t sssctl_domain_status(struct sss_cmdline *cmdline,
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina struct sss_tool_ctx *tool_ctx,
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina void *pvt);
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina
488b455f6b7881ec108a127840b1c1f1523d937fMichal Židekerrno_t sssctl_client_data_backup(struct sss_cmdline *cmdline,
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina struct sss_tool_ctx *tool_ctx,
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina void *pvt);
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina
488b455f6b7881ec108a127840b1c1f1523d937fMichal Židekerrno_t sssctl_client_data_restore(struct sss_cmdline *cmdline,
488b455f6b7881ec108a127840b1c1f1523d937fMichal Židek struct sss_tool_ctx *tool_ctx,
488b455f6b7881ec108a127840b1c1f1523d937fMichal Židek void *pvt);
488b455f6b7881ec108a127840b1c1f1523d937fMichal Židek
488b455f6b7881ec108a127840b1c1f1523d937fMichal Židekerrno_t sssctl_cache_remove(struct sss_cmdline *cmdline,
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina struct sss_tool_ctx *tool_ctx,
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina void *pvt);
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina
488b455f6b7881ec108a127840b1c1f1523d937fMichal Židekerrno_t sssctl_cache_upgrade(struct sss_cmdline *cmdline,
552390afcc81af96ca201fa6c25ddefbbecbeb4eJakub Hrozek struct sss_tool_ctx *tool_ctx,
552390afcc81af96ca201fa6c25ddefbbecbeb4eJakub Hrozek void *pvt);
552390afcc81af96ca201fa6c25ddefbbecbeb4eJakub Hrozek
488b455f6b7881ec108a127840b1c1f1523d937fMichal Židekerrno_t sssctl_logs_remove(struct sss_cmdline *cmdline,
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina struct sss_tool_ctx *tool_ctx,
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina void *pvt);
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina
488b455f6b7881ec108a127840b1c1f1523d937fMichal Židekerrno_t sssctl_logs_fetch(struct sss_cmdline *cmdline,
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina struct sss_tool_ctx *tool_ctx,
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina void *pvt);
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina
488b455f6b7881ec108a127840b1c1f1523d937fMichal Židekerrno_t sssctl_user_show(struct sss_cmdline *cmdline,
488b455f6b7881ec108a127840b1c1f1523d937fMichal Židek struct sss_tool_ctx *tool_ctx,
488b455f6b7881ec108a127840b1c1f1523d937fMichal Židek void *pvt);
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina
488b455f6b7881ec108a127840b1c1f1523d937fMichal Židekerrno_t sssctl_group_show(struct sss_cmdline *cmdline,
488b455f6b7881ec108a127840b1c1f1523d937fMichal Židek struct sss_tool_ctx *tool_ctx,
488b455f6b7881ec108a127840b1c1f1523d937fMichal Židek void *pvt);
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina
488b455f6b7881ec108a127840b1c1f1523d937fMichal Židekerrno_t sssctl_netgroup_show(struct sss_cmdline *cmdline,
488b455f6b7881ec108a127840b1c1f1523d937fMichal Židek struct sss_tool_ctx *tool_ctx,
488b455f6b7881ec108a127840b1c1f1523d937fMichal Židek void *pvt);
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina
e088912418fd4db750f2097dfde8ef9b77303f05Michal Židekerrno_t sssctl_config_check(struct sss_cmdline *cmdline,
e088912418fd4db750f2097dfde8ef9b77303f05Michal Židek struct sss_tool_ctx *tool_ctx,
e088912418fd4db750f2097dfde8ef9b77303f05Michal Židek void *pvt);
e157b9f6cb370e1b94bcac2044d26ad66d640fbaPavel Březina#endif /* _SSSCTL_H_ */