mirror of
https://github.com/recklessop/Zerto_Exporter.git
synced 2026-07-04 08:23:15 -04:00
Update python-node-exporter.py
This commit is contained in:
@@ -21,7 +21,8 @@ scrape_speed = int(os.environ.get('SCRAPE_SPEED', 30))
|
|||||||
api_timeout = int(os.environ.get('API_TIMEOUT', 5))
|
api_timeout = int(os.environ.get('API_TIMEOUT', 5))
|
||||||
LOGLEVEL = os.environ.get('LOGLEVEL', 'DEBUG').upper()
|
LOGLEVEL = os.environ.get('LOGLEVEL', 'DEBUG').upper()
|
||||||
|
|
||||||
log_formatter = logging.Formatter('%(relativeCreated)6d %(threadName)s %(message)s')
|
#log_formatter = logging.Formatter('%(relativeCreated)6d %(threadName)s %(message)s')
|
||||||
|
log_formatter = logging.Formatter("%(asctime)s;%(levelname)s;%(threadName)s;%(message)s", "%Y-%m-%d %H:%M:%S")
|
||||||
|
|
||||||
log_handler = RotatingFileHandler(filename='../logs/Log-Main.log', maxBytes=1024*1024*100, backupCount=5)
|
log_handler = RotatingFileHandler(filename='../logs/Log-Main.log', maxBytes=1024*1024*100, backupCount=5)
|
||||||
log_handler.setFormatter(log_formatter)
|
log_handler.setFormatter(log_formatter)
|
||||||
@@ -40,8 +41,9 @@ def ZvmAuthHandler():
|
|||||||
log.debug("ZVMAuthHandler Thread Started")
|
log.debug("ZVMAuthHandler Thread Started")
|
||||||
expiresIn = 0
|
expiresIn = 0
|
||||||
global token
|
global token
|
||||||
|
retries = 0
|
||||||
while True:
|
while True:
|
||||||
if (expiresIn < 30):
|
if expiresIn < 30:
|
||||||
h = CaseInsensitiveDict()
|
h = CaseInsensitiveDict()
|
||||||
h["Content-Type"] = "application/x-www-form-urlencoded"
|
h["Content-Type"] = "application/x-www-form-urlencoded"
|
||||||
|
|
||||||
@@ -51,16 +53,43 @@ def ZvmAuthHandler():
|
|||||||
d["grant_type"] = "client_credentials"
|
d["grant_type"] = "client_credentials"
|
||||||
|
|
||||||
uri = "https://" + zvm_url + ":" + zvm_port + "/auth/realms/zerto/protocol/openid-connect/token"
|
uri = "https://" + zvm_url + ":" + zvm_port + "/auth/realms/zerto/protocol/openid-connect/token"
|
||||||
response = requests.post(url=uri, data=d, headers=h, verify=verifySSL)
|
delay = 0
|
||||||
|
|
||||||
|
try:
|
||||||
|
response = requests.post(url=uri, data=d, headers=h, verify=verifySSL)
|
||||||
|
response.raise_for_status()
|
||||||
|
except requests.exceptions.RequestException as e:
|
||||||
|
retries += 1
|
||||||
|
delay = 2 ** retries
|
||||||
|
log.error("Error while sending authentication request: " + str(e) + ". Retrying in " + str(delay) + " seconds")
|
||||||
|
time.sleep(delay)
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
retries = 0
|
||||||
|
|
||||||
responseJSON = response.json()
|
responseJSON = response.json()
|
||||||
log.debug(responseJSON)
|
if 'access_token' not in responseJSON or 'expires_in' not in responseJSON:
|
||||||
token = str(responseJSON['access_token'])
|
log.error("Authentication response does not contain expected keys")
|
||||||
expiresIn = int(responseJSON['expires_in'])
|
delay = 2 ** retries
|
||||||
expiresIn = expiresIn - 10
|
time.sleep(delay)
|
||||||
|
retries += 1
|
||||||
|
continue
|
||||||
|
|
||||||
|
token = str(responseJSON.get('access_token'))
|
||||||
|
expiresIn = int(responseJSON.get('expires_in'))
|
||||||
|
|
||||||
|
if response.status_code != 200:
|
||||||
|
log.error("Authentication request failed with status code " + str(response.status_code))
|
||||||
|
delay = 2 ** retries
|
||||||
|
time.sleep(delay)
|
||||||
|
retries += 1
|
||||||
|
continue
|
||||||
|
|
||||||
|
expiresIn -= 10 + delay
|
||||||
log.debug("Token Expires in " + str(expiresIn) + " seconds")
|
log.debug("Token Expires in " + str(expiresIn) + " seconds")
|
||||||
time.sleep(10)
|
time.sleep(10)
|
||||||
|
|
||||||
|
|
||||||
def GetStatsFunc():
|
def GetStatsFunc():
|
||||||
tempdb = TinyDB(storage=MemoryStorage)
|
tempdb = TinyDB(storage=MemoryStorage)
|
||||||
dbvm = Query()
|
dbvm = Query()
|
||||||
|
|||||||
Reference in New Issue
Block a user