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

114 lines
2.2 KiB
Go
Raw Permalink Normal View History

2023-01-25 13:56:13 +03:00
// Copyright 2022 Listware
package main
import (
"context"
"git.fg-tech.ru/listware/cmdb/pkg/cmdb/vertex/types"
"git.fg-tech.ru/listware/go-core/pkg/client/system"
)
type Node struct {
Hostname string `json:"hostname,omitempty"`
Domain string `json:"domain"`
Model string `json:"model"`
}
func createNodeType(ctx context.Context) (err error) {
node := Node{
Hostname: "sky01",
}
pt := types.ReflectType(node)
// pt.Triggers["create"] = append(pt.Triggers["create"], logTriger)
message, err := system.CreateType(pt)
if err != nil {
return
}
return exec.ExecAsync(ctx, message)
}
func updateNodeType(ctx context.Context) (err error) {
node := Node{
Hostname: "sky01",
}
pt := types.ReflectType(node)
// pt.Triggers["create"] = append(pt.Triggers["create"], logTriger)
message, err := system.UpdateType(pt)
if err != nil {
return
}
return exec.ExecAsync(ctx, message)
}
func deleteNodeType(ctx context.Context) (err error) {
message, err := system.DeleteType("node")
if err != nil {
return
}
return exec.ExecAsync(ctx, message)
}
func createNodeObject(ctx context.Context) (err error) {
node := Node{
Hostname: "sky01",
}
message, err := system.CreateObject("node", node)
if err != nil {
return
}
return exec.ExecAsync(ctx, message)
}
func createChild(ctx context.Context) (err error) {
disk := Disk{
Name: "nvme4n1",
}
message, err := system.CreateChild("objects/64f21ca8-c2c7-4fc1-bccc-de04842dbd49", "types/disk", disk.Name, disk)
if err != nil {
return
}
return exec.ExecSync(ctx, message)
}
func updateObject(ctx context.Context) (err error) {
node := Node{
Hostname: "sky0asd112",
}
message, err := system.UpdateObject("58d12e3e-63f7-4c90-9d28-3812aebf81ce", node)
if err != nil {
return
}
return exec.ExecAsync(ctx, message)
}
func createNodeTypeTrigger(ctx context.Context) (err error) {
message, err := system.AddTrigger("types/node", logTrigger)
if err != nil {
return
}
return exec.ExecAsync(ctx, message)
}
func deleteNodeTypeTrigger(ctx context.Context) (err error) {
message, err := system.DeleteTrigger("types/node", logTrigger)
if err != nil {
return
}
return exec.ExecAsync(ctx, message)
}