github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/storage/provider/common.go (about)

     1  // Copyright 2015 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package provider
     5  
     6  import (
     7  	"github.com/juju/errors"
     8  
     9  	"github.com/juju/juju/storage"
    10  )
    11  
    12  var (
    13  	errNoMountPoint = errors.New("filesystem mount point not specified")
    14  
    15  	commonStorageProviders = map[storage.ProviderType]storage.Provider{
    16  		LoopProviderType:   &loopProvider{logAndExec},
    17  		RootfsProviderType: &rootfsProvider{logAndExec},
    18  		TmpfsProviderType:  &tmpfsProvider{logAndExec},
    19  	}
    20  )
    21  
    22  // CommonStorageProviders returns a storage.ProviderRegistry that contains
    23  // the common storage providers.
    24  func CommonStorageProviders() storage.ProviderRegistry {
    25  	return storage.StaticProviderRegistry{Providers: commonStorageProviders}
    26  }
    27  
    28  // ValidateConfig performs storage provider config validation, including
    29  // any common validation.
    30  func ValidateConfig(p storage.Provider, cfg *storage.Config) error {
    31  	return p.ValidateConfig(cfg)
    32  }