def get_config(self, xml_str): """ get_config """ con_obj = None try: con_obj = self.mc.get(filter=xml_str) except RPCError as err: self._module.fail_json(msg='Error: %s' % to_native(err).replace("\r\n", "")) set_id = get_nc_set_id(con_obj.xml) if not set_id: return con_obj.xml # continue to get next xml_str = con_obj.xml while set_id: set_attr = dict() set_attr["set-id"] = str(set_id) xsd_fetch = xml_.new_ele_ns('get-next', "http://www.huawei.com/netconf/capability/base/1.0", set_attr) # get next data try: con_obj_next = self.mc.dispatch(xsd_fetch) except RPCError as err: self._module.fail_json(msg='Error: %s' % to_native(err).replace("\r\n", "")) if "<data/>" in con_obj_next.xml: break # merge two xml data xml_str = merge_nc_xml(xml_str, con_obj_next.xml) set_id = get_nc_set_id(con_obj_next.xml) return xml_str
def get_config(self, **kwargs): """ get_config """ filterstr = kwargs["filter"] con_obj = self.mc.get(filter=filterstr) set_id = get_nc_set_id(con_obj.xml) if not set_id: return con_obj # continue to get next xml_str = con_obj.xml while set_id: set_attr = dict() set_attr["set-id"] = str(set_id) xsd_fetch = xml_.new_ele_ns( 'get-next', "http://www.huawei.com/netconf/capability/base/1.0", set_attr) # get next data con_obj_next = self.mc.dispatch(xsd_fetch) if "<data/>" in con_obj_next.xml: break # merge two xml data xml_str = merge_xml(xml_str, con_obj_next.xml) set_id = get_nc_set_id(con_obj_next.xml) con_obj._raw = xml_str return con_obj
def get_nc_next(module, xml_str): """ get_nc_next for exchange capability """ conn = get_nc_connection(module) result = None if xml_str is not None: response = conn.get(xml_str, if_rpc_reply=True) result = response.find('./*') set_id = response.get('set-id') while True and set_id is not None: try: fetch_node = new_ele_ns('get-next', 'http://www.huawei.com/netconf/capability/base/1.0', {'set-id': set_id}) next_xml = conn.dispatch_rpc(etree.tostring(fetch_node)) if next_xml is not None: result.extend(next_xml.find('./*')) set_id = next_xml.get('set-id') except ConnectionError: break if result is not None: return to_string(to_xml(result)) return result