(routes map[string]resourceRouteRecord, record capabilityRecord, item pluginapi.ResourceRoute)
| 164 | } |
| 165 | |
| 166 | func registerResourceRoute(routes map[string]resourceRouteRecord, record capabilityRecord, item pluginapi.ResourceRoute) bool { |
| 167 | path, okRoute := normalizeResourceRoute(record.id, item) |
| 168 | if !okRoute { |
| 169 | return false |
| 170 | } |
| 171 | key := managementRouteKey(http.MethodGet, path) |
| 172 | if _, exists := routes[key]; exists { |
| 173 | log.Warnf("pluginhost: plugin %s resource route %s conflicts with a higher-priority plugin and was skipped", record.id, key) |
| 174 | return true |
| 175 | } |
| 176 | item.Path = path |
| 177 | routes[key] = resourceRouteRecord{ |
| 178 | pluginID: record.id, |
| 179 | path: record.path, |
| 180 | version: record.version, |
| 181 | route: item, |
| 182 | } |
| 183 | return true |
| 184 | } |
| 185 | |
| 186 | func normalizeResourceRoute(pluginID string, item pluginapi.ResourceRoute) (string, bool) { |
| 187 | if item.Handler == nil { |
no test coverage detected