parent
f1dbdbd234
commit
d0c4334834
@ -0,0 +1,30 @@ |
||||
package featureflags |
||||
|
||||
import ( |
||||
"sync" |
||||
) |
||||
|
||||
var features = make(map[string]bool) |
||||
var lock = &sync.RWMutex{} |
||||
|
||||
// Get feature will return true if the feature is enabled, otherwise false
|
||||
func Get(feature string) bool { |
||||
lock.RLock() |
||||
defer lock.RUnlock() |
||||
res := features[feature] |
||||
return res |
||||
} |
||||
|
||||
// Enable a feature
|
||||
func Enable(feature string) { |
||||
lock.Lock() |
||||
defer lock.Unlock() |
||||
features[feature] = true |
||||
} |
||||
|
||||
// Disable a feature
|
||||
func Disable(feature string) { |
||||
lock.Lock() |
||||
defer lock.Unlock() |
||||
features[feature] = false |
||||
} |
@ -0,0 +1,22 @@ |
||||
package featureflags |
||||
|
||||
import ( |
||||
"testing" |
||||
) |
||||
|
||||
func TestFeatureFlag(t *testing.T) { |
||||
foo := Get("foo") |
||||
if foo { |
||||
t.Fail() |
||||
} |
||||
Enable("foo") |
||||
foo = Get("foo") |
||||
if !foo { |
||||
t.Fail() |
||||
} |
||||
Disable("foo") |
||||
foo = Get("foo") |
||||
if foo { |
||||
t.Fail() |
||||
} |
||||
} |
@ -0,0 +1,6 @@ |
||||
package featureflags |
||||
|
||||
const ( |
||||
// MultipartPutObject ...
|
||||
MultipartPutObject = "minio.multipart_put_object" |
||||
) |
Loading…
Reference in new issue