mirror of
https://github.com/minio/minio.git
synced 2024-12-25 14:45:54 -05:00
da3a53376c
When server is run with multiple disks which uses xl interface where order and count of disks are important, this patch saves such disks configuration and compares in next run if there is a mismatch. Fixes #1458
112 lines
2.8 KiB
Go
112 lines
2.8 KiB
Go
/*
|
|
* Minio Cloud Storage, (C) 2015, 2016 Minio, Inc.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
package main
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
|
|
"github.com/minio/go-homedir"
|
|
)
|
|
|
|
// configPath for custom config path only for testing purposes
|
|
var customConfigPath string
|
|
|
|
// Sets a new config path.
|
|
func setGlobalConfigPath(configPath string) {
|
|
customConfigPath = configPath
|
|
}
|
|
|
|
// getConfigPath get server config path
|
|
func getConfigPath() (string, error) {
|
|
if customConfigPath != "" {
|
|
return customConfigPath, nil
|
|
}
|
|
homeDir, err := homedir.Dir()
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
configPath := filepath.Join(homeDir, globalMinioConfigDir)
|
|
return configPath, nil
|
|
}
|
|
|
|
// mustGetConfigPath must get server config path.
|
|
func mustGetConfigPath() string {
|
|
configPath, err := getConfigPath()
|
|
fatalIf(err, "Unable to get config path.", nil)
|
|
return configPath
|
|
}
|
|
|
|
// createConfigPath create server config path.
|
|
func createConfigPath() error {
|
|
configPath, err := getConfigPath()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return os.MkdirAll(configPath, 0700)
|
|
}
|
|
|
|
// isConfigFileExists - returns true if config file exists.
|
|
func isConfigFileExists() bool {
|
|
st, err := os.Stat(mustGetConfigFile())
|
|
// If file exists and is regular return true.
|
|
if err == nil && st.Mode().IsRegular() {
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// mustGetConfigFile must get server config file.
|
|
func mustGetConfigFile() string {
|
|
configFile, err := getConfigFile()
|
|
fatalIf(err, "Unable to get config file.", nil)
|
|
|
|
return configFile
|
|
}
|
|
|
|
// getConfigFile get server config file.
|
|
func getConfigFile() (string, error) {
|
|
configPath, err := getConfigPath()
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return filepath.Join(configPath, globalMinioConfigFile), nil
|
|
}
|
|
|
|
// isFormatConfigFileExists - returns true if format config file exists.
|
|
func isFormatConfigFileExists() bool {
|
|
st, err := os.Stat(mustGetFormatConfigFile())
|
|
return (err == nil && st.Mode().IsRegular())
|
|
}
|
|
|
|
// mustGetFormatConfigFile must get format config file.
|
|
func mustGetFormatConfigFile() string {
|
|
configFile, err := getFormatConfigFile()
|
|
fatalIf(err, "Unable to get format config file.", nil)
|
|
|
|
return configFile
|
|
}
|
|
|
|
// getFormatConfigFile get format config file.
|
|
func getFormatConfigFile() (string, error) {
|
|
configPath, err := getConfigPath()
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return filepath.Join(configPath, globalMinioFormatConfigFile), nil
|
|
}
|