mirror of
https://github.com/alice-lg/alice-lg.git
synced 2024-05-11 05:55:03 +00:00
added lookup columns to config
This commit is contained in:
@ -138,6 +138,8 @@ func apiConfigShow(_req *http.Request, _params httprouter.Params) (api.Response,
|
||||
RoutesColumnsOrder: AliceConfig.Ui.RoutesColumnsOrder,
|
||||
NeighboursColumns: AliceConfig.Ui.NeighboursColumns,
|
||||
NeighboursColumnsOrder: AliceConfig.Ui.NeighboursColumnsOrder,
|
||||
LookupColumns: AliceConfig.Ui.LookupColumns,
|
||||
LookupColumnsOrder: AliceConfig.Ui.LookupColumnsOrder,
|
||||
PrefixLookupEnabled: AliceConfig.Server.EnablePrefixLookup,
|
||||
}
|
||||
return result, nil
|
||||
|
@ -34,6 +34,9 @@ type ConfigResponse struct {
|
||||
RoutesColumns map[string]string `json:"routes_columns"`
|
||||
RoutesColumnsOrder []string `json:"routes_columns_order"`
|
||||
|
||||
LookupColumns map[string]string `json:"lookup_columns"`
|
||||
LookupColumnsOrder []string `json:"lookup_columns_order"`
|
||||
|
||||
PrefixLookupEnabled bool `json:"prefix_lookup_enabled"`
|
||||
}
|
||||
|
||||
|
@ -44,6 +44,9 @@ type UiConfig struct {
|
||||
NeighboursColumns map[string]string
|
||||
NeighboursColumnsOrder []string
|
||||
|
||||
LookupColumns map[string]string
|
||||
LookupColumnsOrder []string
|
||||
|
||||
RoutesRejections RejectionsConfig
|
||||
RoutesNoexports NoexportsConfig
|
||||
|
||||
@ -109,16 +112,17 @@ func getBackendType(section *ini.Section) int {
|
||||
}
|
||||
|
||||
// Get UI config: Routes Columns Default
|
||||
func getRoutesColumnsDefault() (map[string]string, []string) {
|
||||
func getRoutesColumnsDefaults() (map[string]string, []string, error) {
|
||||
columns := map[string]string{
|
||||
"network": "Network",
|
||||
"bgp.as_path": "AS Path",
|
||||
"gateway": "Gateway",
|
||||
"interface": "Interface",
|
||||
}
|
||||
|
||||
order := []string{"Network", "bgp.as_path", "gateway", "interface"}
|
||||
order := []string{"network", "bgp.as_path", "gateway", "interface"}
|
||||
|
||||
return columns, order
|
||||
return columns, order, nil
|
||||
}
|
||||
|
||||
// Get UI config: Routes Columns
|
||||
@ -136,8 +140,7 @@ func getRoutesColumns(config *ini.File) (map[string]string, []string, error) {
|
||||
keys := section.Keys()
|
||||
|
||||
if len(keys) == 0 {
|
||||
defaultColumns, defaultOrder := getRoutesColumnsDefault()
|
||||
return defaultColumns, defaultOrder, nil
|
||||
return getRoutesColumnsDefaults()
|
||||
}
|
||||
|
||||
for _, key := range keys {
|
||||
@ -149,7 +152,7 @@ func getRoutesColumns(config *ini.File) (map[string]string, []string, error) {
|
||||
}
|
||||
|
||||
// Get UI config: Get Neighbours Columns Defaults
|
||||
func getNeighboursColumnsDefaults() (map[string]string, []string) {
|
||||
func getNeighboursColumnsDefaults() (map[string]string, []string, error) {
|
||||
columns := map[string]string{
|
||||
"address": "Neighbour",
|
||||
"asn": "ASN",
|
||||
@ -165,7 +168,7 @@ func getNeighboursColumnsDefaults() (map[string]string, []string) {
|
||||
"Uptime", "Description", "routes_received", "routes_filtered",
|
||||
}
|
||||
|
||||
return columns, order
|
||||
return columns, order, nil
|
||||
}
|
||||
|
||||
// Get UI config: Get Neighbours Columns
|
||||
@ -182,8 +185,49 @@ func getNeighboursColumns(config *ini.File) (
|
||||
keys := section.Keys()
|
||||
|
||||
if len(keys) == 0 {
|
||||
defaultColumns, defaultOrder := getNeighboursColumnsDefaults()
|
||||
return defaultColumns, defaultOrder, nil
|
||||
return getNeighboursColumnsDefaults()
|
||||
}
|
||||
|
||||
for _, key := range keys {
|
||||
columns[key.Name()] = section.Key(key.Name()).MustString("")
|
||||
order = append(order, key.Name())
|
||||
}
|
||||
|
||||
return columns, order, nil
|
||||
}
|
||||
|
||||
// Get UI config: Get Prefix search / Routes lookup columns
|
||||
// As these differ slightly from our routes in the response
|
||||
// (e.g. the neighbor and source rs is referenced as a nested object)
|
||||
// we provide an additional configuration for this
|
||||
func getLookupColumnsDefaults() (map[string]string, []string, error) {
|
||||
columns := map[string]string{
|
||||
"network": "Network",
|
||||
"gateway": "Gateway",
|
||||
"neighbour.asn": "ASN",
|
||||
"neighbour.description": "Neighbor",
|
||||
"bgp.as_path": "AS Path",
|
||||
"routeserver.name": "RS",
|
||||
}
|
||||
|
||||
order := []string{"network", "bgp.as_path", "gateway", "interface"}
|
||||
|
||||
return columns, order, nil
|
||||
}
|
||||
|
||||
func getLookupColumns(config *ini.File) (
|
||||
map[string]string,
|
||||
[]string,
|
||||
error,
|
||||
) {
|
||||
columns := make(map[string]string)
|
||||
order := []string{}
|
||||
|
||||
section := config.Section("lookup_columns")
|
||||
keys := section.Keys()
|
||||
|
||||
if len(keys) == 0 {
|
||||
return getLookupColumnsDefaults()
|
||||
}
|
||||
|
||||
for _, key := range keys {
|
||||
@ -286,6 +330,12 @@ func getUiConfig(config *ini.File) (UiConfig, error) {
|
||||
return uiConfig, err
|
||||
}
|
||||
|
||||
// Lookup table columns
|
||||
lookupColumns, lookupColumnsOrder, err := getLookupColumns(config)
|
||||
if err != nil {
|
||||
return uiConfig, err
|
||||
}
|
||||
|
||||
// Get rejections and reasons
|
||||
rejections, err := getRoutesRejections(config)
|
||||
if err != nil {
|
||||
@ -312,6 +362,9 @@ func getUiConfig(config *ini.File) (UiConfig, error) {
|
||||
NeighboursColumns: neighboursColumns,
|
||||
NeighboursColumnsOrder: neighboursColumnsOrder,
|
||||
|
||||
LookupColumns: lookupColumns,
|
||||
LookupColumnsOrder: lookupColumnsOrder,
|
||||
|
||||
RoutesRejections: rejections,
|
||||
RoutesNoexports: noexports,
|
||||
|
||||
|
Reference in New Issue
Block a user