Explorar el Código

Merge pull request #14753 from flavio/zfs-initialization-errors

ZFS driver: raise better errors during init
Brian Goff hace 10 años
padre
commit
19ba7f9e23
Se han modificado 1 ficheros con 13 adiciones y 10 borrados
  1. 13 10
      daemon/graphdriver/zfs/zfs.go

+ 13 - 10
daemon/graphdriver/zfs/zfs.go

@@ -38,6 +38,19 @@ func (*Logger) Log(cmd []string) {
 
 func Init(base string, opt []string) (graphdriver.Driver, error) {
 	var err error
+
+	if _, err := exec.LookPath("zfs"); err != nil {
+		log.Debugf("[zfs] zfs command is not available: %v", err)
+		return nil, graphdriver.ErrPrerequisites
+	}
+
+	file, err := os.OpenFile("/dev/zfs", os.O_RDWR, 600)
+	if err != nil {
+		log.Debugf("[zfs] cannot open /dev/zfs: %v", err)
+		return nil, graphdriver.ErrPrerequisites
+	}
+	defer file.Close()
+
 	options, err := parseOptions(opt)
 	if err != nil {
 		return nil, err
@@ -53,16 +66,6 @@ func Init(base string, opt []string) (graphdriver.Driver, error) {
 		}
 	}
 
-	if _, err := exec.LookPath("zfs"); err != nil {
-		return nil, fmt.Errorf("zfs command is not available: %v", err)
-	}
-
-	file, err := os.OpenFile("/dev/zfs", os.O_RDWR, 600)
-	if err != nil {
-		return nil, fmt.Errorf("cannot open /dev/zfs: %v", err)
-	}
-	defer file.Close()
-
 	if options.fsName == "" {
 		options.fsName, err = lookupZfsDataset(rootdir)
 		if err != nil {