Exemple #1
0
func missingNets(defined common.PrivateNetList, loaded []activeNet) []string {
	diff := make(map[string]struct{})
	for _, n := range defined.StringsOnlyNames() {
		if n != "all" {
			diff[n] = struct{}{}
		}
	}

	for _, an := range loaded {
		delete(diff, an.conf.Name)
	}

	missing := []string{}
	for n, _ := range diff {
		missing = append(missing, n)
	}
	return missing
}
Exemple #2
0
func loadUserNets(localConfig string, netsLoadList common.PrivateNetList) ([]activeNet, error) {
	userNetPath := filepath.Join(localConfig, UserNetPathSuffix)
	log.Printf("Loading networks from %v\n", userNetPath)

	files, err := listFiles(userNetPath)
	if err != nil {
		return nil, err
	}

	sort.Strings(files)

	nets := make([]activeNet, 0, len(files))

	for _, filename := range files {
		filepath := filepath.Join(userNetPath, filename)

		if !strings.HasSuffix(filepath, ".conf") {
			continue
		}

		n, err := loadNet(filepath)
		if err != nil {
			return nil, err
		}

		if !(netsLoadList.All() || netsLoadList.Specific(n.conf.Name)) {
			continue
		}

		// "default" is slightly special
		if n.conf.Name == "default" {
			log.Printf(`Overriding "default" network with %v`, filename)
		}

		if netExists(nets, n.conf.Name) {
			log.Printf("%q network already defined, ignoring %v", n.conf.Name, filename)
			continue
		}

		nets = append(nets, *n)
	}

	return nets, nil
}