1
0
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:
Matthias Hannig
2018-08-03 10:37:05 +02:00
parent 4a30d05c51
commit 180312adc1
3 changed files with 67 additions and 9 deletions

View File

@ -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

View File

@ -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"`
}

View File

@ -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,