Reduce duplication with a common function
This commit is contained in:
parent
abd47fc14e
commit
33113890f5
1 changed files with 21 additions and 25 deletions
|
@ -15,6 +15,25 @@ def make_dump_path(location_config): # pragma: no cover
|
|||
)
|
||||
|
||||
|
||||
def make_extra_environment(database):
|
||||
'''
|
||||
Make the extra_environment dict from the given database configuration.
|
||||
'''
|
||||
extra = dict()
|
||||
if 'password' in database:
|
||||
extra['PGPASSWORD'] = database['password']
|
||||
extra['PGSSLMODE'] = database.get('sslmode', 'disable')
|
||||
if 'sslcert' in database:
|
||||
extra['PGSSLCERT'] = database['sslcert']
|
||||
if 'sslkey' in database:
|
||||
extra['PGSSLKEY'] = database['sslkey']
|
||||
if 'sslrootcert' in database:
|
||||
extra['PGSSLROOTCERT'] = database['sslrootcert']
|
||||
if 'sslcrl' in database:
|
||||
extra['PGSSLCRL'] = database['sslcrl']
|
||||
return extra
|
||||
|
||||
|
||||
def dump_databases(databases, log_prefix, location_config, dry_run):
|
||||
'''
|
||||
Dump the given PostgreSQL databases to a named pipe. The databases are supplied as a sequence of
|
||||
|
@ -56,19 +75,7 @@ def dump_databases(databases, log_prefix, location_config, dry_run):
|
|||
# format in a particular, a named destination is required, and redirection doesn't work.
|
||||
+ (('>', dump_filename) if dump_format != 'directory' else ())
|
||||
)
|
||||
extra_environment = dict()
|
||||
if 'password' in database:
|
||||
extra_environment['PGPASSWORD'] = database['password']
|
||||
extra_environment['PGSSLMODE'] = database['sslmode'] if 'sslmode' in database else 'disable'
|
||||
if 'sslcert' in database:
|
||||
extra_environment['PGSSLCERT'] = database['sslcert']
|
||||
if 'sslkey' in database:
|
||||
extra_environment['PGSSLKEY'] = database['sslkey']
|
||||
if 'sslrootcert' in database:
|
||||
extra_environment['PGSSLROOTCERT'] = database['sslrootcert']
|
||||
if 'sslcrl' in database:
|
||||
extra_environment['PGSSLCRL'] = database['sslcrl']
|
||||
|
||||
extra_environment = make_extra_environment(database)
|
||||
|
||||
logger.debug(
|
||||
'{}: Dumping PostgreSQL database {} to {}{}'.format(
|
||||
|
@ -153,18 +160,7 @@ def restore_database_dump(database_config, log_prefix, location_config, dry_run,
|
|||
+ (('--username', database['username']) if 'username' in database else ())
|
||||
+ (() if extract_process else (dump_filename,))
|
||||
)
|
||||
extra_environment = dict()
|
||||
if 'password' in database:
|
||||
extra_environment['PGPASSWORD'] = database['password']
|
||||
extra_environment['PGSSLMODE'] = database['sslmode'] if 'sslmode' in database else 'disable'
|
||||
if 'sslcert' in database:
|
||||
extra_environment['PGSSLCERT'] = database['sslcert']
|
||||
if 'sslkey' in database:
|
||||
extra_environment['PGSSLKEY'] = database['sslkey']
|
||||
if 'sslrootcert' in database:
|
||||
extra_environment['PGSSLROOTCERT'] = database['sslrootcert']
|
||||
if 'sslcrl' in database:
|
||||
extra_environment['PGSSLCRL'] = database['sslcrl']
|
||||
extra_environment = make_extra_environment(database)
|
||||
|
||||
logger.debug(
|
||||
'{}: Restoring PostgreSQL database {}{}'.format(log_prefix, database['name'], dry_run_label)
|
||||
|
|
Loading…
Reference in a new issue