mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-28 05:57:25 +00:00
Updating kubelet on Windows to query uuid from registry
This commit is contained in:
parent
1608dc2b09
commit
26ef4e42e5
@ -20,10 +20,7 @@ limitations under the License.
|
|||||||
package winstats
|
package winstats
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
|
||||||
"fmt"
|
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
|
||||||
"runtime"
|
"runtime"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
@ -33,6 +30,7 @@ import (
|
|||||||
"unsafe"
|
"unsafe"
|
||||||
|
|
||||||
cadvisorapi "github.com/google/cadvisor/info/v1"
|
cadvisorapi "github.com/google/cadvisor/info/v1"
|
||||||
|
"github.com/pkg/errors"
|
||||||
"golang.org/x/sys/windows"
|
"golang.org/x/sys/windows"
|
||||||
"golang.org/x/sys/windows/registry"
|
"golang.org/x/sys/windows/registry"
|
||||||
"k8s.io/apimachinery/pkg/util/wait"
|
"k8s.io/apimachinery/pkg/util/wait"
|
||||||
@ -256,15 +254,21 @@ func (p *perfCounterNodeStatsClient) getCPUUsageNanoCores() uint64 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func getSystemUUID() (string, error) {
|
func getSystemUUID() (string, error) {
|
||||||
result, err := exec.Command("wmic", "csproduct", "get", "UUID").Output()
|
k, err := registry.OpenKey(registry.LOCAL_MACHINE, `SYSTEM\HardwareConfig`, registry.QUERY_VALUE)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", errors.Wrap(err, "failed to open registry key HKLM\\SYSTEM\\HardwareConfig")
|
||||||
}
|
}
|
||||||
fields := strings.Fields(string(result))
|
defer k.Close()
|
||||||
if len(fields) != 2 {
|
|
||||||
return "", fmt.Errorf("received unexpected value retrieving vm uuid: %q", string(result))
|
uuid, _, err := k.GetStringValue("LastConfig")
|
||||||
|
if err != nil {
|
||||||
|
return "", errors.Wrap(err, "failed to read registry value LastConfig from key HKLM\\SYSTEM\\HardwareConfig")
|
||||||
}
|
}
|
||||||
return fields[1], nil
|
|
||||||
|
uuid = strings.Trim(uuid, "{")
|
||||||
|
uuid = strings.Trim(uuid, "}")
|
||||||
|
uuid = strings.ToUpper(uuid)
|
||||||
|
return uuid, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func getPhysicallyInstalledSystemMemoryBytes() (uint64, error) {
|
func getPhysicallyInstalledSystemMemoryBytes() (uint64, error) {
|
||||||
|
@ -21,7 +21,9 @@ package winstats
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
"os/exec"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -188,3 +190,13 @@ func testGetPhysicallyInstalledSystemMemoryBytes(t *testing.T) {
|
|||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.NotZero(t, totalMemory)
|
assert.NotZero(t, totalMemory)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGetSystemUUID(t *testing.T) {
|
||||||
|
uuidFromRegistry, err := getSystemUUID()
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
uuidFromWmi, err := exec.Command("powershell.exe", "Get-WmiObject", "Win32_ComputerSystemProduct", "|", "Select-Object", "-ExpandProperty UUID").Output()
|
||||||
|
assert.NoError(t, err)
|
||||||
|
uuidFromWmiString := strings.Trim(string(uuidFromWmi), "\r\n")
|
||||||
|
assert.Equal(t, uuidFromWmiString, uuidFromRegistry)
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user