mirror of
https://github.com/rancher/steve.git
synced 2025-09-18 08:20:36 +00:00
Shuffle around code and use rancher/apiserver
This commit is contained in:
61
pkg/stores/switchschema/store.go
Normal file
61
pkg/stores/switchschema/store.go
Normal file
@@ -0,0 +1,61 @@
|
||||
package switchschema
|
||||
|
||||
import (
|
||||
"github.com/rancher/apiserver/pkg/types"
|
||||
)
|
||||
|
||||
type Store struct {
|
||||
Schema *types.APISchema
|
||||
}
|
||||
|
||||
func (e *Store) Delete(apiOp *types.APIRequest, oldSchema *types.APISchema, id string) (types.APIObject, error) {
|
||||
obj, err := e.Schema.Store.Delete(apiOp, e.Schema, id)
|
||||
obj.Type = oldSchema.ID
|
||||
return obj, err
|
||||
}
|
||||
|
||||
func (e *Store) ByID(apiOp *types.APIRequest, oldSchema *types.APISchema, id string) (types.APIObject, error) {
|
||||
obj, err := e.Schema.Store.ByID(apiOp, e.Schema, id)
|
||||
obj.Type = oldSchema.ID
|
||||
return obj, err
|
||||
}
|
||||
|
||||
func (e *Store) List(apiOp *types.APIRequest, oldSchema *types.APISchema) (types.APIObjectList, error) {
|
||||
obj, err := e.Schema.Store.List(apiOp, e.Schema)
|
||||
for i := range obj.Objects {
|
||||
obj.Objects[i].Type = oldSchema.ID
|
||||
}
|
||||
return obj, err
|
||||
}
|
||||
|
||||
func (e *Store) Create(apiOp *types.APIRequest, oldSchema *types.APISchema, data types.APIObject) (types.APIObject, error) {
|
||||
obj, err := e.Schema.Store.Create(apiOp, e.Schema, data)
|
||||
obj.Type = oldSchema.ID
|
||||
return obj, err
|
||||
}
|
||||
|
||||
func (e *Store) Update(apiOp *types.APIRequest, oldSchema *types.APISchema, data types.APIObject, id string) (types.APIObject, error) {
|
||||
obj, err := e.Schema.Store.Update(apiOp, e.Schema, data, id)
|
||||
obj.Type = oldSchema.ID
|
||||
return obj, err
|
||||
}
|
||||
|
||||
func (e *Store) Watch(apiOp *types.APIRequest, oldSchema *types.APISchema, wr types.WatchRequest) (chan types.APIEvent, error) {
|
||||
c, err := e.Schema.Store.Watch(apiOp, e.Schema, wr)
|
||||
if err != nil || c == nil {
|
||||
return c, err
|
||||
}
|
||||
|
||||
result := make(chan types.APIEvent)
|
||||
go func() {
|
||||
defer close(result)
|
||||
for obj := range c {
|
||||
if obj.Object.Type == e.Schema.ID {
|
||||
obj.Object.Type = oldSchema.ID
|
||||
}
|
||||
result <- obj
|
||||
}
|
||||
}()
|
||||
|
||||
return result, nil
|
||||
}
|
Reference in New Issue
Block a user