integration: clean up unreferenced hs- networks (#2534)
This commit is contained in:
parent
710d75367e
commit
f783555469
2 changed files with 29 additions and 1 deletions
|
@ -2,8 +2,9 @@ package dockertestutil
|
|||
|
||||
import (
|
||||
"errors"
|
||||
"net"
|
||||
"fmt"
|
||||
"log"
|
||||
"net"
|
||||
|
||||
"github.com/ory/dockertest/v3"
|
||||
"github.com/ory/dockertest/v3/docker"
|
||||
|
@ -84,3 +85,23 @@ func RandomFreeHostPort() (int, error) {
|
|||
//nolint:forcetypeassert
|
||||
return listener.Addr().(*net.TCPAddr).Port, nil
|
||||
}
|
||||
|
||||
// CleanUnreferencedNetworks removes networks that are not referenced by any containers.
|
||||
func CleanUnreferencedNetworks(pool *dockertest.Pool) error {
|
||||
filter := "name=hs-"
|
||||
networks, err := pool.NetworksByName(filter)
|
||||
if err != nil {
|
||||
return fmt.Errorf("getting networks by filter %q: %w", filter, err)
|
||||
}
|
||||
|
||||
for _, network := range networks {
|
||||
if network.Network.Containers == nil || len(network.Network.Containers) == 0 {
|
||||
err := pool.RemoveNetwork(&network)
|
||||
if err != nil {
|
||||
log.Printf("removing network %s: %s", network.Network.Name, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue