mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Merge pull request #4289 from grischa/postgres_default_db
renamed postgres.db to postgres.maintenance_db, runas postgres on localhost only
This commit is contained in:
commit
73a954b6a2
2 changed files with 110 additions and 93 deletions
|
@ -19143,16 +19143,19 @@ postgres.host: \(aqlocalhost\(aq
|
|||
postgres.port: \(aq5432\(aq
|
||||
postgres.user: \(aqpostgres\(aq
|
||||
postgres.pass: \(aq\(aq
|
||||
postgres.db: \(aqpostgres\(aq
|
||||
postgres.maintenance_db: \(aqpostgres\(aq
|
||||
.ft P
|
||||
.fi
|
||||
.sp
|
||||
The default for the maintenance_db is 'postgres' and in most cases it can
|
||||
be left at the default setting.
|
||||
.sp
|
||||
This data can also be passed into pillar. Options passed into opts will
|
||||
overwrite options passed into pillar
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B salt.modules.postgres.db_create(name, user=None, host=None, port=None, db=None, password=None, tablespace=None, encoding=None, locale=None, lc_collate=None, lc_ctype=None, owner=None, template=None, runas=None)
|
||||
.B salt.modules.postgres.db_create(name, user=None, host=None, port=None, maintenance_db=None, password=None, tablespace=None, encoding=None, locale=None, lc_collate=None, lc_ctype=None, owner=None, template=None, runas=None)
|
||||
Adds a databases to the Postgres server.
|
||||
.sp
|
||||
CLI Example:
|
||||
|
@ -19167,7 +19170,7 @@ salt \(aq*\(aq postgres.db_create \(aqdbname\(aq template=template_postgis
|
|||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B salt.modules.postgres.db_exists(name, user=None, host=None, port=None, db=None, password=None, runas=None)
|
||||
.B salt.modules.postgres.db_exists(name, user=None, host=None, port=None, maintenance_db=None, password=None, runas=None)
|
||||
Checks if a database exists on the Postgres server.
|
||||
.sp
|
||||
CLI Example:
|
||||
|
@ -19180,7 +19183,7 @@ salt \(aq*\(aq postgres.db_exists \(aqdbname\(aq
|
|||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B salt.modules.postgres.db_list(user=None, host=None, port=None, db=None, password=None, runas=None)
|
||||
.B salt.modules.postgres.db_list(user=None, host=None, port=None, maintenance_db=None, password=None, runas=None)
|
||||
Return a list of databases of a Postgres server using the output
|
||||
from the \fBpsql \-l\fP query.
|
||||
.sp
|
||||
|
@ -19194,7 +19197,7 @@ salt \(aq*\(aq postgres.db_list
|
|||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B salt.modules.postgres.db_remove(name, user=None, host=None, port=None, db=None, password=None, runas=None)
|
||||
.B salt.modules.postgres.db_remove(name, user=None, host=None, port=None, maintenance_db=None, password=None, runas=None)
|
||||
Removes a databases from the Postgres server.
|
||||
.sp
|
||||
CLI Example:
|
||||
|
@ -19207,7 +19210,7 @@ salt \(aq*\(aq postgres.db_remove \(aqdbname\(aq
|
|||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B salt.modules.postgres.group_create(groupname, user=None, host=None, port=None, db=None, password=None, createdb=False, createuser=False, encrypted=False, superuser=False, replication=False, rolepassword=None, groups=None, runas=None)
|
||||
.B salt.modules.postgres.group_create(groupname, user=None, host=None, port=None, maintenance_db=None, password=None, createdb=False, createuser=False, encrypted=False, superuser=False, replication=False, rolepassword=None, groups=None, runas=None)
|
||||
Creates a Postgres group. A group is postgres is similar to a user, but
|
||||
cannot login.
|
||||
.sp
|
||||
|
@ -19221,7 +19224,7 @@ salt \(aq*\(aq postgres.group_create \(aqgroupname\(aq user=\(aquser\(aq host=\(
|
|||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B salt.modules.postgres.group_remove(groupname, user=None, host=None, port=None, db=None, password=None, runas=None)
|
||||
.B salt.modules.postgres.group_remove(groupname, user=None, host=None, port=None, maintenance_db=None, password=None, runas=None)
|
||||
Removes a group from the Postgres server.
|
||||
.sp
|
||||
CLI Example:
|
||||
|
@ -19234,7 +19237,7 @@ salt \(aq*\(aq postgres.group_remove \(aqgroupname\(aq
|
|||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B salt.modules.postgres.group_update(groupname, user=None, host=None, port=None, db=None, password=None, createdb=False, createuser=False, encrypted=False, replication=False, rolepassword=None, groups=None, runas=None)
|
||||
.B salt.modules.postgres.group_update(groupname, user=None, host=None, port=None, maintenance_db=None, password=None, createdb=False, createuser=False, encrypted=False, replication=False, rolepassword=None, groups=None, runas=None)
|
||||
Updated a postgres group
|
||||
.sp
|
||||
CLI Examples:
|
||||
|
@ -19247,7 +19250,7 @@ salt \(aq*\(aq postgres.group_update \(aqusername\(aq user=\(aquser\(aq host=\(a
|
|||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B salt.modules.postgres.user_create(username, user=None, host=None, port=None, db=None, password=None, createdb=False, createuser=False, encrypted=False, superuser=False, replication=False, rolepassword=None, groups=None, runas=None)
|
||||
.B salt.modules.postgres.user_create(username, user=None, host=None, port=None, maintenance_db=None, password=None, createdb=False, createuser=False, encrypted=False, superuser=False, replication=False, rolepassword=None, groups=None, runas=None)
|
||||
Creates a Postgres user.
|
||||
.sp
|
||||
CLI Examples:
|
||||
|
@ -19260,7 +19263,7 @@ salt \(aq*\(aq postgres.user_create \(aqusername\(aq user=\(aquser\(aq host=\(aq
|
|||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B salt.modules.postgres.user_exists(name, user=None, host=None, port=None, db=None, password=None, runas=None)
|
||||
.B salt.modules.postgres.user_exists(name, user=None, host=None, port=None, maintenance_db=None, password=None, runas=None)
|
||||
Checks if a user exists on the Postgres server.
|
||||
.sp
|
||||
CLI Example:
|
||||
|
@ -19273,7 +19276,7 @@ salt \(aq*\(aq postgres.user_exists \(aqusername\(aq
|
|||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B salt.modules.postgres.user_list(user=None, host=None, port=None, db=None, password=password, runas=None)
|
||||
.B salt.modules.postgres.user_list(user=None, host=None, port=None, maintenance_db=None, password=password, runas=None)
|
||||
Return a list of users of a Postgres server.
|
||||
.sp
|
||||
CLI Example:
|
||||
|
@ -19286,7 +19289,7 @@ salt \(aq*\(aq postgres.user_list
|
|||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B salt.modules.postgres.user_remove(username, user=None, host=None, port=None, db=None, password=None, runas=None)
|
||||
.B salt.modules.postgres.user_remove(username, user=None, host=None, port=None, maintenance_db=None, password=None, runas=None)
|
||||
Removes a user from the Postgres server.
|
||||
.sp
|
||||
CLI Example:
|
||||
|
@ -19299,7 +19302,7 @@ salt \(aq*\(aq postgres.user_remove \(aqusername\(aq
|
|||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B salt.modules.postgres.user_update(username, user=None, host=None, port=None, db=None, password=None, createdb=False, createuser=False, encrypted=False, replication=False, rolepassword=None, groups=None, runas=None)
|
||||
.B salt.modules.postgres.user_update(username, user=None, host=None, port=None, maintenance_db=None, password=None, createdb=False, createuser=False, encrypted=False, replication=False, rolepassword=None, groups=None, runas=None)
|
||||
Creates a Postgres user.
|
||||
.sp
|
||||
CLI Examples:
|
||||
|
|
|
@ -9,8 +9,10 @@ Module to provide Postgres compatibility to salt.
|
|||
postgres.port: '5432'
|
||||
postgres.user: 'postgres'
|
||||
postgres.pass: ''
|
||||
postgres.db: 'postgres'
|
||||
postgres.maintenance_db: 'postgres'
|
||||
|
||||
The default for the maintenance_db is 'postgres' and in most cases it can
|
||||
be left at the default setting.
|
||||
This data can also be passed into pillar. Options passed into opts will
|
||||
overwrite options passed into pillar
|
||||
'''
|
||||
|
@ -22,7 +24,6 @@ import logging
|
|||
|
||||
# Import salt libs
|
||||
import salt.utils
|
||||
from salt.exceptions import CommandNotFoundError
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
@ -36,25 +37,26 @@ def __virtual__():
|
|||
return False
|
||||
|
||||
|
||||
def _get_runas(runas=None):
|
||||
'''
|
||||
Returns the default runas user for this platform
|
||||
'''
|
||||
if runas is not None:
|
||||
return runas
|
||||
|
||||
if 'FreeBSD' in __grains__['os_family']:
|
||||
return 'pgsql'
|
||||
else:
|
||||
return 'postgres'
|
||||
|
||||
|
||||
def _run_psql(cmd, runas=None, password=None, run_cmd="cmd.run_all"):
|
||||
def _run_psql(cmd, runas=None, password=None, host=None,
|
||||
run_cmd="cmd.run_all"):
|
||||
'''
|
||||
Helper function to call psql, because the password requirement
|
||||
makes this too much code to be repeated in each function below
|
||||
'''
|
||||
kwargs = {"runas": _get_runas(runas)}
|
||||
kwargs = {}
|
||||
if runas is None:
|
||||
if not host:
|
||||
host = __salt__['config.option']('postgres.host')
|
||||
if host is None or \
|
||||
host == '' or \
|
||||
host[0] == '/':
|
||||
if 'FreeBSD' in __grains__['os_family']:
|
||||
runas = 'pgsql'
|
||||
else:
|
||||
runas = 'postgres'
|
||||
|
||||
if runas is not None:
|
||||
kwargs["runas"] = runas
|
||||
|
||||
if not password:
|
||||
password = __salt__['config.option']('postgres.pass')
|
||||
|
@ -69,8 +71,8 @@ def _run_psql(cmd, runas=None, password=None, run_cmd="cmd.run_all"):
|
|||
return __salt__[run_cmd](cmd, **kwargs)
|
||||
|
||||
|
||||
def version(user=None, host=None, port=None, db=None, password=None,
|
||||
runas=None):
|
||||
def version(user=None, host=None, port=None, maintenance_db=None,
|
||||
password=None, runas=None):
|
||||
'''
|
||||
Return the version of a Postgres server.
|
||||
|
||||
|
@ -80,15 +82,16 @@ def version(user=None, host=None, port=None, db=None, password=None,
|
|||
'''
|
||||
query = 'SELECT setting FROM pg_catalog.pg_settings ' \
|
||||
'WHERE name = \'server_version\''
|
||||
cmd = _psql_cmd('-c', query, '-t',
|
||||
host=host, user=user, port=port, db=db, password=password)
|
||||
ret = _run_psql(cmd, runas=runas, password=password)
|
||||
cmd = _psql_cmd('-c', query, '-t', host=host, user=user,
|
||||
port=port, maintenance_db=maintenance_db,
|
||||
password=password)
|
||||
ret = _run_psql(cmd, runas=runas, password=password, host=host)
|
||||
|
||||
for line in ret['stdout'].splitlines():
|
||||
return line
|
||||
|
||||
|
||||
def _connection_defaults(user=None, host=None, port=None, db=None,
|
||||
def _connection_defaults(user=None, host=None, port=None, maintenance_db=None,
|
||||
password=None):
|
||||
'''
|
||||
Returns a tuple of (user, host, port, db) with config, pillar, or default
|
||||
|
@ -100,12 +103,12 @@ def _connection_defaults(user=None, host=None, port=None, db=None,
|
|||
host = __salt__['config.option']('postgres.host')
|
||||
if not port:
|
||||
port = __salt__['config.option']('postgres.port')
|
||||
if not db:
|
||||
db = __salt__['config.option']('postgres.db')
|
||||
if not maintenance_db:
|
||||
maintenance_db = __salt__['config.option']('postgres.maintenance_db')
|
||||
if not password:
|
||||
password = __salt__['config.option']('postgres.pass')
|
||||
|
||||
return (user, host, port, db, password)
|
||||
return (user, host, port, maintenance_db, password)
|
||||
|
||||
|
||||
def _psql_cmd(*args, **kwargs):
|
||||
|
@ -115,11 +118,11 @@ def _psql_cmd(*args, **kwargs):
|
|||
Accept optional keyword arguments: user, host and port as well as any
|
||||
number or positional arguments to be added to the end of command.
|
||||
'''
|
||||
(user, host, port, db, password) = _connection_defaults(
|
||||
(user, host, port, maintenance_db, password) = _connection_defaults(
|
||||
kwargs.get('user'),
|
||||
kwargs.get('host'),
|
||||
kwargs.get('port'),
|
||||
kwargs.get('db'),
|
||||
kwargs.get('maintenance_db'),
|
||||
kwargs.get('password'))
|
||||
|
||||
cmd = [salt.utils.which('psql'),
|
||||
|
@ -133,8 +136,9 @@ def _psql_cmd(*args, **kwargs):
|
|||
cmd += ['--host', host]
|
||||
if port:
|
||||
cmd += ['--port', port]
|
||||
if db:
|
||||
cmd += ['--dbname', db]
|
||||
if maintenance_db is None:
|
||||
maintenance_db = "postgres"
|
||||
cmd += ['--dbname', maintenance_db]
|
||||
cmd += args
|
||||
cmdstr = ' '.join(map(pipes.quote, cmd))
|
||||
return cmdstr
|
||||
|
@ -142,7 +146,7 @@ def _psql_cmd(*args, **kwargs):
|
|||
|
||||
# Database related actions
|
||||
|
||||
def db_list(user=None, host=None, port=None, db=None,
|
||||
def db_list(user=None, host=None, port=None, maintenance_db=None,
|
||||
password=None, runas=None):
|
||||
'''
|
||||
Return dictionary with information about databases of a Postgres server.
|
||||
|
@ -166,10 +170,10 @@ def db_list(user=None, host=None, port=None, db=None,
|
|||
'datacl as "Access privileges" FROM pg_database pgd, ' \
|
||||
'pg_roles pga WHERE pga.oid = pgd.datdba'
|
||||
|
||||
cmd = _psql_cmd('-c', query, '-t',
|
||||
host=host, user=user, port=port, db=db, password=password)
|
||||
cmd = _psql_cmd('-c', query, '-t', host=host, user=user, port=port,
|
||||
maintenance_db=maintenance_db, password=password)
|
||||
|
||||
cmdret = _run_psql(cmd, runas=runas, password=password)
|
||||
cmdret = _run_psql(cmd, runas=runas, password=password, host=host)
|
||||
|
||||
if cmdret['retcode'] > 0:
|
||||
return ret
|
||||
|
@ -184,8 +188,8 @@ def db_list(user=None, host=None, port=None, db=None,
|
|||
return ret
|
||||
|
||||
|
||||
def db_exists(name, user=None, host=None, port=None, db=None, password=None,
|
||||
runas=None):
|
||||
def db_exists(name, user=None, host=None, port=None, maintenance_db=None,
|
||||
password=None, runas=None):
|
||||
'''
|
||||
Checks if a database exists on the Postgres server.
|
||||
|
||||
|
@ -194,7 +198,8 @@ def db_exists(name, user=None, host=None, port=None, db=None, password=None,
|
|||
salt '*' postgres.db_exists 'dbname'
|
||||
'''
|
||||
|
||||
databases = db_list(user=user, host=host, port=port, db=db,
|
||||
databases = db_list(user=user, host=host, port=port,
|
||||
maintenance_db=maintenance_db,
|
||||
password=password, runas=runas)
|
||||
return name in databases
|
||||
|
||||
|
@ -203,7 +208,7 @@ def db_create(name,
|
|||
user=None,
|
||||
host=None,
|
||||
port=None,
|
||||
db=None,
|
||||
maintenance_db=None,
|
||||
password=None,
|
||||
tablespace=None,
|
||||
encoding=None,
|
||||
|
@ -248,14 +253,15 @@ def db_create(name,
|
|||
query += ' '.join(with_chunks)
|
||||
|
||||
# Execute the command
|
||||
cmd = _psql_cmd('-c', query, user=user, host=host, port=port, db=db,
|
||||
cmd = _psql_cmd('-c', query, user=user, host=host, port=port,
|
||||
maintenance_db=maintenance_db,
|
||||
password=password)
|
||||
ret = _run_psql(cmd, runas=runas, password=password)
|
||||
ret = _run_psql(cmd, runas=runas, password=password, host=host)
|
||||
|
||||
return ret['retcode'] == 0
|
||||
|
||||
|
||||
def db_remove(name, user=None, host=None, port=None, db=None,
|
||||
def db_remove(name, user=None, host=None, port=None, maintenance_db=None,
|
||||
password=None, runas=None):
|
||||
'''
|
||||
Removes a databases from the Postgres server.
|
||||
|
@ -267,15 +273,15 @@ def db_remove(name, user=None, host=None, port=None, db=None,
|
|||
|
||||
# db doesnt exist, proceed
|
||||
query = 'DROP DATABASE {0}'.format(name)
|
||||
cmd = _psql_cmd('-c', query, user=user, host=host, port=port, db=db,
|
||||
password=password)
|
||||
ret = _run_psql(cmd, runas=runas, password=password)
|
||||
cmd = _psql_cmd('-c', query, user=user, host=host, port=port,
|
||||
maintenance_db=maintenance_db, password=password)
|
||||
ret = _run_psql(cmd, runas=runas, password=password, host=host)
|
||||
return ret['retcode'] == 0
|
||||
|
||||
|
||||
# User related actions
|
||||
|
||||
def user_list(user=None, host=None, port=None, db=None,
|
||||
def user_list(user=None, host=None, port=None, maintenance_db=None,
|
||||
password=None, runas=None):
|
||||
'''
|
||||
Return a dict with information about users of a Postgres server.
|
||||
|
@ -301,7 +307,7 @@ def user_list(user=None, host=None, port=None, db=None,
|
|||
ver = version(user=user,
|
||||
host=host,
|
||||
port=port,
|
||||
db=db,
|
||||
maintenance_db=maintenance_db,
|
||||
password=password,
|
||||
runas=runas).split('.')
|
||||
if len(ver) >= 2 and int(ver[0]) >= 9 and int(ver[1]) >= 1:
|
||||
|
@ -318,10 +324,10 @@ def user_list(user=None, host=None, port=None, db=None,
|
|||
'rolconnlimit, rolvaliduntil::timestamp(0), rolconfig '
|
||||
'FROM pg_roles'
|
||||
)
|
||||
cmd = _psql_cmd('-c', query, '-t',
|
||||
host=host, user=user, port=port, db=db, password=password)
|
||||
cmd = _psql_cmd('-c', query, '-t', host=host, user=user, port=port,
|
||||
maintenace_db=maintenance_db, password=password)
|
||||
|
||||
cmdret = _run_psql(cmd, runas=runas, password=password)
|
||||
cmdret = _run_psql(cmd, runas=runas, password=password, host=host)
|
||||
|
||||
if cmdret['retcode'] > 0:
|
||||
return ret
|
||||
|
@ -350,7 +356,7 @@ def user_list(user=None, host=None, port=None, db=None,
|
|||
return ret
|
||||
|
||||
|
||||
def user_exists(name, user=None, host=None, port=None, db=None,
|
||||
def user_exists(name, user=None, host=None, port=None, maintenance_db=None,
|
||||
password=None, runas=None):
|
||||
'''
|
||||
Checks if a user exists on the Postgres server.
|
||||
|
@ -363,7 +369,7 @@ def user_exists(name, user=None, host=None, port=None, db=None,
|
|||
return name in user_list(user=user,
|
||||
host=host,
|
||||
port=port,
|
||||
db=db,
|
||||
maintenance_db=maintenance_db,
|
||||
password=password,
|
||||
runas=runas)
|
||||
|
||||
|
@ -373,7 +379,7 @@ def _role_create(name,
|
|||
user=None,
|
||||
host=None,
|
||||
port=None,
|
||||
db=None,
|
||||
maintenance_db=None,
|
||||
password=None,
|
||||
createdb=False,
|
||||
createuser=False,
|
||||
|
@ -394,7 +400,8 @@ def _role_create(name,
|
|||
create_type = 'ROLE'
|
||||
|
||||
# check if role exists
|
||||
if user_exists(name, user, host, port, db, password=password, runas=runas):
|
||||
if user_exists(name, user, host, port, maintenance_db,
|
||||
password=password, runas=runas):
|
||||
log.info('{0} \'{1}\' already exists'.format(create_type, name,))
|
||||
return False
|
||||
|
||||
|
@ -418,16 +425,17 @@ def _role_create(name,
|
|||
if sub_cmd.endswith('WITH'):
|
||||
sub_cmd = sub_cmd.replace(' WITH', '')
|
||||
|
||||
cmd = _psql_cmd('-c', sub_cmd, host=host, user=user, port=port, db=db,
|
||||
password=password)
|
||||
return _run_psql(cmd, runas=runas, password=password, run_cmd="cmd.run")
|
||||
cmd = _psql_cmd('-c', sub_cmd, host=host, user=user, port=port,
|
||||
maintenance_db=maintenance_db, password=password)
|
||||
return _run_psql(cmd, runas=runas, password=password, host=host,
|
||||
run_cmd="cmd.run")
|
||||
|
||||
|
||||
def user_create(username,
|
||||
user=None,
|
||||
host=None,
|
||||
port=None,
|
||||
db=None,
|
||||
maintenance_db=None,
|
||||
password=None,
|
||||
createdb=False,
|
||||
createuser=False,
|
||||
|
@ -449,7 +457,7 @@ def user_create(username,
|
|||
user,
|
||||
host,
|
||||
port,
|
||||
db,
|
||||
maintenance_db,
|
||||
password,
|
||||
createdb,
|
||||
createuser,
|
||||
|
@ -465,7 +473,7 @@ def _role_update(name,
|
|||
user=None,
|
||||
host=None,
|
||||
port=None,
|
||||
db=None,
|
||||
maintenance_db=None,
|
||||
password=None,
|
||||
createdb=False,
|
||||
createuser=False,
|
||||
|
@ -479,7 +487,8 @@ def _role_update(name,
|
|||
'''
|
||||
|
||||
# check if user exists
|
||||
if not user_exists(name, user, host, port, db, password, runas=runas):
|
||||
if not user_exists(name, user, host, port, maintenance_db, password,
|
||||
runas=runas):
|
||||
log.info('User \'{0}\' does not exist'.format(name,))
|
||||
return False
|
||||
|
||||
|
@ -502,16 +511,17 @@ def _role_update(name,
|
|||
for group in groups.split(','):
|
||||
sub_cmd = '{0}; GRANT {1} TO {2}'.format(sub_cmd, group, name)
|
||||
|
||||
cmd = _psql_cmd('-c', sub_cmd, host=host, user=user, port=port, db=db,
|
||||
password=password)
|
||||
return _run_psql(cmd, runas=runas, password=password, run_cmd="cmd.run")
|
||||
cmd = _psql_cmd('-c', sub_cmd, host=host, user=user, port=port,
|
||||
maintenance_db=maintenance_db, password=password)
|
||||
return _run_psql(cmd, runas=runas, password=password, host=host,
|
||||
run_cmd="cmd.run")
|
||||
|
||||
|
||||
def user_update(username,
|
||||
user=None,
|
||||
host=None,
|
||||
port=None,
|
||||
db=None,
|
||||
maintenance_db=None,
|
||||
password=None,
|
||||
createdb=False,
|
||||
createuser=False,
|
||||
|
@ -531,7 +541,7 @@ def user_update(username,
|
|||
user,
|
||||
host,
|
||||
port,
|
||||
db,
|
||||
maintenance_db,
|
||||
password,
|
||||
createdb,
|
||||
createuser,
|
||||
|
@ -542,24 +552,26 @@ def user_update(username,
|
|||
runas)
|
||||
|
||||
|
||||
def _role_remove(name, user=None, host=None, port=None, db=None,
|
||||
def _role_remove(name, user=None, host=None, port=None, maintenance_db=None,
|
||||
password=None, runas=None):
|
||||
'''
|
||||
Removes a role from the Postgres Server
|
||||
'''
|
||||
|
||||
# check if user exists
|
||||
if not user_exists(name, user, host, port, db, password=password,
|
||||
runas=runas):
|
||||
if not user_exists(name, user, host, port, maintenance_db,
|
||||
password=password, runas=runas):
|
||||
log.info('User \'{0}\' does not exist'.format(name,))
|
||||
return False
|
||||
|
||||
# user exists, proceed
|
||||
sub_cmd = 'DROP ROLE {0}'.format(name)
|
||||
cmd = _psql_cmd('-c', sub_cmd, host=host, user=user, port=port, db=db,
|
||||
password=password)
|
||||
_run_psql(cmd, runas=runas, password=password, run_cmd="cmd.run")
|
||||
if not user_exists(name, user, host, port, db, password=password, runas=runas):
|
||||
cmd = _psql_cmd('-c', sub_cmd, host=host, user=user, port=port,
|
||||
maintenance_db=maintenance_db, password=password)
|
||||
_run_psql(cmd, runas=runas, password=password, host=host,
|
||||
run_cmd="cmd.run")
|
||||
if not user_exists(name, user, host, port, maintenance_db,
|
||||
password=password, runas=runas):
|
||||
return True
|
||||
else:
|
||||
log.info('Failed to delete user \'{0}\'.'.format(name, ))
|
||||
|
@ -569,7 +581,7 @@ def user_remove(username,
|
|||
user=None,
|
||||
host=None,
|
||||
port=None,
|
||||
db=None,
|
||||
maintenance_db=None,
|
||||
password=None,
|
||||
runas=None):
|
||||
'''
|
||||
|
@ -579,7 +591,8 @@ def user_remove(username,
|
|||
|
||||
salt '*' postgres.user_remove 'username'
|
||||
'''
|
||||
return _role_remove(username, user, host, port, db, password, runas)
|
||||
return _role_remove(username, user, host, port, maintenance_db,
|
||||
password, runas)
|
||||
|
||||
|
||||
# Group related actions
|
||||
|
@ -588,7 +601,7 @@ def group_create(groupname,
|
|||
user=None,
|
||||
host=None,
|
||||
port=None,
|
||||
db=None,
|
||||
maintenance_db=None,
|
||||
password=None,
|
||||
createdb=False,
|
||||
createuser=False,
|
||||
|
@ -611,7 +624,7 @@ def group_create(groupname,
|
|||
user,
|
||||
host,
|
||||
port,
|
||||
db,
|
||||
maintenance_db,
|
||||
password,
|
||||
createdb,
|
||||
createuser,
|
||||
|
@ -627,7 +640,7 @@ def group_update(groupname,
|
|||
user=None,
|
||||
host=None,
|
||||
port=None,
|
||||
db=None,
|
||||
maintenance_db=None,
|
||||
password=None,
|
||||
createdb=False,
|
||||
createuser=False,
|
||||
|
@ -647,7 +660,7 @@ def group_update(groupname,
|
|||
user,
|
||||
host,
|
||||
port,
|
||||
db,
|
||||
maintenance_db,
|
||||
password,
|
||||
createdb,
|
||||
createuser,
|
||||
|
@ -662,7 +675,7 @@ def group_remove(groupname,
|
|||
user=None,
|
||||
host=None,
|
||||
port=None,
|
||||
db=None,
|
||||
maintenance_db=None,
|
||||
password=None,
|
||||
runas=None):
|
||||
'''
|
||||
|
@ -672,4 +685,5 @@ def group_remove(groupname,
|
|||
|
||||
salt '*' postgres.group_remove 'groupname'
|
||||
'''
|
||||
return _role_remove(groupname, user, host, port, db, password, runas)
|
||||
return _role_remove(groupname, user, host, port, maintenance_db,
|
||||
password, runas)
|
||||
|
|
Loading…
Add table
Reference in a new issue