Changed to use cmd for getting system uuid

This commit is contained in:
Angela Li 2019-07-23 15:59:32 -07:00
parent e56db7d407
commit e242bbe12c
3 changed files with 10 additions and 8 deletions

View File

@ -20,6 +20,7 @@ package winstats
import ( import (
"errors" "errors"
"fmt"
"os" "os"
"os/exec" "os/exec"
"runtime" "runtime"
@ -221,13 +222,15 @@ func (p *perfCounterNodeStatsClient) getCPUUsageNanoCores() uint64 {
} }
func getSystemUUID() (string, error) { func getSystemUUID() (string, error) {
cmd := exec.Command("powershell.exe", "-Command", "(Get-CimInstance -Class Win32_ComputerSystemProduct).UUID") result, err := exec.Command("wmic", "csproduct", "get", "UUID").Output()
out, err := cmd.CombinedOutput()
if err != nil { if err != nil {
return "", err return "", err
} }
systemUUID := strings.TrimRight(string(out), "\r\n") fields := strings.Fields(string(result))
return systemUUID, nil if len(fields) != 2 {
return "", fmt.Errorf("received unexpected value retrieving vm uuid: %q", string(result))
}
return fields[1], nil
} }
func getPhysicallyInstalledSystemMemoryBytes() (uint64, error) { func getPhysicallyInstalledSystemMemoryBytes() (uint64, error) {

View File

@ -103,7 +103,7 @@ func (c *StatsClient) WinContainerInfos() (map[string]cadvisorapiv2.ContainerInf
} }
// WinMachineInfo returns a cadvisorapi.MachineInfo with details about the // WinMachineInfo returns a cadvisorapi.MachineInfo with details about the
// node machine. // node machine. Analogous to cadvisor MachineInfo method.
func (c *StatsClient) WinMachineInfo() (*cadvisorapi.MachineInfo, error) { func (c *StatsClient) WinMachineInfo() (*cadvisorapi.MachineInfo, error) {
return c.client.getMachineInfo() return c.client.getMachineInfo()
} }

View File

@ -56,7 +56,7 @@ func (f fakeWinNodeStatsClient) getMachineInfo() (*cadvisorapi.MachineInfo, erro
NumCores: 4, NumCores: 4,
MemoryCapacity: 1.6e+10, MemoryCapacity: 1.6e+10,
MachineID: "somehostname", MachineID: "somehostname",
SystemUUID: "", SystemUUID: "E6C8AC43-582B-3575-4E1F-6DA170888906",
}, nil }, nil
} }
@ -116,12 +116,11 @@ func TestWinMachineInfo(t *testing.T) {
machineInfo, err := c.WinMachineInfo() machineInfo, err := c.WinMachineInfo()
assert.NoError(t, err) assert.NoError(t, err)
assert.NotEqual(t, machineInfo.SystemUUID, "")
assert.Equal(t, machineInfo, &cadvisorapi.MachineInfo{ assert.Equal(t, machineInfo, &cadvisorapi.MachineInfo{
NumCores: 4, NumCores: 4,
MemoryCapacity: 1.6e+10, MemoryCapacity: 1.6e+10,
MachineID: "somehostname", MachineID: "somehostname",
SystemUUID: machineInfo.SystemUUID}) SystemUUID: "E6C8AC43-582B-3575-4E1F-6DA170888906"})
} }
func TestWinVersionInfo(t *testing.T) { func TestWinVersionInfo(t *testing.T) {