We already use Oxidized with Observium (pro version). I don't think there's any code update required - it works with the existing rancid code.
$config['rancid_version'] = '3'; // In generate-rancid.php use delimeter ':' (by default) and ';' for v3
$config['rancid_configs'] = array('/usr/local/share/oxidized/obsconfigs');
$config['rancid_ignorecomments'] = 0; // Ignore lines starting with #
$config['rancid']['os_map']['h3c'] = 'comware';
$config['rancid']['os_map']['hh3c'] = 'comware';
We need this Oxidized update hook:
git_update_hook:
type: exec
events: [post_store]
cmd: 'sh -c "cd /usr/local/share/oxidized/obsconfigs && git pull"'
async: true
timeout: 300
So Oxidized checks the new code into git, and then immediately pulls it into a dir that contains the latest config, and Observium picks that up.
I looked at that.
But it doesn't look as though the Observium devices endpoint response format will work with Oxidized's current mapping code, even though it has the ability to specify a starting position (e.g. .devices) the code looks to be limited to iterating through a list rather than a hash/series of objects.
Given Observium doesn't really have a formal API at this point, if the project ever gets around to creating one, having a dedicated and very simple endpoint like this gives you the freedom to modify that main devices endpoint response in future without breaking this one.