Changes between Initial Version and Version 1 of Internal/InventoryV3


Ignore:
Timestamp:
Sep 25, 2009, 9:55:28 PM (15 years ago)
Author:
ssugrim
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Internal/InventoryV3

    v1 v1  
     1James is working on a second generation inventory script.
     2
     3Currently on: Gatherer
     4
     5
     6It's plan is to be simpler and less ambitious than it's predecessor, but still respect the sql table structure ("as much as possible.")
     7
     8As I see it there should be 3 parts to this script:
     9
     10 1. executer: runs either wget or apt-get install and copies the latest version of the other parts of the scripts then
     11    executes them
     12 1. gatherer: collects information using only  operating system based facilities (dmesg, lsusb, lspci, ifconfig, /sys). 
     13 1. Writer: checks the mysql repository for changes from the current state. If different changes them.
     14
     15
     16The sql structure is a bit of a bit mess, the major tables of interest are:
     17 1. motherboards - List of things that can be connected to, has its own id used to tie other tables to it
     18 1. devices - List of deviced "connected" to mother boards
     19 1. device_kinds - type identifier for connected devices (an attribute of a device).
     20 1. locations - Converts x,y coordinates to a single integer that maps directly to a mother board.
     21 1. inventories - records the start and stop time of the inventory pass.
     22
     23A lot of the tables are full of unused colums. I guess we'll just ignore them for now.
     24The basic crux of an update should be the following:
     25 1. examine our IP to determine our current location
     26 1. We gather information about the mother board:
     27  1. Disk Size (dmesg)
     28  1. Memory Size (dmesg)
     29 1. Gather information about attached devices:
     30  1. 2 wired Ethernet addresses (ifconfig, /sys)
     31  1. 2 wireless Ethernet addresses (ifconfig, /sys)
     32  1. any usb devices (lsusb, /sys)
     33 1. get the mother board id from the location table
     34 1. update mother board information if diffrent, and stamp with current inventory number
     35 1. update devices if diffrent and stamp with inventory number
     36 1. profit.
     37
     38----
     39Gatherer:
     40The disk size and memory size are a quick scan from dmesg. The disk size matches, but the memory size is a little off. It probably has to do with the way dmesg reports memory vs /sys reports memeory. It would be nice to find the /sys entry for consistency.
     41
     42In /sys/devices/pci0000:00 are the sub directories correlated with the specific Ethernet hardware. In each directory that correlated to an Ethernet device there will be a symbolic link with the operating system name of the device. This will allow us to match up the pci address(name of the subdirectory of /sys/devices/pci0000:00) to the mac address (from ifconfig). lspci can tell us the associated pci address and a hardware identifier string.
     43