Skip to content

Repository files navigation

python-netsnmpagent Module
Copyright (c) 2013-2016 Pieter Hollants <pieter@hollants.com>
Licensed under the GNU Lesser Public License (LGPL) version 3
WHAT IS IT?
python-netsnmpagent is a Python module that facilitates writing Net-SNMP
subagents in Python. Subagents connect to a locally running Master agent
(snmpd) over a Unix domain socket (eg. "/var/run/agentx/master") and using the
AgentX protocol (RFC2747). They implement custom Management Information Base
(MIB) modules that extend the local node's MIB tree. Usually, this requires
writing a MIB as well, ie. a text file that specifies the structure, names
and data types of the information within the MIB module.
python-netsnmpagent was written after a lot of frustration trying to fix the
python-agentx module hosted on Sourceforge. I fixed some smaller issues there
but when it came to making sure that you could actually walk the whole MIB, not
just the variables registered, I realized that it would not make much sense to
reimplement the complete behavior of a proper SNMP agent when the NetSNMP API
actually can handle those things for you. Also, to be honest, I don't get
python-agentx's design :-)
python-netsnmpagent, by contrast, in the first line focusses on making the
net-snmp C agent API accessible from Python. Though I will try not to just
pass through every library call 1:1 but wrap them in a useful manner.
net-snmp itself also comes with a Python module (see the "python" subdirectory
in the source distribution), however it seems to offer bindings that implement
the client side only, not the agent side.
REQUIREMENTS
python-netsnmpagent requires the net-snmp libraries to be installed. The
runtime libraries are enough, development files are not necessary.
Tested versions include 5.4.2 (included with SUSE Linux Enterprise Server 11
SP2), 5.4.3 (included with Ubuntu 12.04 LTS) and net-snmp 5.7.3 (included with
openSUSE 12.3). While the intent is to support both net-snmp 5.4.x and 5.7.x
versions at least for the near future, I want to avoid double code paths
whereever possible. I therefore have to stick to the net-snmp 5.4.x way of
things at certain places indicated by code comments.
LICENSE
Version older than May 28th, 2016 were licensed under the GNU General Public
License (GPL), version 3. Since May 28th, 2016, python-netsnmpagent is being
licensed under the GNU Lesser General Public License (LGPL), version 3. See
http://www.gnu.org/licenses/lgpl-3.0.txt or the included file LICENSE.
DOWNLOAD
The PyPI page with distribution archives is available at
http://pypi.python.org/pypi/netsnmpagent
Binary RPMs for SuSE distributions are available via search.opensuse.org and
the Open Build Service Project page at
https://build.opensuse.org/package/show?package=python-netsnmpagent&project=home%3Apfhllnts
If you wish to follow development more closely clone the GitHub repo:
https://github.com/pief/python-netsnmpagent.git
INSTALLATION
If you do not use a ready package for your Linux distribution, you can install
directly from source using
python setup.py install
This will most probably require appropriate rights (eg. being "root").
EXAMPLE USAGE
The "examples" subdirectory contains well-commented example agents that should
give you a quickstart on how to use python-netsnmpagent. Read the "README" file
contained there for a short introduction on the different examples.
API
The Python API has not really been documented yet. For now, please see the
example agents' source code for info on how to use the python-netsnmpagent
module.
TESTS
python-netsnmpagent now comes with integration tests to test the net-snmp
integration. Type "make tests" to run them. See tests/README for the reasons
why "nosetests" can't be run directly.
TODO
- notifications/traps
- more tests
CREDITS
python-netsnmpagent was inspired by python-agentx, courtesy of Bozhin Zafirov
<bozhin@abv.bg>. I blatantly ripped some ideas and some lines of code, shame
on me.
SNMP contexts support and various other additions were implemented by Steven
Hiscocks <steven@hiscocks.me.uk>.
The bug that DisplayStrings/OctetStrings got truncated when trying to update
them with a string larger that the original InitVal was hunted down and fixed
by Max "mk23" Kalika <max.kalika+projects@gmail.com>.
Additional smaller bugfixes were done by Anton Todorov <a.todorov@storpool.com>.

About

Allows to write net-snmp subagents in Python.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - haxtibal/python-netsnmpagent: Allows to write net-snmp subagents in Python. · GitHub
Skip to content

Repository files navigation

python-netsnmpagent Module
Copyright (c) 2013-2016 Pieter Hollants <pieter@hollants.com>
Licensed under the GNU Lesser Public License (LGPL) version 3
WHAT IS IT?
python-netsnmpagent is a Python module that facilitates writing Net-SNMP
subagents in Python. Subagents connect to a locally running Master agent
(snmpd) over a Unix domain socket (eg. "/var/run/agentx/master") and using the
AgentX protocol (RFC2747). They implement custom Management Information Base
(MIB) modules that extend the local node's MIB tree. Usually, this requires
writing a MIB as well, ie. a text file that specifies the structure, names
and data types of the information within the MIB module.
python-netsnmpagent was written after a lot of frustration trying to fix the
python-agentx module hosted on Sourceforge. I fixed some smaller issues there
but when it came to making sure that you could actually walk the whole MIB, not
just the variables registered, I realized that it would not make much sense to
reimplement the complete behavior of a proper SNMP agent when the NetSNMP API
actually can handle those things for you. Also, to be honest, I don't get
python-agentx's design :-)
python-netsnmpagent, by contrast, in the first line focusses on making the
net-snmp C agent API accessible from Python. Though I will try not to just
pass through every library call 1:1 but wrap them in a useful manner.
net-snmp itself also comes with a Python module (see the "python" subdirectory
in the source distribution), however it seems to offer bindings that implement
the client side only, not the agent side.
REQUIREMENTS
python-netsnmpagent requires the net-snmp libraries to be installed. The
runtime libraries are enough, development files are not necessary.
Tested versions include 5.4.2 (included with SUSE Linux Enterprise Server 11
SP2), 5.4.3 (included with Ubuntu 12.04 LTS) and net-snmp 5.7.3 (included with
openSUSE 12.3). While the intent is to support both net-snmp 5.4.x and 5.7.x
versions at least for the near future, I want to avoid double code paths
whereever possible. I therefore have to stick to the net-snmp 5.4.x way of
things at certain places indicated by code comments.
LICENSE
Version older than May 28th, 2016 were licensed under the GNU General Public
License (GPL), version 3. Since May 28th, 2016, python-netsnmpagent is being
licensed under the GNU Lesser General Public License (LGPL), version 3. See
http://www.gnu.org/licenses/lgpl-3.0.txt or the included file LICENSE.
DOWNLOAD
The PyPI page with distribution archives is available at
http://pypi.python.org/pypi/netsnmpagent
Binary RPMs for SuSE distributions are available via search.opensuse.org and
the Open Build Service Project page at
https://build.opensuse.org/package/show?package=python-netsnmpagent&project=home%3Apfhllnts
If you wish to follow development more closely clone the GitHub repo:
https://github.com/pief/python-netsnmpagent.git
INSTALLATION
If you do not use a ready package for your Linux distribution, you can install
directly from source using
python setup.py install
This will most probably require appropriate rights (eg. being "root").
EXAMPLE USAGE
The "examples" subdirectory contains well-commented example agents that should
give you a quickstart on how to use python-netsnmpagent. Read the "README" file
contained there for a short introduction on the different examples.
API
The Python API has not really been documented yet. For now, please see the
example agents' source code for info on how to use the python-netsnmpagent
module.
TESTS
python-netsnmpagent now comes with integration tests to test the net-snmp
integration. Type "make tests" to run them. See tests/README for the reasons
why "nosetests" can't be run directly.
TODO
- notifications/traps
- more tests
CREDITS
python-netsnmpagent was inspired by python-agentx, courtesy of Bozhin Zafirov
<bozhin@abv.bg>. I blatantly ripped some ideas and some lines of code, shame
on me.
SNMP contexts support and various other additions were implemented by Steven
Hiscocks <steven@hiscocks.me.uk>.
The bug that DisplayStrings/OctetStrings got truncated when trying to update
them with a string larger that the original InitVal was hunted down and fixed
by Max "mk23" Kalika <max.kalika+projects@gmail.com>.
Additional smaller bugfixes were done by Anton Todorov <a.todorov@storpool.com>.

About

Allows to write net-snmp subagents in Python.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - haxtibal/python-netsnmpagent: Allows to write net-snmp subagents in Python. · GitHub
Skip to content

Repository files navigation

python-netsnmpagent Module
Copyright (c) 2013-2016 Pieter Hollants <pieter@hollants.com>
Licensed under the GNU Lesser Public License (LGPL) version 3
WHAT IS IT?
python-netsnmpagent is a Python module that facilitates writing Net-SNMP
subagents in Python. Subagents connect to a locally running Master agent
(snmpd) over a Unix domain socket (eg. "/var/run/agentx/master") and using the
AgentX protocol (RFC2747). They implement custom Management Information Base
(MIB) modules that extend the local node's MIB tree. Usually, this requires
writing a MIB as well, ie. a text file that specifies the structure, names
and data types of the information within the MIB module.
python-netsnmpagent was written after a lot of frustration trying to fix the
python-agentx module hosted on Sourceforge. I fixed some smaller issues there
but when it came to making sure that you could actually walk the whole MIB, not
just the variables registered, I realized that it would not make much sense to
reimplement the complete behavior of a proper SNMP agent when the NetSNMP API
actually can handle those things for you. Also, to be honest, I don't get
python-agentx's design :-)
python-netsnmpagent, by contrast, in the first line focusses on making the
net-snmp C agent API accessible from Python. Though I will try not to just
pass through every library call 1:1 but wrap them in a useful manner.
net-snmp itself also comes with a Python module (see the "python" subdirectory
in the source distribution), however it seems to offer bindings that implement
the client side only, not the agent side.
REQUIREMENTS
python-netsnmpagent requires the net-snmp libraries to be installed. The
runtime libraries are enough, development files are not necessary.
Tested versions include 5.4.2 (included with SUSE Linux Enterprise Server 11
SP2), 5.4.3 (included with Ubuntu 12.04 LTS) and net-snmp 5.7.3 (included with
openSUSE 12.3). While the intent is to support both net-snmp 5.4.x and 5.7.x
versions at least for the near future, I want to avoid double code paths
whereever possible. I therefore have to stick to the net-snmp 5.4.x way of
things at certain places indicated by code comments.
LICENSE
Version older than May 28th, 2016 were licensed under the GNU General Public
License (GPL), version 3. Since May 28th, 2016, python-netsnmpagent is being
licensed under the GNU Lesser General Public License (LGPL), version 3. See
http://www.gnu.org/licenses/lgpl-3.0.txt or the included file LICENSE.
DOWNLOAD
The PyPI page with distribution archives is available at
http://pypi.python.org/pypi/netsnmpagent
Binary RPMs for SuSE distributions are available via search.opensuse.org and
the Open Build Service Project page at
https://build.opensuse.org/package/show?package=python-netsnmpagent&project=home%3Apfhllnts
If you wish to follow development more closely clone the GitHub repo:
https://github.com/pief/python-netsnmpagent.git
INSTALLATION
If you do not use a ready package for your Linux distribution, you can install
directly from source using
python setup.py install
This will most probably require appropriate rights (eg. being "root").
EXAMPLE USAGE
The "examples" subdirectory contains well-commented example agents that should
give you a quickstart on how to use python-netsnmpagent. Read the "README" file
contained there for a short introduction on the different examples.
API
The Python API has not really been documented yet. For now, please see the
example agents' source code for info on how to use the python-netsnmpagent
module.
TESTS
python-netsnmpagent now comes with integration tests to test the net-snmp
integration. Type "make tests" to run them. See tests/README for the reasons
why "nosetests" can't be run directly.
TODO
- notifications/traps
- more tests
CREDITS
python-netsnmpagent was inspired by python-agentx, courtesy of Bozhin Zafirov
<bozhin@abv.bg>. I blatantly ripped some ideas and some lines of code, shame
on me.
SNMP contexts support and various other additions were implemented by Steven
Hiscocks <steven@hiscocks.me.uk>.
The bug that DisplayStrings/OctetStrings got truncated when trying to update
them with a string larger that the original InitVal was hunted down and fixed
by Max "mk23" Kalika <max.kalika+projects@gmail.com>.
Additional smaller bugfixes were done by Anton Todorov <a.todorov@storpool.com>.

About

Allows to write net-snmp subagents in Python.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - haxtibal/python-netsnmpagent: Allows to write net-snmp subagents in Python. · GitHub
Skip to content

