forked from ungleich-public/cdist
		
	need to pass a known suffix from outside
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
This commit is contained in:
		
					parent
					
						
							
								058e4d757b
							
						
					
				
			
			
				commit
				
					
						86a61bbcff
					
				
			
		
					 7 changed files with 60 additions and 8 deletions
				
			
		|  | @ -21,8 +21,9 @@ | ||||||
| chroot="/$__object_id" | chroot="/$__object_id" | ||||||
| 
 | 
 | ||||||
| if [ -f "$__object/parameter/manage-resolv-conf" ]; then | if [ -f "$__object/parameter/manage-resolv-conf" ]; then | ||||||
|  |    suffix="$(cat "$__object/parameter/manage-resolv-conf")" | ||||||
|    resolv_conf="${chroot}/etc/resolv.conf" |    resolv_conf="${chroot}/etc/resolv.conf" | ||||||
|    original_resolv_conf="${resolv_conf}${__cdist_object_marker}" |    original_resolv_conf="${resolv_conf}.${suffix}" | ||||||
|    cat << DONE |    cat << DONE | ||||||
| $__remote_exec $__target_host << EOSSH | $__remote_exec $__target_host << EOSSH | ||||||
| if [ -f "${resolv_conf}" ]; then | if [ -f "${resolv_conf}" ]; then | ||||||
|  |  | ||||||
|  | @ -18,13 +18,17 @@ None | ||||||
| 
 | 
 | ||||||
| OPTIONAL PARAMETERS | OPTIONAL PARAMETERS | ||||||
| ------------------- | ------------------- | ||||||
| None | manage-resolv-conf | ||||||
|  |     manage /etc/resolv.conf inside the chroot. | ||||||
|  |     Use the value of this parameter as the suffix to save a copy | ||||||
|  |     of the current /etc/resolv.conf to /etc/resolv.conf.$suffix. | ||||||
|  |     This is used by the __chroot_umount type to restore the initial | ||||||
|  |     file content when unmounting the chroot. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| BOOLEAN PARAMETERS | BOOLEAN PARAMETERS | ||||||
| ------------------ | ------------------ | ||||||
| manage-resolv-conf | None. | ||||||
|     manage /etc/resolv.conf inside the chroot |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| EXAMPLES | EXAMPLES | ||||||
|  | @ -34,6 +38,9 @@ EXAMPLES | ||||||
| 
 | 
 | ||||||
|     __chroot_mount /path/to/chroot |     __chroot_mount /path/to/chroot | ||||||
| 
 | 
 | ||||||
|  |     __chroot_mount /path/to/chroot \ | ||||||
|  |       --manage-resolv-conf "some-known-string" | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| AUTHORS | AUTHORS | ||||||
| ------- | ------- | ||||||
|  |  | ||||||
|  | @ -21,8 +21,9 @@ | ||||||
| chroot="/$__object_id" | chroot="/$__object_id" | ||||||
| 
 | 
 | ||||||
| if [ -f "$__object/parameter/manage-resolv-conf" ]; then | if [ -f "$__object/parameter/manage-resolv-conf" ]; then | ||||||
|  |    suffix="$(cat "$__object/parameter/manage-resolv-conf")" | ||||||
|    resolv_conf="${chroot}/etc/resolv.conf" |    resolv_conf="${chroot}/etc/resolv.conf" | ||||||
|    original_resolv_conf="${resolv_conf}${__cdist_object_marker}" |    original_resolv_conf="${resolv_conf}.${suffix}" | ||||||
| cat << DONE | cat << DONE | ||||||
| $__remote_exec $__target_host << EOSSH | $__remote_exec $__target_host << EOSSH | ||||||
| if [ -f "${original_resolv_conf}" ]; then | if [ -f "${original_resolv_conf}" ]; then | ||||||
|  |  | ||||||
|  | @ -18,13 +18,17 @@ None | ||||||
| 
 | 
 | ||||||
| OPTIONAL PARAMETERS | OPTIONAL PARAMETERS | ||||||
| ------------------- | ------------------- | ||||||
| None | manage-resolv-conf | ||||||
|  |     manage /etc/resolv.conf inside the chroot. | ||||||
|  |     Use the value of this parameter as the suffix to find the backup file | ||||||
|  |     that was saved by the __chroot_mount. | ||||||
|  |     This is used by the to restore the initial file content when unmounting | ||||||
|  |     the chroot. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| BOOLEAN PARAMETERS | BOOLEAN PARAMETERS | ||||||
| ------------------ | ------------------ | ||||||
| manage-resolv-conf | None. | ||||||
|     manage /etc/resolv.conf inside the chroot |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| EXAMPLES | EXAMPLES | ||||||
|  | @ -34,6 +38,9 @@ EXAMPLES | ||||||
| 
 | 
 | ||||||
|     __chroot_umount /path/to/chroot |     __chroot_umount /path/to/chroot | ||||||
| 
 | 
 | ||||||
|  |     __chroot_umount /path/to/chroot \ | ||||||
|  |       --manage-resolv-conf "some-known-string" | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| SEE ALSO | SEE ALSO | ||||||
| -------- | -------- | ||||||
|  |  | ||||||
							
								
								
									
										36
									
								
								cdist/conf/type/__chroot_umount/manifest
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										36
									
								
								cdist/conf/type/__chroot_umount/manifest
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,36 @@ | ||||||
|  | #!/bin/sh | ||||||
|  | # | ||||||
|  | # 2016 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/>. | ||||||
|  | # | ||||||
|  | 
 | ||||||
|  | chroot="/$__object_id" | ||||||
|  | 
 | ||||||
|  | if [ -f "$__object/parameter/manage-resolv-conf" ]; then | ||||||
|  |    suffix="$(cat "$__object/parameter/manage-resolv-conf")" | ||||||
|  |    resolv_conf="${chroot}/etc/resolv.conf" | ||||||
|  |    original_resolv_conf="${resolv_conf}.${suffix}" | ||||||
|  | cat << DONE | ||||||
|  | $__remote_exec $__target_host << EOSSH | ||||||
|  | if [ -f "${original_resolv_conf}" ]; then | ||||||
|  |    # restore original /etc/resolv.conf that we moved out of the way | ||||||
|  |    # in __chroot_mount/gencode-local | ||||||
|  |    mv -f "${original_resolv_conf}" "${resolv_conf}" | ||||||
|  | fi | ||||||
|  | EOSSH | ||||||
|  | DONE | ||||||
|  | fi | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue