forked from ungleich-public/cdist
		
	__systemd_unit: fix crash when transitioning to state=absent
This type tried to disable an unit after it has removed it, which failed. Now the removal happens in gencode-remote, after the unit has been stopped and disabled.
This commit is contained in:
		
					parent
					
						
							
								8d84834db6
							
						
					
				
			
			
				commit
				
					
						37b37f6e66
					
				
			
		
					 2 changed files with 5 additions and 1 deletions
				
			
		|  | @ -25,6 +25,8 @@ current_enablement_state=$(cat "${__object}/explorer/enablement-state") | ||||||
| if [ "${state}" = "absent" ]; then | if [ "${state}" = "absent" ]; then | ||||||
|     if [ ! -z "${current_enablement_state}" ]; then |     if [ ! -z "${current_enablement_state}" ]; then | ||||||
|         echo "systemctl --now disable ${name}" |         echo "systemctl --now disable ${name}" | ||||||
|  |         echo "rm -f /etc/systemd/system/${name}" | ||||||
|  |         echo "systemctl daemon-reload" | ||||||
|     fi |     fi | ||||||
| 
 | 
 | ||||||
|     exit 0 |     exit 0 | ||||||
|  |  | ||||||
|  | @ -30,7 +30,9 @@ name="${__object_id}" | ||||||
| source=$(cat "${__object}/parameter/source") | source=$(cat "${__object}/parameter/source") | ||||||
| state=$(cat "${__object}/parameter/state") | state=$(cat "${__object}/parameter/state") | ||||||
| 
 | 
 | ||||||
| if [ -z "${source}" ] && [ "${state}" != "absent" ]; then | # The unit must be disabled before removing its unit file. The unit file is | ||||||
|  | # therefore removed by gencode-remote of this type, not here. | ||||||
|  | if [ -z "${source}" ] || [ "${state}" = "absent" ]; then | ||||||
|     exit 0 |     exit 0 | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue