Compare commits

..

18 Commits

Author SHA1 Message Date
empresa 87a7265edc Wallet config debugging. More. 2025-09-10 00:44:15 +07:00
empresa b109094683 Wallet config debugging. More. 2025-09-10 00:35:47 +07:00
empresa f5f247dcd8 Wallet config debugging. More. 2025-09-10 00:20:09 +07:00
empresa 9e684062f9 Wallet config debugging. More. 2025-09-10 00:13:58 +07:00
empresa 9ccd0aba8a Wallet config debugging. More. 2025-09-10 00:11:15 +07:00
empresa 7ff426f9ba Wallet config debugging. More. 2025-09-09 23:55:30 +07:00
empresa 07134d26d7 Wallet config debugging. More. 2025-09-09 22:13:52 +07:00
empresa a60adedafd Wallet config debugging. More. 2025-09-09 19:07:15 +07:00
empresa 2263d293c8 Wallet config debugging. More. 2025-09-09 19:02:46 +07:00
empresa 4953ffe965 Wallet config debugging. More. 2025-09-09 18:58:54 +07:00
empresa de683b989e Wallet config debugging. More. 2025-09-09 18:58:01 +07:00
empresa cfba5d729d Wallet config debugging. More. 2025-09-09 18:53:53 +07:00
empresa 9a36cf99bf Wallet config debugging. More. 2025-09-09 18:52:54 +07:00
empresa 90a76735e2 Wallet config debugging. More. 2025-09-09 18:49:22 +07:00
empresa b74bb34f40 Wallet config debugging. More. 2025-09-09 18:40:59 +07:00
empresa b3502c8778 Wallet config debugging. Part 3. 2025-09-09 18:38:45 +07:00
empresa 92dac6755b Wallet config debugging. Part 2. 2025-09-09 18:37:18 +07:00
empresa 6fc2ac9b93 Wallet config debugging. 2025-09-09 18:33:23 +07:00
1 changed files with 41 additions and 3 deletions

View File

@ -11,6 +11,7 @@ import re
import os
import socket
import asyncio
import traceback
from urllib.parse import urlparse
import subprocess
from functools import partial
@ -20,22 +21,34 @@ class logger:
GREEN = '\033[92m'
BLUE = '\033[94m'
RESET = '\033[0m'
LOG_FILE = '/opt/clore-hosting/clore_onboarding.log'
@staticmethod
def _get_current_time():
return datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
@staticmethod
def _log_to_file(level, message):
try:
with open(logger.LOG_FILE, 'a') as f:
f.write(f"{logger._get_current_time()} | {level} | {message}\n")
except Exception:
pass
@staticmethod
def error(message):
print(f"{logger.RED}{logger._get_current_time()} | ERROR | {message}{logger.RESET}")
logger._log_to_file("ERROR", message)
@staticmethod
def success(message):
print(f"{logger.GREEN}{logger._get_current_time()} | SUCCESS | {message}{logger.RESET}")
logger._log_to_file("SUCCESS", message)
@staticmethod
def info(message):
print(f"{logger.BLUE}{logger._get_current_time()} | INFO | {message}{logger.RESET}")
logger._log_to_file("INFO", message)
if os.geteuid() != 0:
logger.error("This script must be run as root!")
@ -382,7 +395,13 @@ async def post_request(url, body, headers=None, timeout=15):
return status_code, response_data
except (http.client.HTTPException, TimeoutError) as e:
print(f"Request failed: {e}")
logger.error(f"Request failed: {e}")
return None, None
except socket.gaierror as e:
logger.error(f"DNS resolution failed for {url}: {e}")
return None, None
except Exception as e:
logger.error(f"Unexpected error in post_request: {e}")
return None, None
finally:
conn.close()
@ -439,8 +458,11 @@ if args.write_linux_config:
sys.exit(1)
async def main(machine_specs):
logger.info("Started onboarding")
global next_retry_reached_server_limit
last_used_config = None
logger.info("logger.info(last_used_config) 1")
logger.info(last_used_config)
ever_pending_creation = False
machine_id = get_machine_id()
@ -454,9 +476,13 @@ async def main(machine_specs):
logger.error("Can't load default power limits of nVidia GPU(s)")
sys.exit(1)
logger.info("logger.info(last_used_config) 2")
logger.info(last_used_config)
oc_config = {}
while True:
try:
logger.info("Looping")
if args.mode == "linux":
clore_config = await async_read_file(clore_conf_path)
clore_config = json.loads(clore_config)
@ -466,7 +492,10 @@ async def main(machine_specs):
machine_name, clore_config, oc_config = await hive_load_configs(default_power_limits, static_clore_config)
#print(f"Machine Name: {machine_name}")
logger.info(args.mode)
config_validation = validate_clore_config(clore_config)
if config_validation == "Validation successful":
if "save_config" in clore_config and args.mode == "hive":
verify_or_update_file(clore_conf_path, json.dumps(clore_config))
@ -475,6 +504,12 @@ async def main(machine_specs):
clore_config["clear_oc_override"] = True
else:
clore_config["stock_oc_override"] = oc_config
logger.info("Is config different")
logger.info(clore_config != last_used_config)
logger.info(clore_config)
logger.info(last_used_config)
if clore_config != last_used_config or (time.time() > next_retry_reached_server_limit and next_retry_reached_server_limit > 0):
last_used_config = clore_config.copy()
if type(clore_config) == dict and "hostname_override" in clore_config:
@ -521,10 +556,13 @@ async def main(machine_specs):
logger.error(f"Could not parse config - {' | '.join(config_validation)}")
except Exception as e:
print(e)
last_used_config = None
logger.error(f"Exception: {e}")
logger.error(f"Traceback: {traceback.format_exc()}")
await asyncio.sleep(5)
logger.info("logger.info(last_used_config) 3")
logger.info(last_used_config)
if __name__ == "__main__":
machine_specs = specs.get(benchmark_disk=True, mock=args.mock)
asyncio.run(main(machine_specs))