From bf5542e96e91a95603bedbcaedb4ad61d1e35b81 Mon Sep 17 00:00:00 2001 From: Ma Shimiao Date: Wed, 21 Dec 2016 11:46:20 +0800 Subject: [PATCH] generate: fix removing namespace bug When there are duplicated namespace items, we should remove all of them. Signed-off-by: Ma Shimiao --- generate/generate.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/generate/generate.go b/generate/generate.go index 60d92adcd..fd90e8f56 100644 --- a/generate/generate.go +++ b/generate/generate.go @@ -906,12 +906,18 @@ func (g *Generator) RemoveLinuxNamespace(ns string) error { if g.spec == nil || g.spec.Linux == nil { return nil } + index := 0 + endIndex := len(g.spec.Linux.Namespaces) - 1 + var result = make([]rspec.Namespace, 0) for i, ns := range g.spec.Linux.Namespaces { if ns.Type == namespace.Type { - g.spec.Linux.Namespaces = append(g.spec.Linux.Namespaces[:i], g.spec.Linux.Namespaces[i+1:]...) - return nil + result = append(result, g.spec.Linux.Namespaces[index:i]...) + index = i + 1 + } else if i == endIndex { + result = append(result, g.spec.Linux.Namespaces[index:endIndex+1]...) } } + g.spec.Linux.Namespaces = result return nil }