fix for not parsing properly the docker id; fixes #812
Costa Tsaousis committed
Aug 21, 2016 at 20:50 UTC
902468bfdce6c7c9f2a0ad0b173620942d10b4e4
1 file changed
+7
-4
plugins.d/cgroup-name.sh
+7
-4
@@ -29,6 +29,7 @@ function get_name_classic {
29
local DOCKERID="$1"
30
echo >&2 "Running command: docker ps --filter=id=\"${DOCKERID}\" --format=\"{{.Names}}\""
31
NAME="$( docker ps --filter=id="${DOCKERID}" --format="{{.Names}}" )"
32
+ return 0
33
}
34
35
function get_name_api {
@@ -36,18 +37,20 @@ function get_name_api {
37
if [ ! -S "/var/run/docker.sock" ]
38
then
39
echo >&2 "Can't find /var/run/docker.sock"
39
- return
40
+ return 1
41
fi
42
echo >&2 "Running API command: /containers/${DOCKERID}/json"
43
JSON=$(echo -e "GET /containers/${DOCKERID}/json HTTP/1.0\r\n" | nc -U /var/run/docker.sock | egrep '^{.*')
44
NAME=$(echo $JSON | jq -r .Name,.Config.Hostname | grep -v null | head -n1 | sed 's|^/||')
45
+ return 0
46
}
47
48
if [ -z "${NAME}" ]
49
then
48
- if [[ "${CGROUP}" =~ ^.*docker[_-/\.][a-fA-F0-9]+[_-\.]?.*$ ]]
50
+ if [[ "${CGROUP}" =~ ^.*docker[-_/\.][a-fA-F0-9]+[-_\.]?.*$ ]]
51
then
50
- DOCKERID="$( echo "${CGROUP}" | sed "s|^.*docker[_-/]\([a-fA-F0-9]\+\)[_-\.]\?.*$|\1|" )"
52
+ DOCKERID="$( echo "${CGROUP}" | sed "s|^.*docker[-_/]\([a-fA-F0-9]\+\)[-_\.]\?.*$|\1|" )"
53
+ # echo "DOCKERID=${DOCKERID}"
54
55
if [ ! -z "${DOCKERID}" -a \( ${#DOCKERID} -eq 64 -o ${#DOCKERID} -eq 12 \) ]
56
then
@@ -55,7 +58,7 @@ if [ -z "${NAME}" ]
58
then
59
get_name_classic $DOCKERID
60
else
58
- get_name_api $DOCKERID
61
+ get_name_api $DOCKERID || get_name_classic $DOCKERID
62
fi
63
if [ -z "${NAME}" ]
64
then