Skip to content

Commit

Permalink
Merge pull request networktocode#753 from itdependsnetworks/faq
Browse files Browse the repository at this point in the history
  • Loading branch information
itdependsnetworks authored Jul 16, 2020
2 parents 6a39031 + 224cb7f commit 9afb927
Show file tree
Hide file tree
Showing 2 changed files with 96 additions and 1 deletion.
9 changes: 8 additions & 1 deletion .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
<!---
NOTE: Request for new template and adding data captured in template is not considered.
Please see README for more information.
ISSUES raised without following instructions will be immediately closed.
-->


<!---
Verify first that your issue/request is not already reported on GitHub.
Also test if the latest release, and master branch are affected too.
Expand All @@ -7,7 +15,6 @@ Also test if the latest release, and master branch are affected too.
<!--- Pick one below and delete the rest: -->
- Bug Report
- Feature Idea
- Template Creation Help
- Documentation Report

##### TEMPLATE USING
Expand Down
88 changes: 88 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -335,3 +335,91 @@ Questions
For any questions or comments, please feel free to swing by the [networktocode slack channel](https://networktocode.slack.com).

Sign up [here](http://slack.networktocode.com/)


FAQ
---

From an outsiders view, some design choices, requirements, and testing procedures can seem arbitrary. The following list of FAQ is intended to
help provide context and better guide users and contributors of ntc-templates.

_Why is there a requirement to use `Error` in every template?_

Ensuring that the textfsm template can account for every line is the only method to ensure that data was not accidentally missed. Take the following example. Initially we account for status to be:

`Value STATUS (up|down)`

Given the result of:
```
Interface Status Protocol Description
Gi0/0/1 admin down down
Gi0/0/2 up up ISP Connection
Gi0/0/3 down down
```

The output would miss the G0/0/1 interface, since the `STATUS` of `admin down` not known. If this was a low percentage use case, it can go
undetected, and result in incorrect information being returned. Instead, by ensuring that we fail fast, an `Error` is raised and hopefully
GitHub Issue is put in.

_Then why isn't `Error` used in all templates?_

Initially the controls were not as strong, so many templates were put in until issues like the previous became an issue.

_Does the project support requests for additional templates or additional data in an existing template?_

We are no longer considering additional template requests at this time. The project has existed for over 5 years (initially within ntc-ansible)
and nearly 200 template at this point any additional requests are essentially edge use cases. Meaning, for five years of usage, no one else
has asked for this feature. There is a limited maintainers who primarily use their free time to maintain the project.

_Are you open to adding maintainers to the project?_

Yes, we would consider giving a proven member of the project and community maintainer rights. Please inquiry emailing [email protected].

_I simply want to add my template to the project, I do not want to add all of these tests and controls, can I just do so?_

Short answer no, from an outsiders point of view the contributor requirements may seem overly complex, however features added by engineers
rarely come back to support them. The burden of support is on the maintainers and a certain level of quality assurance is required for that to
happen. That includes updating the index file appropriately and adding proper raw and expected value files.

_Why don't you grab all of the data in the template?_

There is no intention for ntc-templates to become feature complete, some of the data is less interesting, or can be better understood from
other commands. This is actually an area where the project choose to be loose, as we do not want to over-burden the contributor. If you feel
that the additional data should be added, you are welcome to add the feature, but it would not be considered a bug, and thus not supported by
the maintainers of the this project.

_Why does the index order matter?_

The "greediness" of the template match ensures that there longest matches first. For example, if `show ip ospf` was above `show ip ospf database`, the `show ip ospf` template would be used in both cases. The additional steps are because of general programmatic hygiene.

_Will you accept my template if I create it?_

In most cases, yes. However, there are a few edge cases. For example if requesting to add a `show cdp neighbors` when there is already a `show cdp neighbors details` template created. That is additional complexity added to the project with little value.

_Why was my issue closed?_

The most likely reasons are:

* Did not follow the Issue creation template.
* Did not provide the data required to act upon the request.
* A prolonged time with no response.

_What is meant that the is a parsing project, not a data modeling project?_

The project intends to parse, meaning post processing is assumed in order to normalize the data. This project does not intend to solve that
problem set. This is often noted in keys being different between the same command on multiple OS's. This was not intentional as at first there was not strict enforcement. That being said, there is no intention to retrofit this use case for the above stated reasons. This use case is
best handled in post processing.

_I have never submitted a Pull Request before, how do I do so?_

This is outside the scope of this project, but this [video](https://www.youtube.com/watch?v=rgbCcBNZcdQ) should provide the instructions on
how to do so.

_Does this work on windows?_

Based on this [PR](https://github.com/networktocode/ntc-templates/pull/672) it should, however this is not a supported option. We are willing
to take in qualified Pull Requests to have the feature, but have no intention of actively supporting.

_Can you provide general guidance?_

This is best handled via real time communication. Feel free to join our slack community (sign up information above) and reach out on the #networktocode channel. Please be aware of timezones, downtimes, and help is performed based on goodwill and timing, and not guaranteed.

0 comments on commit 9afb927

Please sign in to comment.