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
|
$scriptname -- service logs web -f
|
||||||
Pour des cas d'utilisation plus complexe, il faut lancer directement
|
Pour des cas d'utilisation plus complexe, il faut lancer directement
|
||||||
docker service
|
docker service
|
||||||
sta|status SERVICE [num]
|
sta|status [SERVICE] [num]
|
||||||
Afficher le status du service spécifié: pour chaque occurence, sur quel
|
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
|
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é,
|
'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
|
afficher les informations uniquement pour cette instance là, ainsi que
|
||||||
les logs
|
les logs
|
||||||
|
@ -1243,11 +1244,11 @@ function __status_query_task() {
|
||||||
setx serviceID=json_get 0.ServiceID <<<"$taskData"
|
setx serviceID=json_get 0.ServiceID <<<"$taskData"
|
||||||
}
|
}
|
||||||
function __status_query_service() {
|
function __status_query_service() {
|
||||||
[ -n "$serviceData" ] && return
|
[ "$serviceID" == "$pServiceID" ] && return
|
||||||
setx serviceID=json_get 0.ServiceID <<<"$taskData"
|
|
||||||
setx serviceData="$DOCKER" inspect "$serviceID"
|
setx serviceData="$DOCKER" inspect "$serviceID"
|
||||||
setx serviceName=json_get 0.Spec.Name <<<"$serviceData"
|
setx serviceName=json_get 0.Spec.Name <<<"$serviceData"
|
||||||
setx serviceUpdateStatus=json_get 0.UpdateStatus.Message <<<"$serviceData"
|
setx serviceUpdateStatus=json_get 0.UpdateStatus.Message <<<"$serviceData"
|
||||||
|
pServiceID="$serviceID"
|
||||||
}
|
}
|
||||||
function __status_process_data() {
|
function __status_process_data() {
|
||||||
__status_query_task
|
__status_query_task
|
||||||
|
@ -1273,35 +1274,47 @@ $serviceName: $serviceUpdateStatus
|
||||||
let num=num+1
|
let num=num+1
|
||||||
}
|
}
|
||||||
function auto_status() {
|
function auto_status() {
|
||||||
local service="$1"; shift
|
local -a services
|
||||||
[ -n "$service" ] || {
|
local service
|
||||||
eerror "Vous devez spécifier le nom du service"
|
if [[ "$1" == *=* ]]; then
|
||||||
return 1
|
: # le premier argument est un filtre
|
||||||
}
|
elif [ -n "$1" -a -z "${1//[0-9]/}" ]; then
|
||||||
if [ -f docker-compose.yml -o -f docker-stack.yml ]; then
|
: # le premier argument est un numéro d'instance
|
||||||
# si on est dans répertoire de projet, il est possible de spécifier le
|
else
|
||||||
# service sans préfixe
|
# le premier argument est un nom de service
|
||||||
local -a replace_env_args env_args
|
service="$1"; shift
|
||||||
local -a replace_deploy_args deploy_args
|
fi
|
||||||
local project_name container_name
|
if [ -n "$service" ]; then
|
||||||
docker_set_deploy_args set_container_name
|
if [ -f docker-compose.yml -o -f docker-stack.yml ]; then
|
||||||
service="${container_name}_${service#${container_name}_}"
|
# 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
|
fi
|
||||||
|
|
||||||
local -a pscmd
|
local -a psargs
|
||||||
local fnum
|
local fnum
|
||||||
pscmd=(
|
psargs=(
|
||||||
"$DOCKER" service ps "$service"
|
|
||||||
--format "taskID={{.ID}};node={{.Node}};desiredState='{{.DesiredState}}';currentState='{{.CurrentState}}';__status_process_data"
|
--format "taskID={{.ID}};node={{.Node}};desiredState='{{.DesiredState}}';currentState='{{.CurrentState}}';__status_process_data"
|
||||||
)
|
)
|
||||||
while [[ "$1" == *=* ]]; do
|
while [[ "$1" == *=* ]]; do
|
||||||
pscmd+=(--filter "$1")
|
psargs+=(--filter "$1")
|
||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
fnum="$1"; shift
|
fnum="$1"; shift
|
||||||
|
|
||||||
local num=0 taskData taskStatus taskSlot serviceID serviceData serviceName serviceUpdateStatus
|
local num=0 taskData taskStatus taskSlot pServiceID serviceID serviceData serviceName serviceUpdateStatus
|
||||||
eval "$("${pscmd[@]}")"
|
for service in "${services[@]}"; do
|
||||||
|
eval "$("$DOCKER" service ps "$service" "${psargs[@]}")"
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
function default_compose_show_ip() {
|
function default_compose_show_ip() {
|
||||||
|
|
Loading…
Reference in New Issue