- Dec 13, 2017
-
-
Benjamin Bertrand authored
-
Benjamin Bertrand authored
main blueprint splitted in: - inventory - networks
-
Benjamin Bertrand authored
- Rename Host to Interface - Create new Host table to group interfaces
-
Benjamin Bertrand authored
Use the session instead of URL parameters to store the last network chosen.
-
Benjamin Bertrand authored
There is no point displaying the LDAP groups in the profile
-
Benjamin Bertrand authored
- All created tokens are stored in the database. To revoke a token, we just delete it from the database. Tokens not found in the database are thus considered unvalid / revoked. - Add button to copy generated token to the clipboard - Redesign profile page
-
Benjamin Bertrand authored
See https://clipboardjs.com
-
- Dec 12, 2017
-
-
Benjamin Bertrand authored
Open source icon set with ready-to-use fonts for bootstrap See https://useiconic.com/open/
-
- Dec 06, 2017
-
-
Benjamin Bertrand authored
-
Benjamin Bertrand authored
-
Benjamin Bertrand authored
-
Benjamin Bertrand authored
-
Benjamin Bertrand authored
-
Benjamin Bertrand authored
-
Benjamin Bertrand authored
hosttags table required for the many-to-many relationship See http://flask-sqlalchemy.pocoo.org/2.3/models/#many-to-many-relationships
-
Benjamin Bertrand authored
- Several IPs (hosts) can be associated to one MAC address - Host name shall be non nullable
-
Benjamin Bertrand authored
- refactor Network class
-
- Nov 26, 2017
-
-
Benjamin Bertrand authored
-
Benjamin Bertrand authored
pytest-factoryboy current version (1.3.1) is not compatible with factory_boy >= 2.9 See https://github.com/pytest-dev/pytest-factoryboy/pull/54
-
Benjamin Bertrand authored
- update conda image and all dependencies - uwsgi now available in conda for Python 3.6 (no need to install gcc to install it via pip) - add new dependency: factory_boy / pytest-factoryboy
-
- Nov 21, 2017
-
-
Benjamin Bertrand authored
Catch exception when no network exists (null is passed as network_id).
-
Benjamin Bertrand authored
-
- Nov 20, 2017
-
-
Benjamin Bertrand authored
-
Benjamin Bertrand authored
- network name should be unique and not nullable - force all name fields to StringField
-
- Nov 17, 2017
-
-
Benjamin Bertrand authored
-
- Nov 15, 2017
-
-
Benjamin Bertrand authored
Don't ovveride SQLAlchemy __init__ method on db.Model classes. See http://flask-sqlalchemy.pocoo.org/2.3/quickstart/: SQLAlchemy adds an implicit constructor to all model classes which accepts keyword arguments for all its columns and relationships. If you decide to override the constructor for any reason, make sure to keep accepting **kwargs and call the super constructor with those **kwargs to preserve this behavior
-
Benjamin Bertrand authored
-
- Nov 14, 2017
-
-
Benjamin Bertrand authored
-
Benjamin Bertrand authored
-
Benjamin Bertrand authored
ValidationError is catched by default by flask-admin. It's easy to catch in the api/main.py to raise a CSEntryError. We actually don't need to catch ValidationError as it's based on ValueError that we already catch.
-
Benjamin Bertrand authored
Use full exception error as message (error messages from psycopg2 can be quite long but that makes it much more explicit)
-
Benjamin Bertrand authored
TODO: we should maybe raise ValidationError in models and catch that to raise CSEntryError in the API
-
Benjamin Bertrand authored
Note that beginning with version 10, a major release is indicated by increasing the first part of the version, e.g. 10 to 11. So 10.1 will be a minor version. That's why we can use the docker tag "10". See https://www.postgresql.org/support/versioning/
-
Benjamin Bertrand authored
The database constraints will catch the same error (and raise an IntegrityError). Having some validation at the model level allows to display nicer error messages. We use CSEntryError exception and not ValidationError so that it can be used both by the API and views.
-
Benjamin Bertrand authored
Allow to use the same CSEntryError exceptions used for validation in the API and admin views.
-
Benjamin Bertrand authored
Trying to insert an invalid IP or network address raises an exception. This is due to the unique validator from flask-admin that queries the database. The unique validator is automatically added for columns with unique=True. The only way to disable it is to monkey patch the Unique class. This allows the field validator to catch invalid format. IntegrityError are already catched anyway.
-
Benjamin Bertrand authored
- replace TextAreaField by StringField for several Text columns - add filter to replace empty string by None on optional Text and INET fields
-
- Nov 13, 2017
-
-
Benjamin Bertrand authored
-
Benjamin Bertrand authored
Don't override the Admin view __init__ method for consistency. Avoid having to import models in admin/views.py
-
Benjamin Bertrand authored
CIText is displayed as a TextAreaField by flask-admin. Override it to use StringField.
-