38 #include "clientpipe.h" 44 static const char *module_str =
"backup_hsmkeys_cmd";
88 int keys_marked = hsmkeys_from_to_state(dbconn, clause_list,
90 if (keys_marked < 0) {
93 client_printf(sockfd,
"info: keys flagged for backup: %d\n", keys_marked);
100 int keys_marked = hsmkeys_from_to_state(dbconn, clause_list,
102 if (keys_marked < 0) {
105 client_printf(sockfd,
"info: keys marked backup done: %d\n", keys_marked);
112 int keys_marked = hsmkeys_from_to_state(dbconn, clause_list,
114 if (keys_marked < 0) {
117 client_printf(sockfd,
"info: keys unflagged for backup: %d\n", keys_marked);
146 client_printf(sockfd,
148 " --repository <repository> aka -r\n");
149 client_printf(sockfd,
151 " --repository <repository> aka -r\n");
152 client_printf(sockfd,
154 " --repository <repository> aka -r \n");
155 client_printf(sockfd,
157 " --repository <repository> aka -r \n");
163 client_printf(sockfd,
164 "backup list Enumerate backup status of keys.\n" 165 "backup prepare Flag the keys found in all configured HSMs as to be backed up.\n" 166 "backup commit Mark flagged keys found in all configured HSMs as backed up.\n" 167 "backup rollback Cancel a 'backup prepare' action.\n" 169 "repository Limit to this repository\n\n");
173 handles(
const char *cmd, ssize_t n)
175 if (ods_check_command(cmd, n,
"backup prepare"))
return 1;
176 if (ods_check_command(cmd, n,
"backup commit"))
return 1;
177 if (ods_check_command(cmd, n,
"backup rollback"))
return 1;
178 if (ods_check_command(cmd, n,
"backup list"))
return 1;
183 get_repo_param(
const char *cmd, ssize_t n,
char *buf,
size_t buflen)
186 const char *argv[
NARGV];
188 const char *repository = NULL;
191 strncpy(buf, cmd, buflen);
192 argc = ods_str_explode(buf,
NARGV, argv);
193 buf[
sizeof(buf)-1] =
'\0';
199 (void)ods_find_arg_and_param(&argc, argv,
"repository",
"r",
208 char buf[ODS_SE_MAXLINE];
210 const char *repository;
214 if (!
handles(cmd, n))
return -1;
215 repository = get_repo_param(cmd, n, buf, ODS_SE_MAXLINE);
229 if (ods_check_command(cmd,n,
"backup prepare"))
230 status = prepare(sockfd, dbconn, clause_list);
231 else if (ods_check_command(cmd,n,
"backup commit"))
232 status = commit(sockfd, dbconn, clause_list);
233 else if (ods_check_command(cmd,n,
"backup rollback"))
234 status = rollback(sockfd, dbconn, clause_list);
235 else if (ods_check_command(cmd,n,
"backup list"))
236 status = list(sockfd, dbconn, clause_list);
db_clause_list_t * db_clause_list_new(void)
int(* run)(int sockfd, struct engine_struct *engine, const char *cmd, ssize_t n, db_connection_t *dbconn)
const hsm_key_t * hsm_key_list_next(hsm_key_list_t *hsm_key_list)
void ods_log_error(const char *format,...)
int hsm_key_set_backup(hsm_key_t *hsm_key, hsm_key_backup_t backup)
void db_clause_list_free(db_clause_list_t *clause_list)
db_clause_t * hsm_key_backup_clause(db_clause_list_t *clause_list, hsm_key_backup_t backup)
int hsm_key_update(hsm_key_t *hsm_key)
void(* usage)(int sockfd)
const char * hsm_key_locator(const hsm_key_t *hsm_key)
db_clause_t * hsm_key_repository_clause(db_clause_list_t *clause_list, const char *repository_text)
hsm_key_t * hsm_key_list_get_next(hsm_key_list_t *hsm_key_list)
void hsm_key_free(hsm_key_t *hsm_key)
struct cmd_func_block * backup_funcblock(void)
hsm_key_list_t * hsm_key_list_new_get_by_clauses(const db_connection_t *connection, const db_clause_list_t *clause_list)
int(* handles)(const char *cmd, ssize_t n)
void hsm_key_list_free(hsm_key_list_t *hsm_key_list)
enum hsm_key_backup hsm_key_backup_t
void ods_log_warning(const char *format,...)