Ignore permission errors on config-dir (#6894)

master
Harshavardhana 6 years ago committed by kannappanr
parent bef7c01c58
commit 26120d7838
  1. 6
      cmd/certs.go
  2. 3
      cmd/certs_test.go
  3. 10
      cmd/config-dir.go

@ -71,9 +71,13 @@ func getRootCAs(certsCAsDir string) (*x509.CertPool, error) {
// Get all CA file names. // Get all CA file names.
var caFiles []string var caFiles []string
fis, err := readDir(certsCAsDir) fis, err := readDir(certsCAsDir)
if err != nil { if err != nil && err != errFileNotFound {
return nil, err return nil, err
} }
// Return success if CA's directory is missing.
if err == errFileNotFound {
return nil, nil
}
for _, fi := range fis { for _, fi := range fis {
// Skip all directories. // Skip all directories.
if hasSuffix(fi, slashSeparator) { if hasSuffix(fi, slashSeparator) {

@ -223,7 +223,8 @@ func TestGetRootCAs(t *testing.T) {
certCAsDir string certCAsDir string
expectedErr error expectedErr error
}{ }{
{"nonexistent-dir", errFileNotFound}, // ignores non-existent directories.
{"nonexistent-dir", nil},
// Ignores directories. // Ignores directories.
{dir1, nil}, {dir1, nil},
// Ignore empty directory. // Ignore empty directory.

@ -74,7 +74,15 @@ func (config *ConfigDir) GetCADir() string {
// Create - creates configuration directory tree. // Create - creates configuration directory tree.
func (config *ConfigDir) Create() error { func (config *ConfigDir) Create() error {
return os.MkdirAll(config.GetCADir(), 0700) err := os.MkdirAll(config.GetCADir(), 0700)
// It is possible in kubernetes like deployments this directory
// is already mounted and is not writable, ignore any write errors.
if err != nil {
if os.IsPermission(err) {
err = nil
}
}
return err
} }
// GetMinioConfigFile - returns absolute path of config.json file. // GetMinioConfigFile - returns absolute path of config.json file.

Loading…
Cancel
Save