blob: 3fa66df9ba3d4dc9fcaaaba194794d7e49db39b2 [file] [log] [blame]
package restore
import (
"sync"
"github.com/greenplum-db/gp-common-go-libs/cluster"
"github.com/greenplum-db/gp-common-go-libs/dbconn"
"github.com/greenplum-db/gpbackup/filepath"
"github.com/greenplum-db/gpbackup/history"
"github.com/greenplum-db/gpbackup/options"
"github.com/greenplum-db/gpbackup/toc"
"github.com/greenplum-db/gpbackup/utils"
"github.com/spf13/pflag"
)
/*
* Empty struct type used for value with 0 bytes
*/
type Empty struct{}
/*
* This file contains global variables and setter functions for those variables
* used in testing.
*/
/*
* Non-flag variables
*/
var (
backupConfig *history.BackupConfig
connectionPool *dbconn.DBConn
globalCluster *cluster.Cluster
globalFPInfo filepath.FilePathInfo
globalTOC *toc.TOC
pluginConfig *utils.PluginConfig
restoreStartTime string
version string
wasTerminated bool
errorTablesMetadata map[string]Empty
errorTablesData map[string]Empty
opts *options.Options
/*
* Used for synchronizing DoCleanup. In DoInit() we increment the group
* and then wait for at least one DoCleanup to finish, either in DoTeardown
* or the signal handler.
*/
CleanupGroup *sync.WaitGroup
)
func init() {
// Initialize global variables
errorTablesMetadata = make(map[string]Empty)
errorTablesData = make(map[string]Empty)
}
/*
* Command-line flags
*/
var cmdFlags *pflag.FlagSet
/*
* Setter functions
*/
func SetCmdFlags(flagSet *pflag.FlagSet) {
cmdFlags = flagSet
options.SetRestoreFlagDefaults(cmdFlags)
}
func SetBackupConfig(config *history.BackupConfig) {
backupConfig = config
}
func SetConnection(conn *dbconn.DBConn) {
connectionPool = conn
}
func SetCluster(cluster *cluster.Cluster) {
globalCluster = cluster
}
func SetFPInfo(fpInfo filepath.FilePathInfo) {
globalFPInfo = fpInfo
}
func SetPluginConfig(config *utils.PluginConfig) {
pluginConfig = config
}
func SetTOC(toc *toc.TOC) {
globalTOC = toc
}
// Util functions to enable ease of access to global flag values
func FlagChanged(flagName string) bool {
return cmdFlags.Changed(flagName)
}
func MustGetFlagString(flagName string) string {
return options.MustGetFlagString(cmdFlags, flagName)
}
func MustGetFlagInt(flagName string) int {
return options.MustGetFlagInt(cmdFlags, flagName)
}
func MustGetFlagBool(flagName string) bool {
return options.MustGetFlagBool(cmdFlags, flagName)
}
func MustGetFlagStringSlice(flagName string) []string {
return options.MustGetFlagStringSlice(cmdFlags, flagName)
}
func MustGetFlagStringArray(flagName string) []string {
return options.MustGetFlagStringArray(cmdFlags, flagName)
}
func GetVersion() string {
return version
}
func SetVersion(v string) {
version = v
}