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