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