-
Notifications
You must be signed in to change notification settings - Fork 0
/
convert.go
122 lines (93 loc) · 2.17 KB
/
convert.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
package iotmaker_docker_communication_grpc
import (
"github.com/docker/docker/api/types/mount"
"github.com/docker/go-connections/nat"
)
func volumeProtoTypeToMountType(t TypeVolumeMountType) mount.Type {
switch t {
case TypeVolumeMountType_KVolumeMountTypeBind:
return "bind"
case TypeVolumeMountType_KVolumeMountTypeVolume:
return "volume"
case TypeVolumeMountType_KVolumeMountTypeTmpfs:
return "tmpfs"
case TypeVolumeMountType_KVolumeMountTypeNpipe:
return "npipe"
}
return "bind"
}
func volumeMountTypeToProtoType(t mount.Type) TypeVolumeMountType {
switch t {
case "bind":
return TypeVolumeMountType_KVolumeMountTypeBind
case "volume":
return TypeVolumeMountType_KVolumeMountTypeVolume
case "tmpfs":
return TypeVolumeMountType_KVolumeMountTypeTmpfs
case "npipe":
return TypeVolumeMountType_KVolumeMountTypeNpipe
}
return TypeVolumeMountType_KVolumeMountTypeBind
}
func ConvertProtoMountVolumeToGoMountMount(
volumes []*TypeMountMountVolume,
) (mountList []mount.Mount) {
mountList = make([]mount.Mount, 0)
for _, volume := range volumes {
mountList = append(
mountList,
mount.Mount{
Type: volumeProtoTypeToMountType(volume.Type),
Source: volume.Source,
Target: volume.Target,
},
)
}
return
}
func ConvertGoMountMountToProtoMountVolume(
mountList []mount.Mount,
) (volumes []*TypeMountMountVolume) {
volumes = make([]*TypeMountMountVolume, 0)
for _, volume := range mountList {
volumes = append(
volumes,
&TypeMountMountVolume{
Type: volumeMountTypeToProtoType(volume.Type),
Source: volume.Source,
Target: volume.Target,
},
)
}
return
}
func GoArrNatPortToConvertArrProtoPort(
portList []nat.Port,
) (list []*TypePort) {
list = make([]*TypePort, 0)
for _, p := range portList {
list = append(
list,
&TypePort{
Port: p.Port(),
Proto: p.Proto(),
},
)
}
return
}
func ConvertArrProtoPortToGoArrNatPort(
portList []*TypePort,
) (err error, list []nat.Port) {
list = make([]nat.Port, 0)
for _, p := range portList {
var err error
var port nat.Port
port, err = nat.NewPort(p.Proto, p.Port)
if err != nil {
return
}
list = append(list, port)
}
return
}