@@ -195,6 +195,7 @@ type Options struct {
195
195
func New (name string , pg plugingetter.PluginGetter , config Options ) (Driver , error ) {
196
196
if name != "" {
197
197
logrus .Debugf ("[graphdriver] trying provided driver: %s" , name ) // so the logs show specified driver
198
+ logDeprecatedWarning (name )
198
199
return GetDriver (name , pg , config )
199
200
}
200
201
@@ -232,6 +233,7 @@ func New(name string, pg plugingetter.PluginGetter, config Options) (Driver, err
232
233
}
233
234
234
235
logrus .Infof ("[graphdriver] using prior storage driver: %s" , name )
236
+ logDeprecatedWarning (name )
235
237
return driver , nil
236
238
}
237
239
}
@@ -245,6 +247,7 @@ func New(name string, pg plugingetter.PluginGetter, config Options) (Driver, err
245
247
}
246
248
return nil , err
247
249
}
250
+ logDeprecatedWarning (name )
248
251
return driver , nil
249
252
}
250
253
@@ -257,6 +260,7 @@ func New(name string, pg plugingetter.PluginGetter, config Options) (Driver, err
257
260
}
258
261
return nil , err
259
262
}
263
+ logDeprecatedWarning (name )
260
264
return driver , nil
261
265
}
262
266
return nil , fmt .Errorf ("No supported storage backend found" )
@@ -305,3 +309,20 @@ func isEmptyDir(name string) bool {
305
309
}
306
310
return false
307
311
}
312
+
313
+ // isDeprecated checks if a storage-driver is marked "deprecated"
314
+ func isDeprecated (name string ) bool {
315
+ switch name {
316
+ // NOTE: when deprecating a driver, update daemon.fillDriverInfo() accordingly
317
+ case "devicemapper" :
318
+ return true
319
+ }
320
+ return false
321
+ }
322
+
323
+ // logDeprecatedWarning logs a warning if the given storage-driver is marked "deprecated"
324
+ func logDeprecatedWarning (name string ) {
325
+ if isDeprecated (name ) {
326
+ logrus .Warnf ("[graphdriver] WARNING: the %s storage-driver is deprecated, and will be removed in a future release" , name )
327
+ }
328
+ }
0 commit comments