summaryrefslogtreecommitdiff
path: root/pkg/network/devices.go
diff options
context:
space:
mode:
authorbaude <bbaude@redhat.com>2019-09-09 15:37:35 -0500
committerbaude <bbaude@redhat.com>2019-09-12 14:03:52 -0500
commitb94ea07265045f447572c264ef62e7960f484b58 (patch)
tree10ed1b8a28515fb083d4c306055e1db9da3c1f81 /pkg/network/devices.go
parentaf8fedcc78674d71d43ca3000438c42b7b6b6994 (diff)
downloadpodman-b94ea07265045f447572c264ef62e7960f484b58.tar.gz
podman-b94ea07265045f447572c264ef62e7960f484b58.tar.bz2
podman-b94ea07265045f447572c264ef62e7960f484b58.zip
enhance podman network rm
when removing a podman network, we need to make sure we delete the network interface if one was ever created (by running a container). also, when removing networks, we check if any containers are using the network. if they are, we error out unless the user provides a 'force' option which will remove the containers in question. Signed-off-by: baude <bbaude@redhat.com>
Diffstat (limited to 'pkg/network/devices.go')
-rw-r--r--pkg/network/devices.go16
1 files changed, 15 insertions, 1 deletions
diff --git a/pkg/network/devices.go b/pkg/network/devices.go
index 26101b6f7..85068a7d1 100644
--- a/pkg/network/devices.go
+++ b/pkg/network/devices.go
@@ -2,8 +2,10 @@ package network
import (
"fmt"
- "github.com/containers/libpod/pkg/util"
+ "os/exec"
+ "github.com/containers/libpod/pkg/util"
+ "github.com/containers/libpod/utils"
"github.com/sirupsen/logrus"
)
@@ -39,3 +41,15 @@ func GetFreeDeviceName() (string, error) {
}
return deviceName, nil
}
+
+// RemoveInterface removes an interface by the given name
+func RemoveInterface(interfaceName string) error {
+ // Make sure we have the ip command on the system
+ ipPath, err := exec.LookPath("ip")
+ if err != nil {
+ return err
+ }
+ // Delete the network interface
+ _, err = utils.ExecCmd(ipPath, []string{"link", "del", interfaceName}...)
+ return err
+}