Change debug api for tree

This commit is contained in:
mcrakhman 2023-01-25 11:26:37 +01:00 committed by Mikhail Iudin
parent 5a6af6dd2c
commit 75d94db5bb
No known key found for this signature in database
GPG Key ID: FAAAA8BAABDFF1C0
6 changed files with 42 additions and 17 deletions

View File

@ -96,19 +96,19 @@ func (mr *MockObjectTreeMockRecorder) Close() *gomock.Call {
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Close", reflect.TypeOf((*MockObjectTree)(nil).Close)) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Close", reflect.TypeOf((*MockObjectTree)(nil).Close))
} }
// DebugDump mocks base method. // Debug mocks base method.
func (m *MockObjectTree) DebugDump(arg0 objecttree.DescriptionParser) (string, error) { func (m *MockObjectTree) Debug(arg0 objecttree.DescriptionParser) (objecttree.DebugInfo, error) {
m.ctrl.T.Helper() m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "DebugDump", arg0) ret := m.ctrl.Call(m, "Debug", arg0)
ret0, _ := ret[0].(string) ret0, _ := ret[0].(objecttree.DebugInfo)
ret1, _ := ret[1].(error) ret1, _ := ret[1].(error)
return ret0, ret1 return ret0, ret1
} }
// DebugDump indicates an expected call of DebugDump. // Debug indicates an expected call of Debug.
func (mr *MockObjectTreeMockRecorder) DebugDump(arg0 interface{}) *gomock.Call { func (mr *MockObjectTreeMockRecorder) Debug(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DebugDump", reflect.TypeOf((*MockObjectTree)(nil).DebugDump), arg0) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Debug", reflect.TypeOf((*MockObjectTree)(nil).Debug), arg0)
} }
// Delete mocks base method. // Delete mocks base method.

View File

@ -55,7 +55,7 @@ type ReadableObjectTree interface {
HasChanges(...string) bool HasChanges(...string) bool
GetChange(string) (*Change, error) GetChange(string) (*Change, error)
DebugDump(parser DescriptionParser) (string, error) Debug(parser DescriptionParser) (DebugInfo, error)
IterateRoot(convert ChangeConvertFunc, iterate ChangeIterateFunc) error IterateRoot(convert ChangeConvertFunc, iterate ChangeIterateFunc) error
IterateFrom(id string, convert ChangeConvertFunc, iterate ChangeIterateFunc) error IterateFrom(id string, convert ChangeConvertFunc, iterate ChangeIterateFunc) error
} }
@ -609,6 +609,6 @@ func (ot *objectTree) validateTree(newChanges []*Change) error {
return ot.validator.ValidateNewChanges(ot.tree, ot.aclList, newChanges) return ot.validator.ValidateNewChanges(ot.tree, ot.aclList, newChanges)
} }
func (ot *objectTree) DebugDump(parser DescriptionParser) (string, error) { func (ot *objectTree) Debug(parser DescriptionParser) (DebugInfo, error) {
return ot.tree.Graph(parser) return objectTreeDebug{}.debugInfo(ot, parser)
} }

View File

@ -0,0 +1,25 @@
package objecttree
type objectTreeDebug struct {
}
type DebugInfo struct {
TreeLen int
TreeString string
Graphviz string
Heads []string
SnapshotPath []string
}
func (o objectTreeDebug) debugInfo(ot *objectTree, parser DescriptionParser) (di DebugInfo, err error) {
di = DebugInfo{}
di.Graphviz, err = ot.tree.Graph(parser)
if err != nil {
return
}
di.TreeString = ot.tree.String()
di.TreeLen = ot.tree.Len()
di.Heads = ot.Heads()
di.SnapshotPath = ot.SnapshotPath()
return
}

View File

@ -221,19 +221,19 @@ func (mr *MockSyncTreeMockRecorder) Close() *gomock.Call {
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Close", reflect.TypeOf((*MockSyncTree)(nil).Close)) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Close", reflect.TypeOf((*MockSyncTree)(nil).Close))
} }
// DebugDump mocks base method. // Debug mocks base method.
func (m *MockSyncTree) DebugDump(arg0 objecttree.DescriptionParser) (string, error) { func (m *MockSyncTree) Debug(arg0 objecttree.DescriptionParser) (objecttree.DebugInfo, error) {
m.ctrl.T.Helper() m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "DebugDump", arg0) ret := m.ctrl.Call(m, "Debug", arg0)
ret0, _ := ret[0].(string) ret0, _ := ret[0].(objecttree.DebugInfo)
ret1, _ := ret[1].(error) ret1, _ := ret[1].(error)
return ret0, ret1 return ret0, ret1
} }
// DebugDump indicates an expected call of DebugDump. // Debug indicates an expected call of Debug.
func (mr *MockSyncTreeMockRecorder) DebugDump(arg0 interface{}) *gomock.Call { func (mr *MockSyncTreeMockRecorder) Debug(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper() mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DebugDump", reflect.TypeOf((*MockSyncTree)(nil).DebugDump), arg0) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Debug", reflect.TypeOf((*MockSyncTree)(nil).Debug), arg0)
} }
// Delete mocks base method. // Delete mocks base method.