netapi

 

requests模块请求netapi代码示例:

import json
import requests
class SaltAPI(object):
    def __init__(self,url):
        self.url = url
        self.auth = None
        self.header = {'Content-Type': 'application/json'}
    def login(self, username=None, password=None,):
        if self.auth is None:
            auth_dic = {
                'username': username,
                'password': password,
                'eauth': 'pam'
            }
            print('auth')
            req = requests.post(self.url+'/login', data=json.dumps(auth_dic), headers=self.header)
            response = req.json()
            self.auth = response['return'][0]['token']
        return self.auth
    def request_salt(self,cmd,method=None):
        request_dict = {
            'client': 'local',
            'tgt': '*',
            'fun': method,
            'arg': cmd
        }
        self.header.update({'X-Auth-Token':self.auth})
        response = requests.post(self.url,data=json.dumps(request_dict),headers=self.header)
        return response.json()
    def __getattr__(self, module):
        return SaltObj(module,self)
class SaltObj():
    def __init__(self,module,parent):
        self.module = module
        self.parent = parent
    def __getattr__(self, func):
        method = '%s.%s' % (self.module, func)
        def fn(*args,**kwargs):
            return self.parent.request_salt(args,method)
        return fn

f = SaltAPI('http://10.240.1.103:8080')
f.login('salt','111')
print(f.grains.item('sys'))

 

转载于:https://www.cnblogs.com/hanqian/p/6932900.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值