Browse code

devmapper: Add simple tool to test the DeviceSet commands

Alexander Larsson authored on 2013/09/04 18:25:32
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,62 @@
0
+package main
1
+
2
+import (
3
+	"fmt"
4
+	"github.com/dotcloud/docker/devmapper"
5
+	"os"
6
+)
7
+
8
+func usage() {
9
+	fmt.Printf("Usage: %s [snap new-id base-id] | [remove id] | [mount id mountpoint]\n", os.Args[0])
10
+	os.Exit(1)
11
+}
12
+
13
+func main() {
14
+	devices := devmapper.NewDeviceSetDM("/var/lib/docker")
15
+
16
+	if len(os.Args) < 2 {
17
+		usage()
18
+	}
19
+
20
+	cmd := os.Args[1]
21
+	if cmd == "snap" {
22
+		if len(os.Args) < 4 {
23
+			usage()
24
+		}
25
+
26
+		err := devices.AddDevice(os.Args[2], os.Args[3])
27
+		if err != nil {
28
+			fmt.Println("Can't create snap device: ", err)
29
+			os.Exit(1)
30
+		}
31
+	} else if cmd == "remove" {
32
+		if len(os.Args) < 3 {
33
+			usage()
34
+		}
35
+
36
+		err := devices.RemoveDevice(os.Args[2])
37
+		if err != nil {
38
+			fmt.Println("Can't remove device: ", err)
39
+			os.Exit(1)
40
+		}
41
+	} else if cmd == "mount" {
42
+		if len(os.Args) < 4 {
43
+			usage()
44
+		}
45
+
46
+		err := devices.MountDevice(os.Args[2], os.Args[3])
47
+		if err != nil {
48
+			fmt.Println("Can't create snap device: ", err)
49
+			os.Exit(1)
50
+		}
51
+	} else {
52
+		fmt.Printf("Unknown command %s\n", cmd)
53
+		if len(os.Args) < 4 {
54
+			usage()
55
+		}
56
+
57
+		os.Exit(1)
58
+	}
59
+
60
+	return
61
+}