fd526976ba5971d4bae14235cf2f735751a5e548 angie Wed May 15 14:26:41 2019 -0700 Adding doReSaveSession to streamline loading and saving a session in one CGI request, for converting old session trash paths and customTrash tables to userdata and customData. refs #22440 diff --git src/hg/hgSession/hgSession.h src/hg/hgSession/hgSession.h index 3e6bd9a..883ddf4 100644 --- src/hg/hgSession/hgSession.h +++ src/hg/hgSession/hgSession.h @@ -1,94 +1,99 @@ /* hgSession - Manage information associated with a user identity. */ /* Copyright (C) 2008 The Regents of the University of California * See README in this or parent directory for licensing information. */ #ifndef HGSESSION_H #define HGSESSION_H /* NOTE: some of the original contents have been moved up to cart.h for * sharing with hgTracks. */ #include "cart.h" /* Global variables - generally set during initialization and then read-only. */ extern struct cart *cart; /* This holds cgi and other variables between clicks. */ extern char *database; /* Current database, often but not always dbDatabase. */ /* hgSession form inputs */ #define hgsNewSessionName hgSessionPrefix "newSessionName" #define hgsNewSessionShare hgSessionPrefix "newSessionShare" #define hgsNewSessionDescription hgSessionPrefix "newSessionDescription" #define hgsDoNewSession hgSessionPrefix "doNewSession" #define hgsSharePrefix hgSessionPrefix "share_" #define hgsGalleryPrefix hgSessionPrefix "gallery_" #define hgsEditPrefix hgSessionPrefix "edit_" #define hgsLoadPrefix hgSessionPrefix "load_" #define hgsDeletePrefix hgSessionPrefix "delete_" #define hgsShowDownloadPrefix hgSessionPrefix "showDownload_" #define hgsMakeDownloadPrefix hgSessionPrefix "makeDownload_" #define hgsDoDownloadPrefix hgSessionPrefix "doDownload_" #define hgsSaveLocalBackupFileName hgSessionPrefix "saveLocalBackupFileName" #define hgsSaveLocalFileName hgSessionPrefix "saveLocalFileName" #define hgsSaveLocalFileCompress hgSessionPrefix "saveLocalFileCompress" #define hgsDoSaveLocal hgSessionPrefix "doSaveLocal" #define hgsLoadLocalFileName hgSessionPrefix "loadLocalFileName" #define hgsDoLoadLocal hgSessionPrefix "doLoadLocal" #define hgsLoadUrlName hgSessionPrefix "loadUrlName" #define hgsDoLoadUrl hgSessionPrefix "doLoadUrl" #define hgsDoMainPage hgSessionPrefix "doMainPage" #define hgsDoSessionDetail hgSessionPrefix "doSessionDetail" #define hgsOldSessionName hgSessionPrefix "oldSessionName" #define hgsDoSessionChange hgSessionPrefix "doSessionChange" #define hgsCancel hgSessionPrefix "cancel" #define hgsDo hgSessionPrefix "do" +// Non-UI reachable function to load a session and save it, for the purpose of moving files +// and tables out of trash/customTrash into userdata/customData after sessionData* params are +// added to hg.conf. +#define hgsDoReSaveSession hgSessionPrefix "doReSaveSession" + // Back-door CGI param to randomize the suffix (usually day of month) for sessionDataDbPrefix. // This is for bulk re-saving old sessions to move files and tables to safe storage; // we don't want all of the old sessions' tables to end up in the same day-of-month database. #define hgsSessionDataDbSuffix hgSessionPrefix "sessionDataDbSuffix" char *cgiDecodeClone(char *encStr); /* Allocate and return a CGI-decoded copy of encStr. */ void startBackgroundWork(char *exec, char **pWorkUrl); /* deal with forking off child for background work * and setting up the trash file for communicating * from the child to the browser */ void getBackgroundStatus(char *url); /* fetch status as the latest complete html block available. * fetch progress info instead if background proc still running. */ // ----- htmlOpen void htmlOpen(char *format, ...); /* Start up a page that will be in html format. */ void htmlClose(); /* Close down html format page. */ void showDownloadSessionCtData(struct hashEl *downloadList); /* Show download page for the given session */ void makeDownloadSessionCtData(char *param1, char *backgroundProgress); /* Download tables and data to save save in compressed archive. */ void doDownloadSessionCtData(struct hashEl *downloadPathList); /* Download given table to browser to save. */ void saveSessionData(struct cart *cart, char *encUserName, char *encSessionName, char *dbSuffix); /* If hg.conf specifies safe places to store files and/or tables that belong to user sessions, * then scan cart for trashDir files and/or customTrash tables, store them in safe locations, * and update cart to point to the new locations. */ #endif /* HGSESSION_H */