| single |
# NetBox Inventory Plugin
A [Netbox] plugin for hardware inventory.
## Features
Keep track of your hardware, whether it is installed or in storage. You can
define assets that represent hardware that can be used as a device, module,
inventory item or rack in NetBox.
Each asset can have a storage location defined, when not in use. You can
assign
an asset to a device, module or inventory item. The plugin can keep serial
number
and asset tag between asset and device, module, inventory item or rack in
sync if
enabled in settings.
On Site and Location detail views there is a new tab Assets that can show
assets
that are stored or installed at that location or both. Rack details view
also has
a tab for installed Assets. This provides a unified view of all assets at a
given
location.
To properly support inventory items (that are used in NetBox to model SFP
and
similar modules) the plugin defines inventory item types that are
equivalent to
device types and module types.
Inventory item types can be assigned into inventory item groups. On a group
detail
view you have an overview of the number of contained assets broken down by
asset
status or inventory item type and status. This way you can quickly see how
many
of a certain type of hardware you still have spare.
Inventory item groups can be nested, so you can for example model all
pluggables
as one top-level group with child groups for SFP+ modules, SFP28 modules
and so
on.
### Automatic management of asset status
Each asset has a status attribute that can indicate use of the asset. These
statuses can be set as needed by each NetBox installation.
Two statuses can have a special meaning. One to indicate asset is in
storage and one
to indicate asset is in use.
netbox_inventory can automatically set status to the value specified in
`used_status_name` configuration item when an asset is assigned to a
device, module
or inventory item.
When you remove an asset from device, module or inventory item the plugin
will set
asset status to `stored_status_name` configuration item.
To disable automatically changing status, set these two config parameters
to `None`.
### Prevent unwanted changes for tagged assets
Past versions of netbox-inventory contained functionality to prevent users
from making changes to assets that had a specific tag applied. The idea is
that an external system uses some assets stored in netbox-inventory, and
you
want to prevent accidental changes to data directly in the NetBox web
interface. Only that external system should modify the data.
This functionality was removed in netbox-inventory 2.5.1 and newer. The
same
function can be achieved using NetBox's [Custom Validation rules].
Here is an example that prevents changing `serial` and `asset_tag` fields
for
assets that have the `no-edit` tag applied. Deletion of these assets is
also
prevented. Restrictions apply only to web interface changes. Deletions and
modifications via API are possible.
Asset validator example
```py
from extras.validators import CustomValidator
from utilities.data import shallow_compare_dict
class TagEditProtector(CustomValidator):
def __init__(self, protection_tag, protected_fields=None):
super().__init__(validation_rules=None)
self.protection_tag = protection_tag
self.protected_fields = protected_fields
|