Как использовать сквозную аутентификацию с API-интерфейсом VMWare Restful - PullRequest
0 голосов
/ 22 марта 2019

Кто-нибудь получил пример (если возможно) того, как использовать passthru auth на restful API VMware, пожалуйста?

Я не хочу отправлять пароль в виде простого текста.Я вошел в систему с тем пользователем, которого хочу использовать, поэтому скорее передам его, чем сохраню файл учетных данных на диске.

import requests
from requests.auth import HTTPBasicAuth
import json
from requests.packages.urllib3.exceptions import InsecureRequestWarning

api_url = 'https://10.53.228.11/rest'
api_user = 'administrator@vsphere.local'
api_pass = 'Testpw123!'

def main():
    requests.packages.urllib3.disable_warnings(InsecureRequestWarning) #Disable SSL warnings
    get_vcenter_health_status()

def get_vcenter_health_status():
    resp = get_api_data('{}/appliance/health/system'.format(api_url))
    j = resp.json()
    print('vCenter Health: {}'.format(j['value']))

def auth_vcenter(username,password):
    print('Authenticating to vCenter, user: {}'.format(username))
    resp = requests.post('{}/com/vmware/cis/session'.format(api_url),auth=(api_user,api_pass),verify=False)
    if resp.status_code != 200:
        print('Error! API responded with: {}'.format(resp.status_code))
        return
    return resp.json()['value']

def get_api_data(req_url):
    sid = auth_vcenter(api_user,api_pass)
    print('Requesting Page: {}'.format(req_url))
    resp = requests.get(req_url,verify=False,headers={'vmware-api-session-id':sid})
    if resp.status_code != 200:
        print('Error! API responded with: {}'.format(resp.status_code))
        return
    return resp

main()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...