@@ -43,7 +43,7 @@ func NewLvmPersistDriver() *LvmPersistDriver {
43
43
44
44
logFile , err := os .OpenFile ("/var/log/docker-volume-plugins.log" , os .O_RDWR | os .O_APPEND | os .O_CREATE , 0666 )
45
45
if err != nil {
46
- fmt . Println (err )
46
+ log . Error (err )
47
47
}
48
48
backend2 := logging .NewLogBackend (logFile , "" , 0 )
49
49
@@ -140,13 +140,20 @@ func (driver *LvmPersistDriver) Create(req volume.Request) volume.Response {
140
140
}
141
141
//3.persist mount lv to mountPoint
142
142
mountPoint := LvmVolumeDir + req .Name
143
- err = syscall .Mkdir (mountPoint , 0750 )
143
+ cmdArgs = []string {"-p" , mountPoint }
144
+ cmd = exec .Command ("mkdir" , cmdArgs ... )
145
+ _ , err = cmd .CombinedOutput ()
146
+ if err != nil {
147
+ log .Error ("mkdir local mountpoint failed" , err )
148
+ return volume.Response {Err : "mkdir mountpoint failedss" }
149
+ }
150
+ err = syscall .Chmod (mountPoint , 0750 )
144
151
if err != nil {
145
- log .Error ("mkdir mountpoint failed" , err )
152
+ log .Error ("chmod mountpoint failed" , err )
146
153
return volume.Response {Err : "mkdir mountpoint failedss" }
147
154
}
148
155
cmdArgs = []string {lvdiskname , mountPoint }
149
- fmt . Println (cmdArgs )
156
+ log . Info (cmdArgs )
150
157
cmd = exec .Command ("mount" , cmdArgs ... )
151
158
if _ , err = cmd .CombinedOutput (); err != nil {
152
159
log .Error ("mount lv failed" , err )
@@ -196,26 +203,28 @@ func (driver *LvmPersistDriver) Remove(req volume.Request) volume.Response {
196
203
return volume.Response {Err : "remove volume failed" }
197
204
}
198
205
//1 umount
199
- err := syscall .Unmount (driver .Mounts [req .Name ], 0 )
200
- if err != nil {
201
- log .Error ("unmount lv failed" , err )
202
- return volume.Response {Err : "unmount lv failed" }
206
+ cmdArgs := []string {"-l" ,driver .Mounts [req .Name ]}
207
+ cmd := exec .Command ("umount" , cmdArgs ... )
208
+ if _ , err := cmd .CombinedOutput (); err != nil {
209
+ log .Error ("umount lv failed" , err )
210
+ //return volume.Response{Err: fmt.Sprintf("volum umount failed")}
203
211
}
212
+
204
213
//2 update fstab
205
214
content := deviceName + " " + driver .Mounts [req .Name ] + " xfs defaults 0 1"
206
215
updateFstab (content , true )
207
216
//3. remove from vg $lvdiskname -f
208
- cmdArgs : = []string {deviceName , "-f" }
209
- cmd : = exec .Command ("lvremove" , cmdArgs ... )
210
- if _ , err := cmd .CombinedOutput (); err != nil {
217
+ cmdArgs = []string {deviceName , "-f" }
218
+ cmd = exec .Command ("lvremove" , cmdArgs ... )
219
+ if _ , err := cmd .CombinedOutput (); err != nil {
211
220
log .Error ("remove lv failed" , err )
212
- return volume.Response {Err : "remove lv failed" }
221
+ // return volume.Response{Err: "remove lv failed"}
213
222
}
214
223
//remove local dir
215
- err = os .RemoveAll (driver .Mounts [req .Name ])
224
+ err : = os .RemoveAll (driver .Mounts [req .Name ])
216
225
if err != nil {
217
226
log .Error ("remove voulme info failed" , err )
218
- return volume.Response {Err : "remove local dir failed" }
227
+ // return volume.Response{Err: "remove local dir failed"}
219
228
}
220
229
//1.remove from cache
221
230
delete (driver .Volumes , req .Name )
@@ -354,7 +363,7 @@ func removeLineFrom(line string) {
354
363
found := false
355
364
for i , value := range lines {
356
365
if strings .Contains (value , line ) {
357
- fmt . Println ( "found" )
366
+
358
367
lineIndex = i
359
368
found = true
360
369
break
0 commit comments