Skip to content

Commit

Permalink
TOOLS: Add the upgrade-cache command
Browse files Browse the repository at this point in the history
Allows to upgrade the cache using the sssctl tool, which might be useful
e.g. in RPM %post scripts.

Reviewed-by: Sumit Bose <[email protected]>
  • Loading branch information
jhrozek committed Jul 7, 2016
1 parent a0b824a commit 552390a
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/tools/sssctl/sssctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -267,6 +267,7 @@ int main(int argc, const char **argv)
SSS_TOOL_COMMAND("backup-local-data", "Backup local data", 0, sssctl_backup_local_data),
SSS_TOOL_COMMAND("restore-local-data", "Restore local data from backup", 0, sssctl_restore_local_data),
SSS_TOOL_COMMAND("remove-cache", "Backup local data and remove cached content", 0, sssctl_remove_cache),
SSS_TOOL_COMMAND("upgrade-cache", "Perform cache upgrade", ERR_SYSDB_VERSION_TOO_OLD, sssctl_upgrade_cache),
SSS_TOOL_DELIMITER("Log files tools:"),
SSS_TOOL_COMMAND("remove-logs", "Remove existing SSSD log files", 0, sssctl_remove_logs),
SSS_TOOL_COMMAND("fetch-logs", "Archive SSSD log files in tarball", 0, sssctl_fetch_logs),
Expand Down
4 changes: 4 additions & 0 deletions src/tools/sssctl/sssctl.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,10 @@ errno_t sssctl_remove_cache(struct sss_cmdline *cmdline,
struct sss_tool_ctx *tool_ctx,
void *pvt);

errno_t sssctl_upgrade_cache(struct sss_cmdline *cmdline,
struct sss_tool_ctx *tool_ctx,
void *pvt);

errno_t sssctl_remove_logs(struct sss_cmdline *cmdline,
struct sss_tool_ctx *tool_ctx,
void *pvt);
Expand Down
30 changes: 30 additions & 0 deletions src/tools/sssctl/sssctl_data.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@
#include <stdio.h>

#include "util/util.h"
#include "db/sysdb.h"
#include "tools/common/sss_tools.h"
#include "tools/common/sss_process.h"
#include "tools/sssctl/sssctl.h"

#define CACHE_FILE(db) " " DB_PATH "/" db
Expand Down Expand Up @@ -256,3 +258,31 @@ errno_t sssctl_remove_cache(struct sss_cmdline *cmdline,

return EOK;
}

errno_t sssctl_upgrade_cache(struct sss_cmdline *cmdline,
struct sss_tool_ctx *tool_ctx,
void *pvt)
{
struct sysdb_upgrade_ctx db_up_ctx;
errno_t ret;

if (sss_deamon_running()) {
return ERR_SSSD_RUNNING;
}

ret = confdb_get_domains(tool_ctx->confdb, &tool_ctx->domains);
if (ret != EOK) {
DEBUG(SSSDBG_FATAL_FAILURE, "No domains configured.\n");
return ret;
}

db_up_ctx.cdb = tool_ctx->confdb;
ret = sysdb_init_ext(tool_ctx, tool_ctx->domains, &db_up_ctx,
true, 0, 0);
if (ret != EOK) {
SYSDB_VERSION_ERROR_DAEMON(ret);
return ret;
}

return EOK;
}

0 comments on commit 552390a

Please sign in to comment.