...
1 package mapper
2
3 import (
4 "encoding/json"
5
6 "edge-infra.dev/pkg/edge/api/graph/model"
7
8 "google.golang.org/api/compute/v1"
9 corev1 "k8s.io/api/core/v1"
10 )
11
12 func ToServiceAccount(secret *corev1.Secret) (*model.ServiceAccount, error) {
13 var serviceObj model.ServiceAccount
14 err := json.Unmarshal(secret.Data["key.json"], &serviceObj)
15 if err != nil {
16 return nil, err
17 }
18 return &serviceObj, nil
19 }
20
21 func ToZones(zoneList *compute.ZoneList) []*string {
22 zones := []*string{}
23 for _, zone := range zoneList.Items {
24 zones = append(zones, &zone.Name)
25 }
26 return zones
27 }
28
29 func ToMachineTypes(machineList *compute.MachineTypeList) []*model.MachineTypeInfo {
30 machineTypes := []*model.MachineTypeInfo{}
31 for _, machineType := range machineList.Items {
32 machineTypes = append(machineTypes, ToMachineType(machineType))
33 }
34 return machineTypes
35 }
36
37 func ToMachineType(machineType *compute.MachineType) *model.MachineTypeInfo {
38 guestCPUs := int(machineType.GuestCpus)
39 memoryGB := int(machineType.MemoryMb / 1024)
40 return &model.MachineTypeInfo{
41 Name: machineType.Name,
42 GuestCPUs: guestCPUs,
43 MemoryGb: memoryGB,
44 }
45 }
46
47 func ToGkeVersions(gkeMasterVersions []string) []*string {
48 gkeVersions := []*string{}
49 for i := range gkeMasterVersions {
50 gkeVersions = append(gkeVersions, &gkeMasterVersions[i])
51 }
52 return gkeVersions
53 }
54
View as plain text