-
Notifications
You must be signed in to change notification settings - Fork 28
/
main.go
52 lines (42 loc) · 1.08 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package main
import (
"cni-teardown/config"
"flag"
"os"
"strings"
"code.cloudfoundry.org/lager"
"code.cloudfoundry.org/silk/lib/adapter"
)
func main() {
logger := lager.NewLogger("cni-teardown")
sink := lager.NewWriterSink(os.Stdout, lager.INFO)
logger.RegisterSink(sink)
logger.Info("starting")
netlinkAdapter := &adapter.NetlinkAdapter{}
links, err := netlinkAdapter.LinkList()
if err != nil {
logger.Error("failed-to-list-network-devices", err) // not tested
}
for _, link := range links {
if link.Type() == "ifb" && strings.HasPrefix(link.Attrs().Name, "i") {
err = netlinkAdapter.LinkDel(link)
if err != nil {
logger.Error("failed-to-remove-ifb", err)
}
}
}
configFilePath := flag.String("config", "", "path to config file")
flag.Parse()
cfg, err := config.LoadConfig(*configFilePath)
if err != nil {
logger.Error("read-config-file", err)
os.Exit(1)
}
for _, path := range cfg.PathsToDelete {
err := os.RemoveAll(path)
if err != nil {
logger.Info("failed-to-remove-path", lager.Data{"path": path, "err": err})
}
}
logger.Info("complete")
}