You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何获取GetConfig返回的junos_version更新Netbox自定义字段

代码修改方案

你需要调整2处核心逻辑,即可实现需求:

1. 统一GetConfig函数的返回格式

原代码异常场景仅返回单个布尔值,会导致返回值解包报错,将异常分支的返回修改为双值元组,和成功场景保持结构一致:

# 原GetConfig函数的异常处理部分
except Exception as err:
        printProgress("ERROR",my_hostname,"Encountered exception while backing up config")
        printProgress("ERROR",my_hostname,str(err))
        # 原return False修改为下面的行
        return False, None

2. 修改main函数中GetConfig的调用逻辑,接收返回的版本号并写入Netbox自定义字段

原代码直接判断GetConfig返回结果,未接收第二个返回值,修改如下:

# 原if GetConfig(asset,junos_username,junos_password): 替换为下面的代码
backup_success, junos_version = GetConfig(asset,junos_username,junos_password)
if backup_success:
  print ("Config Successfully backed up from device.",nb_device)
  nb_device.custom_fields['backup_status'] = "OK"
  timenow = datetime.datetime.now()
  # 小优化:你原代码的时间格式少了百分号,会显示成固定的d,修正为%Y-%m-%d
  timestamp = timenow.strftime("%Y-%m-%d %X")
  nb_device.custom_fields['backup_timestamp'] = timestamp
  # 新增固件版本写入逻辑,放在save之前
  nb_device.custom_fields['firmware_version'] = junos_version
  nb_device.save()
  print (junos_version)
else:
  printProgress ("ERROR",nb_device,"Config backup failed! ")
  nb_device.custom_fields['backup_status'] = "FAILED"
  nb_device.save()

修改完成后脚本运行时,只要设备备份成功就会自动将采集到的Junos版本写入对应设备的firmware_version自定义字段。

内容的提问来源于stack exchange,提问作者Ian S.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 01:36:06