GithubHelp home page GithubHelp logo

netbox-community / devicetype-library Goto Github PK

View Code? Open in Web Editor NEW
828.0 30.0 839.0 307.77 MB

A collection of community-sourced DeviceType definitions for import to NetBox

License: Creative Commons Zero v1.0 Universal

Python 100.00%
netbox hacktoberfest

devicetype-library's Introduction

NetBox Device Type Library

About this Library

This library is intended to be used for populating device types in NetBox. It contains a set of device type definitions expressed in YAML and arranged by manufacturer. Each file represents a discrete physical device type (e.g. make and model). These definitions can be loaded into NetBox instead of creating new device type definitions manually.

If you would like to contribute to this library, please read through our contributing guide before submitting content.

Note: As of March 2023 Netbox-Device-Type-Library-Import has been brought into the NetBox Community Organization. We will work to get this fully supported soon. If you would like to automate the import of these devicetype template files, there is a NetBox Community community based python script that will check for duplicates, allow you to selectively import vendors, etc. available here netbox-community/Device-Type-Library-Import. Note: This is not related to NetBox in any official way and you will not get support for it here.

Device Type Definitions

Each definition must include at minimum the following fields:

  • manufacturer: The name of the manufacturer which produces this device type.
    • Type: String
  • model: The model number of the device type. This must be unique per manufacturer.
    • Type: String
  • slug: A URL-friendly representation of the model number. Like the model number, this must be unique per manufacturer. All slugs should have the manufacturers name prepended to it with a dash, please see the example below.
    • Type: String
    • Pattern: "^[-a-zA-Z0-9_]+$". Must match the following characters: -, _, Uppercase or Lowercase a to z, Numbers 0 to 9.

🧪 Valid Example:

manufacturer: Dell
model: PowerEdge R6515
slug: dell-poweredge-r6515

The following fields may optionally be declared:

  • part_number: An alternative representation of the model number (e.g. a SKU). (Default: None)
    • Type: String

🧪 Example: part_number: D109-C3

  • u_height: The height of the device type in rack units. Increments of 0.5U are supported. (Default: 1)
    • Type: number (minimum of 0, multiple of 0.5)

🧪 Example: u_height: 12.5

  • is_full_depth: A boolean which indicates whether the device type consumes both the front and rear rack faces. (Default: true)
    • Type: Boolean

🧪 Example: is_full_depth: false

  • airflow: A declaration of the airflow pattern for the device. (Default: None)
    • Type: String
    • Options:
      • front-to-rear
      • rear-to-front
      • left-to-right
      • right-to-left
      • side-to-rear
      • passive

🧪 Example: airflow: side-to-rear

  • front_image: Indicates that this device has a front elevation image within the elevation-images folder. (Default: None)
    • NOTE: The elevation images folder requires the same folder name as this device. The file name must also adhere to <VALUE_IN_SLUG>.front.<acceptable_format>
    • Type: Boolean

🧪 Example: front_image: True

  • rear_image: Indicates that this device has a rear elevation image within the elevation-images folder. (Default: None)
    • NOTE: The elevation images folder requires the same folder name as this device. The file name must also adhere to <VALUE_IN_SLUG>.rear.<acceptable_format>
    • Type: Boolean

🧪 Example: rear_image: True

  • subdevice_role: Indicates that this is a parent or child device. (Default: None)
    • Type: String
    • Options:
      • parent
      • child

🧪 Example: subdevice_role: parent

  • comments: A string field which allows for comments to be added to the device. (Default: None)
    • Type: String

🧪 Example: comments: This is a comment that will appear on all NetBox devices of this type

  • weight: A number representing the numeric weight value. Must be a multiple of 0.01 (2 decimal places). (Default: None)
    • Type: Number
    • Value: must be a multiple of 0.01
  • weight_unit: A string defining the unit of measurement. It must be one of the supported values. (Default: None)
    • Type: String
    • Value: Enumerated Options
      • kg
      • g
      • lb
      • oz

🧪 Example:

weight: 12.21
weight_unit: lb
  • is_powered: A boolean which indicates whether the device type does not take power. This is mainly used as a workaround for validation testing on non-devices (i.e. rackmount kits for mounting desktop devices) (Default: True)
    • Type: Boolean

🧪 Example: is_powered: false

For further detail on these attributes and those listed below, please reference the schema definitions and the Component Definitions below.

Component Definitions

Valid component types are listed below. Each type of component must declare a list of the individual component templates to be added.

