/
versions.go
51 lines (42 loc) · 998 Bytes
/
versions.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
package containerv1
import (
"github.com/IBM-Cloud/bluemix-go/client"
)
//KubeVersion ...
type KubeVersion struct {
Major int
Minor int
Patch int
Default bool
}
type V1Version map[string][]KubeVersion
//KubeVersions interface
type KubeVersions interface {
List(target ClusterTargetHeader) ([]KubeVersion, error)
ListV1(target ClusterTargetHeader) (V1Version, error)
}
type version struct {
client *client.Client
}
func newKubeVersionAPI(c *client.Client) KubeVersions {
return &version{
client: c,
}
}
//List ...
func (v *version) List(target ClusterTargetHeader) ([]KubeVersion, error) {
versions := []KubeVersion{}
_, err := v.client.Get("/v1/kube-versions", &versions, target.ToMap())
if err != nil {
return nil, err
}
return versions, err
}
func (v *version) ListV1(target ClusterTargetHeader) (V1Version, error) {
v1ver := V1Version{}
_, err := v.client.Get("/v1/versions", &v1ver, target.ToMap())
if err != nil {
return nil, err
}
return v1ver, err
}