...
NERDS stand for Network Enterprise Resource Discovery System. A collaborative effort between initially NORDUnet and Stockholm University to collect reusable data about "stuff" on our networks. The collected data is saved in a JSON format by the producers. The thought is that you then can create consumers for data that was collected by someone else or use a producer that you have not written yourself.
https://github.com/fredrikt/nerds
Code Block | ||
---|---|---|
| ||
{ "host": { "name": "hostname-or-other-unique-identifier", "version": 1, "name-of-producer": { ... any private data ... } } } |
Code Block | ||
---|---|---|
| ||
{
"host": {
"alcatel_isis": {
"data": {
"ip_address": "",
"link": "",
"name": "NU-TUG-LM-02",
"osi_address": "4700230000000100010001000100206066D6F81D",
"ots": "NA",
"type": "ne1626LM"
},
"name": "NU-TUG-LM-02",
"neighbours": [
{
"metric": "12",
"name": "NU-ORE-TSS-01"
}
]
},
"name": "NU-TUG-LM-02",
"version": 1
}
}
|
t
NOCLook
NOCLook is one of the possible consumer for the collected NERDS data. It is a web app built with Django and the Neo4j graph database.
All nodes have a SQL node handle to make it easy to use regular Django reusable apps like Django Comments or Taggit.
The nodes also have a node type that is stored in the SQL database.
Code Block | ||
---|---|---|
| ||
class NodeHandle(models.Model):
- Handle <-> Node data
handle_id = models.AutoField(primary_key=True)
node_id = models.BigIntegerField(blank=True, unique=True,
editable=False) - Data shared with the node
node_name = models.CharField(max_length=200)
node_type = models.ForeignKey(NodeType)
node_meta_type = models.CharField(max_length=255,
choices=NODE_META_TYPE_CHOICES) - Meta information
creator = models.ForeignKey(User, related_name='creator')
created = models.DateTimeField(auto_now_add=True)
modifier = models.ForeignKey(User, blank=True, related_name='modifier')
modified = models.DateTimeField(auto_now=True)
.
.
methods
{code]
Graph Data Model
Gliffy Diagram | ||||||||
---|---|---|---|---|---|---|---|---|
|
...