The available fields for each type of component are listed below.

Console Ports (Documentation)

A console port provides connectivity to the physical console of a device. These are typically used for temporary access by someone who is physically near the device, or for remote out-of-band access provided via a networked console server.

  • name: Name
  • label: Label
  • type: Port type slug (Array)
  • poe: Does this port access/provide POE? (Boolean)

Console Server Ports (Documentation)

A console server is a device which provides remote access to the local consoles of connected devices. They are typically used to provide remote out-of-band access to network devices, and generally connect to console ports.

  • name: Name
  • label: Label
  • type: Port type slug (Array)

Power Ports (Documentation)

A power port is a device component which draws power from some external source (e.g. an upstream power outlet), and generally represents a power supply internal to a device.

  • name: Name
  • label: Label
  • type: Port type slug (Array)
  • maximum_draw: The port's maximum power draw, in watts (optional)
  • allocated_draw: The port's allocated power draw, in watts (optional)

Power Outlets (Documentation)

Power outlets represent the outlets on a power distribution unit (PDU) or other device that supplies power to dependent devices. Each power port may be assigned a physical type, and may be associated with a specific feed leg (where three-phase power is used) and/or a specific upstream power port. This association can be used to model the distribution of power within a device.

  • name: Name
  • label: Label
  • type: Port type slug (Array)
  • power_port: The name of the power port on the device which powers this outlet (optional)
  • feed_leg: The phase (leg) of power to which this outlet is mapped; A, B, or C (optional)

Interfaces (Documentation)

Interfaces in NetBox represent network interfaces used to exchange data with connected devices. On modern networks, these are most commonly Ethernet, but other types are supported as well. IP addresses and VLANs can be assigned to interfaces.

  • name: Name
  • label: Label
  • type: Interface type slug (Array)
  • mgmt_only: A boolean which indicates whether this interface is used for management purposes only (default: false)

Front Ports (Documentation)

Front ports are pass-through ports which represent physical cable connections that comprise part of a longer path. For example, the ports on the front face of a UTP patch panel would be modeled in NetBox as front ports. Each port is assigned a physical type, and must be mapped to a specific rear port on the same device. A single rear port may be mapped to multiple front ports, using numeric positions to annotate the specific alignment of each.

  • name: Name
  • label: Label
  • type: Port type slug (Array)
  • rear_port: The name of the rear port on this device to which the front port maps
  • rear_port_position: The corresponding position on the mapped rear port (default: 1)

Rear Ports (Documentation)

Like front ports, rear ports are pass-through ports which represent the continuation of a path from one cable to the next. Each rear port is defined with its physical type and a number of positions: Rear ports with more than one position can be mapped to multiple front ports. This can be useful for modeling instances where multiple paths share a common cable (for example, six discrete two-strand fiber connections sharing a 12-strand MPO cable).

  • name: Name
  • label: Label
  • type: Port type slug (Array)
  • positions: The number of front ports that can map to this rear port (default: 1)
  • poe: Does this port access/provide POE? (Boolean)

Module Bays (Documentation)

Module bays represent a space or slot within a device in which a field-replaceable module may be installed. A common example is that of a chassis-based switch such as the Cisco Nexus 9000 or Juniper EX9200. Modules in turn hold additional components that become available to the parent device.

  • name: Name
  • label: Label
  • position: The alphanumeric position in which this module bay is situated within the parent device. When creating module components, the string {module} in the component name will be replaced with the module bay's position. See the NetBox Documentation for more details.

Device Bays (Documentation)

Device bays represent a space or slot within a parent device in which a child device may be installed. For example, a 2U parent chassis might house four individual blade servers. The chassis would appear in the rack elevation as a 2U device with four device bays, and each server within it would be defined as a 0U device installed in one of the device bays. Child devices do not appear within rack elevations or count as consuming rack units.

Child devices are first-class Devices in their own right: That is, they are fully independent managed entities which don't share any control plane with the parent. Just like normal devices, child devices have their own platform (OS), role, tags, and components. LAG interfaces may not group interfaces belonging to different child devices.

  • name: Name
  • label: Label

Inventory Items (Documentation)

Inventory items represent hardware components installed within a device, such as a power supply or CPU or line card. They are intended to be used primarily for inventory purposes.

