commit
1abcee730b
@ -0,0 +1,27 @@ |
||||
#!/bin/sh |
||||
# |
||||
# 2011 Steven Armstrong (steven-cdist at armstrong.cc) |
||||
# |
||||
# This file is part of cdist. |
||||
# |
||||
# cdist is free software: you can redistribute it and/or modify |
||||
# it under the terms of the GNU General Public License as published by |
||||
# the Free Software Foundation, either version 3 of the License, or |
||||
# (at your option) any later version. |
||||
# |
||||
# cdist is distributed in the hope that it will be useful, |
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
# GNU General Public License for more details. |
||||
# |
||||
# You should have received a copy of the GNU General Public License |
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>. |
||||
# |
||||
|
||||
name="$__object_id" |
||||
|
||||
if su - postgres -c "echo '\q' | psql '$name'" 2>/dev/null; then |
||||
echo "present" |
||||
else |
||||
echo "absent" |
||||
fi |
@ -0,0 +1,38 @@ |
||||
#!/bin/sh |
||||
# |
||||
# 2011 Steven Armstrong (steven-cdist at armstrong.cc) |
||||
# |
||||
# This file is part of cdist. |
||||
# |
||||
# cdist is free software: you can redistribute it and/or modify |
||||
# it under the terms of the GNU General Public License as published by |
||||
# the Free Software Foundation, either version 3 of the License, or |
||||
# (at your option) any later version. |
||||
# |
||||
# cdist is distributed in the hope that it will be useful, |
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
# GNU General Public License for more details. |
||||
# |
||||
# You should have received a copy of the GNU General Public License |
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>. |
||||
# |
||||
|
||||
name="$__object_id" |
||||
state_should="$(cat "$__object/parameter/state")" |
||||
state_is="$(cat "$__object/explorer/state")" |
||||
|
||||
if [ "$state_should" != "$state_is" ]; then |
||||
case "$state_should" in |
||||
present) |
||||
owner="" |
||||
if [ -f "$__object/parameter/owner" ]; then |
||||
owner="-O '$(cat "$__object/parameter/owner")'" |
||||
fi |
||||
echo "su - postgres -c \"createdb $owner '$name'\"" |
||||
;; |
||||
absent) |
||||
echo "su - postgres -c \"dropdb '$name'\"" |
||||
;; |
||||
esac |
||||
fi |
@ -0,0 +1,44 @@ |
||||
cdist-type__postgres_database(7) |
||||
================================ |
||||
Steven Armstrong <steven-cdist--@--armstrong.cc> |
||||
|
||||
|
||||
NAME |
||||
---- |
||||
cdist-type__postgres_database - create/drop postgres databases |
||||
|
||||
|
||||
DESCRIPTION |
||||
----------- |
||||
This cdist type allows you to create or drop postgres databases. |
||||
|
||||
|
||||
REQUIRED PARAMETERS |
||||
------------------- |
||||
state:: |
||||
either 'present' or 'absent' |
||||
|
||||
|
||||
OPTIONAL PARAMETERS |
||||
------------------- |
||||
owner:: |
||||
the role owning this database |
||||
|
||||
|
||||
EXAMPLES |
||||
-------- |
||||
|
||||
-------------------------------------------------------------------------------- |
||||
__postgres_database mydbname --state present --owner mydbusername |
||||
-------------------------------------------------------------------------------- |
||||
|
||||
|
||||
SEE ALSO |
||||
-------- |
||||
- cdist-type(7) |
||||
|
||||
|
||||
COPYING |
||||
------- |
||||
Copyright \(C) 2011 Steven Armstrong. Free use of this software is |
||||
granted under the terms of the GNU General Public License version 3 (GPLv3). |
@ -0,0 +1 @@ |
||||
owner |
@ -0,0 +1 @@ |
||||
state |
@ -0,0 +1,27 @@ |
||||
#!/bin/sh |
||||
# |
||||
# 2011 Steven Armstrong (steven-cdist at armstrong.cc) |
||||
# |
||||
# This file is part of cdist. |
||||
# |
||||
# cdist is free software: you can redistribute it and/or modify |
||||
# it under the terms of the GNU General Public License as published by |
||||
# the Free Software Foundation, either version 3 of the License, or |
||||
# (at your option) any later version. |
||||
# |
||||
# cdist is distributed in the hope that it will be useful, |
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
# GNU General Public License for more details. |
||||
# |
||||
# You should have received a copy of the GNU General Public License |
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>. |
||||
# |
||||
|
||||
name="$__object_id" |
||||
|
||||
if su - postgres -c "psql -c '\du' | grep -q '^ *$name *|'"; then |
||||
echo "present" |
||||
else |
||||
echo "absent" |
||||
fi |
@ -0,0 +1,54 @@ |
||||
#!/bin/sh |
||||
# |
||||
# 2011 Steven Armstrong (steven-cdist at armstrong.cc) |
||||
# |
||||
# This file is part of cdist. |
||||
# |
||||
# cdist is free software: you can redistribute it and/or modify |
||||
# it under the terms of the GNU General Public License as published by |
||||
# the Free Software Foundation, either version 3 of the License, or |
||||
# (at your option) any later version. |
||||
# |
||||
# cdist is distributed in the hope that it will be useful, |
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
# GNU General Public License for more details. |
||||
# |
||||
# You should have received a copy of the GNU General Public License |
||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>. |
||||
# |
||||
|
||||
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 |
||||
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 |
||||
fi |
||||
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" |
||||
echo "su - postgres -c \"psql -c \\\"$cmd\\\"\"" |
||||
;; |
||||
absent) |
||||
echo "su - postgres -c \"dropuser \\\"$name\\\"\"" |
||||
;; |
||||
esac |
||||
fi |
@ -0,0 +1,58 @@ |
||||
cdist-type__postgres_role(7) |
||||
============================ |
||||
Steven Armstrong <steven-cdist--@--armstrong.cc> |
||||
|
||||
|
||||
NAME |
||||
---- |
||||
cdist-type__postgres_role - manage postgres roles |
||||
|
||||
|
||||
DESCRIPTION |
||||
----------- |
||||
This cdist type allows you to create or drop postgres roles. |
||||
|
||||
|
||||
REQUIRED PARAMETERS |
||||
------------------- |
||||
state:: |
||||
either 'present' or 'absent' |
||||
|
||||
|
||||
OPTIONAL PARAMETERS |
||||
------------------- |
||||
All optional parameter map directly to the corresponding postgres createrole |
||||
parameters. |
||||
|
||||
password:: |
||||
login:: |
||||
createdb:: |
||||
createrole:: |
||||
superuser:: |
||||
inherit:: |
||||
|
||||
|
||||
EXAMPLES |
||||
-------- |
||||
|
||||
-------------------------------------------------------------------------------- |
||||
__postgres_role myrole --state present |
||||
|
||||
__postgres_role myrole --state present --password 'secret' |
||||
|
||||
__postgres_role admin --state present --password 'very-secret' --superuser true |
||||
|
||||
__postgres_role dbcustomer --state present --password 'bla' --createdb true |
||||
-------------------------------------------------------------------------------- |
||||
|
||||
|
||||
SEE ALSO |
||||
-------- |
||||
- cdist-type(7) |
||||
- http://www.postgresql.org/docs/current/static/sql-createrole.html |
||||
|
||||
|
||||
COPYING |
||||
------- |
||||
Copyright \(C) 2011 Steven Armstrong. Free use of this software is |
||||
granted under the terms of the GNU General Public License version 3 (GPLv3). |
@ -0,0 +1,6 @@ |
||||
password |
||||
login |
||||
createdb |
||||
createrole |
||||
superuser |
||||
inherit |
@ -0,0 +1 @@ |
||||
state |
@ -1,16 +0,0 @@ |
||||
- document object_id=$1 for manifest + gencode :-) |
||||
|
||||
- update docs regarding flow in cdist-stages.text |
||||
- create man pages for new executables |
||||
- nuke legacy manpages |
||||
|
||||
- prettify output of cdist-deploy-to, e.g. |
||||
|
||||
Processing object __file/etc/cdist-configured |
||||
transfering type explorers ... |
||||
running type explorers ... |
||||
running manifest ... |
||||
running gencode ... |
||||
transfering object to target ... |
||||
running code ... |
||||
|
@ -1,5 +0,0 @@ |
||||
- align messages (already in todo for steven, but makes life much easier, thus repeated) |
||||
-> prefix all object stuff with $__self |
||||
-> __cdist_echo object string |
||||
-> $__cdist_object_self :-) |
||||
|
Loading…
Reference in new issue