예제 #1
0
파일: server.go 프로젝트: cjnygard/origin
func (s *SchedulerServer) createConfig(configFactory *factory.ConfigFactory) (*scheduler.Config, error) {
	var policy schedulerapi.Policy
	var configData []byte

	if _, err := os.Stat(s.PolicyConfigFile); err == nil {
		configData, err = ioutil.ReadFile(s.PolicyConfigFile)
		if err != nil {
			return nil, fmt.Errorf("Unable to read policy config: %v", err)
		}
		err = latestschedulerapi.Codec.DecodeInto(configData, &policy)
		if err != nil {
			return nil, fmt.Errorf("Invalid configuration: %v", err)
		}

		return configFactory.CreateFromConfig(policy)
	}

	// if the config file isn't provided, use the specified (or default) provider
	// check of algorithm provider is registered and fail fast
	_, err := factory.GetAlgorithmProvider(s.AlgorithmProvider)
	if err != nil {
		return nil, err
	}

	return configFactory.CreateFromProvider(s.AlgorithmProvider)
}
예제 #2
0
func createConfig(configFactory *factory.ConfigFactory) (*scheduler.Config, error) {
	// check of algorithm provider is registered and fail fast
	_, err := factory.GetAlgorithmProvider(*algorithmProvider)
	if err != nil {
		return nil, err
	}
	return configFactory.CreateFromProvider(*algorithmProvider)
}