亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

salt-api 模板

發布時間:2020-02-14 11:07:31 來源:網絡 閱讀:448 作者:krven1983 欄目:開發技術
# -*- coding: utf-8 -*-
from django.http import HttpResponse
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response
import urllib2,urllib
import time
import re

try:
    import json
except ImportError:
    import simplejson as json

#class SaltAPI(object):
#    __token_id = ''
#    def __init__(self,url,username,password):
#        self.__url = url.rstrip('/')
#        self.__user = username
#        self.__password = password
#
#    def token_id(self):
#        ''' user login and get token id '''
#        params = {'eauth': 'pam', 'username': self.__user, 'password': self.__password}
#        encode = urllib.urlencode(params)
#        obj = urllib.unquote(encode)
#        content = self.postRequest(obj,prefix='/login')
#	try:
#            self.__token_id = content['return'][0]['token']
#        except KeyError:
#            raise KeyError
#tgt = 'computer'
class SaltAPI:
    def __init__(self,url,username,password):
        self.__url = url.rstrip('/')
        self.__user =  username
        self.__password = password
        self.__token_id = self.token_id()
    def token_id(self):
        params = {'eauth': 'pam', 'username': self.__user, 'password': self.__password}
        encode = urllib.urlencode(params)
        obj = urllib.unquote(encode)
        headers = {'X-Auth-Token':''}
        url = self.__url + '/login'
        req = urllib2.Request(url, obj, headers)
        opener = urllib2.urlopen(req)
        content = json.loads(opener.read())
        try:
            token = content['return'][0]['token']
            return token
        except KeyError:
            raise KeyError

    def postRequest(self,obj,prefix='/'):
        url = self.__url + prefix
        headers = {'X-Auth-Token'   : self.__token_id}
        req = urllib2.Request(url, obj, headers)
        opener = urllib2.urlopen(req)
        content = json.loads(opener.read())
        return content

    def list_all_key(self):
        params = {'client': 'wheel', 'fun': 'key.list_all'}
        obj = urllib.urlencode(params)
        self.token_id()
        content = self.postRequest(obj)
        minions = content['return'][0]['data']['return']['minions']
        minions_pre = content['return'][0]['data']['return']['minions_pre']
        return minions,minions_pre

    def delete_key(self,node_name):
        params = {'client': 'wheel', 'fun': 'key.delete', 'match': node_name}
        obj = urllib.urlencode(params)
        self.token_id()
        content = self.postRequest(obj)
        ret = content['return'][0]['data']['success']
        return ret

    def accept_key(self,node_name):
        params = {'client': 'wheel', 'fun': 'key.accept', 'match': node_name}
        obj = urllib.urlencode(params)
        self.token_id()
        content = self.postRequest(obj)
        ret = content['return'][0]['data']['success']
        return ret

    def remote_noarg_execution(self,tgt,fun):
        ''' Execute commands without parameters '''
        params = {'client': 'local', 'tgt': tgt, 'fun': fun}
    #    return HttpResponse(params)
        obj = urllib.urlencode(params)
        self.token_id()
        content = self.postRequest(obj)
        ret = content['return'][0][tgt]
        return ret

    def remote_execution(self,tgt,fun,arg):
        ''' Command execution with parameters '''        
        params = {'client': 'local', 'tgt': tgt, 'fun': fun, 'arg': arg}
        obj = urllib.urlencode(params)
        self.token_id()
        content = self.postRequest(obj)
        ret = content['return'][0][tgt]
        return ret

    def target_remote_execution(self,tgt,fun,arg):
        ''' Use targeting for remote execution '''
        params = {'client': 'local', 'tgt': tgt, 'fun': fun, 'arg': arg, 'expr_form': 'nodegroup'}
        obj = urllib.urlencode(params)
        self.token_id()
        content = self.postRequest(obj)
        jid = content['return'][0]['jid']
        return jid

    def deploy(self,tgt,arg):
        ''' Module deployment '''
        params = {'client': 'local', 'tgt': tgt, 'fun': 'state.sls', 'arg': arg}
        obj = urllib.urlencode(params)
        self.token_id()
        content = self.postRequest(obj)
        return content

    def async_deploy(self,tgt,arg):
        ''' Asynchronously send a command to connected minions '''
        params = {'client': 'local_async', 'tgt': tgt, 'fun': 'state.sls', 'arg': arg}
        obj = urllib.urlencode(params)
        self.token_id()
        content = self.postRequest(obj)
        jid = content['return'][0]['jid']
        return jid

    def target_deploy(self,tgt,arg):
        ''' Based on the node group forms deployment '''
        params = {'client': 'local_async', 'tgt': tgt, 'fun': 'state.sls', 'arg': arg, 'expr_form': 'nodegroup'}
        obj = urllib.urlencode(params)
        self.token_id()
        content = self.postRequest(obj)
        jid = content['return'][0]['jid']
        return jid

def main():
    sapi = SaltAPI(url='https://xxxx:8888',username='saltapi',password='yao')
    ad = sapi.remote_noarg_execution('computer','grains.items')
    ipv4 =  ad["ipv4"]
    i = len(ipv4)
    for a in range(0, i):
        if ipv4[a][0:3] == "113":
           print ipv4[a]
    #sapi.token_id()
    #print sapi.list_all_key()
    #sapi.delete_key('test-01')
#    print sapi.accept_key()
    #sapi.deploy('test-01','nginx')
    #print sapi.remote_noarg_execution('test-01','grains.items')

if __name__ == '__main__':
    main()


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海口市| 吉林市| 临泉县| 南丰县| 太白县| 马关县| 城市| 阿图什市| 新巴尔虎右旗| 深水埗区| 天峻县| 九寨沟县| 大新县| 绍兴市| 霍城县| 汉川市| 大洼县| 波密县| 靖江市| 楚雄市| 临沧市| 靖州| 依安县| 上高县| 眉山市| 福贡县| 和平区| 河曲县| 衢州市| 呼伦贝尔市| 弋阳县| 铜鼓县| 寿宁县| 保德县| 西乌| 子长县| 桃源县| 渝北区| 莱西市| 武安市| 宜川县|