This commit is contained in:
Sebastiaan van Stijn 2024-09-18 15:34:58 +01:00 committed by GitHub
commit 6aa76111d9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 16 additions and 9 deletions

View File

@ -758,6 +758,10 @@ func TestParseRestartPolicy(t *testing.T) {
Name: container.RestartPolicyDisabled,
},
},
{
input: "no:1",
expectedErr: "invalid restart policy: maximum retry count can only be used with 'on-failure'",
},
{
input: ":1",
expectedErr: "invalid restart policy format: no policy provided before colon",
@ -769,11 +773,8 @@ func TestParseRestartPolicy(t *testing.T) {
},
},
{
input: "always:1",
expected: container.RestartPolicy{
Name: container.RestartPolicyAlways,
MaximumRetryCount: 1,
},
input: "always:1",
expectedErr: "invalid restart policy: maximum retry count can only be used with 'on-failure'",
},
{
input: "always:2:3",
@ -796,6 +797,10 @@ func TestParseRestartPolicy(t *testing.T) {
Name: container.RestartPolicyUnlessStopped,
},
},
{
input: "unless-stopped:1",
expectedErr: "invalid restart policy: maximum retry count can only be used with 'on-failure'",
},
{
input: "unless-stopped:invalid",
expectedErr: "invalid restart policy format: maximum retry count must be an integer",

View File

@ -79,8 +79,7 @@ func Service(
return swarm.ServiceSpec{}, err
}
restartPolicy, err := convertRestartPolicy(
service.Restart, service.Deploy.RestartPolicy)
restartPolicy, err := convertRestartPolicy(service.Restart, service.Deploy.RestartPolicy)
if err != nil {
return swarm.ServiceSpec{}, err
}
@ -494,7 +493,7 @@ func convertRestartPolicy(restart string, source *composetypes.RestartPolicy) (*
MaxAttempts: &attempts,
}, nil
default:
return nil, errors.Errorf("unknown restart policy: %s", restart)
return nil, errors.Errorf("invalid restart policy: unknown policy '%s'", restart)
}
}

View File

@ -25,7 +25,7 @@ func TestConvertRestartPolicyFromNone(t *testing.T) {
func TestConvertRestartPolicyFromUnknown(t *testing.T) {
_, err := convertRestartPolicy("unknown", nil)
assert.Error(t, err, "unknown restart policy: unknown")
assert.Error(t, err, "invalid restart policy: unknown policy 'unknown'; use one of 'no', 'always', 'on-failure', or 'unless-stopped'")
}
func TestConvertRestartPolicyFromAlways(t *testing.T) {

View File

@ -92,5 +92,8 @@ func ParseRestartPolicy(policy string) (container.RestartPolicy, error) {
}
p.Name = container.RestartPolicyMode(k)
if err := container.ValidateRestartPolicy(p); err != nil {
return container.RestartPolicy{}, err
}
return p, nil
}