func NewApp()

in deploy/app.go [73:102]


func NewApp(name string, data AppMap) *App {
	app := App{name: name}
	for accountName, accountInfo := range data {
		account := Account{name: string(accountName), app: &app, cloudProvider: accountInfo.CloudProvider}
		app.accounts = append(app.accounts, &account)
		for clusterName, clusterValue := range accountInfo.Clusters {
			cluster := Cluster{name: string(clusterName), account: &account}
			account.clusters = append(account.clusters, &cluster)
			for regionName, regionValue := range clusterValue {
				for asgName, instanceIds := range regionValue {
					asg := ASG{
						name:    string(asgName),
						region:  string(regionName),
						cluster: &cluster,
					}
					cluster.asgs = append(cluster.asgs, &asg)
					for _, id := range instanceIds {
						instance := Instance{
							id:  string(id),
							asg: &asg,
						}
						asg.instances = append(asg.instances, &instance)
					}
				}
			}
		}
	}

	return &app
}