/
api_version.go
67 lines (55 loc) · 1.78 KB
/
api_version.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
/*
(c) Copyright [2015] Hewlett Packard Enterprise Development LP
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Package icsp -
package icsp
import (
"encoding/json"
"github.com/HewlettPackard/oneview-golang/rest"
"github.com/docker/machine/libmachine/log"
)
// URLEndPoint export this constant
const URLEndPointVersion = "/rest/version"
// APIVersion struct
type APIVersion struct {
CurrentVersion int `json:"currentVersion,omitempty"`
MinimumVersion int `json:"minimumVersion,omitempty"`
}
// GetAPIVersion - returns the api version for OneView server
// returns structure APIVersion
func (c *ICSPClient) GetAPIVersion() (APIVersion, error) {
var (
uri = URLEndPointVersion
apiversion APIVersion
)
//c.AuthHeaders := map[string]interface{}{"auth": []interface{}{auth}}
c.SetAuthHeaderOptions(c.GetAuthHeaderMapNoVer())
data, err := c.RestAPICall(rest.GET, uri, nil)
if err != nil {
return apiversion, err
}
log.Debugf("GetAPIVersion %s", data)
if err := json.Unmarshal([]byte(data), &apiversion); err != nil {
return apiversion, err
}
return apiversion, err
}
// RefreshVersion - refresh the max api Version for the client
func (c *ICSPClient) RefreshVersion() error {
var v APIVersion
v, err := c.GetAPIVersion()
if err != nil {
return err
}
c.APIVersion = v.CurrentVersion
return nil
}