Skip to content

Commit

Permalink
Release v1.3.0
Browse files Browse the repository at this point in the history
- Includes changelog and documentation updates.
  • Loading branch information
jathanism committed Jan 12, 2018
1 parent 93647c6 commit ef9a167
Show file tree
Hide file tree
Showing 4 changed files with 87 additions and 4 deletions.
24 changes: 22 additions & 2 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,32 @@ Changelog
Version History
===============

.. _v1.3.0:

1.3.0 (2018-01-12)
------------------

* Introducing the ``Protocol`` resource object which can be used to model
protocol sessions of various types, such as BGP, IS-IS, or more.

+ The type for a Protocol is defined using a ``ProtocolType`` object which
has optional required attributes that can be used to establish Protocol
attributes required when creating a new session of this type.
+ A Protocol may be bound to a ``Circuit`` or an ``Interface`` (but not both).

* Fix #267: The ``/users`` page in the web UI has been disabled and removed
from the menu until an actual view can be created. This was causing
confusion, especially amongst new users.
* Fix #298: Circuits can now be filtered by the A/Z endpoint interface slug
(aka natural key) or ID number.
* Fix #307: Fix Vagrant setup issues related to the upstream security changes
to PyPI causing the Vagrant install to fail.

.. _v1.2.3:

1.2.3 (2017-09-20)
------------------

* Enhance Network "get_next" methods to optionally allocate/reserve at the same
time

Expand All @@ -23,7 +45,6 @@ Version History
* Sped up ``Interface.networks()`` for MySQL users by splitting a subquery up
into two separate queries.


.. _v1.2.2:

1.2.2 (2017-08-30)
Expand All @@ -36,7 +57,6 @@ Version History
set on the child object*.
* Object-level permissions may be managed using the built-in admin dashboard.


.. _v1.2.1:

1.2.1 (2017-08-01)
Expand Down
2 changes: 1 addition & 1 deletion docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ RUN pip install -U setuptools

# Try to run this as late as possible for layer caching - this version will be
# updated every update so let the build not take longer than necessary
RUN pip install nsot==1.2.3
RUN pip install nsot==1.3.0
COPY conf /etc/nsot

ENTRYPOINT ["nsot-server", "--config=/etc/nsot/nsot.conf.py"]
Expand Down
63 changes: 63 additions & 0 deletions docs/models.rst
Original file line number Diff line number Diff line change
Expand Up @@ -410,6 +410,69 @@ Interfaces
Returns the Interface objects bound to the circuit ordered from A to Z (local
to remote).

ProtocolTypes
-------------

A ProtocolType represent the type for a Protocol and is a required value for
the ``Protocol.type`` field when a Protocol is created.

ProtocolTypes are created by specifying the unique name, a user-friendly
description, and required Protocol attributes for Protocols of this type.

This object is designed to provide flexibility in customizing the modeling of
protocol sessions for any environment by utilizing varying sets of Protocol
attributes.

For example one could create "iBGP" and "eBGP" ProtocolTypes with different
sets of required Protocol attributes that could be utilized for internal and
external BGP sessions.

A ProtocolType's "name" field must be unique for a given Site. Any Protocol
attributes you wish to set as required attributes must exist prior to creating
the ProtocolType.

A typical ProtocolType object might look like:

.. code-block:: javascript
{
"site": 1,
"description": "IS-IS",
"id": 1,
"required_attributes": [
"metric"
],
"name": "isis"
}
Protocols
---------

A Protocol represents a session for a network protocol such as BGP, IS-IS, or OSPF.

Before a Protocol can be created, a ProtocolType with the desired name and
required attributes must first be created. A Protocol must be bound to a Device
object and a ProtocolType.

A Protocol may optionally be bound to an Interface or a Circuit, but not both.

A typical Protocol object might look like:

.. code-block:: javascript
{
"interface": "foo-bar1:ae0",
"description": "IS-IS link for ae0",
"circuit": null,
"attributes": {},
"device": "foo-bar1",
"auth_string": "abc123",
"type": "isis",
"id": 1,
"site": 1
}
Changes
=======

Expand Down
2 changes: 1 addition & 1 deletion nsot/version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = '1.2.3'
__version__ = '1.3.0'

0 comments on commit ef9a167

Please sign in to comment.