Repository files navigation

python-netsnmpagent Module
Copyright (c) 2013-2016 Pieter Hollants <pieter@hollants.com>
Licensed under the GNU Lesser Public License (LGPL) version 3
WHAT IS IT?
python-netsnmpagent is a Python module that facilitates writing Net-SNMP
subagents in Python. Subagents connect to a locally running Master agent
(snmpd) over a Unix domain socket (eg. "/var/run/agentx/master") and using the
AgentX protocol (RFC2747). They implement custom Management Information Base
(MIB) modules that extend the local node's MIB tree. Usually, this requires
writing a MIB as well, ie. a text file that specifies the structure, names
and data types of the information within the MIB module.
python-netsnmpagent was written after a lot of frustration trying to fix the
python-agentx module hosted on Sourceforge. I fixed some smaller issues there
but when it came to making sure that you could actually walk the whole MIB, not
just the variables registered, I realized that it would not make much sense to
reimplement the complete behavior of a proper SNMP agent when the NetSNMP API
actually can handle those things for you. Also, to be honest, I don't get
python-agentx's design :-)
python-netsnmpagent, by contrast, in the first line focusses on making the
net-snmp C agent API accessible from Python. Though I will try not to just
pass through every library call 1:1 but wrap them in a useful manner.
net-snmp itself also comes with a Python module (see the "python" subdirectory
in the source distribution), however it seems to offer bindings that implement
the client side only, not the agent side.
REQUIREMENTS
python-netsnmpagent requires the net-snmp libraries to be installed. The
runtime libraries are enough, development files are not necessary.
Tested versions include 5.4.2 (included with SUSE Linux Enterprise Server 11
SP2), 5.4.3 (included with Ubuntu 12.04 LTS) and net-snmp 5.7.3 (included with
openSUSE 12.3). While the intent is to support both net-snmp 5.4.x and 5.7.x
versions at least for the near future, I want to avoid double code paths
whereever possible. I therefore have to stick to the net-snmp 5.4.x way of
things at certain places indicated by code comments.
LICENSE
Version older than May 28th, 2016 were licensed under the GNU General Public
License (GPL), version 3. Since May 28th, 2016, python-netsnmpagent is being
licensed under the GNU Lesser General Public License (LGPL), version 3. See
http://www.gnu.org/licenses/lgpl-3.0.txt or the included file LICENSE.
DOWNLOAD
The PyPI page with distribution archives is available at
http://pypi.python.org/pypi/netsnmpagent
Binary RPMs for SuSE distributions are available via search.opensuse.org and
the Open Build Service Project page at
https://build.opensuse.org/package/show?package=python-netsnmpagent&project=home%3Apfhllnts
If you wish to follow development more closely clone the GitHub repo:
https://github.com/pief/python-netsnmpagent.git
INSTALLATION
If you do not use a ready package for your Linux distribution, you can install
directly from source using
python setup.py install
This will most probably require appropriate rights (eg. being "root").
EXAMPLE USAGE
The "examples" subdirectory contains well-commented example agents that should
give you a quickstart on how to use python-netsnmpagent. Read the "README" file
contained there for a short introduction on the different examples.
API
The Python API has not really been documented yet. For now, please see the
example agents' source code for info on how to use the python-netsnmpagent
module.
TESTS
python-netsnmpagent now comes with integration tests to test the net-snmp
integration. Type "make tests" to run them. See tests/README for the reasons
why "nosetests" can't be run directly.
TODO
- notifications/traps
- more tests
CREDITS
python-netsnmpagent was inspired by python-agentx, courtesy of Bozhin Zafirov
<bozhin@abv.bg>. I blatantly ripped some ideas and some lines of code, shame
on me.
SNMP contexts support and various other additions were implemented by Steven
Hiscocks <steven@hiscocks.me.uk>.
The bug that DisplayStrings/OctetStrings got truncated when trying to update
them with a string larger that the original InitVal was hunted down and fixed
by Max "mk23" Kalika <max.kalika+projects@gmail.com>.
Additional smaller bugfixes were done by Anton Todorov <a.todorov@storpool.com>.

About

Allows to write net-snmp subagents in Python.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - haxtibal/python-netsnmpagent: Allows to write net-snmp subagents in Python. · GitHub
Skip to content

