123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package network
- import (
- "context"
- "fmt"
- "github.com/docker/docker/api/types"
- "github.com/docker/docker/client"
- "gotest.tools/v3/assert/cmp"
- )
- // IsNetworkAvailable provides a comparison to check if a docker network is available
- func IsNetworkAvailable(ctx context.Context, c client.NetworkAPIClient, name string) cmp.Comparison {
- return func() cmp.Result {
- networks, err := c.NetworkList(ctx, types.NetworkListOptions{})
- if err != nil {
- return cmp.ResultFromError(err)
- }
- for _, network := range networks {
- if network.Name == name {
- return cmp.ResultSuccess
- }
- }
- return cmp.ResultFailure(fmt.Sprintf("could not find network %s", name))
- }
- }
- // IsNetworkNotAvailable provides a comparison to check if a docker network is not available
- func IsNetworkNotAvailable(ctx context.Context, c client.NetworkAPIClient, name string) cmp.Comparison {
- return func() cmp.Result {
- networks, err := c.NetworkList(ctx, types.NetworkListOptions{})
- if err != nil {
- return cmp.ResultFromError(err)
- }
- for _, network := range networks {
- if network.Name == name {
- return cmp.ResultFailure(fmt.Sprintf("network %s is still present", name))
- }
- }
- return cmp.ResultSuccess
- }
- }
|