Created
August 15, 2018 04:58
-
-
Save weldpua2008/41c39751a127cfc63e9f065f8842a41d to your computer and use it in GitHub Desktop.
Get root password on all servers via LeaseWEB API v2.0
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# -*- coding: utf-8 -*- | |
import requests | |
import json | |
apiurl = 'https://api.leaseweb.com/bareMetals/v2/servers' | |
apikey = '****-****-***' | |
headers = {"X-Lsw-Auth": apikey} | |
results = [] | |
debug = 0 | |
ips_pool = [] | |
def get_lists(): | |
servers_number = None | |
baremetal_obj = None | |
result_baremetal_obj = [] | |
finished = False | |
ofset = 0 | |
limit = 50 | |
while not finished: | |
apiurlWithOffset = apiurl + '?offset='+str(ofset)+'&limit=' + str(limit) | |
print apiurlWithOffset | |
response = requests.get(apiurlWithOffset, headers=headers) | |
content = response.text | |
content_json = json.loads(content) | |
ofset = ofset + limit | |
baremetal_obj = None | |
try: | |
servers_number = len(content_json["bareMetals"]) | |
if servers_number < 1: | |
finished = True | |
break | |
baremetal_obj = content_json["bareMetals"] | |
result_baremetal_obj = result_baremetal_obj + baremetal_obj | |
except KeyError as e: | |
# try: | |
# "_metadata" | |
# except Exception as e: | |
# raise e | |
servers_number = len(content_json["servers"]) | |
if servers_number < 1: | |
finished = True | |
break | |
baremetal_obj = content_json["servers"] | |
# print type(baremetal_obj) | |
result_baremetal_obj = result_baremetal_obj + baremetal_obj | |
# if isinstance(baremetal_obj,list): | |
# result_baremetal_obj.update(baremetal_obj.copy()) | |
# print result_baremetal_obj | |
if ofset > 500: | |
finished = True | |
return (servers_number, result_baremetal_obj) | |
def get_credentials_by_serverid(id=None, content_json=[]): | |
baremetal_data = {} | |
# print(content_json) | |
servers_number = len(content_json) | |
for count in range(servers_number): | |
baremetal_json = content_json[count] | |
baremetal_id = None | |
try: | |
baremetal_id = baremetal_json['bareMetal']["bareMetalId"] | |
except KeyError as e: | |
# print baremetal_json | |
baremetal_id = baremetal_json["id"] | |
reference = baremetal_json["contract"]["reference"] | |
internalReference = baremetal_json["contract"]["internalReference"] | |
# print baremetal_json["contract"] | |
# print len(reference) | |
# if isinstance(reference, basestring) and len(reference) > 0: | |
# continue | |
# if baremetal_id == id: | |
# apiurl_getip = 'https://api.leaseweb.com/bareMetals/v2/servers/' + baremetal_id + '/credentials' | |
apiurl_getip = 'https://api.leaseweb.com/bareMetals/v2/servers/' + baremetal_id + '/credentials/OPERATING_SYSTEM/root' | |
if debug == 1: | |
print(apiurl_getip + "\n") | |
try: | |
ips_request = requests.get(apiurl_getip, headers=headers) | |
ips_request_text = ips_request.text | |
ips_request_json = json.loads(ips_request_text) | |
print "{} {} {}".format(internalReference,ips_request_json["password"],reference) | |
except Exception as e: | |
print e | |
servers_number, baremetal_obj = get_lists() | |
get_credentials_by_serverid("281230", baremetal_obj) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Update Reference by server name