Files
open-cluster-management/test/integration/util/work.go
2025-09-08 07:11:44 +00:00

40 lines
705 B
Go

package util
import (
"encoding/json"
"fmt"
jsonpatch "github.com/evanphx/json-patch"
workapiv1 "open-cluster-management.io/api/work/v1"
)
const (
KubeDriver = "kube"
MQTTDriver = "mqtt"
GRPCDriver = "grpc"
)
func NewWorkPatch(old, new *workapiv1.ManifestWork) ([]byte, error) {
oldData, err := json.Marshal(old)
if err != nil {
return nil, err
}
newData, err := json.Marshal(new)
if err != nil {
return nil, err
}
patchBytes, err := jsonpatch.CreateMergePatch(oldData, newData)
if err != nil {
return nil, err
}
return patchBytes, nil
}
func AppliedManifestWorkName(hubHash string, work *workapiv1.ManifestWork) string {
return fmt.Sprintf("%s-%s", hubHash, work.Name)
}