wiki:Internal/NewNodeAgent

Version 2 (modified by ssugrim, 10 years ago) ( diff )

Rebuilding the Node Agent from the ground up

Dependencies: omfcommon/Mobject

gems: cocaine yaml?


Design Notes:

nodeagent.rb:

The hwdiscovery mode of the nodeagent code is being re-done. Instead of the original grep lspci lines, we now have has of dev_id's. Each dev_id in the hash maps to a node agent device driver that will be loaded to handle that specific device. This device will load the module for it's respective device type.

devices.rb

We're implementing all the module handeling code here. It uses the cocaine command line library as a wrapper. The cocaine lib kicks out an exception if the command fails. Exception handling will mitigate failed commands.

ethernet.rb

This class is responsible for all of the ifconfig/route handling code (all things ethernet). The same cocaine lib will handle shell commands with similar exception handeling. The interface has been extended to implement getters and setters for all the requisite interface state (ip, netmask, etc…). We've left the original get config command structure alone, but now also have implemented an execConfigCmd which will actually implement these config commands.

wifi.rb

TODO

rcDrv_e1000e.rb e1000e kernel module specif driver. A child of ethernet. Overides any thing that is specific to e1000e, but mostly leaves the parent class in tact. Also sets the value of @kmodName

More to follow
.
.
.

Driver Inheretance Chain

RC driver inheritance Chain


Observations:

  • active? is defined at "Ready to be configured". If a device is set to active, it is read to accept config commands.

Attachments (9)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.