Skip to content

Commit

Permalink
add hostname to systeminfo
Browse files Browse the repository at this point in the history
  • Loading branch information
mohae committed Jul 31, 2017
1 parent ea21e80 commit ce9c855
Show file tree
Hide file tree
Showing 8 changed files with 203 additions and 123 deletions.
67 changes: 38 additions & 29 deletions flat/structs/System.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,88 +21,96 @@ func (rcv *System) Init(buf []byte, i flatbuffers.UOffsetT) {
rcv._tab.Pos = i
}

func (rcv *System) KernelOS() []byte {
func (rcv *System) Hostname() []byte {
o := flatbuffers.UOffsetT(rcv._tab.Offset(4))
if o != 0 {
return rcv._tab.ByteVector(o + rcv._tab.Pos)
}
return nil
}

func (rcv *System) KernelVersion() []byte {
func (rcv *System) KernelOS() []byte {
o := flatbuffers.UOffsetT(rcv._tab.Offset(6))
if o != 0 {
return rcv._tab.ByteVector(o + rcv._tab.Pos)
}
return nil
}

func (rcv *System) KernelArch() []byte {
func (rcv *System) KernelVersion() []byte {
o := flatbuffers.UOffsetT(rcv._tab.Offset(8))
if o != 0 {
return rcv._tab.ByteVector(o + rcv._tab.Pos)
}
return nil
}

func (rcv *System) KernelCompileDate() []byte {
func (rcv *System) KernelArch() []byte {
o := flatbuffers.UOffsetT(rcv._tab.Offset(10))
if o != 0 {
return rcv._tab.ByteVector(o + rcv._tab.Pos)
}
return nil
}

func (rcv *System) OSName() []byte {
func (rcv *System) KernelCompileDate() []byte {
o := flatbuffers.UOffsetT(rcv._tab.Offset(12))
if o != 0 {
return rcv._tab.ByteVector(o + rcv._tab.Pos)
}
return nil
}

func (rcv *System) OSID() []byte {
func (rcv *System) OSName() []byte {
o := flatbuffers.UOffsetT(rcv._tab.Offset(14))
if o != 0 {
return rcv._tab.ByteVector(o + rcv._tab.Pos)
}
return nil
}

func (rcv *System) OSIDLike() []byte {
func (rcv *System) OSID() []byte {
o := flatbuffers.UOffsetT(rcv._tab.Offset(16))
if o != 0 {
return rcv._tab.ByteVector(o + rcv._tab.Pos)
}
return nil
}

func (rcv *System) OSVersion() []byte {
func (rcv *System) OSIDLike() []byte {
o := flatbuffers.UOffsetT(rcv._tab.Offset(18))
if o != 0 {
return rcv._tab.ByteVector(o + rcv._tab.Pos)
}
return nil
}

func (rcv *System) MemTotal() uint64 {
func (rcv *System) OSVersion() []byte {
o := flatbuffers.UOffsetT(rcv._tab.Offset(20))
if o != 0 {
return rcv._tab.ByteVector(o + rcv._tab.Pos)
}
return nil
}

func (rcv *System) MemTotal() uint64 {
o := flatbuffers.UOffsetT(rcv._tab.Offset(22))
if o != 0 {
return rcv._tab.GetUint64(o + rcv._tab.Pos)
}
return 0
}

func (rcv *System) SwapTotal() uint64 {
o := flatbuffers.UOffsetT(rcv._tab.Offset(22))
o := flatbuffers.UOffsetT(rcv._tab.Offset(24))
if o != 0 {
return rcv._tab.GetUint64(o + rcv._tab.Pos)
}
return 0
}

func (rcv *System) NetDev(j int) []byte {
o := flatbuffers.UOffsetT(rcv._tab.Offset(24))
o := flatbuffers.UOffsetT(rcv._tab.Offset(26))
if o != 0 {
a := rcv._tab.Vector(o)
return rcv._tab.ByteVector(a + flatbuffers.UOffsetT(j * 4))
Expand All @@ -111,23 +119,23 @@ func (rcv *System) NetDev(j int) []byte {
}

func (rcv *System) NetDevLength() int {
o := flatbuffers.UOffsetT(rcv._tab.Offset(24))
o := flatbuffers.UOffsetT(rcv._tab.Offset(26))
if o != 0 {
return rcv._tab.VectorLen(o)
}
return 0
}

func (rcv *System) Sockets() int32 {
o := flatbuffers.UOffsetT(rcv._tab.Offset(26))
o := flatbuffers.UOffsetT(rcv._tab.Offset(28))
if o != 0 {
return rcv._tab.GetInt32(o + rcv._tab.Pos)
}
return 0
}

func (rcv *System) CPU(obj *CPU, j int) bool {
o := flatbuffers.UOffsetT(rcv._tab.Offset(28))
o := flatbuffers.UOffsetT(rcv._tab.Offset(30))
if o != 0 {
x := rcv._tab.Vector(o)
x += flatbuffers.UOffsetT(j) * 4
Expand All @@ -142,29 +150,30 @@ func (rcv *System) CPU(obj *CPU, j int) bool {
}

func (rcv *System) CPULength() int {
o := flatbuffers.UOffsetT(rcv._tab.Offset(28))
o := flatbuffers.UOffsetT(rcv._tab.Offset(30))
if o != 0 {
return rcv._tab.VectorLen(o)
}
return 0
}

func SystemStart(builder *flatbuffers.Builder) { builder.StartObject(13) }
func SystemAddKernelOS(builder *flatbuffers.Builder, KernelOS flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(KernelOS), 0) }
func SystemAddKernelVersion(builder *flatbuffers.Builder, KernelVersion flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(KernelVersion), 0) }
func SystemAddKernelArch(builder *flatbuffers.Builder, KernelArch flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(2, flatbuffers.UOffsetT(KernelArch), 0) }
func SystemAddKernelCompileDate(builder *flatbuffers.Builder, KernelCompileDate flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(3, flatbuffers.UOffsetT(KernelCompileDate), 0) }
func SystemAddOSName(builder *flatbuffers.Builder, OSName flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(4, flatbuffers.UOffsetT(OSName), 0) }
func SystemAddOSID(builder *flatbuffers.Builder, OSID flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(5, flatbuffers.UOffsetT(OSID), 0) }
func SystemAddOSIDLike(builder *flatbuffers.Builder, OSIDLike flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(6, flatbuffers.UOffsetT(OSIDLike), 0) }
func SystemAddOSVersion(builder *flatbuffers.Builder, OSVersion flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(7, flatbuffers.UOffsetT(OSVersion), 0) }
func SystemAddMemTotal(builder *flatbuffers.Builder, MemTotal uint64) { builder.PrependUint64Slot(8, MemTotal, 0) }
func SystemAddSwapTotal(builder *flatbuffers.Builder, SwapTotal uint64) { builder.PrependUint64Slot(9, SwapTotal, 0) }
func SystemAddNetDev(builder *flatbuffers.Builder, NetDev flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(10, flatbuffers.UOffsetT(NetDev), 0) }
func SystemStart(builder *flatbuffers.Builder) { builder.StartObject(14) }
func SystemAddHostname(builder *flatbuffers.Builder, Hostname flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(Hostname), 0) }
func SystemAddKernelOS(builder *flatbuffers.Builder, KernelOS flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(KernelOS), 0) }
func SystemAddKernelVersion(builder *flatbuffers.Builder, KernelVersion flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(2, flatbuffers.UOffsetT(KernelVersion), 0) }
func SystemAddKernelArch(builder *flatbuffers.Builder, KernelArch flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(3, flatbuffers.UOffsetT(KernelArch), 0) }
func SystemAddKernelCompileDate(builder *flatbuffers.Builder, KernelCompileDate flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(4, flatbuffers.UOffsetT(KernelCompileDate), 0) }
func SystemAddOSName(builder *flatbuffers.Builder, OSName flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(5, flatbuffers.UOffsetT(OSName), 0) }
func SystemAddOSID(builder *flatbuffers.Builder, OSID flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(6, flatbuffers.UOffsetT(OSID), 0) }
func SystemAddOSIDLike(builder *flatbuffers.Builder, OSIDLike flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(7, flatbuffers.UOffsetT(OSIDLike), 0) }
func SystemAddOSVersion(builder *flatbuffers.Builder, OSVersion flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(8, flatbuffers.UOffsetT(OSVersion), 0) }
func SystemAddMemTotal(builder *flatbuffers.Builder, MemTotal uint64) { builder.PrependUint64Slot(9, MemTotal, 0) }
func SystemAddSwapTotal(builder *flatbuffers.Builder, SwapTotal uint64) { builder.PrependUint64Slot(10, SwapTotal, 0) }
func SystemAddNetDev(builder *flatbuffers.Builder, NetDev flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(11, flatbuffers.UOffsetT(NetDev), 0) }
func SystemStartNetDevVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT { return builder.StartVector(4, numElems, 4)
}
func SystemAddSockets(builder *flatbuffers.Builder, Sockets int32) { builder.PrependInt32Slot(11, Sockets, 0) }
func SystemAddCPU(builder *flatbuffers.Builder, CPU flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(12, flatbuffers.UOffsetT(CPU), 0) }
func SystemAddSockets(builder *flatbuffers.Builder, Sockets int32) { builder.PrependInt32Slot(12, Sockets, 0) }
func SystemAddCPU(builder *flatbuffers.Builder, CPU flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(13, flatbuffers.UOffsetT(CPU), 0) }
func SystemStartCPUVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT { return builder.StartVector(4, numElems, 4)
}
func SystemEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() }
1 change: 1 addition & 0 deletions flat/system.fbs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
namespace structs;

table System {
Hostname:string;
KernelOS:string;
KernelVersion:string;
KernelArch:string;
Expand Down
13 changes: 10 additions & 3 deletions flat/systeminfo.go
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package systeminfo

import (
"os"
"sync"

fb "github.com/google/flatbuffers/go"
"github.com/mohae/joefriday/cpu/cpuinfo"
mem "github.com/mohae/joefriday/mem/membasic"
"github.com/mohae/joefriday/net/netdev"
"github.com/mohae/joefriday/system/os"
sysos "github.com/mohae/joefriday/system/os"
"github.com/mohae/joefriday/system/version"
sysinfo "github.com/mohae/systeminfo"
"github.com/mohae/systeminfo/flat/structs"
Expand All @@ -30,6 +31,11 @@ func Get() ([]byte, error) {
// GetWBuilder get's the system info using the passed builder. It is assumed
// that the builder is ready to use.
func GetWBuilder(bldr *fb.Builder) ([]byte, error) {
hostname, err := os.Hostname()
if err != nil {
return nil, sysinfo.Error{Op: "flat hostname", Err: err}
}
hostnameS := bldr.CreateString(hostname)
//Get Kernel info
k, err := version.Get()
if err != nil {
Expand All @@ -40,15 +46,14 @@ func GetWBuilder(bldr *fb.Builder) ([]byte, error) {
arch := bldr.CreateString(k.Arch)
compileDate := bldr.CreateString(k.CompileDate)
// Get release info
o, err := os.Get()
o, err := sysos.Get()
if err != nil {
return nil, sysinfo.Error{Op: "flat OS release info", Err: err}
}
oName := bldr.CreateString(o.Name)
oID := bldr.CreateString(o.ID)
oIDLike := bldr.CreateString(o.IDLike)
oVersion := bldr.CreateString(o.Version)

// Get Memory info
m, err := mem.Get()
if err != nil {
Expand Down Expand Up @@ -85,6 +90,7 @@ func GetWBuilder(bldr *fb.Builder) ([]byte, error) {
}
cpus := bldr.EndVector(len(uoff))
structs.SystemStart(bldr)
structs.SystemAddHostname(bldr, hostnameS)
structs.SystemAddKernelOS(bldr, osS)
structs.SystemAddKernelVersion(bldr, version)
structs.SystemAddKernelArch(bldr, arch)
Expand Down Expand Up @@ -160,6 +166,7 @@ func Deserialize(p []byte) *sysinfo.System {
s := structs.GetRootAsSystem(p, 0)
cpuF := &structs.CPU{}
cpu := &sysinfo.CPU{}
sys.Hostname = string(s.Hostname())
sys.KernelOS = string(s.KernelOS())
sys.KernelVersion = string(s.KernelVersion())
sys.KernelArch = string(s.KernelArch())
Expand Down
3 changes: 3 additions & 0 deletions flat/systeminfo_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ func TestGet(t *testing.T) {
return
}
u := Deserialize(b)
if s.Hostname != u.Hostname {
t.Errorf("Hostname: got %q; want %q", u.Hostname, s.Hostname)
}
if s.KernelOS != u.KernelOS {
t.Errorf("KernelOS: got %s; want %s", u.KernelOS, s.KernelOS)
}
Expand Down
Loading

0 comments on commit ce9c855

Please sign in to comment.