Skip to content

Commit bc5ef37

Browse files
caoxianfei1Wine93
authored andcommitted
Feature: podman can be an alternative container engine
Signed-off-by: caoxianfei1 <[email protected]>
1 parent 956c953 commit bc5ef37

File tree

19 files changed

+109
-165
lines changed

19 files changed

+109
-165
lines changed

cli/cli/cli.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,11 @@ func NewCurveAdm() (*CurveAdm, error) {
9494

9595
rootDir := fmt.Sprintf("%s/.curveadm", home)
9696
curveadm := &CurveAdm{
97-
rootDir: rootDir,
98-
dataDir: path.Join(rootDir, "data"),
99-
pluginDir: path.Join(rootDir, "plugins"),
100-
logDir: path.Join(rootDir, "logs"),
101-
tempDir: path.Join(rootDir, "temp"),
97+
rootDir: rootDir,
98+
dataDir: path.Join(rootDir, "data"),
99+
pluginDir: path.Join(rootDir, "plugins"),
100+
logDir: path.Join(rootDir, "logs"),
101+
tempDir: path.Join(rootDir, "temp"),
102102
httpConfPath: path.Join(rootDir, "http/conf"),
103103
httpLogPath: path.Join(rootDir, "http/logs"),
104104
}
@@ -294,6 +294,7 @@ func (curveadm *CurveAdm) LogPath() string { return curveadm.l
294294
func (curveadm *CurveAdm) Config() *configure.CurveAdmConfig { return curveadm.config }
295295
func (curveadm *CurveAdm) SudoAlias() string { return curveadm.config.GetSudoAlias() }
296296
func (curveadm *CurveAdm) SSHTimeout() int { return curveadm.config.GetSSHTimeout() }
297+
func (curveadm *CurveAdm) Engine() string { return curveadm.config.GetEngine() }
297298
func (curveadm *CurveAdm) In() io.Reader { return curveadm.in }
298299
func (curveadm *CurveAdm) Out() io.Writer { return curveadm.out }
299300
func (curveadm *CurveAdm) Err() io.Writer { return curveadm.err }
@@ -421,6 +422,7 @@ func (curveadm *CurveAdm) ExecOptions() module.ExecOptions {
421422
ExecInLocal: false,
422423
ExecSudoAlias: curveadm.config.GetSudoAlias(),
423424
ExecTimeoutSec: curveadm.config.GetTimeout(),
425+
ExecWithEngine: curveadm.config.GetEngine(),
424426
}
425427
}
426428

internal/configure/curveadm/curveadm.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ import (
4444
const (
4545
KEY_LOG_LEVEL = "log_level"
4646
KEY_SUDO_ALIAS = "sudo_alias"
47+
KEY_ENGINE = "engine"
4748
KEY_TIMEOUT = "timeout"
4849
KEY_AUTO_UPGRADE = "auto_upgrade"
4950
KEY_SSH_RETRIES = "retries"
@@ -56,6 +57,7 @@ type (
5657
CurveAdmConfig struct {
5758
LogLevel string
5859
SudoAlias string
60+
Engine string
5961
Timeout int
6062
AutoUpgrade bool
6163
SSHRetries int
@@ -74,6 +76,7 @@ var (
7476
defaultCurveAdmConfig = &CurveAdmConfig{
7577
LogLevel: "error",
7678
SudoAlias: "sudo",
79+
Engine: "docker",
7780
Timeout: 180,
7881
AutoUpgrade: true,
7982
SSHRetries: 3,
@@ -133,6 +136,10 @@ func parseDefaultsSection(cfg *CurveAdmConfig, defaults map[string]interface{})
133136
case KEY_SUDO_ALIAS:
134137
cfg.SudoAlias = v.(string)
135138

139+
// container engine
140+
case KEY_ENGINE:
141+
cfg.Engine = v.(string)
142+
136143
// timeout
137144
case KEY_TIMEOUT:
138145
num, err := requirePositiveInt(KEY_TIMEOUT, v)
@@ -229,6 +236,7 @@ func (cfg *CurveAdmConfig) GetTimeout() int { return cfg.Timeout }
229236
func (cfg *CurveAdmConfig) GetAutoUpgrade() bool { return cfg.AutoUpgrade }
230237
func (cfg *CurveAdmConfig) GetSSHRetries() int { return cfg.SSHRetries }
231238
func (cfg *CurveAdmConfig) GetSSHTimeout() int { return cfg.SSHTimeout }
239+
func (cfg *CurveAdmConfig) GetEngine() string { return cfg.Engine }
232240
func (cfg *CurveAdmConfig) GetSudoAlias() string {
233241
if len(cfg.SudoAlias) == 0 {
234242
return WITHOUT_SUDO

internal/errno/errno.go

Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,15 @@ func (e *ErrorCode) F(format string, a ...interface{}) *ErrorCode {
107107
return e
108108
}
109109

110+
func (e *ErrorCode) FD(format string, s ...interface{}) *ErrorCode {
111+
newEC := &ErrorCode{
112+
code: e.code,
113+
description: e.description,
114+
}
115+
newEC.description = fmt.Sprintf(newEC.description+" "+format, s...)
116+
return newEC
117+
}
118+
110119
func (e *ErrorCode) Error() string {
111120
if e.code == CODE_CANCEL_OPERATION {
112121
return ""
@@ -470,10 +479,10 @@ var (
470479
ERR_SSH_CONNECT_FAILED = EC(510000, "SSH connect failed")
471480

472481
// 520: checker (permission)
473-
ERR_USER_NOT_FOUND = EC(520000, "user not found")
474-
ERR_HOSTNAME_NOT_RESOLVED = EC(520001, "hostname not resolved")
475-
ERR_CREATE_DIRECOTRY_PERMISSION_DENIED = EC(520002, "create direcotry permission denied")
476-
ERR_EXECUTE_DOCKER_COMMAND_PERMISSION_DENIED = EC(520003, "execute docker command permission denied")
482+
ERR_USER_NOT_FOUND = EC(520000, "user not found")
483+
ERR_HOSTNAME_NOT_RESOLVED = EC(520001, "hostname not resolved")
484+
ERR_CREATE_DIRECOTRY_PERMISSION_DENIED = EC(520002, "create direcotry permission denied")
485+
ERR_EXECUTE_CONTAINER_ENGINE_COMMAND_PERMISSION_DENIED = EC(520003, "execute docker/podman command permission denied")
477486

478487
// 530: checker (kernel)
479488
ERR_UNRECOGNIZED_KERNEL_VERSION = EC(530000, "unrecognized kernel version")
@@ -500,9 +509,9 @@ var (
500509
ERR_INVALID_CURVEFS_CLIENT_S3_BUCKET_NAME = EC(570003, "invalid curvefs client S3 bucket name")
501510

502511
// 590: checker (others)
503-
ERR_DOCKER_NOT_INSTALLED = EC(590000, "docker not installed")
504-
ERR_DOCKER_DAEMON_IS_NOT_RUNNING = EC(590001, "docker daemon is not running")
505-
ERR_NO_SPACE_LEFT_ON_DEVICE = EC(590002, "no space left on device")
512+
ERR_CONTAINER_ENGINE_NOT_INSTALLED = EC(590000, "container engine docker/podman not installed")
513+
ERR_DOCKER_DAEMON_IS_NOT_RUNNING = EC(590001, "docker daemon is not running")
514+
ERR_NO_SPACE_LEFT_ON_DEVICE = EC(590002, "no space left on device")
506515

507516
// 600: exeute task (common)
508517
ERR_EXECUTE_COMMAND_TIMED_OUT = EC(600000, "execute command timed out")
@@ -547,22 +556,22 @@ var (
547556
ERR_RUN_SCRIPT_FAILED = EC(620998, "run script failed (bash script.sh)")
548557
ERR_RUN_A_BASH_COMMAND_FAILED = EC(620999, "run a bash command failed (bash -c)")
549558

550-
// 630: execute task (docker command)
551-
ERR_GET_DOCKER_INFO_FAILED = EC(630000, "get docker info failed (docker info)")
552-
ERR_PULL_IMAGE_FAILED = EC(630001, "pull image failed (docker pull IMAGE)")
553-
ERR_CREATE_CONTAINER_FAILED = EC(630002, "create container failed (docker create IMAGE)")
554-
ERR_START_CONTAINER_FAILED = EC(630003, "start container failed (docker start CONTAINER)")
555-
ERR_STOP_CONTAINER_FAILED = EC(630004, "stop container failed (docker stop CONTAINER)")
556-
ERR_RESTART_CONTAINER_FAILED = EC(630005, "restart container failed (docker restart CONTAINER)")
557-
ERR_WAIT_CONTAINER_STOP_FAILED = EC(630006, "wait container stop failed (docker wait CONTAINER)")
558-
ERR_REMOVE_CONTAINER_FAILED = EC(630007, "remove container failed (docker rm CONTAINER)")
559-
ERR_LIST_CONTAINERS_FAILED = EC(630008, "list containers failed (docker ps)")
560-
ERR_RUN_COMMAND_IN_CONTAINER_FAILED = EC(630009, "run a command in container failed (docker exec CONTAINER COMMAND)")
561-
ERR_COPY_FROM_CONTAINER_FAILED = EC(630010, "copy file from container failed (docker cp CONTAINER:SRC_PATH DEST_PATH)")
562-
ERR_COPY_INTO_CONTAINER_FAILED = EC(630011, "copy file into container failed (docker cp SRC_PATH CONTAINER:DEST_PATH)")
563-
ERR_INSPECT_CONTAINER_FAILED = EC(630012, "get container low-level information failed (docker inspect ID)")
564-
ERR_GET_CONTAINER_LOGS_FAILED = EC(630013, "get container logs failed (docker logs ID)")
565-
ERR_UPDATE_CONTAINER_FAILED = EC(630014, "update container failed (docker update ID)")
559+
// 630: execute task (docker/podman command)
560+
ERR_GET_CONTAINER_ENGINE_INFO_FAILED = EC(630000, "get container engine info failed")
561+
ERR_PULL_IMAGE_FAILED = EC(630001, "pull image failed")
562+
ERR_CREATE_CONTAINER_FAILED = EC(630002, "create container failed")
563+
ERR_START_CONTAINER_FAILED = EC(630003, "start container failed")
564+
ERR_STOP_CONTAINER_FAILED = EC(630004, "stop container failed")
565+
ERR_RESTART_CONTAINER_FAILED = EC(630005, "restart container failed")
566+
ERR_WAIT_CONTAINER_STOP_FAILED = EC(630006, "wait container stop failed")
567+
ERR_REMOVE_CONTAINER_FAILED = EC(630007, "remove container failed")
568+
ERR_LIST_CONTAINERS_FAILED = EC(630008, "list containers failed")
569+
ERR_RUN_COMMAND_IN_CONTAINER_FAILED = EC(630009, "run a command in container failed")
570+
ERR_COPY_FROM_CONTAINER_FAILED = EC(630010, "copy file from container failed")
571+
ERR_COPY_INTO_CONTAINER_FAILED = EC(630011, "copy file into container failed")
572+
ERR_INSPECT_CONTAINER_FAILED = EC(630012, "get container low-level information failed")
573+
ERR_GET_CONTAINER_LOGS_FAILED = EC(630013, "get container logs failed")
574+
ERR_UPDATE_CONTAINER_FAILED = EC(630014, "update container failed")
566575

567576
// 690: execuetr task (others)
568577
ERR_START_CRONTAB_IN_CONTAINER_FAILED = EC(690000, "start crontab in container failed")

internal/task/scripts/script.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ const (
3030

3131
var (
3232
SCRIPT_WAIT string = WAIT
33-
SCRIPT_COLLECT string = COLLECT
33+
SCRIPT_COLLECT string = COLLECT // not used
3434
SCRIPT_REPORT string = REPORT
3535
SCRIPT_FORMAT string = FORMAT
3636
SCRIPT_MAP string = MAP

internal/task/step/container.go

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ import (
3131
)
3232

3333
type (
34-
DockerInfo struct {
34+
EngineInfo struct {
3535
Success *bool
3636
Out *string
3737
module.ExecOptions
@@ -164,16 +164,16 @@ type (
164164
}
165165
)
166166

167-
func (s *DockerInfo) Execute(ctx *context.Context) error {
167+
func (s *EngineInfo) Execute(ctx *context.Context) error {
168168
cli := ctx.Module().DockerCli().DockerInfo()
169169
out, err := cli.Execute(s.ExecOptions)
170-
return PostHandle(s.Success, s.Out, out, err, errno.ERR_GET_DOCKER_INFO_FAILED)
170+
return PostHandle(s.Success, s.Out, out, err, errno.ERR_GET_CONTAINER_ENGINE_INFO_FAILED.FD("(%s info)", s.ExecWithEngine))
171171
}
172172

173173
func (s *PullImage) Execute(ctx *context.Context) error {
174174
cli := ctx.Module().DockerCli().PullImage(s.Image)
175175
out, err := cli.Execute(s.ExecOptions)
176-
return PostHandle(nil, s.Out, out, err, errno.ERR_PULL_IMAGE_FAILED)
176+
return PostHandle(nil, s.Out, out, err, errno.ERR_PULL_IMAGE_FAILED.FD("(%s pull IMAGE)", s.ExecWithEngine))
177177
}
178178

179179
func (s *CreateContainer) Execute(ctx *context.Context) error {
@@ -239,13 +239,13 @@ func (s *CreateContainer) Execute(ctx *context.Context) error {
239239
}
240240

241241
out, err := cli.Execute(s.ExecOptions)
242-
return PostHandle(nil, s.Out, out, err, errno.ERR_CREATE_CONTAINER_FAILED)
242+
return PostHandle(nil, s.Out, out, err, errno.ERR_CREATE_CONTAINER_FAILED.FD("(%s create IMAGE)", s.ExecWithEngine))
243243
}
244244

245245
func (s *StartContainer) Execute(ctx *context.Context) error {
246246
cli := ctx.Module().DockerCli().StartContainer(*s.ContainerId)
247247
out, err := cli.Execute(s.ExecOptions)
248-
return PostHandle(s.Success, s.Out, out, err, errno.ERR_START_CONTAINER_FAILED)
248+
return PostHandle(s.Success, s.Out, out, err, errno.ERR_START_CONTAINER_FAILED.FD("(%s start CONTAINER)", s.ExecWithEngine))
249249
}
250250

251251
func (s *StopContainer) Execute(ctx *context.Context) error {
@@ -255,25 +255,25 @@ func (s *StopContainer) Execute(ctx *context.Context) error {
255255
}
256256

257257
out, err := cli.Execute(s.ExecOptions)
258-
return PostHandle(nil, s.Out, out, err, errno.ERR_STOP_CONTAINER_FAILED)
258+
return PostHandle(nil, s.Out, out, err, errno.ERR_STOP_CONTAINER_FAILED.FD("(%s stop CONTAINER)", s.ExecWithEngine))
259259
}
260260

261261
func (s *RestartContainer) Execute(ctx *context.Context) error {
262262
cli := ctx.Module().DockerCli().RestartContainer(s.ContainerId)
263263
out, err := cli.Execute(s.ExecOptions)
264-
return PostHandle(nil, s.Out, out, err, errno.ERR_RESTART_CONTAINER_FAILED)
264+
return PostHandle(nil, s.Out, out, err, errno.ERR_RESTART_CONTAINER_FAILED.FD("(%s restart CONTAINER)", s.ExecWithEngine))
265265
}
266266

267267
func (s *WaitContainer) Execute(ctx *context.Context) error {
268268
cli := ctx.Module().DockerCli().WaitContainer(s.ContainerId)
269269
out, err := cli.Execute(s.ExecOptions)
270-
return PostHandle(nil, s.Out, out, err, errno.ERR_WAIT_CONTAINER_STOP_FAILED)
270+
return PostHandle(nil, s.Out, out, err, errno.ERR_WAIT_CONTAINER_STOP_FAILED.FD("(%s wait CONTAINER)", s.ExecWithEngine))
271271
}
272272

273273
func (s *RemoveContainer) Execute(ctx *context.Context) error {
274274
cli := ctx.Module().DockerCli().RemoveContainer(s.ContainerId)
275275
out, err := cli.Execute(s.ExecOptions)
276-
return PostHandle(s.Success, s.Out, out, err, errno.ERR_REMOVE_CONTAINER_FAILED)
276+
return PostHandle(s.Success, s.Out, out, err, errno.ERR_REMOVE_CONTAINER_FAILED.FD("(%s rm CONTAINER)", s.ExecWithEngine))
277277
}
278278

279279
func (s *ListContainers) Execute(ctx *context.Context) error {
@@ -292,25 +292,25 @@ func (s *ListContainers) Execute(ctx *context.Context) error {
292292
}
293293

294294
out, err := cli.Execute(s.ExecOptions)
295-
return PostHandle(nil, s.Out, out, err, errno.ERR_LIST_CONTAINERS_FAILED)
295+
return PostHandle(nil, s.Out, out, err, errno.ERR_LIST_CONTAINERS_FAILED.FD("(%s ps)", s.ExecWithEngine))
296296
}
297297

298298
func (s *ContainerExec) Execute(ctx *context.Context) error {
299299
cli := ctx.Module().DockerCli().ContainerExec(*s.ContainerId, s.Command)
300300
out, err := cli.Execute(s.ExecOptions)
301-
return PostHandle(s.Success, s.Out, out, err, errno.ERR_RUN_COMMAND_IN_CONTAINER_FAILED)
301+
return PostHandle(s.Success, s.Out, out, err, errno.ERR_RUN_COMMAND_IN_CONTAINER_FAILED.FD("(%s exec CONTAINER COMMAND)", s.ExecWithEngine))
302302
}
303303

304304
func (s *CopyFromContainer) Execute(ctx *context.Context) error {
305305
cli := ctx.Module().DockerCli().CopyFromContainer(s.ContainerId, s.ContainerSrcPath, s.HostDestPath)
306306
out, err := cli.Execute(s.ExecOptions)
307-
return PostHandle(nil, s.Out, out, err, errno.ERR_COPY_FROM_CONTAINER_FAILED)
307+
return PostHandle(nil, s.Out, out, err, errno.ERR_COPY_FROM_CONTAINER_FAILED.FD("(%s cp CONTAINER:SRC_PATH DEST_PATH)", s.ExecWithEngine))
308308
}
309309

310310
func (s *CopyIntoContainer) Execute(ctx *context.Context) error {
311311
cli := ctx.Module().DockerCli().CopyIntoContainer(s.HostSrcPath, s.ContainerId, s.ContainerDestPath)
312312
out, err := cli.Execute(s.ExecOptions)
313-
return PostHandle(nil, s.Out, out, err, errno.ERR_COPY_INTO_CONTAINER_FAILED)
313+
return PostHandle(nil, s.Out, out, err, errno.ERR_COPY_INTO_CONTAINER_FAILED.FD("(%s cp SRC_PATH CONTAINER:DEST_PATH)", s.ExecWithEngine))
314314
}
315315

316316
func (s *InspectContainer) Execute(ctx *context.Context) error {
@@ -320,13 +320,13 @@ func (s *InspectContainer) Execute(ctx *context.Context) error {
320320
}
321321

322322
out, err := cli.Execute(s.ExecOptions)
323-
return PostHandle(s.Success, s.Out, out, err, errno.ERR_INSPECT_CONTAINER_FAILED)
323+
return PostHandle(s.Success, s.Out, out, err, errno.ERR_INSPECT_CONTAINER_FAILED.FD("(%s inspect ID)", s.ExecWithEngine))
324324
}
325325

326326
func (s *ContainerLogs) Execute(ctx *context.Context) error {
327327
cli := ctx.Module().DockerCli().ContainerLogs(s.ContainerId)
328328
out, err := cli.Execute(s.ExecOptions)
329-
return PostHandle(s.Success, s.Out, out, err, errno.ERR_GET_CONTAINER_LOGS_FAILED)
329+
return PostHandle(s.Success, s.Out, out, err, errno.ERR_GET_CONTAINER_LOGS_FAILED.FD("(%s logs ID)", s.ExecWithEngine))
330330
}
331331

332332
func (s *UpdateContainer) Execute(ctx *context.Context) error {
@@ -335,5 +335,5 @@ func (s *UpdateContainer) Execute(ctx *context.Context) error {
335335
cli.AddOption("--restart %s", s.Restart)
336336
}
337337
out, err := cli.Execute(s.ExecOptions)
338-
return PostHandle(s.Success, s.Out, out, err, errno.ERR_UPDATE_CONTAINER_FAILED)
338+
return PostHandle(s.Success, s.Out, out, err, errno.ERR_UPDATE_CONTAINER_FAILED.FD("(%s update ID)", s.ExecWithEngine))
339339
}

internal/task/step/file.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ func (s *ReadFile) Execute(ctx *context.Context) error {
124124
dockerCli := ctx.Module().DockerCli().CopyFromContainer(s.ContainerId, s.ContainerSrcPath, remotePath)
125125
_, err := dockerCli.Execute(s.ExecOptions)
126126
if err != nil {
127-
return errno.ERR_COPY_FROM_CONTAINER_FAILED.E(err)
127+
return errno.ERR_COPY_FROM_CONTAINER_FAILED.FD("(%s cp CONTAINER:SRC_PATH DEST_PATH)", s.ExecWithEngine).E(err)
128128
}
129129
}
130130

@@ -189,7 +189,7 @@ func (s *InstallFile) Execute(ctx *context.Context) error {
189189
cli := ctx.Module().DockerCli().CopyIntoContainer(remotePath, *s.ContainerId, s.ContainerDestPath)
190190
_, err = cli.Execute(s.ExecOptions)
191191
if err != nil {
192-
return errno.ERR_COPY_INTO_CONTAINER_FAILED.E(err)
192+
return errno.ERR_COPY_INTO_CONTAINER_FAILED.FD(" (%scp SRC_PATH CONTAINER:DEST_PATH)", s.ExecWithEngine).E(err)
193193
}
194194
}
195195
return nil

internal/task/task/bs/start_nebd.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,13 +156,13 @@ func NewStartNEBDServiceTask(curveadm *cli.CurveAdm, cc *configure.ClientConfig)
156156
hostname := containerName
157157
host2addr := fmt.Sprintf("%s:%s", hostname, hc.GetHostname())
158158

159-
t.AddStep(&step.DockerInfo{
159+
t.AddStep(&step.EngineInfo{
160160
Success: &success,
161161
Out: &out,
162162
ExecOptions: curveadm.ExecOptions(),
163163
})
164164
t.AddStep(&step.Lambda{
165-
Lambda: checker.CheckDockerInfo(options.Host, &success, &out),
165+
Lambda: checker.CheckEngineInfo(options.Host, curveadm.ExecOptions().ExecWithEngine, &success, &out),
166166
})
167167
t.AddStep(&step.ListContainers{
168168
ShowAll: true,

internal/task/task/checker/permission.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -87,21 +87,21 @@ func checkCreateDirectory(dc *topology.DeployConfig, path string, success *bool,
8787
}
8888
}
8989

90-
func CheckDockerInfo(host string, success *bool, out *string) step.LambdaType {
90+
func CheckEngineInfo(host, engine string, success *bool, out *string) step.LambdaType {
9191
return func(ctx *context.Context) error {
9292
if *success {
9393
return nil
9494
}
9595

9696
*out = strings.ToLower(*out)
9797
if strings.Contains(*out, SIGNATURE_COMMAND_NOT_FOUND) {
98-
return errno.ERR_DOCKER_NOT_INSTALLED.
98+
return errno.ERR_CONTAINER_ENGINE_NOT_INSTALLED.
9999
F("host=%s\n%s", host, *out)
100100
} else if strings.Contains(*out, SIGNATURE_PERMISSION_DENIED) {
101-
return errno.ERR_EXECUTE_DOCKER_COMMAND_PERMISSION_DENIED.
101+
return errno.ERR_EXECUTE_CONTAINER_ENGINE_COMMAND_PERMISSION_DENIED.
102102
F("host=%s\n%s", host, *out)
103103
} else if strings.Contains(*out, SIGNATURE_PERMISSION_WITH_PASSWORD) {
104-
return errno.ERR_EXECUTE_DOCKER_COMMAND_PERMISSION_DENIED.
104+
return errno.ERR_EXECUTE_CONTAINER_ENGINE_COMMAND_PERMISSION_DENIED.
105105
F("host=%s (need password)", host)
106106
} else if strings.Contains(*out, SIGNATURE_DOCKER_DEAMON_IS_NOT_RUNNING) {
107107
return errno.ERR_DOCKER_DAEMON_IS_NOT_RUNNING.
@@ -164,14 +164,14 @@ func NewCheckPermissionTask(curveadm *cli.CurveAdm, dc *topology.DeployConfig) (
164164
Lambda: checkCreateDirectory(dc, dir.Path, &success, &out),
165165
})
166166
}
167-
// (4) check docker command {exist, permission, running}
168-
t.AddStep(&step.DockerInfo{
167+
// (4) check docker/podman engine command {exist, permission, running}
168+
t.AddStep(&step.EngineInfo{
169169
Success: &success,
170170
Out: &out,
171171
ExecOptions: curveadm.ExecOptions(),
172172
})
173173
t.AddStep(&step.Lambda{
174-
Lambda: CheckDockerInfo(dc.GetHost(), &success, &out),
174+
Lambda: CheckEngineInfo(dc.GetHost(), curveadm.ExecOptions().ExecWithEngine, &success, &out),
175175
})
176176

177177
return t, nil

0 commit comments

Comments
 (0)