mirror of
https://github.com/thatmattlove/hyperglass.git
synced 2026-01-17 00:38:06 +00:00
re-add missing commits from botched branch rename
This commit is contained in:
parent
8653fcd4a4
commit
b2b0d45927
3 changed files with 23 additions and 66 deletions
83
README.md
83
README.md
|
|
@ -1,9 +1,20 @@
|
|||
<div align="center">
|
||||
|
||||
<img src="logo.png" width=300></img>
|
||||
|
||||
**hyperglass** is a modern network looking glass application. A looking glass is typically implemented by network service providers as a way of providing customers, peers, and partners with a way to easily view elements of, or run tests from the provider's network.
|
||||
# ⚡️ [1.0 Beta Release](https://github.com/checktheroads/hyperglass/tree/v1.0.0)
|
||||
I've been hard at work on a revamp of hyperglass since its initial release in June 2019, and I'm pleased to make version 1.0.0 available for beta testing. While I feel v1.0.0 is actually _more_ stable than the original release here in the master branch, I have not had time to complete a few lingering UI features, documentation, screenshots, an updated demo site, contributor guidelines, and testing.
|
||||
|
||||
**I invite any current or new users of hyperglass to try out the [1.0 beta release](https://github.com/checktheroads/hyperglass/tree/v1.0.0) or look over the [documentation](https://hyperglass.io), and let me know of any issues to address prior to merging it to the master branch.**
|
||||
|
||||
<hr>
|
||||
|
||||
hyperglass is a modern network looking glass application. A looking glass is typically implemented by network service providers as a way of providing customers, peers, and partners with a way to easily view elements of, or run tests from the provider's network.
|
||||
|
||||
<hr>
|
||||
|
||||
</div>
|
||||
|
||||
<div align="center">
|
||||
|
||||
[**Documentation**](https://hyperglass.readthedocs.io) | [**Screenshots**](https://hyperglass.readthedocs.io/en/latest/screenshots/) | [**Live Demo**](https://hyperglass.allroads.io/)
|
||||
|
|
@ -15,10 +26,6 @@
|
|||
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
|
||||
**hyperglass** is intended to make implementing a looking glass too easy not to do, with the lofty goal of improving the internet community at large by making looking glasses more common across autonomous systems of any size.
|
||||
|
||||
## Features
|
||||
|
||||
- BGP Route, BGP Community, BGP AS Path, Ping, Traceroute
|
||||
|
|
@ -48,74 +55,24 @@ hyperglass is preconfigured to support the following platforms:
|
|||
|
||||
Theoretically, any vendor supported by Netmiko can be supported by hyperglass. To request support for a specifc platform, please [submit a Github Issue](https://github.com/checktheroads/hyperglass/issues/new) with the **enhancement** label.
|
||||
|
||||
## Coming Soon
|
||||
hyperglass is intended to make implementing a looking glass too easy not to do, with the lofty goal of improving the internet community at large by making looking glasses more common across autonomous systems of any size.
|
||||
|
||||
- [GoBGP](https://github.com/osrg/gobgp) Support
|
||||
### [Get Started →](https://hyperglass.readthedocs.io/)
|
||||
|
||||
## Community
|
||||
|
||||
There is now a [hyperglass team](https://keybase.io/team/hyperglass) on [Keybase](https://keybase.io/)! Any users, potential users, or contributors of hyperglass are welcome to join to discuss usage, feature requests, bugs, and other things.
|
||||
- [Gitter](https://gitter.im/hyperglass)
|
||||
- [Keybase](https://keybase.io/team/hyperglass)
|
||||
- [Twitter](https://twitter.com/checktheroads)
|
||||
|
||||
Any users, potential users, or contributors of hyperglass are welcome to join and discuss usage, feature requests, bugs, and other things.
|
||||
|
||||
**hyperglass is developed with the express intention of being free to the networking community**.
|
||||
|
||||
*However, the hyperglass demo does cost [@checktheroads](https://github.com/checktheroads) about $15/month for 3 Digital Ocean droplets. If you're feeling particularly helpful and want to help offset that cost, small donations are welcome.*
|
||||
*However, the hyperglass demo does cost [@checktheroads](https://github.com/checktheroads) about $15/month for 3 Digital Ocean droplets, and $60/year for the [hyperglass.io](https://hyperglass.io) domain. If you're feeling particularly helpful and want to help offset that cost, small donations are welcome.*
|
||||
|
||||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ZQFH3BB2B5M3E&source=url)
|
||||
|
||||
## Acknowledgements
|
||||
|
||||
- This project originally started as a fork of [vraulsan](https://github.com/vraulsan)'s [looking-glass](https://github.com/vraulsan/looking-glass) project. The guts of the Flask components still remain from that project, but almost everything else has been rewritten. Nevertheless, the inspiration for building hyperglass came from here.
|
||||
|
||||
## License
|
||||
|
||||
[Clear BSD License](https://github.com/checktheroads/hyperglass/blob/master/LICENSE)
|
||||
|
||||
# *Development Status*
|
||||
|
||||
Beginning 2019-09-01, the *initial* release of **hyperglass** will only receive updates for critical bug fixes or vulnerabilities. Any enhancements, new features, or other general improvements will, if accepted/approved, be implemented in version 1.0.0, development for which can be tracked via the [v1.0.0 branch](https://github.com/checktheroads/hyperglass/tree/v1.0.0).
|
||||
|
||||
## But why
|
||||
|
||||
The initial release of hyperglass was the culmination of my first ever foray into development, so naturally it is not perfect. Building that initial release was an incredibly fun process through which I learned a *lot*, and the community's feedback has been overwhelmingly positive. However, after the initial release I still had a massive list of features I wanted to try to implement. As I began that process, I found many aspects of the hyperglass backend that needed improving (or in some cases, significant overhaul). So, I decided to put all my efforts into a single "1.0" release and treat the initial hyperglass release as more of a beta. This way, I'm able to dedicate what little development time I have to the drastic improvements in the works in the v1.0.0 branch.
|
||||
|
||||
## What's coming in 1.0?
|
||||
|
||||
##### So far, I've already implemented the following:
|
||||
|
||||
:heavy_check_mark: [Asyncio](https://docs.python.org/3/library/asyncio.html) end-to-end wherever possible
|
||||
|
||||
:heavy_check_mark: Migrated web framework from Flask to [Sanic](https://github.com/huge-success/sanic) (removes Gunicorn dependency)
|
||||
|
||||
:heavy_check_mark: Migrated outbound http client framework from Requests to [HTTPX](https://github.com/encode/httpx) for FRR/BIRD connections
|
||||
|
||||
:heavy_check_mark: Migrated front-end framework from Bulma to [Bootstrap 4](https://getbootstrap.com/) using a custom theme, for which most visual aspects are still completely customizable.
|
||||
|
||||
:heavy_check_mark: Front-end frameworks/dependencies are no longer bundled with hyperglass. [Yarn](https://yarnpkg.com/lang/en/) now handles package management, and [ParcelJS](https://parceljs.org/) now bundles and minifies all Javascript libraries, CSS frameworks and custom CSS, fonts, etc. making for a more consistent and controlable user experience.
|
||||
|
||||
:heavy_check_mark: Migrated config file language from TOML to [YAML](https://en.wikipedia.org/wiki/YAML).
|
||||
|
||||
:heavy_check_mark: [Pydantic](https://github.com/samuelcolvin/pydantic/) for config file modeling and validation. This will reduce, if not remove, the likelihood of accidentally misconfiguring hyperglass, your devices, or custom commands. It also allows for a significantly more sensible way of setting reasonable defaults, which now exist for all configuration variables, except for devices.
|
||||
|
||||
:heavy_check_mark: Ability to query multiple devices at once.
|
||||
|
||||
:heavy_check_mark: Custom commands are no longer NOS-specific. Command "profiles" can be arbitrarily created and associated with any device. This means that even if two different devices are running `cisco_ios`, one device can use one set of commands, and the other device can use a different set of commands.
|
||||
|
||||
:heavy_check_mark: Some other backend goodies like: A (configurable) global timeout, so if a device can't be reached for whatever reason, the user is not left to watch a loading bar. Faster SSH queries. *Way* faster queries when using an SSH proxy/tunnel. Drastically improved error handling with 100% customizable user-facing error messages. Front-end to back-end communication is now 100% JSON, which means hyperglass is also a looking glass API for your network, not just a GUI.
|
||||
|
||||
##### What I'm still working on:
|
||||
|
||||
:white_check_mark: VRF support. You'll be able to, per-device, enable queries to be VRF and AFI specific.
|
||||
|
||||
:white_check_mark: *Possibly* move to [Netdev](https://github.com/selfuryon/netdev) instead of Netmiko for SSH connection handling for performance gains.
|
||||
|
||||
:white_check_mark: Improved native Juniper support
|
||||
|
||||
:white_check_mark: Native Arista support
|
||||
|
||||
:white_check_mark: Native Huawei support
|
||||
|
||||
:white_check_mark: Improved reverse proxy docs, mainly for adding GZIP compression support for static files
|
||||
|
||||
:white_check_mark: Make Grafana dashboard available via Grafana's plugin marketplace
|
||||
|
||||
...and several other things that probably won't make it into 1.0 :)
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ class Rest:
|
|||
logger.debug(f"FRR endpoint: {frr_endpoint}")
|
||||
# End Debug
|
||||
frr_response = requests.post(
|
||||
frr_endpoint, headers=headers, data=json_query, timeout=7
|
||||
frr_endpoint, headers=headers, data=json_query, timeout=15
|
||||
)
|
||||
response = frr_response.text
|
||||
status = frr_response.status_code
|
||||
|
|
@ -111,7 +111,7 @@ class Rest:
|
|||
logger.debug(f"BIRD endpoint: {bird_endpoint}")
|
||||
# End Debug
|
||||
bird_response = requests.post(
|
||||
bird_endpoint, headers=headers, data=json_query, timeout=7
|
||||
bird_endpoint, headers=headers, data=json_query, timeout=15
|
||||
)
|
||||
response = bird_response.text
|
||||
status = bird_response.status_code
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ traceroute = "traceroute ipv6 {target} timeout 1 probe 2 source {source}"
|
|||
[[juniper]]
|
||||
[juniper.dual]
|
||||
bgp_community = "show route protocol bgp community {target}"
|
||||
bgp_aspath = "show route protocol bgp aspath-regex {target}"
|
||||
bgp_aspath = 'show route protocol bgp aspath-regex "{target}"'
|
||||
[juniper.ipv4]
|
||||
bgp_route = "show route protocol bgp table inet.0 {target} detail"
|
||||
ping = "ping inet {target} count 5 source {source}"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue