Skip to content

Commit 8f7e84b

Browse files
committed
support podman in _get_docker_status_and_version
1 parent 54d708b commit 8f7e84b

File tree

1 file changed

+19
-7
lines changed

1 file changed

+19
-7
lines changed

src/azure-cli/azure/cli/command_modules/acr/check_health.py

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
# --------------------------------------------------------------------------------------------
55

66
import re
7+
import json
78
from knack.util import CLIError
89
from knack.log import get_logger
910
from .custom import get_docker_command
@@ -88,18 +89,29 @@ def _get_docker_status_and_version(ignore_errors, yes):
8889
docker_daemon_available = False
8990

9091
if docker_daemon_available:
91-
logger.warning("Docker daemon status: available")
92+
logger.warning(f"{docker_command.title()} daemon status: available")
9293

9394
# Docker version check
94-
output, warning, stderr, succeeded = _subprocess_communicate(
95-
[docker_command, "version", "--format", "'Docker version {{.Server.Version}}, "
96-
"build {{.Server.GitCommit}}, platform {{.Server.Os}}/{{.Server.Arch}}'"])
95+
output, warning, stderr, succeeded = _subprocess_communicate([docker_command, "version", "--format", "json"])
9796
if not succeeded:
9897
_handle_error(DOCKER_VERSION_ERROR.append_error_message(stderr), ignore_errors)
9998
else:
10099
if warning:
101100
logger.warning(warning)
102-
logger.warning("Docker version: %s", output)
101+
json_output = json.loads(output).get("Client")
102+
logger.warning(
103+
"".join([
104+
docker_command.title(),
105+
" version: ",
106+
json_output.get("Version"),
107+
", build ",
108+
json_output.get("GitCommit")[:7],
109+
", platform ",
110+
json_output.get("Os"),
111+
"/",
112+
json_output.get("Arch") if docker_command == "docker" else json_output.get("OsArch").split("/")[1]
113+
])
114+
)
103115

104116
# Docker pull check - only if docker daemon is available
105117
if docker_daemon_available:
@@ -114,14 +126,14 @@ def _get_docker_status_and_version(ignore_errors, yes):
114126

115127
if not succeeded:
116128
if stderr and DOCKER_PULL_WRONG_PLATFORM in stderr:
117-
print_pass("Docker pull of '{}'".format(IMAGE))
129+
print_pass(f"{docker_command.title()} pull of '{IMAGE}'")
118130
logger.warning("Image '%s' can be pulled but cannot be used on this platform", IMAGE)
119131
return
120132
_handle_error(DOCKER_PULL_ERROR.append_error_message(stderr), ignore_errors)
121133
else:
122134
if warning:
123135
logger.warning(warning)
124-
print_pass("Docker pull of '{}'".format(IMAGE))
136+
print_pass(f"{docker_command.title()} pull of '{IMAGE}'")
125137

126138

127139
# Get current CLI version

0 commit comments

Comments
 (0)