diff --git a/pkg/kubelet/winstats/perfcounter_nodestats.go b/pkg/kubelet/winstats/perfcounter_nodestats.go index 9a22b047b32..317c08bf028 100644 --- a/pkg/kubelet/winstats/perfcounter_nodestats.go +++ b/pkg/kubelet/winstats/perfcounter_nodestats.go @@ -20,6 +20,7 @@ package winstats import ( "errors" + "fmt" "os" "os/exec" "runtime" @@ -221,13 +222,15 @@ func (p *perfCounterNodeStatsClient) getCPUUsageNanoCores() uint64 { } func getSystemUUID() (string, error) { - cmd := exec.Command("powershell.exe", "-Command", "(Get-CimInstance -Class Win32_ComputerSystemProduct).UUID") - out, err := cmd.CombinedOutput() + result, err := exec.Command("wmic", "csproduct", "get", "UUID").Output() if err != nil { return "", err } - systemUUID := strings.TrimRight(string(out), "\r\n") - return systemUUID, nil + fields := strings.Fields(string(result)) + if len(fields) != 2 { + return "", fmt.Errorf("received unexpected value retrieving vm uuid: %q", string(result)) + } + return fields[1], nil } func getPhysicallyInstalledSystemMemoryBytes() (uint64, error) { diff --git a/pkg/kubelet/winstats/winstats.go b/pkg/kubelet/winstats/winstats.go index 2b42cd850d7..b55560a7333 100644 --- a/pkg/kubelet/winstats/winstats.go +++ b/pkg/kubelet/winstats/winstats.go @@ -103,7 +103,7 @@ func (c *StatsClient) WinContainerInfos() (map[string]cadvisorapiv2.ContainerInf } // 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) { return c.client.getMachineInfo() } diff --git a/pkg/kubelet/winstats/winstats_test.go b/pkg/kubelet/winstats/winstats_test.go index aa0fbefc616..d8c54137c63 100644 --- a/pkg/kubelet/winstats/winstats_test.go +++ b/pkg/kubelet/winstats/winstats_test.go @@ -56,7 +56,7 @@ func (f fakeWinNodeStatsClient) getMachineInfo() (*cadvisorapi.MachineInfo, erro NumCores: 4, MemoryCapacity: 1.6e+10, MachineID: "somehostname", - SystemUUID: "", + SystemUUID: "E6C8AC43-582B-3575-4E1F-6DA170888906", }, nil } @@ -116,12 +116,11 @@ func TestWinMachineInfo(t *testing.T) { machineInfo, err := c.WinMachineInfo() assert.NoError(t, err) - assert.NotEqual(t, machineInfo.SystemUUID, "") assert.Equal(t, machineInfo, &cadvisorapi.MachineInfo{ NumCores: 4, MemoryCapacity: 1.6e+10, MachineID: "somehostname", - SystemUUID: machineInfo.SystemUUID}) + SystemUUID: "E6C8AC43-582B-3575-4E1F-6DA170888906"}) } func TestWinVersionInfo(t *testing.T) {