refactor: 'service run' create missing volumes satisfying all placement constraints

This commit is contained in:
Pavel Sviderski
2025-04-20 19:57:30 +10:00
parent 565a8d8366
commit f08d9fe405
5 changed files with 93 additions and 96 deletions
+3 -2
View File
@@ -19,10 +19,11 @@ import (
)
func assertServiceMatchesSpec(t *testing.T, svc api.Service, spec api.ServiceSpec) {
spec = spec.SetDefaults()
assert.Equal(t, spec.Name, svc.Name)
if svc.Mode == api.ServiceModeReplicated {
assert.Contains(t, []string{"", api.ServiceModeReplicated}, spec.Mode)
assert.Equal(t, api.ServiceModeReplicated, spec.Mode)
assert.Len(t, svc.Containers, int(spec.Replicas), "Expected %d replicas", spec.Replicas)
} else {
assert.Equal(t, spec.Mode, svc.Mode)
@@ -34,10 +35,10 @@ func assertServiceMatchesSpec(t *testing.T, svc api.Service, spec api.ServiceSpe
}
func assertContainerMatchesSpec(t *testing.T, ctr api.ServiceContainer, spec api.ServiceSpec) {
spec = spec.SetDefaults()
status := deploy.EvalContainerSpecChange(ctr.ServiceSpec, spec)
assert.Equal(t, deploy.ContainerUpToDate, status)
spec = spec.SetDefaults()
// Verify labels.
assert.True(t, api.ValidateServiceID(ctr.Config.Labels[api.LabelServiceID]))
assert.Equal(t, spec.Name, ctr.Config.Labels[api.LabelServiceName])