+
+func parseStorageClassesConfirmedHeader(hdr string) (map[string]int, error) {
+ if hdr == "" {
+ return nil, nil
+ }
+ classesStored := map[string]int{}
+ for _, cr := range strings.Split(hdr, ",") {
+ cr = strings.TrimSpace(cr)
+ if cr == "" {
+ continue
+ }
+ fields := strings.SplitN(cr, "=", 2)
+ if len(fields) != 2 {
+ return nil, fmt.Errorf("expected exactly one '=' char in entry %q", cr)
+ }
+ className := fields[0]
+ if className == "" {
+ return nil, fmt.Errorf("empty class name in entry %q", cr)
+ }
+ replicas, err := strconv.Atoi(fields[1])
+ if err != nil || replicas < 1 {
+ return nil, fmt.Errorf("invalid replica count %q", fields[1])
+ }
+ classesStored[className] = replicas
+ }
+ return classesStored, nil
+}