forked from ungleich-public/cdist
		
	__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
 | 
			
		||||
      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
 | 
			
		||||
[ "$state_is" = "$state_should" ] && exit 0
 | 
			
		||||
 | 
			
		||||
case "$state_should" in
 | 
			
		||||
    present)
 | 
			
		||||
        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
 | 
			
		||||
         done
 | 
			
		||||
            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
 | 
			
		||||
    ;;
 | 
			
		||||
    absent)
 | 
			
		||||
        echo "su - postgres -c \"dropuser \\\"$name\\\"\""
 | 
			
		||||
    ;;
 | 
			
		||||
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…
	
	Add table
		Add a link
		
	
		Reference in a new issue