Skip to content

Commit 50aa975

Browse files
committed
check the exact network's name before creating or stopping it
NetworkList API doesn't return the extact name match, so we can retrieve more than one network with a request Signed-off-by: Guillaume Lours <[email protected]>
1 parent 5bc4016 commit 50aa975

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

pkg/compose/create.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1041,7 +1041,14 @@ func (s *composeService) ensureNetwork(ctx context.Context, n types.NetworkConfi
10411041
if err != nil {
10421042
return err
10431043
}
1044-
if len(networks) == 0 {
1044+
networkNotFound := true
1045+
for _, net := range networks {
1046+
if net.Name == n.Name {
1047+
networkNotFound = false
1048+
break
1049+
}
1050+
}
1051+
if networkNotFound {
10451052
if n.External.External {
10461053
if n.Driver == "overlay" {
10471054
// Swarm nodes do not register overlay networks that were

pkg/compose/down.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -163,14 +163,16 @@ func (s *composeService) removeNetwork(ctx context.Context, name string, w progr
163163

164164
var removed int
165165
for _, net := range networks {
166-
if err := s.apiClient().NetworkRemove(ctx, net.ID); err != nil {
167-
if errdefs.IsNotFound(err) {
168-
continue
166+
if net.Name == name {
167+
if err := s.apiClient().NetworkRemove(ctx, net.ID); err != nil {
168+
if errdefs.IsNotFound(err) {
169+
continue
170+
}
171+
w.Event(progress.ErrorEvent(eventName))
172+
return errors.Wrapf(err, fmt.Sprintf("failed to remove network %s", name))
169173
}
170-
w.Event(progress.ErrorEvent(eventName))
171-
return errors.Wrapf(err, fmt.Sprintf("failed to remove network %s", name))
174+
removed++
172175
}
173-
removed++
174176
}
175177

176178
if removed == 0 {

0 commit comments

Comments
 (0)