__postgres_role: switch to boolean, use shortcut version
Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
This commit is contained in:
parent
03d224c74c
commit
b6f61a632f
5 changed files with 38 additions and 34 deletions
|
@ -22,33 +22,28 @@ name="$__object_id"
|
|||
state_is="$(cat "$__object/explorer/state")"
|
||||
state_should="$(cat "$__object/parameter/state")"
|
||||
|
||||
if [ "$state_is" != "$state_should" ]; then
|
||||
case "$state_should" in
|
||||
[ "$state_is" = "$state_should" ] && exit 0
|
||||
|
||||
case "$state_should" in
|
||||
present)
|
||||
optional="password
|
||||
login
|
||||
createdb
|
||||
createrole
|
||||
superuser"
|
||||
for parameter in $optional; do
|
||||
if [ -f "$__object/parameter/$parameter" ]; then
|
||||
value="$(cat "$__object/parameter/$parameter")"
|
||||
eval $parameter=$value
|
||||
if [ -f "$__object/parameter/password" ]; then
|
||||
password="$(cat "$__object/parameter/$parameter")"
|
||||
fi
|
||||
booleans=""
|
||||
for boolean in login createdb createrole superuser; do
|
||||
if [ ! -f "$__object/parameter/$boolean" ]; then
|
||||
boolean="no${boolean}"
|
||||
fi
|
||||
upper=$(echo $boolean | tr '[a-z]' '[A-Z]')
|
||||
booleans="$booleans $upper"
|
||||
done
|
||||
|
||||
[ -n "$password" ] && password="PASSWORD '$password'"
|
||||
[ "$login" = "true" ] && login="LOGIN" || login="NOLOGIN"
|
||||
[ "$createdb" = "true" ] && createdb="CREATEDB" || createdb="NOCREATEDB"
|
||||
[ "$createrole" = "true" ] && createrole="CREATEROLE" || createrole="NOCREATEROLE"
|
||||
[ "$superuser" = "true" ] && superuser="SUPERUSER" || superuser="NOSUPERUSER"
|
||||
[ "$inherit" = "true" ] && inherit="INHERIT" || inherit="NOINHERIT"
|
||||
|
||||
cmd="CREATE ROLE $name WITH $password $login $createdb $createrole $superuser $inherit"
|
||||
cmd="CREATE ROLE $name WITH $password $booleans"
|
||||
echo "su - postgres -c \"psql -c \\\"$cmd\\\"\""
|
||||
;;
|
||||
absent)
|
||||
echo "su - postgres -c \"dropuser \\\"$name\\\"\""
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
esac
|
||||
|
|
|
@ -21,17 +21,22 @@ state::
|
|||
|
||||
OPTIONAL PARAMETERS
|
||||
-------------------
|
||||
All optional parameter map directly to the corresponding postgres createrole
|
||||
All parameter map directly to the corresponding postgres createrole
|
||||
parameters.
|
||||
|
||||
password::
|
||||
|
||||
BOOLEAN PARAMETERS
|
||||
------------------
|
||||
All parameter map directly to the corresponding postgres createrole
|
||||
parameters.
|
||||
|
||||
login::
|
||||
createdb::
|
||||
createrole::
|
||||
superuser::
|
||||
inherit::
|
||||
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
|
||||
|
@ -40,9 +45,9 @@ __postgres_role myrole --state present
|
|||
|
||||
__postgres_role myrole --state present --password 'secret'
|
||||
|
||||
__postgres_role admin --state present --password 'very-secret' --superuser true
|
||||
__postgres_role admin --state present --password 'very-secret' --superuser
|
||||
|
||||
__postgres_role dbcustomer --state present --password 'bla' --createdb true
|
||||
__postgres_role dbcustomer --state present --password 'bla' --createdb
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
|
5
cdist/conf/type/__postgres_role/parameter/boolean
Normal file
5
cdist/conf/type/__postgres_role/parameter/boolean
Normal file
|
@ -0,0 +1,5 @@
|
|||
login
|
||||
createdb
|
||||
createrole
|
||||
superuser
|
||||
inherit
|
|
@ -1,6 +1 @@
|
|||
password
|
||||
login
|
||||
createdb
|
||||
createrole
|
||||
superuser
|
||||
inherit
|
||||
|
|
|
@ -10,6 +10,10 @@ Changelog
|
|||
* Bugfix Type __rvm_ruby: Add clean package dependencies
|
||||
* Bugfix Type __rvm_gem: Run rvm as user, not as root
|
||||
* Cleanup Type __rvm, __rvm_gemset: Use shortcut version
|
||||
* Bugfix __rvm_gemset: Correctly check for gemsets
|
||||
* Cleanup Type __postgres_database, __postgres_role: Reference each other
|
||||
in documentation
|
||||
* Cleanp Type __postgres_role: Use boolean parameters where appropriate
|
||||
|
||||
2.1.0pre5: 2012-11-01
|
||||
* Core: First round of tests updated to work with multiple configuration directories
|
||||
|
|
Loading…
Reference in a new issue