Forráskód Böngészése

devmapper: Move UUID setup and verification code in a function

Simplify setupBaseImage() even further. Move some more code in a separate
function. Pure code reorganization. No functionality change.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
Vivek Goyal 9 éve
szülő
commit
0fcd485626
1 módosított fájl, 30 hozzáadás és 13 törlés
  1. 30 13
      daemon/graphdriver/devmapper/deviceset.go

+ 30 - 13
daemon/graphdriver/devmapper/deviceset.go

@@ -825,31 +825,48 @@ func (devices *DeviceSet) checkThinPool() error {
 	return nil
 }
 
+// Base image is initialized properly. Either save UUID for first time (for
+// upgrade case or verify UUID.
+func (devices *DeviceSet) setupVerifyBaseImageUUID(baseInfo *devInfo) error {
+	// If BaseDeviceUUID is nil (upgrade case), save it and return success.
+	if devices.BaseDeviceUUID == "" {
+		if err := devices.saveBaseDeviceUUID(baseInfo); err != nil {
+			return fmt.Errorf("Could not query and save base device UUID:%v", err)
+		}
+		return nil
+	}
+
+	if err := devices.verifyBaseDeviceUUID(baseInfo); err != nil {
+		return fmt.Errorf("Base Device UUID verification failed. Possibly using a different thin pool than last invocation:%v", err)
+	}
+
+	return nil
+}
+
 func (devices *DeviceSet) setupBaseImage() error {
 	oldInfo, _ := devices.lookupDeviceWithLock("")
-	if oldInfo != nil && oldInfo.Initialized {
-		// If BaseDeviceUUID is nil (upgrade case), save it and
-		// return success.
-		if devices.BaseDeviceUUID == "" {
-			if err := devices.saveBaseDeviceUUID(oldInfo); err != nil {
-				return fmt.Errorf("Could not query and save base device UUID:%v", err)
+
+	// base image already exists. If it is initialized properly, do UUID
+	// verification and return. Otherwise remove image and set it up
+	// fresh.
+
+	if oldInfo != nil {
+		if oldInfo.Initialized {
+			if err := devices.setupVerifyBaseImageUUID(oldInfo); err != nil {
+				return err
 			}
-			return nil
-		}
 
-		if err := devices.verifyBaseDeviceUUID(oldInfo); err != nil {
-			return fmt.Errorf("Base Device UUID verification failed. Possibly using a different thin pool than last invocation:%v", err)
+			return nil
 		}
-		return nil
-	}
 
-	if oldInfo != nil && !oldInfo.Initialized {
 		logrus.Debugf("Removing uninitialized base image")
 		if err := devices.DeleteDevice(""); err != nil {
 			return err
 		}
 	}
 
+	// If we are setting up base image for the first time, make sure
+	// thin pool is empty.
 	if devices.thinPoolDevice != "" && oldInfo == nil {
 		if err := devices.checkThinPool(); err != nil {
 			return err