78 lines
1.6 KiB
Go
78 lines
1.6 KiB
Go
|
// Copyright 2022 Listware
|
||
|
|
||
|
package main
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"fmt"
|
||
|
|
||
|
"git.fg-tech.ru/listware/cmdb/pkg/cmdb/vertex/types"
|
||
|
"git.fg-tech.ru/listware/go-core/pkg/client/system"
|
||
|
"git.fg-tech.ru/listware/go-core/pkg/executor"
|
||
|
"git.fg-tech.ru/listware/proto/sdk/pbcmdb"
|
||
|
)
|
||
|
|
||
|
var (
|
||
|
exec executor.Executor
|
||
|
)
|
||
|
|
||
|
func main() {
|
||
|
var err error
|
||
|
exec, err = executor.New("127.0.0.1:9092")
|
||
|
if err != nil {
|
||
|
fmt.Println(err)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
defer exec.Close()
|
||
|
|
||
|
ctx := context.Background()
|
||
|
if err = register(ctx); err != nil {
|
||
|
fmt.Println(err)
|
||
|
return
|
||
|
}
|
||
|
return
|
||
|
}
|
||
|
|
||
|
type NodeContainer struct{}
|
||
|
|
||
|
func register(ctx context.Context) (err error) {
|
||
|
var registerTypes = []*pbcmdb.RegisterTypeMessage{}
|
||
|
|
||
|
nodeContainerType, err := system.RegisterType(types.ReflectType(NodeContainer{}), true)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
nodeType, err := system.RegisterType(types.ReflectType(Node{}), true)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
_ = nodeType
|
||
|
|
||
|
registerTypes = append(registerTypes, nodeContainerType, nodeType)
|
||
|
|
||
|
var registerObjects = []*pbcmdb.RegisterObjectMessage{}
|
||
|
|
||
|
nodeContainer, err := system.RegisterObject("system/root", "types/node-container", "nodes", NodeContainer{}, false, false)
|
||
|
if err != nil {
|
||
|
return
|
||
|
}
|
||
|
|
||
|
nodeContainer1, err := system.RegisterObject("nodes.root", "types/node", "node1", NodeContainer{}, false, true)
|
||
|
if err != nil {
|
||
|
return
|
||
|
}
|
||
|
registerObjects = append(registerObjects, nodeContainer, nodeContainer1)
|
||
|
|
||
|
message, err := system.Register("appname", nil, registerObjects, nil)
|
||
|
if err != nil {
|
||
|
return
|
||
|
}
|
||
|
|
||
|
if err = exec.ExecSync(ctx, message); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
return
|
||
|
}
|