parent
cf58a12615
commit
673f8c2e11
@ -0,0 +1,64 @@ |
|||||||
|
# Python 示例 |
||||||
|
# yum install -y gcc |
||||||
|
# pip3 install requests drf-httpsig -i https://mirrors.aliyun.com/pypi/simple/ |
||||||
|
import requests |
||||||
|
import datetime |
||||||
|
from httpsig.requests_auth import HTTPSignatureAuth |
||||||
|
from subprocess import getoutput |
||||||
|
import sys,os,json |
||||||
|
|
||||||
|
if os.path.exists("/tmp/.instance.json"): |
||||||
|
exit() |
||||||
|
|
||||||
|
def get_host_info(): |
||||||
|
try: |
||||||
|
username = sys.argv[1] |
||||||
|
password = sys.argv[2] |
||||||
|
except: |
||||||
|
print("Usage: python3 register_instance2-6.py <username> <password>") |
||||||
|
host_ip = getoutput( |
||||||
|
"""ip -4 a show dev ens33 | awk '/inet/{print $2}' | awk 'BEGIN{FS="/"}{print $1}'""") |
||||||
|
hostname = f"""{host_ip}-{getoutput('hostname')}""" |
||||||
|
return (host_ip, hostname, username, password) |
||||||
|
|
||||||
|
def get_auth(KeyID, SecretID): |
||||||
|
signature_headers = ['(request-target)', 'accept', 'date'] |
||||||
|
auth = HTTPSignatureAuth(key_id=KeyID, secret=SecretID, |
||||||
|
algorithm='hmac-sha256', headers=signature_headers) |
||||||
|
return auth |
||||||
|
|
||||||
|
|
||||||
|
def get_user_info(jms_url, auth): |
||||||
|
url = jms_url + '/api/v1/assets/hosts/' |
||||||
|
gmt_form = '%a, %d %b %Y %H:%M:%S GMT' |
||||||
|
headers = { |
||||||
|
'Accept': 'application/json', |
||||||
|
'X-JMS-ORG': '00000000-0000-0000-0000-000000000002', |
||||||
|
'Date': datetime.datetime.utcnow().strftime(gmt_form) |
||||||
|
} |
||||||
|
info = get_host_info() |
||||||
|
data = { |
||||||
|
"name": info[1], |
||||||
|
"address": info[0], |
||||||
|
"platform": "1", |
||||||
|
"accounts": [ |
||||||
|
{ |
||||||
|
"username": info[2], |
||||||
|
"secret_type": "password", |
||||||
|
"secret": info[3] |
||||||
|
} |
||||||
|
], |
||||||
|
"is_active": True |
||||||
|
} |
||||||
|
response = requests.post(url, auth=auth, json=data, headers=headers) |
||||||
|
with open('/tmp/.instance.json', 'w') as f: |
||||||
|
json.dump(response.json(), f, ensure_ascii=False, indent="\t") |
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__': |
||||||
|
jms_url = 'http://192.168.75.250' |
||||||
|
KeyID = 'ed06b13e-5eb2-4e50-b472-dad9008ec40a' |
||||||
|
SecretID = 'tpP2wfDXWzYbXSlgLLYJkFIA7cuI8tAr9Msi' |
||||||
|
auth = get_auth(KeyID, SecretID) |
||||||
|
get_user_info(jms_url, auth) |
||||||
|
|
Loading…
Reference in new issue