master
parent
f07786ad24
commit
fbc0bb81cf
@ -0,0 +1 @@ |
|||||||
|
*.qcow2 |
@ -0,0 +1,62 @@ |
|||||||
|
import subprocess |
||||||
|
import os |
||||||
|
import json |
||||||
|
import requests |
||||||
|
import datetime |
||||||
|
from httpsig.requests_auth import HTTPSignatureAuth |
||||||
|
|
||||||
|
|
||||||
|
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 check_host(jms_url, auth, host_ip): |
||||||
|
url = jms_url + "/api/v1/assets/assets/" |
||||||
|
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) |
||||||
|
} |
||||||
|
result = requests.get( |
||||||
|
url, params={"ip": host_ip}, auth=auth, headers=headers) |
||||||
|
return bool(result.json()) |
||||||
|
|
||||||
|
|
||||||
|
def register_host(jms_url, auth, host_name, host_ip): |
||||||
|
if not check_host(jms_url, auth, host_ip): |
||||||
|
url = jms_url + "/api/v1/assets/assets/" |
||||||
|
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) |
||||||
|
} |
||||||
|
data = { |
||||||
|
"hostname": host_name, |
||||||
|
"ip": host_ip, |
||||||
|
"platform": "Linux", |
||||||
|
"protocol": "ssh", |
||||||
|
"port": 0, |
||||||
|
"nodes": "870cd163-d6d6-4fa7-b69c-729ecf81df4c", |
||||||
|
"admin_user": "650feac8-df82-41f3-b398-b106e12dad1b", |
||||||
|
"is_active": True |
||||||
|
} |
||||||
|
result = requests.post(url, data=data, auth=auth, headers=headers) |
||||||
|
with open("/tmp/.jms_host_registered.json", "w") as f: |
||||||
|
json.dump(result.json(), f, indent=4, ensure_ascii=False) |
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__': |
||||||
|
if os.path.isfile('/tmp/.jms_host_registered.json'): |
||||||
|
exit(0) |
||||||
|
jms_url = 'http://192.168.96.253' |
||||||
|
KeyID = 'e3a9f622-868f-4707-a3f6-a2e5cba500a4' |
||||||
|
SecretID = '87485901-44ab-4359-a07e-2764f8556834' |
||||||
|
auth = get_auth(KeyID, SecretID) |
||||||
|
hostip = subprocess.getoutput('hostname -I') |
||||||
|
hostname = os.environ.get('HOSTNAME', hostip) |
||||||
|
register_host(jms_url, auth, hostname, hostip) |
Loading…
Reference in new issue