Commit Graph

91 Commits

Author SHA1 Message Date
Italo Cunha 30add2e41b Allow setting log history size
BIRD-LG currently keeps log files indefinitely. This patch allows
setting the number of days logs should be kept for by adding
a `LOG_NUM_DAYS` parameter in the configuration files.

This change is backwards compatible: Running the updated code with
old configuration files will keep logs indefinitely as before; new
deployments based on the example configuration will keep logs
indefinitely.
2021-06-06 19:29:51 +02:00
Baptiste Jonglez f41056a684 Remove the need for memcached
From a deployment perspective, it's annoying to depend on memcached, and
it's only used to cache DNS answers for the BGPmap.

Fixes #73
2021-05-10 23:03:37 +02:00
Baptiste Jonglez 967c721b86 bgpmap: fix regexp to match interface names with non-alphanumerical characters
Commit eaf531eee2 ("Correctly parse aspath for both bird 1.x and 2.0.")
inadvertently made a regexp more strict, and it no longer matches some
interface names.  Example include `eth1.945` (tagged VLAN, which is a
common use-case for routers) or `br-foo`.

As a result, the regexp would not parse the "peer protocol name" that is
normally displayed on the bgpmap.

Fixes: #64
2020-06-16 15:43:03 +02:00
Baptiste Jonglez 53e717381d bgpmap: Fix crash when 'peer_protocol_name' is not matched by regexp
This protects against cases where the regexp expr2 is broken (such as
currently with some interface names)

Fixes: #64
2020-06-16 15:42:41 +02:00
Baptiste Jonglez 1d3eefa971 Don't display URL containing shared secret when there is an error 2020-06-15 22:47:51 +02:00
Baptiste Jonglez a45ae45408 Basic python reformatting
Transform all tabs to spaces and remove trailing spaces.
2020-06-15 22:34:25 +02:00
Guillaume Marsay 96c33da446 Add SHARED_SECRET 2020-06-15 17:33:50 +02:00
Guillaume Marsay d3e9d5c6b9 DOMAIN is now optional 2020-06-15 09:57:59 +02:00
zorun 5138d655c8
Merge pull request #54 from empi89/feature/config-file-as-argument
specify config file as cli argument
2020-06-14 18:04:12 +02:00
İlteriş Eroğlu 9d9d93805e Removed br tag replacer on whois endpoint 2020-04-30 11:29:51 +02:00
zorun 1abe3f410f
Merge pull request #55 from empi89/feature/add-direct-to-unwanted-protos
add direct to SUMMARY_UNWANTED_PROTOS
2020-03-02 12:09:41 +01:00
zorun d8c20f4cbd
Merge pull request #53 from tamihiro/new-pr-batch-5
Correct AS path prepend count in bgpmap.
2020-03-02 12:05:19 +01:00
zorun b448784a0b
Merge pull request #51 from tamihiro/new-pr-batch-3
Correctly display each of multiple destination prefixes with a box shape.
2020-03-02 12:04:27 +01:00
zorun 93ed0769fe
Merge pull request #49 from tamihiro/new-pr-batch
Correctly parse aspath for both bird 1.x and 2.0.
2020-03-02 12:03:25 +01:00
Peter Hansen 307a96d063 direct is also an protocol that should be not shown 2019-12-28 11:37:05 +01:00
Peter Hansen 71226a4ed3 specify config file as cli argument 2019-12-28 11:32:00 +01:00
tamihiro 648197da24 Correct AS path prepend count in bgpmap.
Without this patch, show_bgpmap() method does duplicate counts of aspath prepends, and returns a larger prepend count than it actually is.
2019-06-09 21:41:35 +09:00
tamihiro 2c0d5ac273 Correctly display each of multiple destination prefixes with a box shape.
Without this patch, `show route where net ~ [ prefix+ ] (bgpmap)` erroneously returns only one prefix with a box shape, and all the other prefixes with a oval shape as if they were multipath intermediate ASes.
2019-06-09 21:35:59 +09:00
tamihiro 822d54cd3d Prevent 4-byte AS capability from being treated like it is ASN
Bird displays neighbor's 4-byte AS capability as `AS4`.
This patch prevents it from being treated as an clickable ASN in the output of `show protocols <protocol_name> all` response.
2019-06-09 21:31:38 +09:00
tamihiro eaf531eee2 Correctly parse aspath for both bird 1.x and 2.0.
Due to the change in the output of `show route for <prefix> all` since bird-2.0, this patch is necessary to correctly parse aspaths.
Without this patch, `build_as_tree_from_raw_bird_ouput()` fails with the following exception if the backend is bird-2.0.

```
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/flask/app.py", line 1836, in __call__
    return self.wsgi_app(environ, start_response)
  File "/usr/lib/python2.7/dist-packages/flask/app.py", line 1820, in wsgi_app
    response = self.make_response(self.handle_exception(e))
  File "/usr/lib/python2.7/dist-packages/flask/app.py", line 1403, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/lib/python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/lib/python2.7/dist-packages/flask/app.py", line 1477, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/lib/python2.7/dist-packages/flask/app.py", line 1381, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/lib/python2.7/dist-packages/flask/app.py", line 1475, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/lib/python2.7/dist-packages/flask/app.py", line 1461, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "./lg.py", line 522, in show_bgpmap
    response = Response(graph.create_png(), mimetype='image/png')
  File "/usr/lib/python2.7/dist-packages/pydot.py", line 1735, in <lambda>
    lambda f=frmt, prog=self.prog: self.create(format=f, prog=prog)
  File "/usr/lib/python2.7/dist-packages/pydot.py", line 1905, in create
    self.write(tmp_name)
  File "/usr/lib/python2.7/dist-packages/pydot.py", line 1830, in write
    data = self.to_string()
  File "/usr/lib/python2.7/dist-packages/pydot.py", line 1600, in to_string
    graph.append(node.to_string() + '\n')
  File "/usr/lib/python2.7/dist-packages/pydot.py", line 865, in to_string
    node += ' [' + node_attr + ']'
TypeError: unsupported operand type(s) for +=: 'NoneType' and 'str'
```

