func init() { if api.PreV1Beta3(testapi.Version()) { nodeResourceName = "minions" } else { nodeResourceName = "nodes" } }
func getSelfLink(name, namespace string) string { var selfLink string if api.PreV1Beta3(latest.Version) { selfLink = fmt.Sprintf("/api/"+latest.Version+"/pods/%s?namespace=%s", name, namespace) } else { if len(namespace) == 0 { namespace = api.NamespaceDefault } selfLink = fmt.Sprintf("/api/"+latest.Version+"/pods/namespaces/%s/%s", name, namespace) } return selfLink }
func parseResourceVersion(response []byte) (string, float64, error) { var resultBodyMap map[string]interface{} err := json.Unmarshal(response, &resultBodyMap) if err != nil { return "", 0, fmt.Errorf("unexpected error unmarshaling resultBody: %v", err) } apiVersion, ok := resultBodyMap["apiVersion"].(string) if !ok { return "", 0, fmt.Errorf("unexpected error, apiVersion not found in JSON response: %v", string(response)) } if api.PreV1Beta3(apiVersion) { return parsePreV1Beta3ResourceVersion(resultBodyMap, response) } return parseV1Beta3ResourceVersion(resultBodyMap, response) }
// buildQueryValues is a convenience function for knowing if a namespace should be in a query param or not func buildQueryValues(namespace string, query url.Values) url.Values { v := url.Values{} if query != nil { for key, values := range query { for _, value := range values { v.Add(key, value) } } } if len(namespace) > 0 { if api.PreV1Beta3(testapi.Version()) { v.Set("namespace", namespace) } } return v }
// resourceName returns node's URL resource name based on resource version. // Uses "minions" as the URL resource name for v1beta1 and v1beta2. func (c *nodes) resourceName() string { if api.PreV1Beta3(c.r.APIVersion()) { return "minions" } return "nodes" }
// Returns the appropriate field label to use for name of the involved object as per the given API version. func getInvolvedObjectNameFieldLabel(version string) string { if api.PreV1Beta3(version) { return "involvedObject.id" } return "involvedObject.name" }