package mapper import ( "encoding/json" "edge-infra.dev/pkg/edge/api/graph/model" "google.golang.org/api/compute/v1" corev1 "k8s.io/api/core/v1" ) func ToServiceAccount(secret *corev1.Secret) (*model.ServiceAccount, error) { var serviceObj model.ServiceAccount err := json.Unmarshal(secret.Data["key.json"], &serviceObj) if err != nil { return nil, err } return &serviceObj, nil } func ToZones(zoneList *compute.ZoneList) []*string { zones := []*string{} for _, zone := range zoneList.Items { zones = append(zones, &zone.Name) } return zones } func ToMachineTypes(machineList *compute.MachineTypeList) []*model.MachineTypeInfo { machineTypes := []*model.MachineTypeInfo{} for _, machineType := range machineList.Items { machineTypes = append(machineTypes, ToMachineType(machineType)) } return machineTypes } func ToMachineType(machineType *compute.MachineType) *model.MachineTypeInfo { guestCPUs := int(machineType.GuestCpus) memoryGB := int(machineType.MemoryMb / 1024) return &model.MachineTypeInfo{ Name: machineType.Name, GuestCPUs: guestCPUs, MemoryGb: memoryGB, } } func ToGkeVersions(gkeMasterVersions []string) []*string { gkeVersions := []*string{} for i := range gkeMasterVersions { gkeVersions = append(gkeVersions, &gkeMasterVersions[i]) } return gkeVersions }