dk: sta affiche le statut pour tous les services
This commit is contained in:
		
							parent
							
								
									1960c0c94e
								
							
						
					
					
						commit
						45976f45c2
					
				
							
								
								
									
										59
									
								
								dk
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								dk
									
									
									
									
									
								
							| @ -92,10 +92,11 @@ COMMANDES | ||||
|             $scriptname -- service logs web -f | ||||
|         Pour des cas d'utilisation plus complexe, il faut lancer directement | ||||
|         docker service | ||||
|     sta|status SERVICE [num] | ||||
|     sta|status [SERVICE] [num] | ||||
|         Afficher le status du service spécifié: pour chaque occurence, sur quel | ||||
|         noeud il tourne (ou tournait), quel est le statut actuel ainsi que le | ||||
|         message associé. | ||||
|         message associé. Si le service n'est pas spécifié, prendre la liste des | ||||
|         services affichée par docker service ls | ||||
|         'num' est le numéro de l'instance de service. Si ce numéro est précisé, | ||||
|         afficher les informations uniquement pour cette instance là, ainsi que | ||||
|         les logs | ||||
| @ -1243,11 +1244,11 @@ function __status_query_task() { | ||||
|     setx serviceID=json_get 0.ServiceID <<<"$taskData" | ||||
| } | ||||
| function __status_query_service() { | ||||
|     [ -n "$serviceData" ] && return | ||||
|     setx serviceID=json_get 0.ServiceID <<<"$taskData" | ||||
|     [ "$serviceID" == "$pServiceID" ] && return | ||||
|     setx serviceData="$DOCKER" inspect "$serviceID" | ||||
|     setx serviceName=json_get 0.Spec.Name <<<"$serviceData" | ||||
|     setx serviceUpdateStatus=json_get 0.UpdateStatus.Message <<<"$serviceData" | ||||
|     pServiceID="$serviceID" | ||||
| } | ||||
| function __status_process_data() { | ||||
|     __status_query_task | ||||
| @ -1273,35 +1274,47 @@ $serviceName: $serviceUpdateStatus | ||||
|     let num=num+1 | ||||
| } | ||||
| function auto_status() { | ||||
|     local service="$1"; shift | ||||
|     [ -n "$service" ] || { | ||||
|         eerror "Vous devez spécifier le nom du service" | ||||
|         return 1 | ||||
|     } | ||||
|     if [ -f docker-compose.yml -o -f docker-stack.yml ]; then | ||||
|         # si on est dans répertoire de projet, il est possible de spécifier le | ||||
|         # service sans préfixe | ||||
|         local -a replace_env_args env_args | ||||
|         local -a replace_deploy_args deploy_args | ||||
|         local project_name container_name | ||||
|         docker_set_deploy_args set_container_name | ||||
|         service="${container_name}_${service#${container_name}_}" | ||||
|     local -a services | ||||
|     local service | ||||
|     if [[ "$1" == *=* ]]; then | ||||
|         : # le premier argument est un filtre | ||||
|     elif [ -n "$1" -a -z "${1//[0-9]/}" ]; then | ||||
|         : # le premier argument est un numéro d'instance | ||||
|     else | ||||
|         # le premier argument est un nom de service | ||||
|         service="$1"; shift | ||||
|     fi | ||||
|     if [ -n "$service" ]; then | ||||
|         if [ -f docker-compose.yml -o -f docker-stack.yml ]; then | ||||
|             # si on est dans répertoire de projet, il est possible de spécifier | ||||
|             # le service sans préfixe | ||||
|             local -a replace_env_args env_args | ||||
|             local -a replace_deploy_args deploy_args | ||||
|             local project_name container_name | ||||
|             docker_set_deploy_args set_container_name | ||||
|             service="${container_name}_${service#${container_name}_}" | ||||
|         fi | ||||
|         services=("$service") | ||||
|     else | ||||
|         # lister les services qui tournent actuellement | ||||
|         setx -a services=docker service ls --format "{{.Name}}" | ||||
|     fi | ||||
| 
 | ||||
|     local -a pscmd | ||||
|     local -a psargs | ||||
|     local fnum | ||||
|     pscmd=( | ||||
|         "$DOCKER" service ps "$service" | ||||
|     psargs=( | ||||
|         --format "taskID={{.ID}};node={{.Node}};desiredState='{{.DesiredState}}';currentState='{{.CurrentState}}';__status_process_data" | ||||
|     ) | ||||
|     while [[ "$1" == *=* ]]; do | ||||
|         pscmd+=(--filter "$1") | ||||
|         psargs+=(--filter "$1") | ||||
|         shift | ||||
|     done | ||||
|     fnum="$1"; shift | ||||
| 
 | ||||
|     local num=0 taskData taskStatus taskSlot serviceID serviceData serviceName serviceUpdateStatus | ||||
|     eval "$("${pscmd[@]}")" | ||||
|     local num=0 taskData taskStatus taskSlot pServiceID serviceID serviceData serviceName serviceUpdateStatus | ||||
|     for service in "${services[@]}"; do | ||||
|         eval "$("$DOCKER" service ps "$service" "${psargs[@]}")" | ||||
|     done | ||||
| } | ||||
| 
 | ||||
| function default_compose_show_ip() { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user