Release notes
This page contains the releases notes of RacksDB with details about the new features, modifications and bug fixes coming with all releases.
This page is rendered based on the content of
CHANGELOG.md
in RacksDB source code.
|
Unreleased
Changed
-
docs:
-
Update quickstart guide to mention added support on Ubuntu 24.04 LTS and Fedora 40 and dropped support on Fedora 38.
-
Format files and directories paths with specific style in quickstart guide.
-
Fixed
-
docs:
-
Wrong APT sources file extension in quickstart guide.
-
Path of system packages examples directory in quickstart guide.
-
-
ui: Update bundled dependencies to fix security issues CVE-2024-39338 (axios), CVE-2024-4068 (braces), CVE-2024-31207 (vite), CVE-2024-6783 (vue-template-compiler) and CVE-2024-37890 (ws).
0.4.0 - 2024-04-15
Added
-
lib:
-
Add advanced
tags
property and_filter()
method specializations onRacksDBStorageEquipment
,RacksDBNetworkEquipment
andRacksDBSMiscEquipment
classes, similarly toRacksDBNode
. -
Introduce
RacksDBSchemaError
andRacksDBFormatError
in order to easily catch these errors from other software that use RacksDB as an external library. -
Add optional
path
property toDBLoader
class.
-
-
cli: Add
-c, --coordinates
and--coordinates-format
arguments onracksdb draw
sub-command to generate coordinate file in either JSON or YAML format with coordinates of racks and equipment in the image along with the image file. -
web:
-
Add
coordinates
andcoordinates_format
query parameter ondraw
action enpoint to get coordinates of racks and equipment along with image file in multipart response (#56). -
Optional default drawing parameters in arguments of
RacksDBWebBlueprint
used for all requests todraw
endpoint unless overriden in request body. -
Add
--with-ui
option to enabled web UI inracksdb-web
.
-
-
draw:
-
Add general
pixel_perfect
boolean drawing parameter, disabled by default. When enabled, RacksDB properly align graphical representation with pixels matrix with concession on relative dimensions correctness (#4). -
Add room
racks_labels
boolean drawing parameter, enabled by default. When enabled, RacksDB label all racks with their names in room diagrams (#58). -
Add infrastructure
equipment_labels
boolean drawing parameter, enabled by default. When enabled, RacksDB label equipment with their names in infrastructure diagrams (#55). -
Add infrastructure
equipment_tags
optional drawing parameter to give the possibility to select equipment represented in infrastructure diagrams with their tags (#57). -
Add infrastructure
ghost_unselected
boolean drawing parameter, disabled by default, to control if unselected equipment is represented as ghosted in racks to mark their presence in the infrastructure. When disabled, the unselected equipment is simply discarded. -
Add colors equipment
ghost
drawing parameter to specify the color of ghosted equipment. -
Add infrastructure
discard_empty_racks
boolean drawing parameter, enabled by default, to control if racks used by infrastructure that contain only unselected equipment are represented in infrastructure diagrams. -
Add infrastructure
other_racks
boolean drawing parameter to control if other racks located in the same rows as the infrastructure are represented, even if they do not contain infrastructure equipment. Other racks are represented when set to true. It is false by default (#61). -
Add support for optional alpha channel in
~hexcolor
defined type (#65). -
Make racks labels scalable to avoid exceeding rack width in infrastructure diagrams (#69).
-
-
schema:
-
Add
position
computed property onNode
,StorageEquipment
,NetworkEquipment
andMiscEquipment
objects to get their exact position in the racks (#72). -
Introduce
DatacenterLocation
object attached toDatacenter
optional location property to define GPS coordinates of the datacenters.
-
-
ui:
-
pkg:
-
Add dependency on PyGObject python library (used to call Pango library).
-
Add optional dependency on requests-toolbelt python library on web variant to generate multipart response with graphical representations images and coordinates.
-
-
docs:
-
Mention development libraries required for external dependencies in Quickstart guide.
-
Mention new class specializations on
RacksDBStorageEquipment
,RacksDBNetworkEquipment
andRacksDBSMiscEquipment
in library reference documentation. -
Update
racksdb
manpage to mention-c, --coordinates
and--coordinates-format
arguments onracksdb draw
sub-command. -
Mention optional alpha channel in documentation of drawing parameters
~hexcolor
defined type. -
Mention concept of computed property with the corresponding attribute.
-
Mention new
--with-ui
option inracksdb-web
manpage.
-
Changed
-
draw:
-
Replace Room/Infrastructure
scale
drawing parameters by maximum width/height dimensions. RacksDB compute a dynamic ratio based on these maximum dimensions to define the sizes of represented racks and equipment in pixels. -
Make font size of text labels on racks and equipment responsive to the size of the corresponding items. The font size is reduced, down to its minimum size, until the text label fits into the item.
-
Change unit (pixels→mm) and default value (10→40) of Rack
pane_width
drawing parameter. -
In infrastructure diagrams, computed rows widths and heights, thus drawing scale eventually, are now based on represented racks by taking into account empty racks,
discard_empty_racks
andother_racks
drawing parameters.
-
-
web:
-
Change some HTTP status code to report errors on
draw
action endpoint:-
415 → 500 when unable to load drawing parameters schema.
-
415 → 400 when unable to load drawing parameters.
-
415 → 400 for unsupported coordinates format.
-
-
-
ui:
-
Many improvements in datacenter details page (#39), such as:
-
The table of rooms is moved upper in the page.
-
The datacenter search input is replaced by a filter input in the top right corner to filter rooms by name.
-
The table of rooms does not use all page width anymore.
-
The "`Access to the room`" button is be renamed "`View room`".
-
The table header for view room button has been removed.
-
Add button to sort rooms by name in alphabetical order, either in ascending or descending order.
-
Adopt the same font as in datacenter room details view.
-
-
More ergonomic combobox to select datacenter and infrastructure (#38).
-
Many improvements in datacenter room page (#40), such as:
-
The datacenter search input is replaced by a filter input in the top right corner to filter racks by name.
-
Improve readability of racks table by reducing its width, add lines between rows and increase row height.
-
Add "`Hide empty`" button to hide empty racks.
-
Add button to invert racks sorting by name in alphabetical order, either in ascending or descending order.
-
More accessible dialog to view room map in bigger size which can be closed with escape key or by clicking outside.
-
Add link to infrastructure details view in infrastructures list.
-
Add alternative text for the images.
-
-
Many improvements in infrastructure details page (#41), such as:
-
The cards are removed in favor of the table view only.
-
Equipment tags are displayed in table.
-
The table is splitted by racks sections with grouped rows, sorted by names. Racks sections can be closed and opened at will.
-
A button gives the possibility to invert the order of racks.
-
Equipments in racks sections are ordered by position in the racks from top to bottom.
-
Readability of equipment table is improved by reducing its width on large screens.
-
When the infrastructure image is maximized, it can be closed with escape button or by clicking on the sides.
-
-
-
schema: Declare all computed properties in schema.
-
pkg: Move Flask-Cors python dependency in dev variant package.
-
docs:
-
Update supported Linux distributions in quickstart guide (add fedora 39 and RHEL9, drop fedora 37 and Ubuntu 22.04 LTS).
-
Update OpenAPI description for REST API documentation.
-
Update drawing parameters reference doc.
-
Fixed
-
ui: Bump missed version number in UI application metadata.
-
core:
-
web:
-
Send HTTP/400 status code when JSON error instead of crashing with exception in case of error when drawing an infrastructure or a room.
-
Warn instead of crash when CORS is enabled but the corresponding Flask-Cors module cannot be imported.
-
-
docs: Add missing version in example REST API queries.
0.3.0 - 2024-01-22
Added
-
ui: new web UI (in beta version)
-
schema:
-
Add support of optional list of GPU on NodeType (from @btravouillon).
-
Add optional initial property on RackType to define initial slot index.
-
Add support of miscellaneous equipments with MiscEquipmentType and MiscEquipment objects (#29).
-
Add support of
:recursive
object default to make the property default the corresponding object with all its defaults properties recursively. -
Add optional tags property on Rack objects.
-
-
core:
-
Add
bits
defined type. -
Add
watts
defined type (#23).
-
-
cli: Add
--parameters
and--drawings-schema
options to draw subcommands to specify paths to respectively drawing parameters database and drawing parameters schema in YAML format. -
draw:
-
Add schema for drawing parameters.
-
Add possibility to tune drawings settings (eg. margin, spacing, etc) with drawings parameters.
-
Add
~hexcolor
defined type. -
Add possiblity to define racks and equipment coloring rules with tags and type associations in drawing parameters (#34).
-
-
docs:
-
Mention web extra package installation from PyPI in quickstart guide.
-
Mention new optional list of NodeTypeGpu on NodeType in OpenAPI specification and structure reference documentation (from @btravouillon).
-
Add nodetype with GPU in examples databases.
-
Mention new
~bits
and~watts
defined types. -
Mention new optional initial property on RackType in structure reference documentation and OpenAPI specification.
-
Mention new MiscEquipmentType and MiscEquipment objects in OpenAPI specification and structure reference documentation.
-
Add miscellaneous equipment in example database.
-
Mention drawing parameters options
--parameters
and--drawings-schema
options inracksdb
andracksdb-web
manpages. -
Add documentation page for drawing parameters with howto and reference.
-
Mention new tags property on Rack object in reference documentation.
-
Mention schema properties default
:recursive
special value in schema documentation. -
Prefix objects from RacksDB shema with
RacksDB
and add objects from drawing parameters schema in OpenAPI specification and structure reference documentation. -
Add new datacenter and infrastructures in example database.
-
Add web UI user guide page (#44).
-
Commands to install web UI from source in quickstart guide.
-
Documentation to server web UI with
racksdb-web
in quickstart guide. -
Mention web UI feature in home page and features overview.
-
Changed
-
Database schema is moved from
/usr/share/racksdb/schema.yml
to/usr/share/racksdb/schemas/racksdb.yml
. -
schema: Use
~bits
defined type instead of~bytes
for NodeTypeNetif, StorageEquipmentTypeNetif and NetworkEquipmentTypeNetif bandwidth properties (#21). -
draw: Start rack slot numbering from rack type initial index (1 by default) instead of hard-coded 0 in infrastructure graphical representations (#24).
-
web:
-
Return REST API errors in JSON object.
-
Changed /draw route method from GET to POST with optional JSON or YAML drawing parameters in request body.
-
Add version to REST API paths.
-
-
docs:
-
Update supported Linux distributions in quickstart guide.
-
Update structure reference documentation and OpenAPI specification after bandwidths defined type changed from
~bytes
to~bits
. -
Use
~watts
defined type in example extension and extension documentation. -
Update examples database to new rack type initial slot index value set to 1.
-
Update equipments positionning howto to mention new default initial slot 1 and possibility to change it in database.
-
Report default value as example in REST API reference documentation when example is not defined in schema.
-
Update REST API reference documentation paths with version.
-
Fixed
-
core:
-
Warn with message instead of failing with stack trace when defined type module cannot be loaded.
-
Report error instead of stack trace when the content of an object is not a valid mapping of properties.
-
-
schema: Fix typo on example attributes of some properties.
-
draw: Fix inverted represention of reversed racks row in infrastructures (#27) (from @btravouillon)
-
docs:
-
Fix URLs to defined types in structure reference after module rename (from @btravouillon).
-
Add missing properties examples in OpenAPI specification.
-
0.2.0 - 2023-10-25
Added
-
core:
-
Add dumper for JSON format (#3).
-
Add possibility to keep expandable objects folded in dumpers.
-
Support loading sequence of objects with key property as a mapping whose keys are the key property of the contained objects.
-
Add examples for some properties in schema.
-
Add native class property on all SchemaDefinedTypes to declare the native type returned by the defined type after parsing.
-
Report defined type native type in schema dumps.
-
-
cli:
-
Add format option for datacenters, nodes, racks and infrastructures subcommands to control output format.
-
Add fold option to control folding of expandable objects in outputs of datacenters, nodes, racks and infrastructures subcommands.
-
Add possibility to select output format of the list of datacenters, infrastructures, nodes and racks names.
-
-
web: New executable
racksdb-web
to serve HTTP REST API. -
lib:
-
Add RacksDB.racks property to get the full list of racks.
-
Add possibility to filter list Racks by name.
-
Add RacksDBRack.fillrate computed property.
-
Add support for len(DBList).
-
Add RacksDBRacksRow.nbracks computed property.
-
-
docs:
-
Add installation method from sources intended to software developers in the quickstart guide.
-
Add the « Release notes » page based on the content of
CHANGELOG.md
. -
Mention
--format
and--fold
options in manpage. -
Update splitted database examples to demonstrate the possibility to declare sequence of objects with key property as mappings.
-
Mention sequence/mapping equivalence for list of objects with keys in concepts page.
-
Mention new
racks
attribute onRacksDB
class specialization in library API reference. -
Mention
nodes
,fillrate
computed property and filtering capability onRacksDBRack
class specialization in library API reference. -
Mention
nbracks
computed property onRacksDBRacksRow
class specialization in library API reference. -
Mention available examples in database files page.
-
Add REST API reference documentation based on OpenAPI specification.
-
Add manpage for
racksdb-web(1)
. -
Add Data Visibility section to illustrate custom data in extension page.
-
Changed
-
schema:
-
Rename objects:
-
DatacenterRoomRack
→Rack
-
DatacenterRoomRow
→RacksRow
-
DatacenterRoomPosition
→RacksRowPosition
-
-
-
core:
-
Introduce DBDict objects that inherit from standard Python dict to handle list of objects with keys (#15).
-
New schema format with properties specifications as mapping/hash
-
Schema dumps are now the raw data loaded in schema YAML files and defined types instead of an interpreted output.
-
-
lib:
-
RacksDB.nodes and RacksDBInfrastructure.nodes attributes are now DBDict of unexpanded nodes.
-
Store datacenters, infrastructures and nodes tags in DBList objects.
-
-
docs:
-
Present the supported Linux distributions with tabs in the quickstart guide.
-
Mention key attribute on \{Network,Storage}Equipment.name property in structure reference.
-
Move database concepts in a dedicated page.
-
Update library API reference and examples with new
DBDict
class and changes onDBList
class. -
Load of extension example due to missing rack type.
-
Update quickstart guide to mention Python library and REST API.
-
Update schema and extensions pages to document new schema file format.
-
Fixed
-
core: Rename module that contains defined types definitions dtypes to avoid potential conflict with Python standard library types module (#18).
-
cli: Catch RacksDB internal errors to report in command output and exit with return code 1.
-
schema: Add key attribute on \{Network,Storage}Equipment.name property.
-
docs: Fix spelling in schema extension page.