Consequently, `show route for <prefix> (bgpmap)` shows an error icon.
2019-06-09 18:35:20 +09:00
Alarig Le Lay 50b1f1387e Applying patch from @fduraffourg that fixes #9 2019-04-12 19:34:07 +02:00
Baptiste Jonglez 0e45d90b70 Simplify parsing of 'show protocols' to avoid future breakages
The current parsing method (ugly regexp) is hard to understand and prone
to breakage:

- Bird 1.4 changed the date format, which broke the parser ()
- Bird 2.0 changed the format of the "Table" field, which again broke the parser (#36)

The new method is much simpler, does not involve any regexp, and should
thus resist small syntax changes in Bird's output.

Important limitation: parsing will be messed up if the date contains a
space character.  There is no space in the default date format of Bird
(checked with Bird 1.3 to Bird 2.0), but since the date format is
configurable in Bird, it may happen anyway.  In particular, setting
"timeformat protocol iso long" in Bird will break bird-lg's parser.

Fixes #36
2018-08-22 12:46:21 +02:00
Mehdi ABAAKOUK 5929afb5ec
Merge pull request #28 from loopodoopo/master
fixed SUMMARY_RE_MATCH to work with uptime longer then a day.
2017-10-30 19:15:02 +01:00
Maikel de Boer 53d2000863 fixed SUMMARY_RE_MATCH to work with uptime longer then a day. 2017-10-30 13:17:23 +01:00
Oskar Szafraniec 3f31a86d6a 'NoneType' object has no attribute 'split' 2017-10-26 13:10:08 +02:00
root 93124adf1b fix uptime parsing 2017-09-19 21:15:15 +02:00
Mehdi Abaakouk ed7494b14b fix fmt args 2017-08-16 22:44:23 +02:00
Mehdi Abaakouk 2342607092 Allow get svg 2017-08-16 22:40:07 +02:00
Mehdi Abaakouk 6dfd9f7546 Use base64 for bgpmap 2017-08-16 22:40:07 +02:00
Mehdi ABAAKOUK a849ede683 Merge pull request #13 from rodecker/upstream
peer uptime is either date or time
2016-10-09 07:29:22 +02:00
root f0058c6a41 Add prepend info on graph 2016-03-02 09:46:51 +01:00
Martin Pels 417912fca8 peer uptime is either date or time 2015-09-08 11:54:46 +02:00
Mehdi Abaakouk 6a7bd7f228 Allow configure asn cache expiration 2014-04-20 17:20:52 +02:00
Mehdi Abaakouk 9822e42e25 Add resolv timeout, store asn in memcache 2014-04-20 17:02:22 +02:00
Mehdi Abaakouk af2c305049 Merge remote-tracking branch 'zorun/master' 2014-03-18 14:09:36 +01:00
Mehdi Abaakouk cbdaa9138c Change lg-proxy to lgproxy to easly import it in wsgi part2 2014-02-18 11:57:44 +01:00
Baptiste Jonglez ffafef27cd Allow to configure the bind address of bird-lg 2014-02-12 22:09:09 +01:00
Baptiste Jonglez fe4e8caf2f Fix bgpmap (Graphviz does not seem to like empty labels) 2014-01-28 15:49:15 +01:00
Baptiste Jonglez e557dd651b Catch possible exceptions thrown by the ASN DNS resolver 2014-01-28 15:49:15 +01:00
Baptiste Jonglez 2418d13d07 Add support for configuring the DNS-based ASN → name mapping service. 2014-01-28 15:49:15 +01:00
Baptiste Jonglez ca7eb2b9ac Add support for a configurable whois server 2014-01-28 15:46:27 +01:00
Mehdi Abaakouk 298b1459fa Handle error correctly 2012-10-17 16:33:02 +02:00
Mehdi Abaakouk 6311df95e8 Rewrite the way that user input is handled 2012-10-17 16:17:52 +02:00
Mehdi Abaakouk 5bb5d42d0f Fix index error in last commit 2012-10-17 11:36:36 +02:00
Mehdi Abaakouk c22e73c7f8 Fix error when sanitized have only 1 argument 2012-10-17 11:32:33 +02:00
Mehdi Abaakouk 8419152668 Fix issue #2 2012-10-16 08:07:30 +02:00
Mehdi Abaakouk b593b0cfb7 escape some string 2012-10-16 08:01:10 +02:00
Mehdi Abaakouk 17d11c0ec4 Add logging system 2012-08-21 11:12:58 +02:00
Mehdi Abaakouk ea5563fe81 Move debug boolean to configuration file 2012-08-21 09:21:14 +02:00
Mehdi Abaakouk 725b8d3a3d basic caracter escape for pydot html label 2012-07-27 23:12:11 +02:00