配置文件細(xì)節(jié)處理思路

一缚柳、conf 文件

  • 在conf文件夾創(chuàng)建settings.py 的配置文件

例如這次的運(yùn)維管理系統(tǒng)梁棠,我們將主要會(huì)用的模塊做好配置封裝

MODE = "Agent" #Salt,SSH

二惨缆、在src業(yè)務(wù)邏輯

  • 在src文件夾創(chuàng)建script.py 的腳本文件

(1) 考慮用戶配置時(shí)芯义,會(huì)出現(xiàn)在settings.py 限定的MODE變量中輸入空嵌洼,或者出現(xiàn)拼寫(xiě)錯(cuò)誤和超出預(yù)期配置,解決方法在腳本文件中祝沸,__init__做好判斷
    def __init__(self):
        #創(chuàng)建一個(gè)限定的集合
        mode_list = ['SSH','Salt','Agent']
        # 判斷用戶輸入的是否在我們的限定集合中
        if setting.MODE in mode_list:
            self.mode = setting.MODE
        else:
            raise Exception('配置文件錯(cuò)誤')
(2) 分析矮烹,首先判斷配置文件執(zhí)行的對(duì)應(yīng)方法 ,通過(guò)方法返回值判斷平臺(tái)罩锐,接受平臺(tái)返回的內(nèi)容
    # 只有這三種方式
    def ssh(self,cmd):
        pass

    def salt(self,cmd):
        pass

    def agent(self,cmd):
        pass

shell_cmd 方法通過(guò)判斷用戶配置文件設(shè)置的屬性奉狈,來(lái)執(zhí)行對(duì)應(yīng)方法,并返回對(duì)應(yīng)cmd查回的指令

    def shell_cmd(self,cmd):
        # 執(zhí)行判斷平臺(tái)
        if self.mode == "SSH":
            ret = self.ssh(cmd)
        elif self.mode == "Salt":
            ret = self.salt(cmd)
        else:
            ret = self.agent(cmd)

        return  ret

execute,判斷指令的系統(tǒng)涩惑,然后到對(duì)應(yīng)的方法中去處理仁期,因?yàn)樘幚硎嵌喾矫娴模梢酝ㄟ^(guò)指令來(lái)處理內(nèi)存硬盤(pán)多方面的方法竭恬,所以通過(guò)寫(xiě)繼承類跛蛋,來(lái)額外執(zhí)行構(gòu)成插拔的模式

    def execute(self):
        ret = self.shell_cmd("查看 命令的犯法")
        if ret == 'win':
           return self.windows()
        elif ret == "linux":
            return self.linux()

        else:
            raise  Exception('只支持linux,windows')

撰寫(xiě)繼承類,用來(lái)查硬盤(pán)信息,繼承時(shí)要記住痊硕,父類的self赊级,對(duì)應(yīng)的是創(chuàng)建子類對(duì)象,子類中沒(méi)有去父類查找岔绸,父類中理逊,子類重寫(xiě)父類對(duì)應(yīng)方法

class DiskPlugin(BasePlugin):
    def windows(self):
        return '硬盤(pán)'
    def linux(self):
        return '硬盤(pán)'

三、整體代碼

from  conf import setting
class BasePlugin(object):
    def __init__(self):
        mode_list = ['SSH','Salt','Agent']
        if setting.MODE in mode_list:
            self.mode = setting.MODE
        else:
            raise Exception('配置文件錯(cuò)誤')

    def ssh(self,cmd):
        pass

    def salt(self,cmd):
        pass

    def agent(self,cmd):
        pass


    def shell_cmd(self,cmd):

        # 執(zhí)行判斷平臺(tái)
        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('只支持linux,windows')


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

    def windows(self):
        raise Exception('....')


class DiskPlugin(BasePlugin):
    
    def windows(self):
        output = self.shell_cmd('as')
        return output
    
    def linux(self):
        output = self.shell_cmd('as')
        return output


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末亭螟,一起剝皮案震驚了整個(gè)濱河市挡鞍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌预烙,老刑警劉巖墨微,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異扁掸,居然都是意外死亡翘县,警方通過(guò)查閱死者的電腦和手機(jī)最域,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)锈麸,“玉大人镀脂,你說(shuō)我怎么就攤上這事⊥。” “怎么了薄翅?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)氓奈。 經(jīng)常有香客問(wèn)我翘魄,道長(zhǎng),這世上最難降的妖魔是什么舀奶? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任暑竟,我火速辦了婚禮,結(jié)果婚禮上育勺,老公的妹妹穿的比我還像新娘但荤。我一直安慰自己,他們只是感情好涧至,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布腹躁。 她就那樣靜靜地躺著,像睡著了一般化借。 火紅的嫁衣襯著肌膚如雪潜慎。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,036評(píng)論 1 285
  • 那天蓖康,我揣著相機(jī)與錄音,去河邊找鬼垒手。 笑死蒜焊,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的科贬。 我是一名探鬼主播泳梆,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼榜掌!你這毒婦竟也來(lái)了优妙?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤憎账,失蹤者是張志新(化名)和其女友劉穎套硼,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體胞皱,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡邪意,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年九妈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雾鬼。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡萌朱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出策菜,到底是詐尸還是另有隱情晶疼,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布又憨,位于F島的核電站翠霍,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏竟块。R本人自食惡果不足惜壶运,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望浪秘。 院中可真熱鬧蒋情,春花似錦、人聲如沸耸携。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)夺衍。三九已至狈谊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間沟沙,已是汗流浹背河劝。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留矛紫,地道東北人赎瞎。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像颊咬,于是被迫代替她去往敵國(guó)和親务甥。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容