mirror of
https://github.com/nikdoof/vsphere-influxdb-go.git
synced 2025-12-21 14:39:22 +00:00
add vendoring with go dep
This commit is contained in:
204
vendor/github.com/influxdata/influxdb/services/meta/data_test.go
generated
vendored
Normal file
204
vendor/github.com/influxdata/influxdb/services/meta/data_test.go
generated
vendored
Normal file
@@ -0,0 +1,204 @@
|
||||
package meta_test
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/influxdata/influxdb/influxql"
|
||||
|
||||
"github.com/influxdata/influxdb/services/meta"
|
||||
)
|
||||
|
||||
func Test_Data_DropDatabase(t *testing.T) {
|
||||
data := &meta.Data{
|
||||
Databases: []meta.DatabaseInfo{
|
||||
{Name: "db0"},
|
||||
{Name: "db1"},
|
||||
{Name: "db2"},
|
||||
{Name: "db4"},
|
||||
{Name: "db5"},
|
||||
},
|
||||
Users: []meta.UserInfo{
|
||||
{Name: "user1", Privileges: map[string]influxql.Privilege{"db1": influxql.ReadPrivilege, "db2": influxql.ReadPrivilege}},
|
||||
{Name: "user2", Privileges: map[string]influxql.Privilege{"db2": influxql.ReadPrivilege}},
|
||||
},
|
||||
}
|
||||
|
||||
// Dropping the first database removes it from the Data object.
|
||||
expDbs := make([]meta.DatabaseInfo, 4)
|
||||
copy(expDbs, data.Databases[1:])
|
||||
if err := data.DropDatabase("db0"); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if got, exp := data.Databases, expDbs; !reflect.DeepEqual(got, exp) {
|
||||
t.Fatalf("got %v, expected %v", got, exp)
|
||||
}
|
||||
|
||||
// Dropping a middle database removes it from the data object.
|
||||
expDbs = []meta.DatabaseInfo{{Name: "db1"}, {Name: "db2"}, {Name: "db5"}}
|
||||
if err := data.DropDatabase("db4"); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if got, exp := data.Databases, expDbs; !reflect.DeepEqual(got, exp) {
|
||||
t.Fatalf("got %v, expected %v", got, exp)
|
||||
}
|
||||
|
||||
// Dropping the last database removes it from the data object.
|
||||
expDbs = []meta.DatabaseInfo{{Name: "db1"}, {Name: "db2"}}
|
||||
if err := data.DropDatabase("db5"); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if got, exp := data.Databases, expDbs; !reflect.DeepEqual(got, exp) {
|
||||
t.Fatalf("got %v, expected %v", got, exp)
|
||||
}
|
||||
|
||||
// Dropping a database also drops all the user privileges associated with
|
||||
// it.
|
||||
expUsers := []meta.UserInfo{
|
||||
{Name: "user1", Privileges: map[string]influxql.Privilege{"db1": influxql.ReadPrivilege}},
|
||||
{Name: "user2", Privileges: map[string]influxql.Privilege{}},
|
||||
}
|
||||
if err := data.DropDatabase("db2"); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if got, exp := data.Users, expUsers; !reflect.DeepEqual(got, exp) {
|
||||
t.Fatalf("got %v, expected %v", got, exp)
|
||||
}
|
||||
}
|
||||
|
||||
func Test_Data_CreateRetentionPolicy(t *testing.T) {
|
||||
data := meta.Data{}
|
||||
|
||||
err := data.CreateDatabase("foo")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
err = data.CreateRetentionPolicy("foo", &meta.RetentionPolicyInfo{
|
||||
Name: "bar",
|
||||
ReplicaN: 1,
|
||||
Duration: 24 * time.Hour,
|
||||
}, false)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
rp, err := data.RetentionPolicy("foo", "bar")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if rp == nil {
|
||||
t.Fatal("creation of retention policy failed")
|
||||
}
|
||||
|
||||
// Try to recreate the same RP with default set to true, should fail
|
||||
err = data.CreateRetentionPolicy("foo", &meta.RetentionPolicyInfo{
|
||||
Name: "bar",
|
||||
ReplicaN: 1,
|
||||
Duration: 24 * time.Hour,
|
||||
}, true)
|
||||
if err == nil || err != meta.ErrRetentionPolicyConflict {
|
||||
t.Fatalf("unexpected error. got: %v, exp: %s", err, meta.ErrRetentionPolicyConflict)
|
||||
}
|
||||
|
||||
// Creating the same RP with the same specifications should succeed
|
||||
err = data.CreateRetentionPolicy("foo", &meta.RetentionPolicyInfo{
|
||||
Name: "bar",
|
||||
ReplicaN: 1,
|
||||
Duration: 24 * time.Hour,
|
||||
}, false)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestData_AdminUserExists(t *testing.T) {
|
||||
data := meta.Data{}
|
||||
|
||||
// No users means no admin.
|
||||
if data.AdminUserExists() {
|
||||
t.Fatal("no admin user should exist")
|
||||
}
|
||||
|
||||
// Add a non-admin user.
|
||||
if err := data.CreateUser("user1", "a", false); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if got, exp := data.AdminUserExists(), false; got != exp {
|
||||
t.Fatalf("got %v, expected %v", got, exp)
|
||||
}
|
||||
|
||||
// Add an admin user.
|
||||
if err := data.CreateUser("admin1", "a", true); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if got, exp := data.AdminUserExists(), true; got != exp {
|
||||
t.Fatalf("got %v, expected %v", got, exp)
|
||||
}
|
||||
|
||||
// Remove the original user
|
||||
if err := data.DropUser("user1"); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if got, exp := data.AdminUserExists(), true; got != exp {
|
||||
t.Fatalf("got %v, expected %v", got, exp)
|
||||
}
|
||||
|
||||
// Add another admin
|
||||
if err := data.CreateUser("admin2", "a", true); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if got, exp := data.AdminUserExists(), true; got != exp {
|
||||
t.Fatalf("got %v, expected %v", got, exp)
|
||||
}
|
||||
|
||||
// Revoke privileges of the first admin
|
||||
if err := data.SetAdminPrivilege("admin1", false); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if got, exp := data.AdminUserExists(), true; got != exp {
|
||||
t.Fatalf("got %v, expected %v", got, exp)
|
||||
}
|
||||
|
||||
// Add user1 back.
|
||||
if err := data.CreateUser("user1", "a", false); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
// Revoke remaining admin.
|
||||
if err := data.SetAdminPrivilege("admin2", false); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
// No longer any admins
|
||||
if got, exp := data.AdminUserExists(), false; got != exp {
|
||||
t.Fatalf("got %v, expected %v", got, exp)
|
||||
}
|
||||
|
||||
// Make user1 an admin
|
||||
if err := data.SetAdminPrivilege("user1", true); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if got, exp := data.AdminUserExists(), true; got != exp {
|
||||
t.Fatalf("got %v, expected %v", got, exp)
|
||||
}
|
||||
|
||||
// Drop user1...
|
||||
if err := data.DropUser("user1"); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if got, exp := data.AdminUserExists(), false; got != exp {
|
||||
t.Fatalf("got %v, expected %v", got, exp)
|
||||
}
|
||||
}
|
||||
|
||||
func TestUserInfo_AuthorizeDatabase(t *testing.T) {
|
||||
emptyUser := &meta.UserInfo{}
|
||||
if !emptyUser.AuthorizeDatabase(influxql.NoPrivileges, "anydb") {
|
||||
t.Fatal("expected NoPrivileges to be authorized but it wasn't")
|
||||
}
|
||||
if emptyUser.AuthorizeDatabase(influxql.ReadPrivilege, "anydb") {
|
||||
t.Fatal("expected ReadPrivilege to prevent authorization, but it was authorized")
|
||||
}
|
||||
|
||||
adminUser := &meta.UserInfo{Admin: true}
|
||||
if !adminUser.AuthorizeDatabase(influxql.AllPrivileges, "anydb") {
|
||||
t.Fatalf("expected admin to be authorized but it wasn't")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user