从网络设备中提取信息的抽象层。

netengine的Python项目详细描述


Code HealthRequirements Status

从网络设备中提取信息的抽象层。

安装

通过PIP安装:

pip install -e git+git://github.com/ninuxorg/netengine#egg=netengine

用法

ssh示例:

from netengine.backends.ssh import AirOS

device = AirOS('10.40.0.1', 'root', 'password')

device.name
'RM5PomeziaSNode'
device.model
'Rocket M5'
device.os
('AirOS', 'XMar7240.v5.3.3.sdk.9634.1111221.2238')

device.to_json()

特定后端(协议)命令,ssh示例:

print device.run('ls -l')
-rw-------    1 root     admin         459 Jan 26  2011 dropbear_dss_host_key
-rw-------    1 root     admin         427 Jan 26  2011 dropbear_rsa_host_key
drwxr-xr-x    3 root     admin           0 Oct 21  2011 mcuser
-rwxr-xr-x    1 root     admin         662 Nov 11 18:12 ninux
-rw-------    1 root     admin        1133 Nov 12 00:27 olsrd.conf
-rw-r--r--    1 root     admin         786 Dec 21  2011 olsrd6.conf
-rw-r--r--    1 root     admin         234 Jan  4  2012 radvd.conf

SNMP示例:

from netengine.backends.snmp import AirOS

device = AirOS('10.40.0.1', community='public')

device.name
'RM5PomeziaSNode'
device.model
'Rocket M5'
device.os
('AirOS', 'XMar7240.v5.3.3.sdk.9634.1111221.2238')

特定的SNMP命令示例:

from netengine.backends.snmp import OpenWRT

device = OpenWRT('10.40.0.1', community='public')
# get a certain OID
device.get('1.2.840.10036.3.1.2.1.4.8')

http示例:

# TODO

munin示例:

# TODO

运行测试

安装机头:

pip install nose

克隆回购:

git clone git://github.com/ninuxorg/netengine

cd netengine/

根据您的网络编辑设置json文件:

cp test-settings.example.json test-settings.json
vim test-settings.json

使用以下命令运行测试:

nosetests

请参见测试覆盖率:

nosetests --with-coverage --cover-package=netengine

通过指定相对路径来运行特定测试:

# base tests
nosetests tests.base

# snmp tests
nosetests tests.snmp
# snmp openwrt specific tests
nosetests tests.snmp.openwrt

# ssh tests
nosetests tests.ssh
# ssh airos specific tests
nosetests tests.ssh.airos

贡献

  1. 加入ninux-dev mailing list
  2. 转移此回购
  3. 跟随PEP8, Style Guide for Python Code
  4. 编写代码
  5. 为代码编写测试
  6. 确保所有测试通过
  7. 确保测试覆盖率不低于90%
  8. 记录您的更改
  9. 发送拉取请求

许可证

版权所有(c)2013 Federico Capoano

兹免费准许任何人取得副本 本软件和相关文档文件(“软件”)的 在软件中不受限制,包括但不限于 使用、复制、修改、合并、发布、分发、再授权和/或出售 软件的副本,并允许软件的用户 在满足以下条件的情况下,可以这样做:

上述版权公告及本许可公告须包括在 软件的所有副本或大部分。

除本公告所载外,上述版权持有人的姓名或名称 不得用于广告宣传或以其他方式促进销售, 未经事先书面授权使用或进行其他交易。

本软件按“原样”提供,无任何形式的保证,明示或 默示的,包括但不限于适销性保证, 适合特定目的和不侵权。在任何情况下 作者或版权所有者应对任何索赔、损害或其他 责任,无论是在合同诉讼、侵权诉讼或其他诉讼中, 不属于或与软件、使用或其他交易有关 软件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JavaFX触控事件未触发Ubuntu 20.04触控笔记本电脑   java如何在AWT中关闭窗口?   java Dagger 2:注入具有构造函数参数的成员   创建对象的Java调用类   对象我想在A.java中添加两个数字,并在B.java中打印结果(如何?)   java如何使用AWS SDK for Android从数字海洋空间下载图像?   java Facebook sdk 4.0.1无法使用Android studio获取某些字段   4分钟后web应用程序(Angular 8和Rest API)中的java自动会话超时   在Eclipse for Java EE developers edition中禁用HTML警告   java按字母顺序排列字符串我错过了什么明显的东西吗?   java在Jshell中println和printf有什么不同