Repository files navigation

python-netsnmpagent Module
Copyright (c) 2013-2016 Pieter Hollants <pieter@hollants.com>
Licensed under the GNU Lesser Public License (LGPL) version 3
WHAT IS IT?
python-netsnmpagent is a Python module that facilitates writing Net-SNMP
subagents in Python. Subagents connect to a locally running Master agent
(snmpd) over a Unix domain socket (eg. "/var/run/agentx/master") and using the
AgentX protocol (RFC2747). They implement custom Management Information Base
(MIB) modules that extend the local node's MIB tree. Usually, this requires
writing a MIB as well, ie. a text file that specifies the structure, names
and data types of the information within the MIB module.
python-netsnmpagent was written after a lot of frustration trying to fix the
python-agentx module hosted on Sourceforge. I fixed some smaller issues there
but when it came to making sure that you could actually walk the whole MIB, not
just the variables registered, I realized that it would not make much sense to
reimplement the complete behavior of a proper SNMP agent when the NetSNMP API
actually can handle those things for you. Also, to be honest, I don't get
python-agentx's design :-)
python-netsnmpagent, by contrast, in the first line focusses on making the
net-snmp C agent API accessible from Python. Though I will try not to just
pass through every library call 1:1 but wrap them in a useful manner.
net-snmp itself also comes with a Python module (see the "python" subdirectory
in the source distribution), however it seems to offer bindings that implement
the client side only, not the agent side.
REQUIREMENTS
python-netsnmpagent requires the net-snmp libraries to be installed. The
runtime libraries are enough, development files are not necessary.
Tested versions include 5.4.2 (included with SUSE Linux Enterprise Server 11
SP2), 5.4.3 (included with Ubuntu 12.04 LTS) and net-snmp 5.7.3 (included with
openSUSE 12.3). While the intent is to support both net-snmp 5.4.x and 5.7.x
versions at least for the near future, I want to avoid double code paths
whereever possible. I therefore have to stick to the net-snmp 5.4.x way of
things at certain places indicated by code comments.
LICENSE
Version older than May 28th, 2016 were licensed under the GNU General Public
License (GPL), version 3. Since May 28th, 2016, python-netsnmpagent is being
licensed under the GNU Lesser General Public License (LGPL), version 3. See
http://www.gnu.org/licenses/lgpl-3.0.txt or the included file LICENSE.
DOWNLOAD
The PyPI page with distribution archives is available at
http://pypi.python.org/pypi/netsnmpagent
Binary RPMs for SuSE distributions are available via search.opensuse.org and
the Open Build Service Project page at
https://build.opensuse.org/package/show?package=python-netsnmpagent&project=home%3Apfhllnts
If you wish to follow development more closely clone the GitHub repo:
https://github.com/pief/python-netsnmpagent.git
INSTALLATION
If you do not use a ready package for your Linux distribution, you can install
directly from source using
python setup.py install
This will most probably require appropriate rights (eg. being "root").
EXAMPLE USAGE
The "examples" subdirectory contains well-commented example agents that should
give you a quickstart on how to use python-netsnmpagent. Read the "README" file
contained there for a short introduction on the different examples.
API
The Python API has not really been documented yet. For now, please see the
example agents' source code for info on how to use the python-netsnmpagent
module.
TESTS
python-netsnmpagent now comes with integration tests to test the net-snmp
integration. Type "make tests" to run them. See tests/README for the reasons
why "nosetests" can't be run directly.
TODO
- notifications/traps
- more tests
CREDITS
python-netsnmpagent was inspired by python-agentx, courtesy of Bozhin Zafirov
<bozhin@abv.bg>. I blatantly ripped some ideas and some lines of code, shame
on me.
SNMP contexts support and various other additions were implemented by Steven
Hiscocks <steven@hiscocks.me.uk>.
The bug that DisplayStrings/OctetStrings got truncated when trying to update
them with a string larger that the original InitVal was hunted down and fixed
by Max "mk23" Kalika <max.kalika+projects@gmail.com>.
Additional smaller bugfixes were done by Anton Todorov <a.todorov@storpool.com>.

About

Allows to write net-snmp subagents in Python.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - haxtibal/python-netsnmpagent: Allows to write net-snmp subagents in Python. · GitHub
Skip to content

