- 客户端批量执行实例-伪代码
- 客户端demo2代码梳理1-获取执行参数
from rest_framework.utils.mediatypes import _MediaType
from rest_framework.compat import unicode_http_header
media_type = _MediaType(request.accepted_media_type)
app = media_type.params.get('app', None)
或者
request.META
获取客户端的请求头的参数
view.py中
def get_token():
url= 'http://IP:8080/login'
login_data = {'username':'saltapi','password':'密码','eauth':'pam'}
headers = {'Accept':'application/json'}
res = requests.post(url,headers=headers,data=login_data)
token = res.json()['return'][0]['token']
return token
获取token后执行命令
def saltCmd(ip,fun,*args,**kwargs):
token = get_token()
url = "http://IP:8080"
headers = {'Accept':'application/json',"X-Auth-Token":token}
res = requests.post(url,headers=headers,json=\
{'client':'local','tgt':ip,'fun':fun,'arg':list(args),'kwarg':kwargs})
response = res.json()['return']
return response
简单的测试
@login_required
def saltstack(request,ip):
fun = request.GET['fun']
args = request.GET['args']
kwargs = request.GET['kwargs']
res = saltCmd(ip,fun,args,kwargs)
return HttpResponse(res)