func ReadConfig(stateStore fi.StateStore) (*Cluster, []*InstanceGroup, error) { cluster := &Cluster{} err := stateStore.ReadConfig("config", cluster) if err != nil { return nil, nil, fmt.Errorf("error reading cluster configuration: %v", err) } var instanceGroups []*InstanceGroup keys, err := stateStore.ListChildren("instancegroup") if err != nil { return nil, nil, fmt.Errorf("error listing instancegroups in state store: %v", err) } for _, key := range keys { group := &InstanceGroup{} err = stateStore.ReadConfig("instancegroup/"+key, group) if err != nil { return nil, nil, fmt.Errorf("error reading instancegroup configuration %q: %v", key, err) } instanceGroups = append(instanceGroups, group) } return cluster, instanceGroups, nil }