(client client.Client, profile *PluginsProfile)
| 101 | } |
| 102 | |
| 103 | func newHandler(client client.Client, profile *PluginsProfile) (handlers *Handlers, err error) { |
| 104 | handlers = &Handlers{} |
| 105 | pluginConfig := make(map[string]string, len(profile.PluginConfig)) |
| 106 | for i := range profile.PluginConfig { |
| 107 | name := profile.PluginConfig[i].Name |
| 108 | if _, ok := pluginConfig[name]; ok { |
| 109 | log.Error(errors.New("repeated config for plugin, use the later"), "name", name) |
| 110 | } |
| 111 | pluginConfig[name] = profile.PluginConfig[i].Args |
| 112 | } |
| 113 | |
| 114 | // new handler for serverful and serverless pod with/without dataset |
| 115 | podWithDatasetHandler, err := newHandlerForType(client, profile.Plugins.Serverful.WithDataset, pluginConfig, "podWithDatasetHandler") |
| 116 | if err != nil { |
| 117 | return nil, err |
| 118 | } |
| 119 | handlers.podWithDatasetHandler = podWithDatasetHandler |
| 120 | |
| 121 | podWithoutDatasetHandler, err := newHandlerForType(client, profile.Plugins.Serverful.WithoutDataset, pluginConfig, "podWithoutDatasetHandler") |
| 122 | if err != nil { |
| 123 | return nil, err |
| 124 | } |
| 125 | handlers.podWithoutDatasetHandler = podWithoutDatasetHandler |
| 126 | |
| 127 | serverlessPodWithDatasetHandler, err := newHandlerForType(client, profile.Plugins.Serverless.WithDataset, pluginConfig, "serverlessPodWithDatasetHandler") |
| 128 | if err != nil { |
| 129 | return nil, err |
| 130 | } |
| 131 | handlers.serverlessPodWithDatasetHandler = serverlessPodWithDatasetHandler |
| 132 | |
| 133 | serverlessPodWithoutDatasetHandler, err := newHandlerForType(client, profile.Plugins.Serverless.WithoutDataset, pluginConfig, "serverlessPodWithoutDatasetHandler") |
| 134 | if err != nil { |
| 135 | return nil, err |
| 136 | } |
| 137 | handlers.serverlessPodWithoutDatasetHandler = serverlessPodWithoutDatasetHandler |
| 138 | |
| 139 | return handlers, nil |
| 140 | } |
| 141 | |
| 142 | func newHandlerForType(client client.Client, pluginNames []string, pluginConfig map[string]string, pluginType string) ([]api.MutatingHandler, error) { |
| 143 | var serverlessPodWithDatasetHandlerNames []string |
no test coverage detected