go-core/cmd/example/system/main.go

78 lines
1.6 KiB
Go
Raw Permalink Normal View History

2023-01-25 13:56:13 +03:00
// 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
}