zoukankan      html  css  js  c++  java
  • 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'))
  • 相关阅读:
    特效导航栏
    json基础用法
    CSS盒模型以及如何解决边距重叠问题
    JS设置和获取盒模型的宽和高
    太极图
    JS旋转和css旋转
    正则表达式三-元字符
    正则表达式语法二-量词
    逻辑运算符
    字符串和正则的相关方法
  • 原文地址:https://www.cnblogs.com/hanqian/p/6932900.html
Copyright © 2011-2022 走看看