Inventory items are hierarchical in nature, such that any individual item may be designated as the parent for other items. For example, an inventory item might be created to represent a line card which houses several SFP optics, each of which exists as a child item within the device. An inventory item may also be associated with a specific component within the same device. For example, you may wish to associate a transceiver with an interface.

  • name: Name
  • label: Label
  • manufacturer: The name of the manufacturer which produces this item
  • part_id: The part ID assigned by the manufacturer

Data Validation / Commit Quality Checks

There are two ways this repo focuses on keeping quality device-type definitions:

  • Pre-Commit Checks - Optional, but highly recommended, for helping to identify simple issues before committing. (trailing-whitespace, end-of-file-fixer, check-yaml, yamlfmt, yamllint)
    • Installation
      • Virtual Environment Route
        • It is recommended to create a virtual env for your repo (python3 -m venv venv)
        • Install the required pip packages (pip install -r requirements.txt)
        • Continue to the "Install pre-commit Hooks"
      • pre-commit Only Route
      • Install pre-commit Hooks
        • To install the pre-commit script: pre-commit install
    • Usage & Useful pre-commit Commands
      • After staging your files with git, to run the pre-commit script on changed files: pre-commit run
      • To run the pre-commit script on all files: pre-commit run --all
      • To uninstall the pre-commit script: pre-commit uninstall
    • Learn more about pre-commit
  • GitHub Actions - Automatically run before a PR can be merged. Repeats yamllint & validates against NetBox Device-Type Schema.

devicetype-library's People

Contributors

antonalekseev avatar ao-inoue avatar bile0026 avatar christopherusky avatar collin-clark avatar danner26 avatar dansheps avatar davidusken avatar dmcken avatar facundoacevedo avatar francesco-noc avatar garbled1 avatar jemery27 avatar jeremystretch avatar k01ek avatar lchabert avatar m2martin avatar madecto avatar mag-marc-schulz avatar michaelklose avatar mtinberg avatar nahun avatar netravnen avatar robinreinhardt avatar ryanmerolle avatar suom1 avatar tnagafuchi avatar walday avatar wlanfr3ak avatar wtinetworkgear avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

devicetype-library's Issues

MikroTik devices with multiple revisions?

I would like to contribute my device file for the CCR1036-8G-2S+EM (Rev A/2014?) which differs from the current revision of the CCR1036-8G-2S+EM. How should I name it before shooting it over to the device library? I was thinking about naming it CCR1036-8G-2S+EM (2014) or CCR1036-8G-2S+EM (Rev A) but that certainly would be inaccurate since I do not know what would be a proper way to refer to that model.

Main differences between the original revision and the current revision with the model are

  • Only 1 power input
  • DB9 Serial instead of rollover RJ45
  • Micro USB instead of USB A in front

Modules for Cisco Catalyst 4506-E

In this repo we have "Catalyst 6506-E". What is the best way add to this chassis these front modules:
Mod Ports Card Type Model
---+-----+--------------------------------------+------------------
1 4 Sup 7-E 10GE (SFP+), 1000BaseX (SFP) WS-X45-SUP7-E
2 12 1000BaseX SFP WS-X4712-SFP-E
3 48 10/100/1000BaseT EEE (RJ45) WS-X4748-RJ45-E
4 48 10/100/1000BaseT EEE (RJ45) WS-X4748-RJ45-E
5 48 10/100/1000BaseT EEE (RJ45) WS-X4748-RJ45-E

Should I create new templates for modules?

Front and Rear images

Are there any plans on supporting front and rear images for the device types in this library ?

Device definition added to device-types folder in #285

In pull request #285, several QNAP devices were added - but an additional yaml file, SX350X-24-K9.yml, was also erroneously added to the device-types folder. As best I can tell, this is a draft of one of the QNAP devices, but I can't tell for sure - so I didn't want to open a pull request to suggest how to fix it unless somebody can tell what it's supposed to be.

Extend tests to check for trailing newline

Every definition file should end with a newline. This is similar in nature to the requirement under PEP8, and ensures tidy output when dumping files at a command prompt.

Importing devices from NetBox fails ...

Not sure it is real issue ...

PROBLEM

I have a few devices in my NetBox (v2.10.10) and I wanted to include them to this repo.

And I found, that exporting NetBox devices is not that easy ...

You can fail at these tests ...

First you fail on yamlint:

$ yamllint -c tests/yamllint.yaml device-types/Cisco/SG250-10P-K9.yaml
device-types/Cisco/SG250-10P-K9.yaml
  1:1       warning  missing document start "---"  (document-start)
  9:1       error    wrong indentation: expected 2 but found 0  (indentation)
  12:1      error    wrong indentation: expected 2 but found 0  (indentation)
  17:1      error    wrong indentation: expected 2 but found 0  (indentation)

