func()

in lib/ec2macosinit/config.go [44:72]


func (c *InitConfig) ValidateAndIdentify() (err error) {
	// Create keySet to store used keys
	keySet := map[string]struct{}{}

	// Loop through every module and check a few things...
	for i := 0; i < len(c.Modules); i++ {
		// Identify module type
		err := c.Modules[i].identifyModule()
		if err != nil {
			return fmt.Errorf("ec2macosinit: error while identifying module: %s\n", err)
		}

		// Validate individual module
		err = c.Modules[i].validateModule()
		if err != nil {
			return fmt.Errorf("ec2macosinit: error found in module (type: %s, priority: %d): %s\n", c.Modules[i].Type, c.Modules[i].PriorityGroup, err)
		}

		// Check that key name is unique for the current configuration
		if _, ok := keySet[c.Modules[i].Name]; !ok {
			// Key hasn't been used yet - add key to the set
			keySet[c.Modules[i].Name] = struct{}{}
		} else {
			return fmt.Errorf("ec2macosinit: duplicate name found in config:%s\n", c.Modules[i].Name)
		}
	}

	return nil
}