Repository files navigation

python-netsnmpagent Module
Copyright (c) 2013-2016 Pieter Hollants <pieter@hollants.com>
Licensed under the GNU Lesser Public License (LGPL) version 3
WHAT IS IT?
python-netsnmpagent is a Python module that facilitates writing Net-SNMP
subagents in Python. Subagents connect to a locally running Master agent
(snmpd) over a Unix domain socket (eg. "/var/run/agentx/master") and using the
AgentX protocol (RFC2747). They implement custom Management Information Base
(MIB) modules that extend the local node's MIB tree. Usually, this requires
writing a MIB as well, ie. a text file that specifies the structure, names
and data types of the information within the MIB module.
python-netsnmpagent was written after a lot of frustration trying to fix the
python-agentx module hosted on Sourceforge. I fixed some smaller issues there
but when it came to making sure that you could actually walk the whole MIB, not
just the variables registered, I realized that it would not make much sense to
reimplement the complete behavior of a proper SNMP agent when the NetSNMP API
actually can handle those things for you. Also, to be honest, I don't get
python-agentx's design :-)
python-netsnmpagent, by contrast, in the first line focusses on making the
net-snmp C agent API accessible from Python. Though I will try not to just
pass through every library call 1:1 but wrap them in a useful manner.
net-snmp itself also comes with a Python module (see the "python" subdirectory
in the source distribution), however it seems to offer bindings that implement
the client side only, not the agent side.
REQUIREMENTS
python-netsnmpagent requires the net-snmp libraries to be installed. The
runtime libraries are enough, development files are not necessary.
Tested versions include 5.4.2 (included with SUSE Linux Enterprise Server 11
SP2), 5.4.3 (included with Ubuntu 12.04 LTS) and net-snmp 5.7.3 (included with
openSUSE 12.3). While the intent is to support both net-snmp 5.4.x and 5.7.x
versions at least for the near future, I want to avoid double code paths
whereever possible. I therefore have to stick to the net-snmp 5.4.x way of
things at certain places indicated by code comments.
LICENSE
Version older than May 28th, 2016 were licensed under the GNU General Public
License (GPL), version 3. Since May 28th, 2016, python-netsnmpagent is being
licensed under the GNU Lesser General Public License (LGPL), version 3. See
http://www.gnu.org/licenses/lgpl-3.0.txt or the included file LICENSE.
DOWNLOAD
The PyPI page with distribution archives is available at
http://pypi.python.org/pypi/netsnmpagent
Binary RPMs for SuSE distributions are available via search.opensuse.org and
the Open Build Service Project page at
https://build.opensuse.org/package/show?package=python-netsnmpagent&project=home%3Apfhllnts
If you wish to follow development more closely clone the GitHub repo:
https://github.com/pief/python-netsnmpagent.git
INSTALLATION
If you do not use a ready package for your Linux distribution, you can install
directly from source using
python setup.py install
This will most probably require appropriate rights (eg. being "root").
EXAMPLE USAGE
The "examples" subdirectory contains well-commented example agents that should
give you a quickstart on how to use python-netsnmpagent. Read the "README" file
contained there for a short introduction on the different examples.
API
The Python API has not really been documented yet. For now, please see the
example agents' source code for info on how to use the python-netsnmpagent
module.
TESTS
python-netsnmpagent now comes with integration tests to test the net-snmp
integration. Type "make tests" to run them. See tests/README for the reasons
why "nosetests" can't be run directly.
TODO
- notifications/traps
- more tests
CREDITS
python-netsnmpagent was inspired by python-agentx, courtesy of Bozhin Zafirov
<bozhin@abv.bg>. I blatantly ripped some ideas and some lines of code, shame
on me.
SNMP contexts support and various other additions were implemented by Steven
Hiscocks <steven@hiscocks.me.uk>.
The bug that DisplayStrings/OctetStrings got truncated when trying to update
them with a string larger that the original InitVal was hunted down and fixed
by Max "mk23" Kalika <max.kalika+projects@gmail.com>.
Additional smaller bugfixes were done by Anton Todorov <a.todorov@storpool.com>.

About

