python saltstack-api

1.编写接口,使之能够接受并返回结果。

#调用模块import json
import requests

#定义类的名字
class SaltServer(object):    #声明类的属性
    def __init__(self):
        self.session = requests.session()
        self.token = self.getToken()

    #定义getToken模块用来获取token
    def getToken(self):        #定义URL
        url = "http://192.168.1.131:8001/login"        #定义头信息
        headers = {"Accept":"application/json"}        #定义数据信息
        data = {
            "username":"saltapi",
            "password":"123456",
            "eauth":"pam"
        }        #连接
        res = self.session.post(url=url,headers=headers,data=data)        #获取返回内容
        text = res.text        #获取token
        result = json.loads(text)
        token = result.get("return")[0].get("token")
        return token

    #定义执行module模块,及相关参数
    def runModules(self,minionid,fun,arg=None):
        url = "http://192.168.1.131:8001"
        data = {
            "client":"local",
            "tgt":minionid,
            "fun":fun,
            "arg":arg
        }
        resultBean = dict()        #try捕获异常信息,并且继续往下执行
        try:
            res = self.session.post(url=url, data=data)
            text = res.text
            data = json.loads(text).get("return")
            resultBean['code'] = 0
            resultBean['message'] = "success"
            resultBean['data'] = data        #捕获异常,并进行输出
        except Exception as e:
            resultBean['code'] = 0
            resultBean['message'] = "success"
            resultBean['data'] = e        #无论是否异常都继续执行
        finally:
            return resultBean


    def runRunner(self, fun, arg=None):
        url = "http://192.168.1.131:8001"
        data = {
            "client": "runner",
            "fun": fun,
            "arg": arg
        }
        resultBean = dict()
        try:
            res = self.session.post(url=url, data=data)
            text = res.text
            data = json.loads(text).get("return")
            resultBean['code'] = 0
            resultBean['message'] = "success"
            resultBean['data'] = data
        except Exception as e:
            resultBean['code'] = 0
            resultBean['message'] = "success"
            resultBean['data'] = e
        finally:
            return resultBean

写好之后测试一下:

#调用from saltstac.util.saltapi import SaltServer

saltServer = SaltServer()
print(saltServer.runModules("minion-2","test.ping"))
print(saltServer.runRunner("manage.status"))

运行:

{'code': 0, 'message': 'success', 'data': [{'minion-2': True}]}
{'code': 0, 'message': 'success', 'data': [{'down': [], 'up': ['minion-2']}]}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值