func()

in spinnaker/spinnaker.go [384:429]


func (s Spinnaker) clusters(appName string) spinnakerClusters {
	url := s.clustersURL(appName)
	resp, err := s.client.Get(url)
	if err != nil {
		log.Println("Error connecting to spinnaker clusters endpoint")
		log.Println(url)
		log.Fatalln(err)
	}

	defer func() {
		if err := resp.Body.Close(); err != nil {
			log.Printf("Error closing response body of %s: %v", url, err)
		}
	}()

	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Println("Error retrieving spinnaker clusters for app", appName)
		log.Println(url)
		log.Println(string(body))
		log.Fatalln(err)
	}

	// Example cluster output:
	/*
		{
		  "prod": [
			"abc-prod"
		  ],
		  "test": [
			"abc-beta"
		  ]
		}
	*/
	var m spinnakerClusters

	err = json.Unmarshal(body, &m)
	if err != nil {
		log.Println("Error parsing body when retrieving cluster info for", appName)
		log.Println(url)
		log.Println(string(body))
		log.Fatalln(err)
	}

	return m
}