Django【设计】同功能不同实现模式的兼容性
需求:
当我们采集硬件信息时,客户端可以有多种方式,具体方式取决于客户机,CMDB项目中,我们有三种方式可选,AGENT/SSH/SALT,根据客户机具体情况和“SALT>>SSH>>AGENT”的优选级我们确定,选用SSH的方式进行硬件信息采集。
但是,不能固定不变,当客户机改变时需要用AGENT或者SALT方式时,我们希望能够根据配置文件随时切换模式。
在配置文件settings进行配置:
script.py,约束采集信息模式(agent,ssh,salt),兼容三种模式
from lib.config import settings from .client import AgentClient from .client import SaltSshClient def start(): # 这个函数用来判断模式,并约束可选模式 if settings.MODE == 'AGENT': obj = AgentClient() elif settings.MODE == "SSH" or settings.MODE == 'SALT': obj = SaltSshClient() else: raise Exception('模式仅支持:AGENT/SSH/SALT') obj.exec()