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()

  

 

 

posted on 2017-10-09 17:45  lucaq  阅读(239)  评论(0编辑  收藏  举报

导航