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

     1  // Copyright 2017 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package dummy
     5  
     6  import "github.com/juju/juju/storage"
     7  
     8  // StorageProviders returns a provider registry with some
     9  // well-defined dummy storage providers.
    10  func StorageProviders() storage.ProviderRegistry {
    11  	return storage.StaticProviderRegistry{
    12  		map[storage.ProviderType]storage.Provider{
    13  			"static": &StorageProvider{IsDynamic: false},
    14  			"modelscoped": &StorageProvider{
    15  				StorageScope: storage.ScopeEnviron,
    16  				IsDynamic:    true,
    17  				IsReleasable: true,
    18  			},
    19  			"modelscoped-unreleasable": &StorageProvider{
    20  				StorageScope: storage.ScopeEnviron,
    21  				IsDynamic:    true,
    22  				IsReleasable: false,
    23  			},
    24  			"modelscoped-block": &StorageProvider{
    25  				StorageScope: storage.ScopeEnviron,
    26  				IsDynamic:    true,
    27  				IsReleasable: true,
    28  				SupportsFunc: func(k storage.StorageKind) bool {
    29  					return k == storage.StorageKindBlock
    30  				},
    31  			},
    32  			"machinescoped": &StorageProvider{
    33  				StorageScope: storage.ScopeMachine,
    34  				IsDynamic:    true,
    35  			},
    36  		},
    37  	}
    38  }