PluginInitializer as a new part of NewFromPlugins method
This commit is contained in:
		@@ -250,7 +250,10 @@ func Run(s *options.APIServer) error {
 | 
				
			|||||||
	pluginInit := admission.NewPluginInitializer()
 | 
						pluginInit := admission.NewPluginInitializer()
 | 
				
			||||||
	pluginInit.SetNamespaceInformer(namespaceInformer)
 | 
						pluginInit.SetNamespaceInformer(namespaceInformer)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	admissionController := admission.NewFromPlugins(client, admissionControlPluginNames, s.AdmissionControlConfigFile)
 | 
						admissionController, err := admission.NewFromPlugins(client, admissionControlPluginNames, s.AdmissionControlConfigFile, pluginInit)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							glog.Errorf("Failed to initialize plugins: %v", err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	genericConfig := genericapiserver.NewConfig(s.ServerRunOptions)
 | 
						genericConfig := genericapiserver.NewConfig(s.ServerRunOptions)
 | 
				
			||||||
	// TODO: Move the following to generic api server as well.
 | 
						// TODO: Move the following to generic api server as well.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -125,7 +125,10 @@ func Run(s *genericoptions.ServerRunOptions) error {
 | 
				
			|||||||
	pluginInit := admission.NewPluginInitializer()
 | 
						pluginInit := admission.NewPluginInitializer()
 | 
				
			||||||
	pluginInit.SetNamespaceInformer(namespaceInformer)
 | 
						pluginInit.SetNamespaceInformer(namespaceInformer)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	admissionController := admission.NewFromPlugins(client, admissionControlPluginNames, s.AdmissionControlConfigFile)
 | 
						admissionController, err := admission.NewFromPlugins(client, admissionControlPluginNames, s.AdmissionControlConfigFile, pluginInit)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							glog.Errorf("Failed to initialize plugins: %v", err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	genericConfig := genericapiserver.NewConfig(s)
 | 
						genericConfig := genericapiserver.NewConfig(s)
 | 
				
			||||||
	// TODO: Move the following to generic api server as well.
 | 
						// TODO: Move the following to generic api server as well.
 | 
				
			||||||
	genericConfig.StorageFactory = storageFactory
 | 
						genericConfig.StorageFactory = storageFactory
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,7 +23,7 @@ type chainAdmissionHandler []Interface
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// NewFromPlugins returns an admission.Interface that will enforce admission control decisions of all
 | 
					// NewFromPlugins returns an admission.Interface that will enforce admission control decisions of all
 | 
				
			||||||
// the given plugins.
 | 
					// the given plugins.
 | 
				
			||||||
func NewFromPlugins(client clientset.Interface, pluginNames []string, configFilePath string) Interface {
 | 
					func NewFromPlugins(client clientset.Interface, pluginNames []string, configFilePath string, plugInit PluginInitializer) (Interface, error) {
 | 
				
			||||||
	plugins := []Interface{}
 | 
						plugins := []Interface{}
 | 
				
			||||||
	for _, pluginName := range pluginNames {
 | 
						for _, pluginName := range pluginNames {
 | 
				
			||||||
		plugin := InitPlugin(pluginName, client, configFilePath)
 | 
							plugin := InitPlugin(pluginName, client, configFilePath)
 | 
				
			||||||
@@ -31,7 +31,12 @@ func NewFromPlugins(client clientset.Interface, pluginNames []string, configFile
 | 
				
			|||||||
			plugins = append(plugins, plugin)
 | 
								plugins = append(plugins, plugin)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return chainAdmissionHandler(plugins)
 | 
						plugInit.Initialize(plugins)
 | 
				
			||||||
 | 
						// ensure that plugins have been properly initialized
 | 
				
			||||||
 | 
						if err := Validate(plugins); err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return chainAdmissionHandler(plugins), nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// NewChainHandler creates a new chain handler from an array of handlers. Used for testing.
 | 
					// NewChainHandler creates a new chain handler from an array of handlers. Used for testing.
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user