Allows to write net-snmp subagents in Python.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - haxtibal/python-netsnmpagent: Allows to write net-snmp subagents in Python. · GitHub
Skip to content

Repository files navigation

python-netsnmpagent Module
Copyright (c) 2013-2016 Pieter Hollants <pieter@hollants.com>
Licensed under the GNU Lesser Public License (LGPL) version 3
WHAT IS IT?
python-netsnmpagent is a Python module that facilitates writing Net-SNMP
subagents in Python. Subagents connect to a locally running Master agent
(snmpd) over a Unix domain socket (eg. "/var/run/agentx/master") and using the
AgentX protocol (RFC2747). They implement custom Management Information Base
(MIB) modules that extend the local node's MIB tree. Usually, this requires
writing a MIB as well, ie. a text file that specifies the structure, names
and data types of the information within the MIB module.
python-netsnmpagent was written after a lot of frustration trying to fix the
python-agentx module hosted on Sourceforge. I fixed some smaller issues there
but when it came to making sure that you could actually walk the whole MIB, not
just the variables registered, I realized that it would not make much sense to
reimplement the complete behavior of a proper SNMP agent when the NetSNMP API
actually can handle those things for you. Also, to be honest, I don't get
python-agentx's design :-)
python-netsnmpagent, by contrast, in the first line focusses on making the
net-snmp C agent API accessible from Python. Though I will try not to just
pass through every library call 1:1 but wrap them in a useful manner.
net-snmp itself also comes with a Python module (see the "python" subdirectory
in the source distribution), however it seems to offer bindings that implement
the client side only, not the agent side.
REQUIREMENTS
python-netsnmpagent requires the net-snmp libraries to be installed. The
runtime libraries are enough, development files are not necessary.
Tested versions include 5.4.2 (included with SUSE Linux Enterprise Server 11
SP2), 5.4.3 (included with Ubuntu 12.04 LTS) and net-snmp 5.7.3 (included with
openSUSE 12.3). While the intent is to support both net-snmp 5.4.x and 5.7.x
versions at least for the near future, I want to avoid double code paths
whereever possible. I therefore have to stick to the net-snmp 5.4.x way of
things at certain places indicated by code comments.
LICENSE
Version older than May 28th, 2016 were licensed under the GNU General Public
License (GPL), version 3. Since May 28th, 2016, python-netsnmpagent is being
licensed under the GNU Lesser General Public License (LGPL), version 3. See
http://www.gnu.org/licenses/lgpl-3.0.txt or the included file LICENSE.
DOWNLOAD
The PyPI page with distribution archives is available at
http://pypi.python.org/pypi/netsnmpagent
Binary RPMs for SuSE distributions are available via search.opensuse.org and
the Open Build Service Project page at
https://build.opensuse.org/package/show?package=python-netsnmpagent&project=home%3Apfhllnts
If you wish to follow development more closely clone the GitHub repo:
https://github.com/pief/python-netsnmpagent.git
INSTALLATION
If you do not use a ready package for your Linux distribution, you can install
directly from source using
python setup.py install
This will most probably require appropriate rights (eg. being "root").
EXAMPLE USAGE
The "examples" subdirectory contains well-commented example agents that should
give you a quickstart on how to use python-netsnmpagent. Read the "README" file
contained there for a short introduction on the different examples.
API
The Python API has not really been documented yet. For now, please see the
example agents' source code for info on how to use the python-netsnmpagent
module.
TESTS
python-netsnmpagent now comes with integration tests to test the net-snmp
integration. Type "make tests" to run them. See tests/README for the reasons
why "nosetests" can't be run directly.
TODO
- notifications/traps
- more tests
CREDITS
python-netsnmpagent was inspired by python-agentx, courtesy of Bozhin Zafirov
<bozhin@abv.bg>. I blatantly ripped some ideas and some lines of code, shame
on me.
SNMP contexts support and various other additions were implemented by Steven
Hiscocks <steven@hiscocks.me.uk>.
The bug that DisplayStrings/OctetStrings got truncated when trying to update
them with a string larger that the original InitVal was hunted down and fixed
by Max "mk23" Kalika <max.kalika+projects@gmail.com>.
Additional smaller bugfixes were done by Anton Todorov <a.todorov@storpool.com>.

About

