(volumeFolders, maxVolumeCounts, volumeWhiteListOption string, minFreeSpaces []util.MinFreeSpace)
| 289 | } |
| 290 | |
| 291 | func (v VolumeServerOptions) startVolumeServer(volumeFolders, maxVolumeCounts, volumeWhiteListOption string, minFreeSpaces []util.MinFreeSpace) { |
| 292 | v.setDiskIOProbeDefaults() |
| 293 | |
| 294 | // Set multiple folders and each folder's max volume count limit' |
| 295 | v.folders = strings.Split(volumeFolders, ",") |
| 296 | for i, folder := range v.folders { |
| 297 | v.folders[i] = util.ResolvePath(folder) |
| 298 | if err := util.TestFolderWritable(v.folders[i]); err != nil { |
| 299 | glog.Fatalf("Check Data Folder(-dir) Writable %s : %s", v.folders[i], err) |
| 300 | } |
| 301 | } |
| 302 | |
| 303 | // set max |
| 304 | maxCountStrings := strings.Split(maxVolumeCounts, ",") |
| 305 | for _, maxString := range maxCountStrings { |
| 306 | if max, e := strconv.ParseInt(maxString, 10, 64); e == nil { |
| 307 | v.folderMaxLimits = append(v.folderMaxLimits, int32(max)) |
| 308 | } else { |
| 309 | glog.Fatalf("The max specified in -max not a valid number %s", maxString) |
| 310 | } |
| 311 | } |
| 312 | if len(v.folderMaxLimits) == 1 && len(v.folders) > 1 { |
| 313 | for i := 0; i < len(v.folders)-1; i++ { |
| 314 | v.folderMaxLimits = append(v.folderMaxLimits, v.folderMaxLimits[0]) |
| 315 | } |
| 316 | } |
| 317 | if len(v.folders) != len(v.folderMaxLimits) { |
| 318 | glog.Fatalf("%d directories by -dir, but only %d max is set by -max", len(v.folders), len(v.folderMaxLimits)) |
| 319 | } |
| 320 | |
| 321 | if len(minFreeSpaces) == 1 && len(v.folders) > 1 { |
| 322 | for i := 0; i < len(v.folders)-1; i++ { |
| 323 | minFreeSpaces = append(minFreeSpaces, minFreeSpaces[0]) |
| 324 | } |
| 325 | } |
| 326 | if len(v.folders) != len(minFreeSpaces) { |
| 327 | glog.Fatalf("%d directories by -dir, but only %d minFreeSpacePercent is set by -minFreeSpacePercent", len(v.folders), len(minFreeSpaces)) |
| 328 | } |
| 329 | |
| 330 | // set disk types |
| 331 | var diskTypes []types.DiskType |
| 332 | diskTypeStrings := strings.Split(*v.diskType, ",") |
| 333 | for _, diskTypeString := range diskTypeStrings { |
| 334 | diskTypes = append(diskTypes, types.ToDiskType(diskTypeString)) |
| 335 | } |
| 336 | if len(diskTypes) == 1 && len(v.folders) > 1 { |
| 337 | for i := 0; i < len(v.folders)-1; i++ { |
| 338 | diskTypes = append(diskTypes, diskTypes[0]) |
| 339 | } |
| 340 | } |
| 341 | if len(v.folders) != len(diskTypes) { |
| 342 | glog.Fatalf("%d directories by -dir, but only %d disk types is set by -disk", len(v.folders), len(diskTypes)) |
| 343 | } |
| 344 | |
| 345 | var tagsArg string |
| 346 | if v.tags != nil { |
| 347 | tagsArg = *v.tags |
| 348 | } |
no test coverage detected