示例#1
0
文件: registry.go 项目: crohling/kops
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
}