you have to edit file and make it YAML file (see 12dd3d4)

Than you can test if values are correct:

$ pytest -k SG250-10P-K9

NB can have (usually have) empty ('') subdevice_role in meaning "undefined", but DL requires exact value
(see a0431db)

Failed validating 'enum' in schema['properties']['subdevice_role']:
    {'enum': ['parent', 'child'], 'type': 'string'}

NB can have empty string ('') power-port type in meaning "undefined", but DL requires exact value (and there is no value "Other")

Failed validating 'enum' in schema['properties']['power-ports']['items']['properties']['type']:
... a long list ...

(see a452128)

Other examples are "allocated_draw: null" - you need to delete it from NB export
(IMHO majority of devices define only maximum_draw in documentation ... I saw only PoE devices to define draw with and without full PoE)
(see 20d1e44)

May be it is minor problem, but for me it is annoying ... IMHO that extra work could prevent some contributors to finish their contribution.

SOLUTION

Change tests or NetBox export (ideally both to share the same definition of output)

Unknown properties are ignored during schema validation

I have done some experiments with the new module-bays option and noticed, that unknown/misspelled properties are currently ignored during schema validation and doesn't raise a failure.

This can be fixed by adding "additionalProperties": false, to the schema.json file.

Currently I have noticed the following unknown properties in use:
comments
comment
power-port
console-server-port
console_ports
power_ports
full_depth

For reference I added my pytest results with modified schema.json.
results.txt

I can open a pull requests to fix this if the issue is accepted.

Question: Non data centre equipment

I have been working on a large field area network for roadside equipment (predominately Cisco). Equipment covers their ruggedised range of industrial ethernet switches, routers etc. Would these be a welcome addition to the device type library?

DeviceType Template missing power draw information

NOT AN ISSUE WITH device-type- library, but Netbox documentation.
The devicetype-library does not mention anywhere that the Maximum draw and Allocated draw could/should be included in the device type definition.
If this is not by design, please update the documentation to why it is excluded or include instructions to that this information could/should be added in the template.

Best way to keep track of SuperMicro 45 bay Jbod

Hi can someone give advice or best way to add a Supermicro Server and JBOD to netbox?

I am using Freenas and I am trying to figure out the best way to organize and keep track of the hard drives gptid and serial numbers per each hard drive slot.

SuperMicro SuperServer 6029U-TRTP
connects to the super chassis via External SAS expander
SuperChassis 847DE1C-R2K04JBOD

Or does someone have a template I can upload of the jbod?

Noob Question: how to work on multiple device_types simultaneously

This might be a github question.

If I have a pull request in progress for device types in a series of manufacturer.

I then start to work on new device types for another manufacturer. If I commit from the original fork these then confuse the pull request.

What is the best way to work on more than one set of device_types at the same time (or more likely the next set whilst waiting in the queue for the pull request to complete)?

Interface POE

It would be nice to mark Ethernet interfaces with POE technology.

It could be done by two approaches -

  1. add it to type
- name: GigabitEthernet1/0/1
  type: 1000base-t-poe
  1. add variable
- name: GigabitEthernet1/0/1
  type: 1000base-t
  poe: poe

poe would reflect basic types of POE by common name or by IEEE standard

  1. PoE - 802.3af
  2. PoE+ (PoE plus) - 802.3at
  3. 4PPoE - 802.3bt

I preffere the first aproach.

Question is if the same aproach could by applied in netbox itself too

Is there a way to support multiple OS variation for the same device?

Is there a way to support multiple OS variation for the same device? Most of the WhiteBox / Bright Box supports different OS.
For example: Dell Devices support various NOSes (OS10, SONiC, Cumulus etc) each have a different interface naming convention. Is there a way to accommodate it? or Create 1 Yaml Per Device Per OS? I prefer extending the Interface section with the additional NOS key.

Physical combo ports that represent single logical interface

I am working on the template for WS-C3560-8PC and see the is a pair of physical interfaces that represent one logical interface: GigabitEthernet0/1

Is there a way to show it can be either the 1000base-x-sfp or 1000base-t depending on which interface you plug into? Is there a better way to represent this?

Newer dell servers have 'slot' cards for onboard nics. multiple options available

