func (v *VolumeEntry) createVolume(db *bolt.DB, executor executors.Executor, brick_entries []*BrickEntry) error { godbc.Require(db != nil) godbc.Require(brick_entries != nil) // Create a volume request for executor with // the bricks allocated vr, host, err := v.createVolumeRequest(db, brick_entries) if err != nil { return err } // Create the volume _, err = executor.VolumeCreate(host, vr) if err != nil { return err } // Get all brick hosts stringset := utils.NewStringSet() for _, brick := range vr.Bricks { stringset.Add(brick.Host) } hosts := stringset.Strings() v.Info.Mount.GlusterFS.Hosts = hosts // Save volume information v.Info.Mount.GlusterFS.MountPoint = fmt.Sprintf("%v:%v", hosts[0], vr.Name) // Set glusterfs mount volfile-servers options v.Info.Mount.GlusterFS.Options = make(map[string]string) v.Info.Mount.GlusterFS.Options["backup-volfile-servers"] = strings.Join(hosts[1:], ",") godbc.Ensure(v.Info.Mount.GlusterFS.MountPoint != "") return nil }