Documentation ¶
Overview ¶
Code generated by mockery v1.0.0. DO NOT EDIT.
Index ¶
- Constants
- Variables
- func AlterDatabaseOwner(dbname string, owner string) string
- func CreateDatabaseQuery(dbname string) string
- func CreateDatabaseWithOwnerQuery(dbname string, owner string) string
- func CreateExtensionQuery(extName string) string
- func CreateRoleQuery(name string) string
- func DropDatabaseQuery(dbname string) string
- func GrantAllQuery(dbName string, roleName string) string
- func IsIncompatibleTOCLine(line string) bool
- func PGDumpCmd() []string
- func PGRestoreCmd() []string
- func PSQLCmd() []string
- func RemoveRolePasswordQuery(name string) string
- func RenameDatabaseQuery(old string, new string) string
- type A1ConnInfo
- type A2ConnInfo
- type ConnInfo
- type ConnInfoURI
- type DB
- type DBProvider
- type DatabaseExporter
- type MockDB
- func (_m *MockDB) AlterDatabaseOwner(_a0 string, _a1 string) error
- func (_m *MockDB) BigintQuery(_a0 string, _a1 ...interface{}) (int64, error)
- func (_m *MockDB) BoolQuery(_a0 string, _a1 ...interface{}) (bool, error)
- func (_m *MockDB) Close() error
- func (_m *MockDB) ConnectedUserIsSuperuser() (bool, error)
- func (_m *MockDB) CreateDatabase(_a0 string) error
- func (_m *MockDB) CreateDatabaseWithOwner(_a0 string, _a1 string) error
- func (_m *MockDB) CreateExtension(_a0 string) error
- func (_m *MockDB) CreateRole(_a0 string) error
- func (_m *MockDB) DatabaseExists(_a0 string) (bool, error)
- func (_m *MockDB) DropDatabase(_a0 string) error
- func (_m *MockDB) ExecStatement(_a0 string, _a1 ...interface{}) error
- func (_m *MockDB) GrantAll(_a0 string, _a1 string) error
- func (_m *MockDB) Ping() error
- func (_m *MockDB) RemovePassword(_a0 string) error
- func (_m *MockDB) RenameDatabase(_a0 string, _a1 string) error
- func (_m *MockDB) StringQuery(_a0 string, _a1 ...interface{}) (string, error)
- type PlatformConnInfo
- type TLSCertPaths
Constants ¶
const ( DatabaseExistsQuery = `SELECT EXISTS(SELECT 1 FROM pg_database WHERE datname = $1)` ConnectedUserIsSuperuserQuery = `SELECT rolsuper FROM pg_roles WHERE rolname = current_user` )
Queries that support positional arguments and can thus be used without constructors.
const Pg13Client = "core/postgresql13-client"
Variables ¶
var ( // DefaultPGDumpCmd is the command we will run for // pg_dump.This package-level var is provided so a // stub-command can be injected by the tests. DefaultPGDumpCmd = []string{"hab", "pkg", "exec", Pg13Client, "pg_dump"} // PGRestoreCmd is the command we will run for // pg_restore. This package-level var is provided so a // stub-command can be injected by the tests. DefaultPGRestoreCmd = []string{"hab", "pkg", "exec", Pg13Client, "pg_restore"} // PSQLCmd is the command we will run for psql. This // package-level var is provided so a stub-command can be // injected by the tests. DefaultPSQLCmd = []string{"hab", "pkg", "exec", Pg13Client, "psql"} )
var A2SuperuserCerts = TLSCertPaths{
Cert: "/hab/svc/automate-postgresql/config/server.crt",
Key: "/hab/svc/automate-postgresql/config/server.key",
RootCert: "/hab/svc/automate-postgresql/config/root.crt",
}
var CurrentDBProvider = DefaultDBProvider
var ErrNoExport = errors.New("No export of the requested database exists")
Functions ¶
func AlterDatabaseOwner ¶
func CreateDatabaseQuery ¶
func CreateExtensionQuery ¶
func CreateRoleQuery ¶
func DropDatabaseQuery ¶
func GrantAllQuery ¶
func IsIncompatibleTOCLine ¶
isIncompatibleTOCLine takes in a line from TOC of a pg backup and decides if it should be excluded from the restore attempt. Some items in a backup cannot be restored in (e.g.) AWS RDS, where the superuser is not all that "super."
To gather the data you will likely need to modify this function, you first need to make a database dump in the custom format. The command for that is of the form `pg_dump DB_URI --format c > database_dump.fc`. To view the TOC of that file, use a command like `pg_restore --list database_dump.fc`
If using the habitat dev studio, you can access the postgresql CLI tools via `hab pkg exec core/postgresql-client COMMAND`
func PGRestoreCmd ¶
func PGRestoreCmd() []string
func RemoveRolePasswordQuery ¶
func RenameDatabaseQuery ¶
Types ¶
type A1ConnInfo ¶
type A1ConnInfo struct { User string Pass string Host string Port uint64 // contains filtered or unexported fields }
A1ConnInfo represents the connection information for an Automate 1 PostgreSQL database. It assumes connections should be made without TLS and that password authentication can be used.
To avoid leaking passwords via the environment, we use the PGPASSFILE feature of libpq. Users should call InitPgPassfile() before using the options returned by PsqlCmdOptions. Users are responsible for calling CleanupPgPassfile() when they are done.
func (*A1ConnInfo) CleanupPgPassfile ¶
func (c *A1ConnInfo) CleanupPgPassfile() error
func (*A1ConnInfo) ConnURI ¶
func (c *A1ConnInfo) ConnURI(dbname string) string
func (*A1ConnInfo) InitPgPassfile ¶
func (c *A1ConnInfo) InitPgPassfile() (string, error)
InitPgPassfile creates a temporary pgpass file. The format of the file is defined by:
https://www.postgresql.org/docs/9.6/static/libpq-pgpass.html
The filename is returned if the file has been successfully written and synced to disk. Otherwise, an error is returned. The caller is responsible for cleaning up the file after use.
func (*A1ConnInfo) PsqlCmdOptions ¶
func (c *A1ConnInfo) PsqlCmdOptions() []command.Opt
func (*A1ConnInfo) String ¶
func (c *A1ConnInfo) String() string
type A2ConnInfo ¶
type A2ConnInfo struct { User string Host string Password string Port uint64 Certs TLSCertPaths }
A2ConnInfo represents the connection information for an Automate 2 PostgreSQL database. It assumes connections can be made via TLS and authentication happens via client certificates.
func (*A2ConnInfo) ConnURI ¶
func (c *A2ConnInfo) ConnURI(dbname string) string
func (*A2ConnInfo) InsecureConnURI ¶
func (c *A2ConnInfo) InsecureConnURI(dbname string) string
func (*A2ConnInfo) PsqlCmdOptions ¶
func (c *A2ConnInfo) PsqlCmdOptions() []command.Opt
func (*A2ConnInfo) String ¶
func (c *A2ConnInfo) String() string
type ConnInfo ¶
type ConnInfo interface { ConnInfoURI // PsqlCmdOptions returns an array of command.Opts that set // the environment variables required for psql (or other tools // that use libpq environment variables) to connect to the // given database. See // https://www.postgresql.org/docs/9.6/static/libpq-envars.html // for details on the various variables. PsqlCmdOptions() []command.Opt }
ConnInfo provides connection information for PostgreSQL databases
type ConnInfoURI ¶
type ConnInfoURI interface { // ConnURI returns a string suitable for passing to the // database/sql libraries or other tools that accept libpq // connection URIs. See // https://www.postgresql.org/docs/9.6/static/libpq-connect.html#LIBPQ-CONNSTRING // for details on the format. ConnURI(string) string }
type DB ¶
type DB interface { CreateDatabase(string) error CreateDatabaseWithOwner(string, string) error AlterDatabaseOwner(string, string) error CreateRole(string) error RemovePassword(string) error GrantAll(string, string) error DropDatabase(string) error ConnectedUserIsSuperuser() (bool, error) RenameDatabase(string, string) error DatabaseExists(string) (bool, error) CreateExtension(string) error Ping() error Close() error ExecStatement(string, ...interface{}) error StringQuery(string, ...interface{}) (string, error) BoolQuery(string, ...interface{}) (bool, error) BigintQuery(string, ...interface{}) (int64, error) }
DB is a high-level abstraction over PostgreSQL database interactions. This interface allows us to mock database interactions with Automate 1 in self-test mode.
type DBProvider ¶
type DBProvider interface {
Connect(ConnInfoURI, string) (DB, error)
}
A DBProvider allows you to connect to a DB
var DefaultDBProvider DBProvider = &sqlDBProvider{}
type DatabaseExporter ¶
type DatabaseExporter struct { DataDir string Name string User string IncludedTables []string ExcludedTables []string ConnInfo ConnInfo CmdExecutor command.Executor Timeout time.Duration DisableRoleCreate bool UseCustomFormat bool TempDir string Stdout io.Writer Stdin io.Reader }
DatabaseExporter knows how to export and import a database. See Export and Import for further details.
func (DatabaseExporter) Exists ¶
func (db DatabaseExporter) Exists() (bool, error)
Exists returns true if the database already exists in the PostgreSQL instance identified by the ConnInfo.
func (DatabaseExporter) Export ¶
func (db DatabaseExporter) Export() error
Export uses pg_dump to create a SQL (plain text) export of the database in the given DataDir. If no User is present on the DatabaseExporter the export will be stripped of ownership information. Any tables or views list in ExcludedTables will be excluded from the backup. If IncludedTables has been specified only tables listed in IncludedTables will be exported.
See https://www.postgresql.org/docs/9.6/static/app-pgdump.html for all of the details.
func (DatabaseExporter) Import ¶
func (db DatabaseExporter) Import(exitOnError bool) error
Import imports a SQL (plain text) export of the database from a previously created export in the DataDir. ErrNoExport is returned if no SQL file for the database can be found in the DataDir. If the DatabaseExporter has a User set, the user will be created before the import. The database is dropped before import. The exitOnError parameter controls whether the SQL import will exit on the first error or continue.
type MockDB ¶
MockDB is an autogenerated mock type for the DB type
func (*MockDB) AlterDatabaseOwner ¶
AlterDatabaseOwner provides a mock function with given fields: _a0, _a1
func (*MockDB) BigintQuery ¶
BigintQuery provides a mock function with given fields: _a0, _a1
func (*MockDB) ConnectedUserIsSuperuser ¶
ConnectedUserIsSuperuser provides a mock function with given fields:
func (*MockDB) CreateDatabase ¶
CreateDatabase provides a mock function with given fields: _a0
func (*MockDB) CreateDatabaseWithOwner ¶
CreateDatabaseWithOwner provides a mock function with given fields: _a0, _a1
func (*MockDB) CreateExtension ¶
CreateExtension provides a mock function with given fields: _a0
func (*MockDB) CreateRole ¶
CreateRole provides a mock function with given fields: _a0
func (*MockDB) DatabaseExists ¶
DatabaseExists provides a mock function with given fields: _a0
func (*MockDB) DropDatabase ¶
DropDatabase provides a mock function with given fields: _a0
func (*MockDB) ExecStatement ¶
ExecStatement provides a mock function with given fields: _a0, _a1
func (*MockDB) RemovePassword ¶
RemovePassword provides a mock function with given fields: _a0
func (*MockDB) RenameDatabase ¶
RenameDatabase provides a mock function with given fields: _a0, _a1
type PlatformConnInfo ¶
type PlatformConnInfo struct {
// contains filtered or unexported fields
}
NOTE(ssd) 2019-08-19: This is a bit of duplication with code in platform/config to ensure that you can depend on the platform config without pulling in the command class.
func SuperuserConnInfoFromPlatformConfig ¶
func SuperuserConnInfoFromPlatformConfig(c *platform_config.Config) (*PlatformConnInfo, error)
func (*PlatformConnInfo) ConnURI ¶
func (p *PlatformConnInfo) ConnURI(dbname string) string
func (*PlatformConnInfo) PsqlCmdOptions ¶
func (p *PlatformConnInfo) PsqlCmdOptions() []command.Opt
func (*PlatformConnInfo) String ¶
func (p *PlatformConnInfo) String() string
type TLSCertPaths ¶
A certDir is a directory containing TLS certificates that can be used for TLS postgresql connections.
func TLSCertPathsFromDir ¶
func TLSCertPathsFromDir(dir string) TLSCertPaths