restructure project
This commit is contained in:
62
pkg/util/util.go
Normal file
62
pkg/util/util.go
Normal file
@@ -0,0 +1,62 @@
|
||||
package util
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"strings"
|
||||
|
||||
m "git.k-space.ee/k-space/logmower-shipper/pkg/mongo"
|
||||
)
|
||||
|
||||
func ParseLogFilename(name string) (i m.KubeInfo, ok bool) {
|
||||
name = filepath.Base(name)
|
||||
|
||||
// https://github.com/kubernetes/design-proposals-archive/blob/8da1442ea29adccea40693357d04727127e045ed/node/kubelet-cri-logging.md
|
||||
// <pod_name>_<pod_namespace>_<container_name>-<container_id>.log`
|
||||
|
||||
i.Pod, name, ok = strings.Cut(name, "_")
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
i.Namespace, name, ok = strings.Cut(name, "_")
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
i.ContainerName, name, ok = strings.Cut(name, "-")
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
i.ContainerId = strings.TrimSuffix(name, ".log")
|
||||
if !strings.HasSuffix(name, ".log") {
|
||||
return
|
||||
}
|
||||
|
||||
return i, true
|
||||
}
|
||||
|
||||
func Hostinfo(nodeName string) (h m.Host, err error) {
|
||||
if nodeName == "" {
|
||||
nodeName, err = os.Hostname()
|
||||
if err != nil {
|
||||
return h, fmt.Errorf("getting hostname: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
h.Name = strings.TrimSpace(nodeName)
|
||||
|
||||
id, err := os.ReadFile("/etc/machine-id")
|
||||
if err != nil {
|
||||
return h, fmt.Errorf("getting machineId: %w", err)
|
||||
}
|
||||
|
||||
h.Id = strings.TrimSpace(string(id))
|
||||
|
||||
h.Arch = runtime.GOARCH
|
||||
|
||||
return h, nil
|
||||
}
|
Reference in New Issue
Block a user