mirror of https://github.com/portainer/portainer
45 lines
1.3 KiB
Go
45 lines
1.3 KiB
Go
package snapshot
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
portainer "github.com/portainer/portainer/api"
|
|
"github.com/stretchr/testify/require"
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
kfake "k8s.io/client-go/kubernetes/fake"
|
|
)
|
|
|
|
func TestCreateKubernetesSnapshot(t *testing.T) {
|
|
cli := kfake.NewSimpleClientset()
|
|
kubernetesSnapshot := &portainer.KubernetesSnapshot{}
|
|
|
|
serverInfo, err := cli.Discovery().ServerVersion()
|
|
if err != nil {
|
|
t.Fatalf("error getting the kubernetesserver version: %v", err)
|
|
}
|
|
|
|
kubernetesSnapshot.KubernetesVersion = serverInfo.GitVersion
|
|
require.Equal(t, kubernetesSnapshot.KubernetesVersion, serverInfo.GitVersion)
|
|
|
|
nodeList, err := cli.CoreV1().Nodes().List(context.TODO(), metav1.ListOptions{})
|
|
if err != nil {
|
|
t.Fatalf("error listing kubernetes nodes: %v", err)
|
|
}
|
|
|
|
var totalCPUs, totalMemory int64
|
|
for _, node := range nodeList.Items {
|
|
totalCPUs += node.Status.Capacity.Cpu().Value()
|
|
totalMemory += node.Status.Capacity.Memory().Value()
|
|
}
|
|
|
|
kubernetesSnapshot.TotalCPU = totalCPUs
|
|
kubernetesSnapshot.TotalMemory = totalMemory
|
|
kubernetesSnapshot.NodeCount = len(nodeList.Items)
|
|
require.Equal(t, kubernetesSnapshot.TotalCPU, totalCPUs)
|
|
require.Equal(t, kubernetesSnapshot.TotalMemory, totalMemory)
|
|
require.Equal(t, kubernetesSnapshot.NodeCount, len(nodeList.Items))
|
|
|
|
t.Logf("Kubernetes snapshot: %+v", kubernetesSnapshot)
|
|
}
|