Prepare boltutil for reading and writing another map
Refactor the code so that another function can also read and write maps into the bolt db. Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
This commit is contained in:
		| @@ -32,7 +32,11 @@ var ( | |||||||
| // ReadLabels reads the labels key from the bucket | // ReadLabels reads the labels key from the bucket | ||||||
| // Uses the key "labels" | // Uses the key "labels" | ||||||
| func ReadLabels(bkt *bolt.Bucket) (map[string]string, error) { | func ReadLabels(bkt *bolt.Bucket) (map[string]string, error) { | ||||||
| 	lbkt := bkt.Bucket(bucketKeyLabels) | 	return readMap(bkt, bucketKeyLabels) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func readMap(bkt *bolt.Bucket, bucketName []byte) (map[string]string, error) { | ||||||
|  | 	lbkt := bkt.Bucket(bucketName) | ||||||
| 	if lbkt == nil { | 	if lbkt == nil { | ||||||
| 		return nil, nil | 		return nil, nil | ||||||
| 	} | 	} | ||||||
| @@ -53,9 +57,13 @@ func ReadLabels(bkt *bolt.Bucket) (map[string]string, error) { | |||||||
| // bucket. Typically, this removes zero-value entries. | // bucket. Typically, this removes zero-value entries. | ||||||
| // Uses the key "labels" | // Uses the key "labels" | ||||||
| func WriteLabels(bkt *bolt.Bucket, labels map[string]string) error { | func WriteLabels(bkt *bolt.Bucket, labels map[string]string) error { | ||||||
|  | 	return writeMap(bkt, bucketKeyLabels, labels) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func writeMap(bkt *bolt.Bucket, bucketName []byte, labels map[string]string) error { | ||||||
| 	// Remove existing labels to keep from merging | 	// Remove existing labels to keep from merging | ||||||
| 	if lbkt := bkt.Bucket(bucketKeyLabels); lbkt != nil { | 	if lbkt := bkt.Bucket(bucketName); lbkt != nil { | ||||||
| 		if err := bkt.DeleteBucket(bucketKeyLabels); err != nil { | 		if err := bkt.DeleteBucket(bucketName); err != nil { | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| @@ -64,7 +72,7 @@ func WriteLabels(bkt *bolt.Bucket, labels map[string]string) error { | |||||||
| 		return nil | 		return nil | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	lbkt, err := bkt.CreateBucket(bucketKeyLabels) | 	lbkt, err := bkt.CreateBucket(bucketName) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Stefan Berger
					Stefan Berger