Newer dell servers have 'slot' cards for onboard nics. multiple card options available. 1gb 10gb etc

If i put the effort into making a replacement yml file for this along with the 3 slot card options would this be accepted as a replacement for the likes of the dell r630 poweredge?

doco: https://qrl.dell.com/Files/en-us/Html/Manuals/R630/Back-panel%20features%20and%20indicators=GUID-C0B66403-F253-407C-B50C-90391617E03A=1=en-us=.html
search for ethernet connections.

Importation tutorial

Hello,

I was wondering if it was possible to document in your readme.md the process for importing this data.

The integrated import feature in netbox only takes text, not full yaml files.

Regards,

Policy to fix existing DeviceTypes definitions?

What is the policy for submitting a PR(s) to fix deviceType definitions already checked into this repo?

Would it break some "remaining backwards compatible" rule in this repo? Since basically people just import, I don't see it being a problem to change - as the way forward would have the correct definitions.

Last question: There are Ruckus devices listed under the Brocade folder. Ruckus bought out Brocade, and all 7000 series devices are named Ruckus going forward. However, they are listed under that Brocade folder.

/tl;dr

I've recently come in possession of several Brocade and Ruckus (previously Brocade) networking gear.

As I am trying to use Netbox devicetype-library imports, I have noticed that the vast majority are naming the ports and switch assignments completely wrong.

For example, I recently added the Ruckus ICX7150-C12P here: #371

I spoke to the justification of the different naming conventions in that PR. In short, all of the existing Brocade deviceTypes with GigabitEthernet1/2 need to be changed to ge-1/1/1, ge-1/1/2 and so on to match the switches' OS as well as Brocade's own literature.

Also, Netbox itself suggests ge-1/1/1 - so that's a bonus.

However, I do not know the implications of making such changes to this repo for people with existing Netbox installations.

To be clear: I'm only talking about updating the Brocade/Ruckus deviceTypes that I am personally familiar with. I would not touch any other types I do not know, nor any other manufacturer.

Juniper EX2300-C-12P import failure

Tried to import the Juniper EX2300-C-12P template, but got the following error:

console-ports[1] all: Console port template with this Device type and Name already exists.

It appears to be due to the USB and serial console ports having the same name.

NetBox v2.8.7

Additional Arista Devices

I added templates for the following devices:
Arista DCS-7050SX2-72Q-R
Arista DCS-7050TX-48-R
Arista DCS-7060CX-32S-R
Arista DCS-7148S-R
Arista DCS-7508

Extend Testing to Catch duplicate object names

When a user duplicates the same name for a particular object like console or interface in their device-type model, it would be good to catch said duplicate in order to prevent import errors.

Add Cisco Devices

We use the Cisco Catalyst 2960S-48TD-L in our network. The information about the device can be found here: https://www.cisco.com/c/en/us/products/collateral/switches/catalyst-2960-s-series-switches/data_sheet_c78-726680.html