Allows to write net-snmp subagents in Python.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - haxtibal/python-netsnmpagent: Allows to write net-snmp subagents in Python. · GitHub
Skip to content

Repository files navigation

python-netsnmpagent Module
Copyright (c) 2013-2016 Pieter Hollants <pieter@hollants.com>
Licensed under the GNU Lesser Public License (LGPL) version 3
WHAT IS IT?
python-netsnmpagent is a Python module that facilitates writing Net-SNMP
subagents in Python. Subagents connect to a locally running Master agent
(snmpd) over a Unix domain socket (eg. "/var/run/agentx/master") and using the
AgentX protocol (RFC2747). They implement custom Management Information Base
(MIB) modules that extend the local node's MIB tree. Usually, this requires
writing a MIB as well, ie. a text file that specifies the structure, names
and data types of the information within the MIB module.
python-netsnmpagent was written after a lot of frustration trying to fix the
python-agentx module hosted on Sourceforge. I fixed some smaller issues there
but when it came to making sure that you could actually walk the whole MIB, not
just the variables registered, I realized that it would not make much sense to
reimplement the complete behavior of a proper SNMP agent when the NetSNMP API
actually can handle those things for you. Also, to be honest, I don't get
python-agentx's design :-)
python-netsnmpagent, by contrast, in the first line focusses on making the
net-snmp C agent API accessible from Python. Though I will try not to just
pass through every library call 1:1 but wrap them in a useful manner.
net-snmp itself also comes with a Python module (see the "python" subdirectory
in the source distribution), however it seems to offer bindings that implement
the client side only, not the agent side.
REQUIREMENTS
python-netsnmpagent requires the net-snmp libraries to be installed. The
runtime libraries are enough, development files are not necessary.
Tested versions include 5.4.2 (included with SUSE Linux Enterprise Server 11
SP2), 5.4.3 (included with Ubuntu 12.04 LTS) and net-snmp 5.7.3 (included with
openSUSE 12.3). While the intent is to support both net-snmp 5.4.x and 5.7.x
versions at least for the near future, I want to avoid double code paths
whereever possible. I therefore have to stick to the net-snmp 5.4.x way of
things at certain places indicated by code comments.
LICENSE
Version older than May 28th, 2016 were licensed under the GNU General Public
License (GPL), version 3. Since May 28th, 2016, python-netsnmpagent is being
licensed under the GNU Lesser General Public License (LGPL), version 3. See
http://www.gnu.org/licenses/lgpl-3.0.txt or the included file LICENSE.
DOWNLOAD
The PyPI page with distribution archives is available at
http://pypi.python.org/pypi/netsnmpagent
Binary RPMs for SuSE distributions are available via search.opensuse.org and
the Open Build Service Project page at
https://build.opensuse.org/package/show?package=python-netsnmpagent&project=home%3Apfhllnts
If you wish to follow development more closely clone the GitHub repo:
https://github.com/pief/python-netsnmpagent.git
INSTALLATION
If you do not use a ready package for your Linux distribution, you can install
directly from source using
python setup.py install
This will most probably require appropriate rights (eg. being "root").
EXAMPLE USAGE
The "examples" subdirectory contains well-commented example agents that should
give you a quickstart on how to use python-netsnmpagent. Read the "README" file
contained there for a short introduction on the different examples.
API
The Python API has not really been documented yet. For now, please see the
example agents' source code for info on how to use the python-netsnmpagent
module.
TESTS
python-netsnmpagent now comes with integration tests to test the net-snmp
integration. Type "make tests" to run them. See tests/README for the reasons
why "nosetests" can't be run directly.
TODO
- notifications/traps
- more tests
CREDITS
python-netsnmpagent was inspired by python-agentx, courtesy of Bozhin Zafirov
<bozhin@abv.bg>. I blatantly ripped some ideas and some lines of code, shame
on me.
SNMP contexts support and various other additions were implemented by Steven
Hiscocks <steven@hiscocks.me.uk>.
The bug that DisplayStrings/OctetStrings got truncated when trying to update
them with a string larger that the original InitVal was hunted down and fixed
by Max "mk23" Kalika <max.kalika+projects@gmail.com>.
Additional smaller bugfixes were done by Anton Todorov <a.todorov@storpool.com>.

About

Allows to write net-snmp subagents in Python.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages