You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.4 KiB
Python
38 lines
1.4 KiB
Python
2 years ago
|
import requests as req
|
||
|
import logging
|
||
|
import json
|
||
|
|
||
|
class ValhallaServer():
|
||
|
|
||
|
def __init__(self, server_address: str, server_port: str, server_user: str, server_access_password: str, logging_level: str):
|
||
|
self.server_address = server_address
|
||
|
self.server_port = server_port
|
||
|
self.server_user = server_user
|
||
|
self.server_access_password = server_access_password
|
||
|
self.logging_level = logging_level
|
||
|
self.logger = logging.getLogger(__name__)
|
||
|
self.bearer_token = ""
|
||
|
log_level_mapping_dict = {
|
||
|
"NOTSET": 0,
|
||
|
"DEBUG": 10,
|
||
|
"INFO": 20,
|
||
|
"WARNING": 30,
|
||
|
"ERROR": 40,
|
||
|
"CRITICAL": 50,
|
||
|
}
|
||
|
self.logger.setLevel(log_level_mapping_dict[logging_level])
|
||
|
|
||
|
def authenticate(self):
|
||
|
try:
|
||
|
login_data = {
|
||
|
"username": self.server_user,
|
||
|
"password": self.server_access_password
|
||
|
}
|
||
|
headers = {"Content-Type": "application/json"}
|
||
|
print(json.dumps(login_data))
|
||
|
response = req.post(url=f"{self.server_address}:{self.server_port}/login", json=login_data, headers=headers)
|
||
|
self.logger.info(str(response.json()))
|
||
|
print(str(response.json()))
|
||
|
except Exception as ex:
|
||
|
self.logger.error(f"{str(ex)}")
|