---
manufacturer: Cisco
model: Catalyst 2960S-48TD-L
slug: ws-c2960s-48td-l
part_number: WS-C2960S-48TD-L
is_full_depth: false
u_height: 1
interfaces:
  - name: FastEthernet0
    type: 100base-tx
    mgmt_only: true
  - name: GigabitEthernet1/0/1
    type: 1000base-t
  - name: GigabitEthernet1/0/2
    type: 1000base-t
  - name: GigabitEthernet1/0/3
    type: 1000base-t
  - name: GigabitEthernet1/0/4
    type: 1000base-t
  - name: GigabitEthernet1/0/5
    type: 1000base-t
  - name: GigabitEthernet1/0/6
    type: 1000base-t
  - name: GigabitEthernet1/0/7
    type: 1000base-t
  - name: GigabitEthernet1/0/8
    type: 1000base-t
  - name: GigabitEthernet1/0/9
    type: 1000base-t
  - name: GigabitEthernet1/0/10
    type: 1000base-t
  - name: GigabitEthernet1/0/11
    type: 1000base-t
  - name: GigabitEthernet1/0/12
    type: 1000base-t
  - name: GigabitEthernet1/0/13
    type: 1000base-t
  - name: GigabitEthernet1/0/14
    type: 1000base-t
  - name: GigabitEthernet1/0/15
    type: 1000base-t
  - name: GigabitEthernet1/0/16
    type: 1000base-t
  - name: GigabitEthernet1/0/17
    type: 1000base-t
  - name: GigabitEthernet1/0/18
    type: 1000base-t
  - name: GigabitEthernet1/0/19
    type: 1000base-t
  - name: GigabitEthernet1/0/20
    type: 1000base-t
  - name: GigabitEthernet1/0/21
    type: 1000base-t
  - name: GigabitEthernet1/0/22
    type: 1000base-t
  - name: GigabitEthernet1/0/23
    type: 1000base-t
  - name: GigabitEthernet1/0/24
    type: 1000base-t
  - name: GigabitEthernet1/0/25
    type: 1000base-t
  - name: GigabitEthernet1/0/26
    type: 1000base-t
  - name: GigabitEthernet1/0/27
    type: 1000base-t
  - name: GigabitEthernet1/0/28
    type: 1000base-t
  - name: GigabitEthernet1/0/29
    type: 1000base-t
  - name: GigabitEthernet1/0/30
    type: 1000base-t
  - name: GigabitEthernet1/0/31
    type: 1000base-t
  - name: GigabitEthernet1/0/32
    type: 1000base-t
  - name: GigabitEthernet1/0/33
    type: 1000base-t
  - name: GigabitEthernet1/0/34
    type: 1000base-t
  - name: GigabitEthernet1/0/35
    type: 1000base-t
  - name: GigabitEthernet1/0/36
    type: 1000base-t
  - name: GigabitEthernet1/0/37
    type: 1000base-t
  - name: GigabitEthernet1/0/38
    type: 1000base-t
  - name: GigabitEthernet1/0/39
    type: 1000base-t
  - name: GigabitEthernet1/0/40
    type: 1000base-t
  - name: GigabitEthernet1/0/41
    type: 1000base-t
  - name: GigabitEthernet1/0/42
    type: 1000base-t
  - name: GigabitEthernet1/0/43
    type: 1000base-t
  - name: GigabitEthernet1/0/44
    type: 1000base-t
  - name: GigabitEthernet1/0/45
    type: 1000base-t
  - name: GigabitEthernet1/0/46
    type: 1000base-t
  - name: GigabitEthernet1/0/47
    type: 1000base-t
  - name: GigabitEthernet1/0/48
    type: 1000base-t
  - name: GigabitEthernet1/0/49
    type: 1000base-x-sfp
  - name: GigabitEthernet1/0/50
    type: 1000base-x-sfp
  - name: TenGigabitEthernet1/0/1
    type: 10gbase-x-sfpp
  - name: TenGigabitEthernet1/0/2
    type: 10gbase-x-sfpp
console-ports:
  - name: con0
    type: rj-45
power-ports:
  - name: PSU0
    type: iec-60320-c14
    maximum_draw: 55

Please add the device to your library, thanks!

Duplicate keys is DELL device types

The following device type definitions contain duplicate keys, which are illegal as of YAML spec 1.2

device-types/Dell/PowerEdge_R640.yaml:18:1: [error] duplication of key "console-server-ports" in mapping (key-duplicates)
device-types/Dell/PowerEdge_R620.yaml:18:1: [error] duplication of key "console-server-ports" in mapping (key-duplicates)
device-types/Dell/PowerEdge_R630.yaml:18:1: [error] duplication of key "console-server-ports" in mapping (key-duplicates)
device-types/Dell/PowerEdge_R720.yaml:18:1: [error] duplication of key "console-server-ports" in mapping (key-duplicates)
device-types/Dell/PowerEdge_R740.yaml:18:1: [error] duplication of key "console-server-ports" in mapping (key-duplicates)
device-types/Dell/PowerEdge_R730.yaml:18:1: [error] duplication of key "console-server-ports" in mapping (key-duplicates)

I would be willing to provide a pull request if a fix is appreciated.

Expand the repo to include module types (coming in NetBox v3.2)

NetBox v3.2 will introduce support for device modules (e.g. line cards). I'd like to add a second root directory to this repo named module-types, which will mirror what exists today for device types.

The YAML definitions for module types are still TBD, and won't be finalized until NetBox v3.2.0 is released, but it should closely replicate the format used for device types. We'll likely need to refactor the tests though.

suggestion to make tests for name not be typed

Some devices literally have integers for their names. Raritans for example have their power outlets be named 1,2,3 etc instead of Outlet1, Outlet2. Currently, if I submit the template as

power-outlets:
  - name: 1
    type: iec-60320-c13
    power_port: Inlet1
    feed_leg: A

It will fail. Instead I have to submit as:

power-outlets:
  - name: Outlet1
    type: iec-60320-c13
    power_port: Inlet1
    feed_leg: A

This means its giong to be double work to change it back to what it is. Netbox by itself is fine accepting only integers as names, but the devicetype-library isn't.

Thanks.

Device Types within Juniper have the same model

Upon scripting the imports for all the device types I noticed that there is a Juniper device types with the same model and slug as other devices.

At the moment it appears to be:

  • EX3400-48T.yaml

Implement github page for easy browsing

To use the full power of this repo, a github page should be generated from this repo via Travis.
This page is primarily used to get a direct overview of the already available devices, but also to get the data from netbox itself or other third party application via json request or similar and to process it dynamically.

Cisco\cdb-8p - Duplicate key

Duplicate key in a device

Creating template power-ports with {'name': 'PSU0', 'type': 'iec-60320-c14', 'maximum_draw': 236, 'device_type': 196}
Created new power-ports: PSU0
Traceback (most recent call last):
  File ".\netbox_import.py", line 327, in <module>
    process_yaml(yfile)
  File ".\netbox_import.py", line 318, in process_yaml
    device_type = load_yaml(yml_file)
  File ".\netbox_import.py", line 180, in load_yaml
    return yaml.load(stream)
  File "C:\Users\Brendan\AppData\Local\Programs\Python\Python38-32\lib\site-packages\ruamel\yaml\main.py", line 343, in load
    return constructor.get_single_data()
  File "C:\Users\Brendan\AppData\Local\Programs\Python\Python38-32\lib\site-packages\ruamel\yaml\constructor.py", line 113, in get_single_data
    return self.construct_document(node)
  File "C:\Users\Brendan\AppData\Local\Programs\Python\Python38-32\lib\site-packages\ruamel\yaml\constructor.py", line 123, in construct_document
    for _dummy in generator:
  File "C:\Users\Brendan\AppData\Local\Programs\Python\Python38-32\lib\site-packages\ruamel\yaml\constructor.py", line 723, in construct_yaml_map
    value = self.construct_mapping(node)
  File "C:\Users\Brendan\AppData\Local\Programs\Python\Python38-32\lib\site-packages\ruamel\yaml\constructor.py", line 440, in construct_mapping
    return BaseConstructor.construct_mapping(self, node, deep=deep)
  File "C:\Users\Brendan\AppData\Local\Programs\Python\Python38-32\lib\site-packages\ruamel\yaml\constructor.py", line 257, in construct_mapping
    if self.check_mapping_key(node, key_node, mapping, key, value):
  File "C:\Users\Brendan\AppData\Local\Programs\Python\Python38-32\lib\site-packages\ruamel\yaml\constructor.py", line 295, in check_mapping_key
    raise DuplicateKeyError(*args)
ruamel.yaml.constructor.DuplicateKeyError: while constructing a mapping
  in "C:\Users\Brendan\Downloads\devicetype-library-master\__temp__\devicetype-library\device-types\Cisco\cdb-8p.yaml", line 1, column 1
found duplicate key "u_height" with value "0" (original value: "0")
  in "C:\Users\Brendan\Downloads\devicetype-library-master\__temp__\devicetype-library\device-types\Cisco\cdb-8p.yaml", line 8, column 1

To suppress this check see:
    http://yaml.readthedocs.io/en/latest/api.html#duplicate-keys

Duplicate keys will become an error in future releases, and are errors
by default when using the new API.

Modeling the Dell FX2s Chassis

Was going to model up the Dell FX2 Chassis, wanted to get people's input. I'm just going the model the 4bay version as its the most common I've seen, if somebody wants the 2, 3, 6, or 8 bay, I'm happy to do those as well.

Like the Dell M1000e Blade Center Chassis, it has bays on the back for networking modules.

Some are just direct passthrough to the network cards on the sled servers ("blades") that get plugged in the front. I think Front/Rear ports would be the best way to model this. This is helpful for tracing the mapping of the rear ports to which actual ethernet interfaces on which sled (a constant problem if you dont have the linked diagram taped to your rack...)

Unfortunately you can also get Network Switches which are intelligent layer 2/3 devices, and would (imo) be better suited for the parent/child device model given they are their own autonomous devices that have their own control planes. Additionally tracking the network interfaces between the sleds and the switching network module allow for better granularity in config management when using Netbox as a source for automatic configuration. But I could be convinced otherwise.

And to complicate maters, the network switch modules dont always have the same number of ports. So just statically setting them on the FX2 chassis device type seems clumsy.

