1
0
mirror of https://github.com/checktheroads/hyperglass synced 2024-05-11 05:55:08 +00:00

Update GitHub username

This commit is contained in:
checktheroads
2021-06-23 19:22:30 -07:00
parent 4fb7be9bd7
commit eea833ed44
15 changed files with 142 additions and 138 deletions

View File

@@ -4,10 +4,14 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
# 1.0.1 - 2021-06-17
# 1.0.3 - 2021-06-23
_1.0.3 is a cosmetic release to factor in code-level changes related to the repository name change from checktheroads to thatmattlove._
# 1.0.2 - 2021-06-18
### Fixed
- [#150](https://github.com/checktheroads/hyperglass/issues/150): Fix handling of BIRD AS_PATH/Community targets.
- [#150](https://github.com/thatmattlove/hyperglass/issues/150): Fix handling of BIRD AS_PATH/Community targets.
# 1.0.1 - 2021-06-17
@@ -21,13 +25,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- The transitionary `frr_ssh` and `bird_ssh` NOS parameters no longer exist — `frr` and `bird` can now be used for SSH-based connectivity. hyperglass-agent users must now use `frr_legacy` and `bird_legacy` until hyperglass-agent is fully deprecated.
### Fixed
- [#139](https://github.com/checktheroads/hyperglass/issues/139): Fix an issue where the API cannot be queried by device name.
- [#139](https://github.com/thatmattlove/hyperglass/issues/139): Fix an issue where the API cannot be queried by device name.
### Changed
- Updated UI dependencies
### Added
- [#140](https://github.com/checktheroads/hyperglass/issues/140): Genericize links and menus so that multiple links and/or menus can be defined and fully customized.
- [#140](https://github.com/thatmattlove/hyperglass/issues/140): Genericize links and menus so that multiple links and/or menus can be defined and fully customized.
# 1.0.0-beta.82 - 2021-04-22
@@ -35,13 +39,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
**NodeJS 14.15 or later is required**. See [the docs](https://hyperglass.dev/docs/getting-started) for installation instructions.
### Fixed
- [#135](https://github.com/checktheroads/hyperglass/issues/135): Fix an issue where Juniper indirect next-hops were empty.
- [#135](https://github.com/thatmattlove/hyperglass/issues/135): Fix an issue where Juniper indirect next-hops were empty.
- Fix an issue where Juniper structured AS_PATH or Community queries would appear to fail if one address family (IPv4 or IPv6) had an empty response. For example, if an AS_PATH query for `.* 29414 .*` was made (which only returns IPv4 routes), the query would fail.
### Changed
- Updated major Python dependencies (FastAPI, Scrapli, Netmiko, Pydantic, Uvicorn, Gunicorn, etc.)
- Updated UI dependencies
- [#128](https://github.com/checktheroads/hyperglass/pull/128): Add `best` to all Juniper BGP Route queries. See [Juniper docs](https://www.juniper.net/documentation/us/en/software/junos/bgp/topics/ref/command/show-route-best.html) for more details.
- [#128](https://github.com/thatmattlove/hyperglass/pull/128): Add `best` to all Juniper BGP Route queries. See [Juniper docs](https://www.juniper.net/documentation/us/en/software/junos/bgp/topics/ref/command/show-route-best.html) for more details.
### Added
- The driver for devices can now be overridden with the `driver` parameter.
@@ -49,17 +53,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
# 1.0.0-beta.81 - 2021-04-10
### Fixed
- [#124](https://github.com/checktheroads/hyperglass/issues/124): Fix an issue where networks weren't always sorted alphabetically.
- [#126](https://github.com/checktheroads/hyperglass/issues/126): Fix rendering of markdown tables.
- [#132](https://github.com/checktheroads/hyperglass/issues/132): Fix an issue where iBGP routes on Arista devices caused output parsing to fail.
- [#133](https://github.com/checktheroads/hyperglass/issues/133): Use body styles for background/foreground color, allowing the user to override the `light` and `dark` colors per the docs.
- [#124](https://github.com/thatmattlove/hyperglass/issues/124): Fix an issue where networks weren't always sorted alphabetically.
- [#126](https://github.com/thatmattlove/hyperglass/issues/126): Fix rendering of markdown tables.
- [#132](https://github.com/thatmattlove/hyperglass/issues/132): Fix an issue where iBGP routes on Arista devices caused output parsing to fail.
- [#133](https://github.com/thatmattlove/hyperglass/issues/133): Use body styles for background/foreground color, allowing the user to override the `light` and `dark` colors per the docs.
- Fix an issue with select menu list style.
## 1.0.0-beta.80 - 2021-03-03
### Fixed
- Fix an issue where the UI did not properly filter and detect the correct Query VRF when only one was defined.
- [#121](https://github.com/checktheroads/hyperglass/issues/121): Fix issue with select menu styling in light mode.
- [#121](https://github.com/thatmattlove/hyperglass/issues/121): Fix issue with select menu styling in light mode.
## 1.0.0-beta.79 - 2021-02-26
@@ -92,14 +96,14 @@ Moving forward, the `name` field is only used to define the name of the VRF **as
**POTENTIALLY BREAKING CHANGE**: The device `display_name` field is being deprecated, in favor of a single `name` field, which will be displayed to the end user. The `display_name` field still works, but you should migrate away from it as soon as possible.
### Fixed
- [#117](https://github.com/checktheroads/hyperglass/issues/117): Fix naming and mapping of the Arista EOS driver. `arista` and `arista_eos` will both work now.
- [#117](https://github.com/thatmattlove/hyperglass/issues/117): Fix naming and mapping of the Arista EOS driver. `arista` and `arista_eos` will both work now.
### Changed
- Removed `display_name` field from device model. The `name` field will be used in the UI. If a `display_name` is defined, it will be used, for backwards compatibility.
## 1.0.0-beta.76 - 2021-02-06
**NOTICE**: *[hyperglass-agent](https://github.com/checktheroads/hyperglass-agent) will be deprecated soon. Use `frr_ssh` or `bird_ssh` for SSH connectivity in the meantime.*
**NOTICE**: *[hyperglass-agent](https://github.com/thatmattlove/hyperglass-agent) will be deprecated soon. Use `frr_ssh` or `bird_ssh` for SSH connectivity in the meantime.*
### Added
- FRR & BIRD may now be accessed via standard SSH using the `frr_ssh` and `bird_ssh` NOS. [See the docs](https://hyperglass.dev/docs/platforms#caveats) for important caveats.
@@ -124,24 +128,24 @@ Moving forward, the `name` field is only used to define the name of the VRF **as
- Updated UI dependencies.
### Fixed
- [#109](https://github.com/checktheroads/hyperglass/issues/109): Remove the custom error page, because it doesn't work and doesn't really add much.
- [#109](https://github.com/thatmattlove/hyperglass/issues/109): Remove the custom error page, because it doesn't work and doesn't really add much.
## 1.0.0-beta.73 - 2021-01-18
### Added
- [#106](https://github.com/checktheroads/hyperglass/issues/106): Add built-in support for Nokia SR OS (thanks @paunadeu!).
- [#106](https://github.com/thatmattlove/hyperglass/issues/106): Add built-in support for Nokia SR OS (thanks @paunadeu!).
### Changed
- [#105](https://github.com/checktheroads/hyperglass/issues/105): Check NodeJS version on startup to ensure the minimum supported version is present.
- [#105](https://github.com/thatmattlove/hyperglass/issues/105): Check NodeJS version on startup to ensure the minimum supported version is present.
- Update UI dependencies.
### Fixed
- [#107](https://github.com/checktheroads/hyperglass/issues/107): Fix footer menu styling so it doesn't overflow the viewport, especially on mobile.
- [#107](https://github.com/thatmattlove/hyperglass/issues/107): Fix footer menu styling so it doesn't overflow the viewport, especially on mobile.
## 1.0.0-beta.72 - 2021-01-16
### Fixed
- [#104](https://github.com/checktheroads/hyperglass/issues/104): Handle the usage of `juniper_junos` as a NOS. `juniper_junos` will now automatically be mapped to `juniper`.
- [#104](https://github.com/thatmattlove/hyperglass/issues/104): Handle the usage of `juniper_junos` as a NOS. `juniper_junos` will now automatically be mapped to `juniper`.
- Fix an issue with dual RP juniper devices and structured output, where output containing `{master}` outside of the XML output was improperly stripped out, causing a parsing failure.
### Changed
@@ -159,7 +163,7 @@ Moving forward, the `name` field is only used to define the name of the VRF **as
### Fixed
- [#100](https://github.com/checktheroads/hyperglass/issues/100): Fix result panel bug where incorrect panels would open, or panels would not open at all. Resolved by accessing internal state of the `Accordion />` component via `useAccordionContext()` instead of directly changing the index prop via state.
- [#100](https://github.com/thatmattlove/hyperglass/issues/100): Fix result panel bug where incorrect panels would open, or panels would not open at all. Resolved by accessing internal state of the `Accordion />` component via `useAccordionContext()` instead of directly changing the index prop via state.
### Changed
- Query results now automatically cancel when each result panel unmounts (e.g. when one clicks the back button).
@@ -197,7 +201,7 @@ Moving forward, the `name` field is only used to define the name of the VRF **as
### Added
- [#72](https://github.com/checktheroads/hyperglass/issues/72): _EXPERIMENTAL_ BGP map support for devices supporting structured output (Juniper Junos, currently).
- [#72](https://github.com/thatmattlove/hyperglass/issues/72): _EXPERIMENTAL_ BGP map support for devices supporting structured output (Juniper Junos, currently).
### Fixed
@@ -212,7 +216,7 @@ Moving forward, the `name` field is only used to define the name of the VRF **as
### Added
- [#87](https://github.com/checktheroads/hyperglass/issues/87): [TNSR] Support. To add a TNSR device, use the `tnsr` [NOS key](https://hyperglass.dev/docs/adding-devices#all-device-parameters).
- [#87](https://github.com/thatmattlove/hyperglass/issues/87): [TNSR] Support. To add a TNSR device, use the `tnsr` [NOS key](https://hyperglass.dev/docs/adding-devices#all-device-parameters).
### Fixed
@@ -236,17 +240,17 @@ When hyperglass starts up, it will check to see if `~/hyperglass` or `/etc/hyper
### Added
- [#81](https://github.com/checktheroads/hyperglass/issues/81): Add support for SSH key authentication. See [the docs](https://hyperglass.dev/docs/adding-devices#credential) for more details.
- [#81](https://github.com/thatmattlove/hyperglass/issues/81): Add support for SSH key authentication. See [the docs](https://hyperglass.dev/docs/adding-devices#credential) for more details.
## 1.0.0-beta.60 - 2020-10-10
### Fixed
- [#90](https://github.com/checktheroads/hyperglass/issues/90): Fix a typing error that caused ping & traceroute queries to fail for certain devices.
- [#90](https://github.com/thatmattlove/hyperglass/issues/90): Fix a typing error that caused ping & traceroute queries to fail for certain devices.
### Added
- [#82](https://github.com/checktheroads/hyperglass/issues/82): Add support for Redis password authentication. Authentication can be configured in the following manner:
- [#82](https://github.com/thatmattlove/hyperglass/issues/82): Add support for Redis password authentication. Authentication can be configured in the following manner:
```yaml
# hyperglass.yaml
@@ -276,7 +280,7 @@ requirepass examplepassword
### Changed
- [#79](https://github.com/checktheroads/hyperglass/issues/79): Run the UI build on startup & clarify docs.
- [#79](https://github.com/thatmattlove/hyperglass/issues/79): Run the UI build on startup & clarify docs.
- Removed all f-strings from log messages.
- Migrate icon library to [@meronex/icons](https://github.com/meronex/meronex-icons) for better tree-shaking.
- Improve console (stdout) logging
@@ -284,16 +288,16 @@ requirepass examplepassword
### Fixed
- [#74](https://github.com/checktheroads/hyperglass/issues/74): Fix UI build failures caused by `.alias.js`.
- [#75](https://github.com/checktheroads/hyperglass/issues/75): Fix whitespace stripping of query target.
- [#77](https://github.com/checktheroads/hyperglass/issues/77): Allow dashes in FQDN validation pattern.
- [#83](https://github.com/checktheroads/hyperglass/issues/83): Fix lack of support for `protocol-nh` field in Juniper XML BGP table.
- [#74](https://github.com/thatmattlove/hyperglass/issues/74): Fix UI build failures caused by `.alias.js`.
- [#75](https://github.com/thatmattlove/hyperglass/issues/75): Fix whitespace stripping of query target.
- [#77](https://github.com/thatmattlove/hyperglass/issues/77): Allow dashes in FQDN validation pattern.
- [#83](https://github.com/thatmattlove/hyperglass/issues/83): Fix lack of support for `protocol-nh` field in Juniper XML BGP table.
## 1.0.0-beta.57 - 2020-07-30
### BREAKING CHANGE
If you use [hyperglass-agent](https://github.com/checktheroads/hyperglass-agent), you must upgrade your version of hyperglass-agent to 0.1.6 or later. If using hyperglass-agent with SSL, this release will require you to re-generate & re-send your SSL certificates to hyperglass:
If you use [hyperglass-agent](https://github.com/thatmattlove/hyperglass-agent), you must upgrade your version of hyperglass-agent to 0.1.6 or later. If using hyperglass-agent with SSL, this release will require you to re-generate & re-send your SSL certificates to hyperglass:
```console
$ hyperglass-agent certificate
@@ -316,13 +320,13 @@ $ hyperglass-agent send-certificate
### Fixed
- [#56](https://github.com/checktheroads/hyperglass/issues/56): Fix a silent Redis connection error if the Redis server was anything other than `localhost`, preventing hyperglass from starting.
- [#56](https://github.com/thatmattlove/hyperglass/issues/56): Fix a silent Redis connection error if the Redis server was anything other than `localhost`, preventing hyperglass from starting.
## 1.0.0-beta.55 - 2020-07-27
### Changed
- Removed JS favicon build process in favor of native Python implementation ([favicons](https://github/checktheroads/favicons))
- Removed JS favicon build process in favor of native Python implementation ([favicons](https://github/thatmattlove/favicons))
## 1.0.0-beta.54 - 2020-07-25
@@ -334,7 +338,7 @@ $ hyperglass-agent send-certificate
### Added
- **BREAKING CHANGE**: [Scrapli](https://github.com/carlmontanari/scrapli) is now used for SSH connectivity to Cisco IOS, Cisco IOS-XE, Cisco IOS-XR, Cisco NX-OS Juniper Junos, and Arista EOS, which should improve the speed at which output is gathered from devices. _As of this release, Cisco IOS/IOS-XE and Juniper Junos have been directly tested and worked without issue. However, if you discover any anomalies with any of these operating systems, please [open an issue](https://github.com/checktheroads/hyperglass/issues)._
- **BREAKING CHANGE**: [Scrapli](https://github.com/carlmontanari/scrapli) is now used for SSH connectivity to Cisco IOS, Cisco IOS-XE, Cisco IOS-XR, Cisco NX-OS Juniper Junos, and Arista EOS, which should improve the speed at which output is gathered from devices. _As of this release, Cisco IOS/IOS-XE and Juniper Junos have been directly tested and worked without issue. However, if you discover any anomalies with any of these operating systems, please [open an issue](https://github.com/thatmattlove/hyperglass/issues)._
### Changed
@@ -352,23 +356,23 @@ $ hyperglass-agent send-certificate
- API route `/api/info`, which displays general system information such as the name of the organization and version of hyperglass.
- API docs configuration parameters for the `/api/info` route.
- [#63](https://github.com/checktheroads/hyperglass/issues/63): Minimum RAM requirements.
- [#63](https://github.com/thatmattlove/hyperglass/issues/63): Minimum RAM requirements.
- `hyperglass system-info` CLI command to gather system CPU, Memory, Disk, Python Version, hyperglass Version, & OS info. _Note: this information is only gathered if you run the command, and even then, is printed to the console and not otherwise shared or exported_.
### Changed
- Updated docs dependencies.
- Improved YAML alias & anchor docs.
- [#55](https://github.com/checktheroads/hyperglass/issues/55): Removed YAML alias & anchors from default examples to avoid confusion.
- [#55](https://github.com/thatmattlove/hyperglass/issues/55): Removed YAML alias & anchors from default examples to avoid confusion.
### Fixed
- API docs logo URL now displays correctly.
- [#62](https://github.com/checktheroads/hyperglass/issues/62): Added `epel-release` to CentOS installation instructions.
- [#59](https://github.com/checktheroads/hyperglass/issues/59): Fixed copy output for Juniper devices on non-table output query types.
- [#62](https://github.com/thatmattlove/hyperglass/issues/62): Added `epel-release` to CentOS installation instructions.
- [#59](https://github.com/thatmattlove/hyperglass/issues/59): Fixed copy output for Juniper devices on non-table output query types.
- [hyperglass-agent #6](https://github.com/hyperglass-agent/issues/6): Fixed hyperglass-agent documentation issues.
- Improve command customization docs.
- [#61](https://github.com/checktheroads/hyperglass/issues/61): Fixed copy output for table data. Output is now a bulleted list of parsed data.
- [#61](https://github.com/thatmattlove/hyperglass/issues/61): Fixed copy output for table data. Output is now a bulleted list of parsed data.
## 1.0.0-beta.51 - 2020-07-13
@@ -379,7 +383,7 @@ $ hyperglass-agent send-certificate
### Fixed
- [#54](https://github.com/checktheroads/hyperglass/issues/54): A Junos parsing error caused routes with no communities to raise an error.
- [#54](https://github.com/thatmattlove/hyperglass/issues/54): A Junos parsing error caused routes with no communities to raise an error.
- Pre-validated config files are no longer logged on startup unless debugging is enabled.
## 1.0.0-beta.50 - 2020-07-12
@@ -399,7 +403,7 @@ $ hyperglass-agent send-certificate
### Fixed
- [#54](https://github.com/checktheroads/hyperglass/issues/54): A Junos structured/table output parsing error caused routes with multiple next-hops to raise an error.
- [#54](https://github.com/thatmattlove/hyperglass/issues/54): A Junos structured/table output parsing error caused routes with multiple next-hops to raise an error.
- RPKI validation no longer occurs twice (once on serialization of the output, once on validation of the API response).
## 1.0.0-beta.49 - 2020-07-05
@@ -451,7 +455,7 @@ $ hyperglass-agent send-certificate
### Added
- Support for hyperglass-agent [0.1.5](https://github.com/checktheroads/hyperglass-agent)
- Support for hyperglass-agent [0.1.5](https://github.com/thatmattlove/hyperglass-agent)
## 1.0.0-beta.45 - 2020-06-27

View File

@@ -1,4 +1,4 @@
hyperglass is primarily maintained by me, [Matt Love](https://github.com/checktheroads). This is my first ever open source application, and as such, it's kind of my "baby". When I first started writing hyperglass, I knew _nothing_ about development, Python, Javascript, or Github. I was a network engineer trying to solve a problem and learn a few things while I was at it.
hyperglass is primarily maintained by me, [Matt Love](https://github.com/thatmattlove). This is my first ever open source application, and as such, it's kind of my "baby". When I first started writing hyperglass, I knew _nothing_ about development, Python, Javascript, or Github. I was a network engineer trying to solve a problem and learn a few things while I was at it.
Because I've been solo-maintaining and building hyperglass since around April 2019, I've become pretty particular about things that might seem trivial to someone just trying to help out. While I **absolutely welcome development contributions**, please don't be offended if pull requests are denied, or if I request things to be done a certain way. To help understand why, here are some of the development design goals for hyperglass:

View File

@@ -15,11 +15,11 @@
[![PyPI](https://img.shields.io/pypi/v/hyperglass?style=for-the-badge)](https://pypi.org/project/hyperglass/)
![PyPI - Downloads](https://img.shields.io/pypi/dm/hyperglass?color=%2340798C&style=for-the-badge)
[![GitHub Contributors](https://img.shields.io/github/contributors/checktheroads/hyperglass?color=40798C&style=for-the-badge)](https://github.com/checktheroads/hyperglass)
[![GitHub Contributors](https://img.shields.io/github/contributors/thatmattlove/hyperglass?color=40798C&style=for-the-badge)](https://github.com/thatmattlove/hyperglass)
[![Frontend Tests](https://img.shields.io/github/workflow/status/checktheroads/hyperglass/Frontend%20Testing?label=Frontend%20Tests&style=for-the-badge)](https://github.com/checktheroads/hyperglass/actions?query=workflow%3A%Frontend+Testing%22)
[![Backend Tests](https://img.shields.io/github/workflow/status/checktheroads/hyperglass/Backend%20Testing?label=Backend%20Tests&style=for-the-badge)](https://github.com/checktheroads/hyperglass/actions?query=workflow%3A%Backend+Testing%22)
[![Installer Tests](https://img.shields.io/github/workflow/status/checktheroads/hyperglass/Installer%20Testing?label=Installer%20Tests&style=for-the-badge)](https://github.com/checktheroads/hyperglass/actions?query=workflow%3A%Installer+Testing%22)
[![Frontend Tests](https://img.shields.io/github/workflow/status/thatmattlove/hyperglass/Frontend%20Testing?label=Frontend%20Tests&style=for-the-badge)](https://github.com/thatmattlove/hyperglass/actions?query=workflow%3A%Frontend+Testing%22)
[![Backend Tests](https://img.shields.io/github/workflow/status/thatmattlove/hyperglass/Backend%20Testing?label=Backend%20Tests&style=for-the-badge)](https://github.com/thatmattlove/hyperglass/actions?query=workflow%3A%Backend+Testing%22)
[![Installer Tests](https://img.shields.io/github/workflow/status/thatmattlove/hyperglass/Installer%20Testing?label=Installer%20Tests&style=for-the-badge)](https://github.com/thatmattlove/hyperglass/actions?query=workflow%3A%Installer+Testing%22)
<br/>
@@ -27,7 +27,7 @@ hyperglass is intended to make implementing a looking glass too easy not to do,
</div>
### [Changelog](https://github.com/checktheroads/hyperglass/blob/v1.0.0/CHANGELOG.md)
### [Changelog](https://github.com/thatmattlove/hyperglass/blob/v1.0.0/CHANGELOG.md)
## Features
@@ -56,7 +56,7 @@ hyperglass is intended to make implementing a looking glass too easy not to do,
- Query multiple devices simultaneously
- Browser-based DNS-over-HTTPS resolution of FQDN queries
*To request support for a specific platform, please [submit a Github Issue](https://github.com/checktheroads/hyperglass/issues/new) with the **feature** label.*
*To request support for a specific platform, please [submit a Github Issue](https://github.com/thatmattlove/hyperglass/issues/new) with the **feature** label.*
### [Get Started →](https://hyperglass.dev/docs/introduction)
@@ -83,4 +83,4 @@ hyperglass is built entirely on open-source software. Here are some of the aweso
- [Pydantic](https://pydantic-docs.helpmanual.io/)
- [Chakra UI](https://chakra-ui.com/)
[![GitHub](https://img.shields.io/github/license/checktheroads/hyperglass?color=330036&style=for-the-badge)](https://github.com/checktheroads/hyperglass/blob/v1.0.0/LICENSE)
[![GitHub](https://img.shields.io/github/license/thatmattlove/hyperglass?color=330036&style=for-the-badge)](https://github.com/thatmattlove/hyperglass/blob/v1.0.0/LICENSE)

View File

@@ -41,19 +41,19 @@ routers:
## All Device Parameters
| Parameter | Type | Description |
| :------------------ | :-----: | :----------------------------------------------------------------------------------------------------------------- |
| <R/> `name` | String | Device's user-facing name. |
| <R/> `address` | String | Device management hostname or IP address. |
| <R/> `network` | String | [Network Configuration](#network) |
| <R/> `port` | Integer | TCP port used to connect to the device. `22` by default. |
| <R/> `nos` | String | Network Operating System. <MiniNote>Must be a <Link to="platforms">supported platform</Link>.</MiniNote> |
| `structured_output` | Boolean | Disabled output parsing to structured data. |
| `driver` | String | Override the device driver. Must be 'scrapli' or 'netmiko'. |
| <R/>`credential` | | [Device Credential Configuration](#credential) |
| <R/>`vrfs` | | [Device VRF Configuration](#vrfs) |
| `proxy` | | [SSH Proxy Configuration](#proxy) |
| `ssl` | | [SSL Configuration](#ssl) for devices using [hyperglass-agent](https://github.com/checktheroads/hyperglass-agent). |
| Parameter | Type | Description |
| :------------------ | :-----: | :---------------------------------------------------------------------------------------------------------------- |
| <R/> `name` | String | Device's user-facing name. |
| <R/> `address` | String | Device management hostname or IP address. |
| <R/> `network` | String | [Network Configuration](#network) |
| <R/> `port` | Integer | TCP port used to connect to the device. `22` by default. |
| <R/> `nos` | String | Network Operating System. <MiniNote>Must be a <Link to="platforms">supported platform</Link>.</MiniNote> |
| `structured_output` | Boolean | Disabled output parsing to structured data. |
| `driver` | String | Override the device driver. Must be 'scrapli' or 'netmiko'. |
| <R/>`credential` | | [Device Credential Configuration](#credential) |
| <R/>`vrfs` | | [Device VRF Configuration](#vrfs) |
| `proxy` | | [SSH Proxy Configuration](#proxy) |
| `ssl` | | [SSL Configuration](#ssl) for devices using [hyperglass-agent](https://github.com/thatmattlove/hyperglass-agent). |
### `network`
@@ -84,7 +84,7 @@ Currently, only `linux_ssh` has been tested and validated for use as an SSH prox
While all devices require a credential mapping, the credential values themselves may be used in different ways depending on the device NOS. For SSH devices, the credential is used as a typical SSH username and password.
For HTTP devices (i.e. devices using [hyperglass-agent](https://github.com/checktheroads/hyperglass-agent)), the username is ignored and the password is used as a secret for [JSON Web Token](https://tools.ietf.org/html/rfc7519) encoding/decoding.
For HTTP devices (i.e. devices using [hyperglass-agent](https://github.com/thatmattlove/hyperglass-agent)), the username is ignored and the password is used as a secret for [JSON Web Token](https://tools.ietf.org/html/rfc7519) encoding/decoding.
| Parameter | Type | Description |
| :-------------- | :----- | :----------------------------------------------------------- |

View File

@@ -10,7 +10,7 @@ import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";
:::caution Deprecation Warning
[hyperglass-agent](https://github.com/checktheroads/hyperglass-agent) is going to be deprecated soon. See [Issue #143](https://github.com/checktheroads/hyperglass/issues/143) and [here](platforms.mdx) for more detail.
[hyperglass-agent](https://github.com/thatmattlove/hyperglass-agent) is going to be deprecated soon. See [Issue #143](https://github.com/thatmattlove/hyperglass/issues/143) and [here](platforms.mdx) for more detail.
:::
## Installation
@@ -77,5 +77,5 @@ $ pip3 install hyperglass-agent
```
:::caution Deprecation Warning
[hyperglass-agent](https://github.com/checktheroads/hyperglass-agent) is going to be deprecated soon. See [Issue #143](https://github.com/checktheroads/hyperglass/issues/143) and [here](platforms.mdx) for more detail.
[hyperglass-agent](https://github.com/thatmattlove/hyperglass-agent) is going to be deprecated soon. See [Issue #143](https://github.com/thatmattlove/hyperglass/issues/143) and [here](platforms.mdx) for more detail.
:::

View File

@@ -10,7 +10,7 @@ import M from "../../src/components/MiniNote";
import PL from "../../src/components/PageLink";
:::caution Deprecation Warning
[hyperglass-agent](https://github.com/checktheroads/hyperglass-agent) is going to be deprecated soon. See [Issue #143](https://github.com/checktheroads/hyperglass/issues/143) and [here](platforms.mdx) for more detail.
[hyperglass-agent](https://github.com/thatmattlove/hyperglass-agent) is going to be deprecated soon. See [Issue #143](https://github.com/thatmattlove/hyperglass/issues/143) and [here](platforms.mdx) for more detail.
:::
<div class="table--full-width" />
@@ -68,5 +68,5 @@ By default, hyperglass-agent writes all log messages to a log file located at `/
| `max_size` | String | `'50MB'` | Maximum log file size before old logs are overwritten. |
:::caution Deprecation Warning
[hyperglass-agent](https://github.com/checktheroads/hyperglass-agent) is going to be deprecated soon. See [Issue #143](https://github.com/checktheroads/hyperglass/issues/143) and [here](platforms.mdx) for more detail.
[hyperglass-agent](https://github.com/thatmattlove/hyperglass-agent) is going to be deprecated soon. See [Issue #143](https://github.com/thatmattlove/hyperglass/issues/143) and [here](platforms.mdx) for more detail.
:::

View File

@@ -9,7 +9,7 @@ description: Configure hyperglass-agent
import M from "../../src/components/MiniNote";
:::caution Deprecation Warning
[hyperglass-agent](https://github.com/checktheroads/hyperglass-agent) is going to be deprecated soon. See [Issue #143](https://github.com/checktheroads/hyperglass/issues/143) and [here](platforms.mdx) for more detail.
[hyperglass-agent](https://github.com/thatmattlove/hyperglass-agent) is going to be deprecated soon. See [Issue #143](https://github.com/thatmattlove/hyperglass/issues/143) and [here](platforms.mdx) for more detail.
:::
:::important Time & NTP
@@ -55,5 +55,5 @@ Options:
:::
:::important More coming soon
Documentation for [hyperglass-agent](https://github.com/checktheroads/hyperglass-agent) is in progress!
Documentation for [hyperglass-agent](https://github.com/thatmattlove/hyperglass-agent) is in progress!
:::

View File

@@ -24,7 +24,7 @@ $ curl https://install.hyperglass.dev | sudo bash
```
:::caution Piping to bash
You should be <i>very</i> worried when someone asks you to do what I just did. Downloading a bash script from the internet and piping it to `bash` with root privileges is a terrible idea, unless you fully trust the source. Please don't trust me - go [look at the code](https://github.com/checktheroads/hyperglass/blob/v1.0.0/install.sh) and determine for your self if it's safe to execute. If you feel it's not, please proceed with the manual installation (and [tell me why](https://github.com/checktheroads/hyperglass/issues), so I can fix it).
You should be <i>very</i> worried when someone asks you to do what I just did. Downloading a bash script from the internet and piping it to `bash` with root privileges is a terrible idea, unless you fully trust the source. Please don't trust me - go [look at the code](https://github.com/thatmattlove/hyperglass/blob/v1.0.0/install.sh) and determine for your self if it's safe to execute. If you feel it's not, please proceed with the manual installation (and [tell me why](https://github.com/thatmattlove/hyperglass/issues), so I can fix it).
:::
## Manual Installation

View File

@@ -25,7 +25,7 @@ When [debug](parameters.mdx#global-settings) is set to `true`, the number of wor
### Memory
Testing shows that hyperglass is extremely memory efficient at runtime. For example, running 4 simulations BGP Route queries, with two devices utilizing [hyperglass-agent](https://github.com/checktheroads/hyperglass-agent), and two devices utilizing SSH, the server increased RAM utilization by about 20MB during execution, and went back down afterwards.
Testing shows that hyperglass is extremely memory efficient at runtime. For example, running 4 simulations BGP Route queries, with two devices utilizing [hyperglass-agent](https://github.com/thatmattlove/hyperglass-agent), and two devices utilizing SSH, the server increased RAM utilization by about 20MB during execution, and went back down afterwards.
However, at build time, there are some fairly memory-intensive tasks which _will_ time out or cause strange errors without the proper amount of RAM. Testing suggests **2GB of RAM is sufficient**, however **4GB is the ideal minimum amount of RAM**.

View File

@@ -1,4 +1,4 @@
const githubURL = "https://github.com/checktheroads/hyperglass";
const githubURL = "https://github.com/thatmattlove/hyperglass";
const { googleTrackingId, algoliaKey } = process.env;
@@ -8,7 +8,7 @@ const docusaurusConfig = {
url: "https://hyperglass.dev",
baseUrl: "/",
favicon: "img/favicon.ico",
organizationName: "checktheroads",
organizationName: "thatmattlove",
projectName: "hyperglass",
themeConfig: {
image: "opengraph.jpg",
@@ -77,7 +77,7 @@ const docusaurusConfig = {
},
{
label: "Twitter",
href: "https://twitter.com/checktheroads",
href: "https://twitter.com/thatmattlove",
},
],
},

View File

@@ -1,10 +1,10 @@
"""hyperglass is a modern, customizable network looking glass written in Python 3.
https://github.com/checktheroads/hyperglass
https://github.com/thatmattlove/hyperglass
The Clear BSD License
Copyright (c) 2020 Matthew Love
Copyright (c) 2021 Matthew Love
All rights reserved.
Redistribution and use in source and binary forms, with or without

View File

@@ -4,7 +4,7 @@
from datetime import datetime
__name__ = "hyperglass"
__version__ = "1.0.2"
__version__ = "1.0.3"
__author__ = "Matt Love"
__copyright__ = f"Copyright {datetime.now().year} Matthew Love"
__license__ = "BSD 3-Clause Clear License"

View File

@@ -1,3 +1,3 @@
# hyperglass-ui
[hyperglass](https://github.com/checktheroads/hyperglass) UI, written in [React](https://reactjs.org/), on [Next.js](https://nextjs.org/), with [Chakra UI](https://chakra-ui.com/).
[hyperglass](https://github.com/thatmattlove/hyperglass) UI, written in [React](https://reactjs.org/), on [Next.js](https://nextjs.org/), with [Chakra UI](https://chakra-ui.com/).

View File

@@ -27,8 +27,8 @@ NEEDS_NODE="1"
NEEDS_YARN="1"
NEEDS_REDIS="1"
has_cmd () {
which $1 > /dev/null
has_cmd() {
which $1 >/dev/null
if [[ $? == 0 ]]; then
echo "0"
@@ -37,30 +37,30 @@ has_cmd () {
fi
}
clean_temp () {
clean_temp() {
echo "Cleaning up temporary files..."
rm -rf /tmp/yarnkey.gpg
rm -rf /tmp/nodesetup.sh
}
catch_interrupt () {
catch_interrupt() {
echo "Stopping..."
exit 1
}
semver () {
semver() {
local ver_raw=$(echo "$1" | egrep -o '[0-9]+\.[0-9]+\.[0-9]+')
local ver_digits=( ${ver_raw//./ } )
local ver_digits=(${ver_raw//./ })
echo ${ver_digits[@]}
}
parse_redis_version () {
parse_redis_version() {
local one=$(echo "$@" | egrep -o 'v=[0-9]+\.[0-9]+\.[0-9]+')
local two=$(echo $one | egrep -o '[0-9]+\.[0-9]+\.[0-9]+')
echo $two
}
python3_version () {
python3_version() {
local ver_digits=($(semver "$(python3 --version)"))
local major="${ver_digits[0]}"
local minor="${ver_digits[1]}"
@@ -80,10 +80,10 @@ python3_version () {
fi
}
node_version () {
node_version() {
local ver_digits=($(semver "$(node --version)"))
local major="${ver_digits[0]}"
if [[ $major < $MIN_NODE_MAJOR ]]; then
echo "1"
elif [[ $major -ge $MIN_NODE_MAJOR ]]; then
@@ -93,7 +93,7 @@ node_version () {
fi
}
needs_python () {
needs_python() {
local has_python3=$(has_cmd "python3")
if [[ $has_python3 == 1 ]]; then
NEEDS_PYTHON="1"
@@ -111,7 +111,7 @@ needs_python () {
fi
}
needs_node () {
needs_node() {
local has_node=$(has_cmd node)
if [[ $has_node == 1 ]]; then
NEEDS_NODE="1"
@@ -129,7 +129,7 @@ needs_node () {
fi
}
needs_yarn () {
needs_yarn() {
local has_yarn=$(has_cmd yarn)
if [[ $has_yarn == 1 ]]; then
NEEDS_YARN="1"
@@ -140,7 +140,7 @@ needs_yarn () {
fi
}
needs_redis () {
needs_redis() {
local has_redis=$(has_cmd redis-server)
if [[ $has_redis == 1 ]]; then
NEEDS_REDIS="1"
@@ -151,11 +151,11 @@ needs_redis () {
fi
}
get_platform () {
get_platform() {
local use_apt=$(has_cmd apt-get)
local use_yum=$(has_cmd yum)
local use_brew=$(has_cmd brew)
if [[ $use_apt == 0 ]]; then
INSTALLER="apt"
elif [[ $use_yum == 0 ]]; then
@@ -168,7 +168,7 @@ get_platform () {
fi
}
python_post () {
python_post() {
if [[ $1 == 0 ]]; then
local successful=$(needs_python)
if [[ $successful == 0 ]]; then
@@ -181,7 +181,7 @@ python_post () {
fi
}
node_post () {
node_post() {
if [[ $1 == 0 ]]; then
local successful=$(needs_node)
if [[ $successful == 0 ]]; then
@@ -194,7 +194,7 @@ node_post () {
fi
}
yarn_post () {
yarn_post() {
if [[ $1 == 0 ]]; then
local successful=$(needs_yarn)
if [[ $successful == 0 ]]; then
@@ -207,7 +207,7 @@ yarn_post () {
fi
}
redis_post () {
redis_post() {
if [[ $1 == 0 ]]; then
local successful=$(needs_redis)
if [[ $successful == 0 ]]; then
@@ -220,14 +220,14 @@ redis_post () {
fi
}
node_apt_prepare () {
node_apt_prepare() {
curl -sL https://deb.nodesource.com/setup_$MIN_NODE_MAJOR.x -o /tmp/nodesetup.sh
sleep 1
bash /tmp/nodesetup.sh
NEEDS_UPDATE="1"
}
yarn_apt_prepare () {
yarn_apt_prepare() {
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg -o /tmp/yarnkey.gpg
sleep 1
apt-key add /tmp/yarnkey.gpg
@@ -235,62 +235,62 @@ yarn_apt_prepare () {
NEEDS_UPDATE="1"
}
node_yum_prepare () {
node_yum_prepare() {
curl -sL https://rpm.nodesource.com/setup_$MIN_NODE_MAJOR.x -o /tmp/nodesetup.sh
bash /tmp/nodesetup.sh
sleep 1
NEEDS_UPDATE="1"
}
yarn_yum_prepare () {
yarn_yum_prepare() {
curl -sL https://dl.yarnpkg.com/rpm/yarn.repo -o /etc/yum.repos.d/yarn.repo
sleep 1
NEEDS_UPDATE="1"
}
node_apt () {
node_apt() {
apt-get install -y nodejs
sleep 1
node_post $?
}
node_yum () {
node_yum() {
yum -y install gcc-c++ make nodejs
sleep 1
node_post $?
}
node_brew () {
node_brew() {
brew install node
sleep 1
node_post $?
}
yarn_apt () {
yarn_apt() {
apt-get install -y yarn
sleep 1
yarn_post $?
}
yarn_yum () {
yarn_yum() {
yum -y install gcc-c++ make yarn
sleep 1
yarn_post $?
}
yarn_brew () {
yarn_brew() {
brew install yarn
sleep 1
yarn_post $?
}
python_apt () {
apt-get install -y python3.6-dev python3-pip > /dev/null
python_apt() {
apt-get install -y python3.6-dev python3-pip >/dev/null
sleep 1
python_post $?
}
python_yum () {
python_yum() {
yum install centos-release-scl
yum install rh-python36
yum install python3-devel
@@ -299,31 +299,31 @@ python_yum () {
python_post $?
}
python_brew () {
python_brew() {
brew install python3
sleep 1
python_post $?
}
redis_apt () {
redis_apt() {
apt-get install -y redis-server
sleep 1
redis_post $?
}
redis_yum () {
redis_yum() {
yum -y install redis
sleep 1
redis_post $?
}
redis_brew () {
redis_brew() {
brew install redis
sleep 1
redis_post $?
}
update_repo () {
update_repo() {
if [[ $INSTALLER == "apt" ]]; then
apt-get update
elif [[ $INSTALLER == "yum" ]]; then
@@ -333,7 +333,7 @@ update_repo () {
fi
}
install_python () {
install_python() {
if [[ $NEEDS_PYTHON == "1" ]]; then
echo "[INFO] Installing Python..."
@@ -354,10 +354,10 @@ install_python () {
fi
}
install_node () {
install_node() {
if [[ $NEEDS_NODE == "1" ]]; then
echo "[INFO] Installing NodeJS..."
if [[ $INSTALLER == "apt" ]]; then
node_apt
elif [[ $INSTALLER == "yum" ]]; then
@@ -365,20 +365,20 @@ install_node () {
elif [[ $INSTALLER == "brew" ]]; then
node_brew
fi
elif [[ $NEEDS_NODE == "0" ]]; then
echo "[INFO] Your system is running NodeJS $(node --version) (Minimum is $MIN_NODE_MAJOR+)."
else
echo "[ERROR] Unable to determine if your system needs NodeJS."
exit 1
fi
}
install_yarn () {
install_yarn() {
if [[ $NEEDS_YARN == "1" ]]; then
echo "[INFO] Installing Yarn..."
if [[ $INSTALLER == "apt" ]]; then
yarn_apt
elif [[ $INSTALLER == "yum" ]]; then
@@ -386,20 +386,20 @@ install_yarn () {
elif [[ $INSTALLER == "brew" ]]; then
yarn_brew
fi
elif [[ $NEEDS_YARN == "0" ]]; then
echo "[INFO] Your system is running Yarn $(yarn --version) (Minimum is $MIN_YARN_MAJOR+)."
else
echo "[ERROR] Unable to determine if your system needs Yarn."
exit 1
fi
}
install_redis () {
install_redis() {
if [[ $NEEDS_REDIS == "1" ]]; then
echo "[INFO] Installing Redis..."
if [[ $INSTALLER == "apt" ]]; then
redis_apt
elif [[ $INSTALLER == "yum" ]]; then
@@ -407,10 +407,10 @@ install_redis () {
elif [[ $INSTALLER == "brew" ]]; then
redis_brew
fi
elif [[ $NEEDS_REDIS == "0" ]]; then
echo "[INFO] Your system is running Redis $(parse_redis_version $(redis-server --version)) (Minimum is $MIN_REDIS_MAJOR+)."
else
echo "[ERROR] Unable to determine if your system needs Redis."
exit 1
@@ -419,30 +419,30 @@ install_redis () {
# The below script installs locally instead of from PyPI
#
install_app () {
install_app() {
echo "[INFO] Installing hyperglass..."
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py -o /tmp/get-poetry.py
python3 /tmp/get-poetry.py -f -y > /dev/null
python3 /tmp/get-poetry.py -f -y >/dev/null
sleep 1
source $HOME/.profile
[ -d "/tmp/hyperglass" ] && rm -rf /tmp/hyperglass
[ -d "/tmp/build" ] && rm -rf /tmp/build
git clone --branch v1.0.0 --depth 1 https://github.com/checktheroads/hyperglass.git /tmp/hyperglass
git clone --branch v1.0.0 --depth 1 https://github.com/thatmattlove/hyperglass.git /tmp/hyperglass
cd /tmp/hyperglass
poetry build
mkdir /tmp/build
# local build_tarball="/tmp/hyperglass/dist/hyperglass-build.tar.gz"
local build_tarballs=(/tmp/hyperglass/dist/*.tar.gz)
local build_tarball=${build_tarballs[-1]}
local build_dir=$(basename $build_tarball .tar.gz)
tar -xvf /tmp/hyperglass/dist/$build_dir.tar.gz -C /tmp/build
cd /tmp/build/$build_dir
pip3 install . > /dev/null
pip3 install . >/dev/null
if [[ ! $? == 0 ]]; then
echo "[ERROR] An error occurred while trying to install hyperglass."

View File

@@ -22,8 +22,8 @@ keywords = ["looking glass", "network automation", "isp", "bgp", "routing"]
license = "BSD-3-Clause-Clear"
name = "hyperglass"
readme = "README.md"
repository = "https://github.com/checktheroads/hyperglass"
version = "1.0.2"
repository = "https://github.com/thatmattlove/hyperglass"
version = "1.0.3"
[tool.poetry.scripts]
hyperglass = "hyperglass.console:CLI"