Skip to content

Commit

Permalink
Merge pull request #116 from dave-tucker/server
Browse files Browse the repository at this point in the history
In-Memory Server
  • Loading branch information
dave-tucker authored Jun 9, 2021
2 parents b105494 + 0d7102e commit 93508a6
Show file tree
Hide file tree
Showing 30 changed files with 3,897 additions and 250 deletions.
371 changes: 316 additions & 55 deletions cache/cache.go

Large diffs are not rendered by default.

439 changes: 401 additions & 38 deletions cache/cache_test.go

Large diffs are not rendered by default.

59 changes: 37 additions & 22 deletions client/api_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (
)

func TestAPIListSimple(t *testing.T) {
tcache := apiTestCache(t)

lscacheList := []model.Model{
&testLogicalSwitch{
UUID: aUUID0,
Expand Down Expand Up @@ -40,9 +40,10 @@ func TestAPIListSimple(t *testing.T) {
for i := range lscacheList {
lscache[lscacheList[i].(*testLogicalSwitch).UUID] = lscacheList[i]
}
tcache.Set("Logical_Switch", cache.NewRowCache(lscache))
tcache.Set("Logical_Switch_Port", nil) // empty

testData := cache.CacheData{
"Logical_Switch": lscache,
}
tcache := apiTestCache(t, testData)
test := []struct {
name string
initialCap int
Expand Down Expand Up @@ -121,7 +122,6 @@ func TestAPIListSimple(t *testing.T) {
}

func TestAPIListPredicate(t *testing.T) {
tcache := apiTestCache(t)
lscacheList := []model.Model{
&testLogicalSwitch{
UUID: aUUID0,
Expand Down Expand Up @@ -149,7 +149,10 @@ func TestAPIListPredicate(t *testing.T) {
for i := range lscacheList {
lscache[lscacheList[i].(*testLogicalSwitch).UUID] = lscacheList[i]
}
tcache.Set("Logical_Switch", cache.NewRowCache(lscache))
testData := cache.CacheData{
"Logical_Switch": lscache,
}
tcache := apiTestCache(t, testData)

test := []struct {
name string
Expand Down Expand Up @@ -214,7 +217,6 @@ func TestAPIListPredicate(t *testing.T) {
}

func TestAPIListFields(t *testing.T) {
tcache := apiTestCache(t)
lspcacheList := []model.Model{
&testLogicalSwitchPort{
UUID: aUUID0,
Expand Down Expand Up @@ -245,7 +247,10 @@ func TestAPIListFields(t *testing.T) {
for i := range lspcacheList {
lspcache[lspcacheList[i].(*testLogicalSwitchPort).UUID] = lspcacheList[i]
}
tcache.Set("Logical_Switch_Port", cache.NewRowCache(lspcache))
testData := cache.CacheData{
"Logical_Switch_Port": lspcache,
}
tcache := apiTestCache(t, testData)

testObj := testLogicalSwitchPort{}

Expand Down Expand Up @@ -339,7 +344,7 @@ func TestConditionFromFunc(t *testing.T) {

for _, tt := range test {
t.Run(fmt.Sprintf("conditionFromFunc: %s", tt.name), func(t *testing.T) {
cache := apiTestCache(t)
cache := apiTestCache(t, nil)
apiIface := newAPI(cache)
condition := apiIface.(api).conditionFromFunc(tt.arg)
if tt.err {
Expand Down Expand Up @@ -398,7 +403,7 @@ func TestConditionFromModel(t *testing.T) {

for _, tt := range test {
t.Run(fmt.Sprintf("conditionFromModel: %s", tt.name), func(t *testing.T) {
cache := apiTestCache(t)
cache := apiTestCache(t, nil)
apiIface := newAPI(cache)
condition := apiIface.(api).conditionFromModel(false, tt.model, tt.conds...)
if tt.err {
Expand All @@ -416,7 +421,6 @@ func TestConditionFromModel(t *testing.T) {
}

func TestAPIGet(t *testing.T) {
tcache := apiTestCache(t)
lsCacheList := []model.Model{}
lspCacheList := []model.Model{
&testLogicalSwitchPort{
Expand All @@ -440,8 +444,11 @@ func TestAPIGet(t *testing.T) {
for i := range lspCacheList {
lspCache[lspCacheList[i].(*testLogicalSwitchPort).UUID] = lspCacheList[i]
}
tcache.Set("Logical_Switch", cache.NewRowCache(lsCache))
tcache.Set("Logical_Switch_Port", cache.NewRowCache(lspCache))
testData := cache.CacheData{
"Logical_Switch": lsCache,
"Logical_Switch_Port": lspCache,
}
tcache := apiTestCache(t, testData)

test := []struct {
name string
Expand Down Expand Up @@ -496,7 +503,6 @@ func TestAPIGet(t *testing.T) {
}

func TestAPICreate(t *testing.T) {
tcache := apiTestCache(t)
lsCacheList := []model.Model{}
lspCacheList := []model.Model{
&testLogicalSwitchPort{
Expand All @@ -520,8 +526,11 @@ func TestAPICreate(t *testing.T) {
for i := range lspCacheList {
lspCache[lspCacheList[i].(*testLogicalSwitchPort).UUID] = lspCacheList[i]
}
tcache.Set("Logical_Switch", cache.NewRowCache(lsCache))
tcache.Set("Logical_Switch_Port", cache.NewRowCache(lspCache))
testData := cache.CacheData{
"Logical_Switch": lsCache,
"Logical_Switch_Port": lspCache,
}
tcache := apiTestCache(t, testData)

rowFoo := ovsdb.Row(map[string]interface{}{"name": "foo"})
rowBar := ovsdb.Row(map[string]interface{}{"name": "bar"})
Expand Down Expand Up @@ -609,7 +618,6 @@ func TestAPICreate(t *testing.T) {
}

func TestAPIMutate(t *testing.T) {
tcache := apiTestCache(t)
lspCache := map[string]model.Model{
aUUID0: &testLogicalSwitchPort{
UUID: aUUID0,
Expand All @@ -634,7 +642,10 @@ func TestAPIMutate(t *testing.T) {
Tag: []int{1},
},
}
tcache.Set("Logical_Switch_Port", cache.NewRowCache(lspCache))
testData := cache.CacheData{
"Logical_Switch_Port": lspCache,
}
tcache := apiTestCache(t, testData)

testObj := testLogicalSwitchPort{}

Expand Down Expand Up @@ -776,7 +787,6 @@ func TestAPIMutate(t *testing.T) {
}

func TestAPIUpdate(t *testing.T) {
tcache := apiTestCache(t)
lspCache := map[string]model.Model{
aUUID0: &testLogicalSwitchPort{
UUID: aUUID0,
Expand All @@ -802,7 +812,10 @@ func TestAPIUpdate(t *testing.T) {
Tag: []int{1},
},
}
tcache.Set("Logical_Switch_Port", cache.NewRowCache(lspCache))
testData := cache.CacheData{
"Logical_Switch_Port": lspCache,
}
tcache := apiTestCache(t, testData)

testObj := testLogicalSwitchPort{}
testRow := ovsdb.Row(map[string]interface{}{"type": "somethingElse", "tag": testOvsSet(t, []int{6})})
Expand Down Expand Up @@ -1022,7 +1035,6 @@ func TestAPIUpdate(t *testing.T) {
}

func TestAPIDelete(t *testing.T) {
tcache := apiTestCache(t)
lspCache := map[string]model.Model{
aUUID0: &testLogicalSwitchPort{
UUID: aUUID0,
Expand All @@ -1048,7 +1060,10 @@ func TestAPIDelete(t *testing.T) {
Tag: []int{1},
},
}
tcache.Set("Logical_Switch_Port", cache.NewRowCache(lspCache))
testData := cache.CacheData{
"Logical_Switch_Port": lspCache,
}
tcache := apiTestCache(t, testData)

test := []struct {
name string
Expand Down
4 changes: 2 additions & 2 deletions client/api_test_model.go
Original file line number Diff line number Diff line change
Expand Up @@ -153,13 +153,13 @@ func (*testLogicalSwitchPort) Table() string {
return "Logical_Switch_Port"
}

func apiTestCache(t *testing.T) *cache.TableCache {
func apiTestCache(t *testing.T, data map[string]map[string]model.Model) *cache.TableCache {
var schema ovsdb.DatabaseSchema
err := json.Unmarshal(apiTestSchema, &schema)
assert.Nil(t, err)
db, err := model.NewDBModel("OVN_NorthBound", map[string]model.Model{"Logical_Switch": &testLogicalSwitch{}, "Logical_Switch_Port": &testLogicalSwitchPort{}})
assert.Nil(t, err)
cache, err := cache.NewTableCache(&schema, db)
cache, err := cache.NewTableCache(&schema, db, data)
assert.Nil(t, err)
return cache
}
2 changes: 1 addition & 1 deletion client/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ func newRPC2Client(conn net.Conn, database *model.DBModel) (*OvsdbClient, error)

if err == nil {
ovs.Schema = *schema
if cache, err := cache.NewTableCache(schema, database); err == nil {
if cache, err := cache.NewTableCache(schema, database, nil); err == nil {
ovs.Cache = cache
ovs.Register(ovs.Cache)
ovs.api = newAPI(ovs.Cache)
Expand Down
18 changes: 12 additions & 6 deletions client/condition_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import (
)

func TestEqualityConditional(t *testing.T) {
tcache := apiTestCache(t)
lspcacheList := []model.Model{
&testLogicalSwitchPort{
UUID: aUUID0,
Expand Down Expand Up @@ -42,7 +41,10 @@ func TestEqualityConditional(t *testing.T) {
for i := range lspcacheList {
lspcache[lspcacheList[i].(*testLogicalSwitchPort).UUID] = lspcacheList[i]
}
tcache.Set("Logical_Switch_Port", cache.NewRowCache(lspcache))
testData := cache.CacheData{
"Logical_Switch_Port": lspcache,
}
tcache := apiTestCache(t, testData)

test := []struct {
name string
Expand Down Expand Up @@ -149,7 +151,6 @@ func TestEqualityConditional(t *testing.T) {
}

func TestPredicateConditional(t *testing.T) {
tcache := apiTestCache(t)
lspcacheList := []model.Model{
&testLogicalSwitchPort{
UUID: aUUID0,
Expand Down Expand Up @@ -180,7 +181,10 @@ func TestPredicateConditional(t *testing.T) {
for i := range lspcacheList {
lspcache[lspcacheList[i].(*testLogicalSwitchPort).UUID] = lspcacheList[i]
}
tcache.Set("Logical_Switch_Port", cache.NewRowCache(lspcache))
testData := cache.CacheData{
"Logical_Switch_Port": lspcache,
}
tcache := apiTestCache(t, testData)

test := []struct {
name string
Expand Down Expand Up @@ -256,7 +260,6 @@ func TestPredicateConditional(t *testing.T) {
}

func TestExplicitConditional(t *testing.T) {
tcache := apiTestCache(t)
lspcacheList := []model.Model{
&testLogicalSwitchPort{
UUID: aUUID0,
Expand Down Expand Up @@ -287,7 +290,10 @@ func TestExplicitConditional(t *testing.T) {
for i := range lspcacheList {
lspcache[lspcacheList[i].(*testLogicalSwitchPort).UUID] = lspcacheList[i]
}
tcache.Set("Logical_Switch_Port", cache.NewRowCache(lspcache))
testData := cache.CacheData{
"Logical_Switch_Port": lspcache,
}
tcache := apiTestCache(t, testData)

testObj := &testLogicalSwitchPort{}

Expand Down
Loading

0 comments on commit 93508a6

Please sign in to comment.