Commit ba40a528 authored by Dominika Hodovska's avatar Dominika Hodovska

PluginInitializer as a new part of NewFromPlugins method

parent fc0a3c6d
...@@ -250,7 +250,10 @@ func Run(s *options.APIServer) error { ...@@ -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 { ...@@ -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 ...@@ -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 ...@@ -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.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment