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
}