当前位置:Gxlcms > 数据库问题 > 02-CMDB采集资产功能插件开发 | CMDB

02-CMDB采集资产功能插件开发 | CMDB

时间:2021-07-01 10:21:17 帮助过:23人阅读

__init__.py from conf import settings def pack(): response = {} for k,v in settings.PLUGINS.items(): import importlib m_path,classname = v.rsplit(.,maxsplit=1) m = importlib.import_module(m_path) cls = getattr(m,classname) response[k] = cls().execute() return response
# base.py
from conf import settings

class BasePlugin(object):

    def __init__(self):
        mode_list = [SSH,Salt,"Agent"]
        if settings.MODE in mode_list:
            self.mode = settings.MODE
        else:
            raise Exception(配置文件错误)

    def ssh(self,cmd):
        pass

    def agent(self,cmd):
        pass

    def salt(self,cmd):
        pass

    def shell_cmd(self,cmd):
        if self.mode == SSH:
            ret = self.ssh(cmd)
        elif self.mode == Salt:
            ret = self.salt(cmd)
        else:
            ret = self.agent(cmd)
        return ret

    def execute(self):

        ret = self.shell_cmd(查看平台命令)

        if ret == win:
            return self.windows()
        elif ret == linux:
            return self.linux()
        else:
            raise Exception(只支持windows和linux)

    def linux(self):
        raise Exception(....)

    def windows(self):
        raise Exception(....)
# disk.py
from .base import BasePlugin

class DiskPlugin(BasePlugin):

    def windows(self):
        output = self.shell_cmd(ipconfig)
        return output

    def linux(self):
        output = self.shell_cmd(ifconfig)
        return output
# mem.py
from .base import BasePlugin

class MemPlugin(BasePlugin):

    def windows(self):
        output = self.shell_cmd(asdf)
        # 正则表达式
        return output

    def linux(self):
        output = self.shell_cmd(asdf)
        # 正则表达式
        return output
# nic.py
from .base import BasePlugin

class NicPlugin(BasePlugin):

    def windows(self):
        output = self.shell_cmd(asdf)
        # 正则表达式
        return output

    def linux(self):
        output = self.shell_cmd(asdf)
        # 正则表达式
        return output
# settings.py
MODE = "Agent" # Salt,SSH

 

02-CMDB采集资产功能插件开发 | CMDB

标签:raise   ima   shel   set   response   技术   plugin   imp   shell   

人气教程排行