As I'm writing this, I think a Parent/child is good for both, and an additional device type can just be of type patch panel (With front/rear ports).

Thoughts welcome.

duplicate file names under Ubiquiti

There are duplicate file names with lower/upper case under Ubiquiti

  • US-16-150W.yaml and us-16-150w.yaml
  • US-24-500W.yaml and us-24-500w.yaml

How to handle Master/Link PDUs

What is the best way to handle Master / Link PDUs in the devicetype-library and Netbox? I have a number of Servertech PDUs such as model STV-4101C (master) / SEV-4101C (Link). In my netbox deployment I've created a single YAML (attached as PDF for reference) that have both Master and Link power outlets but wondering if there is there a way to create individual device types for the master and link part numbers and then somehow "link" them in Netbox so they appear logically as a single device as they do for mgmt?

Let me know if this is a question better asked in https://github.com/netbox-community/netbox and I'll post there.

Thanks

STV-4101C.pdf

Cisco ASR920 Router

Can't find Cisco ASR920 router. Do I overlook it or should I create a PR?

Extend tests to validate slug charset

The DeviceType definition validation test should assert that the defined slug comprises only allowed slug characters (letters, numbers, hyphens, etc.).

Issue with Importing Device Types

I've tried to import the C6807-XL template but I get an error

Invalid YAML data: mapping values are not allowed here in "", line 98, column 65: ... e" content="{"version": "4", "rollouts& ... ^

My Netbox version is 2.11.6

I've tried 3 other templates and get the same error.

Please can anyone help me fix this issue?

Thanks

AP8853 power input 15 mislabeled

AP8853 definition of what should be power outlet 15 is mislabeled as "Power Outlet 1" which causes import to fail due to duplicate (line 69 of the YML file)

The name of this barrel plug

Hi, I have the feeling that this is not the correct place for this question, but since I've been creating some devices an answer will improve the quality of my contributions.
I'm looking for the name in Netbox of this kind of power connector:

Thanks

Ethernet33 duplicated in DCS-7280SR2-48YC6

hello,

import error when trying to import YML for DCS-7280SR2-48YC6

issue is due to interface definition "Ethernet33" is listed twice -- there is a Type-o where it should be fixed to "Ethernet43" -- changing that import works fine.

Questions about contributing various components

From the docs:

Include only components which are fixed to the chassis. Optional modular components should be omitted from the definition. (Note that this does not exclude field-replaceable hardware that is expected to always be present, such as power supplies.)

  1. I have a Tripp-Lite PDU. It has an optional SNMPWEBCARD installed. Should I build it as a parent device, and also create a child for the card?

  2. You have a generic 24p and 48p patch panel. Do you want submissions for specific ones, such as a "Navepoint 24 port" or "Trendnet 48 port"? What about ones that have 110-style punchdown instead of 8p8c?

  3. Is there a specific way to deal with a device that has a shared port? Say a switch that has 24 physical gige ports, and then 4 ports that are SFP+, but are "shared" with ports 21-24?

  4. How would you prefer a device such as a 24 port keystone blank patch panel be added? (there are near infinite options for those, so would it be best to just have a default of rj45 jacks and let people edit them post-install?)

Thanks! This repo is great!

WS-C3560-48TS-S.yaml template is inconsistent

device-types/Cisco/WS-C3560-48TS-S.yaml should be for a 48-port FastEthernet switch, yet the interfaces are labeled as GigabitEthernet0/X and type is 100base-tx

Template file name differs from the model and part_number attributes as well.
filename WS-C3560-48TS-S.yaml
model: WS-C3560G-48TS-S
slug: ws-c3560g-48ts-s
part_number: WS-C3560-24TS-S

I plan on submitting a correct WS-C3560-48TS-S but I'm not sure what to do about this template as it needs to be built from scratch

Missing management interfaces for Juniper equipment

Hi,

The management interface is missing from the Juniper equipment. In addition there is a lot of other hardware not listed that I can easily create the templates for (other Juniper, equipment, PDU's etc.). Is there any docs on the format for the templates?

I am a b00b when it comes to github. I assume once I generate the files I can do a pull request?

Juniper QFX5120-32C

Small typo. Model should read QFX5120-32C

model: QFX5120-32C
slug: qfx5120-32c
__
[ https://github.com/netbox-community/devicetype-library/blob/master/device-types/Juniper/QFX5120-32C.yaml ]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.