小编Joh*_*sen的帖子

如何在运行时覆盖包中的东西?

[编辑:我正在运行Python 2.7.3]

我是一名网络工程师,我一直在攻击ncclient(网站上的版本很旧,是我一直在努力的版本),以使其与Brocade的NETCONF实现一起使用.为了让它与我们的Brocade设备一起使用,我必须进行一些调整,但是我不得不拆掉包并对源本身进行调整.这对我来说并不"干净",所以我决定尝试以"正确的方式"做到并覆盖包装中存在的一些东西*; 具体三件事:

  1. 一个名为build()的"静态方法",它属于HelloHandler类,它本身是SessionListener的子类
  2. RPC类的"._id"属性(原始实现使用uuid,而Brocade盒子不太喜欢这个,因此在我原来的调整中我只是将其更改为永不改变的静态值).
  3. 对util函数的一个小调整,用于构建XML过滤器属性

到目前为止,我在一个文件中有这个代码brcd_ncclient.py:

#!/usr/bin/env python

# hack on XML element creation and create a subclass to override HelloHandler's
# build() method to format the XML in a way that the brocades actually like

from ncclient.xml_ import *
from ncclient.transport.session import HelloHandler
from ncclient.operations.rpc import RPC, RaiseMode
from ncclient.operations import util

# register brocade namespace and create functions to create proper xml for
# hello/capabilities exchange

BROCADE_1_0 = "http://brocade.com/ns/netconf/config/netiron-config/"
register_namespace('brcd', …
Run Code Online (Sandbox Code Playgroud)

python oop python-module python-2.7 ietf-netconf

6
推荐指数
1
解决办法
1119
查看次数

标签 统计

ietf-netconf ×1

oop ×1

python ×1

python-2.7 ×1

python-module ×1