unrhodecode/rhodecode/apps/admin/update_service.py
2026-01-28 12:23:56 +01:00

36 lines
1,021 B
Python

import logging
import requests
class RcStackUpdateService:
class State:
READY = "ready"
PROCESSING = "processing"
def __init__(self, server_host: str, server_port: int, feature_enabled=True):
self.host = server_host
self.port = server_port
self.enabled = feature_enabled
self.log = logging.getLogger(__name__)
def feature_available(self):
if not self.enabled or self.host is None:
return False
try:
self.get_state()
return True
except Exception as e:
self.log.error(f"Server on host machine not available, error: {e}")
return False
def get_state(self):
url_base = f"http://{self.host}:{self.port}"
url = f"{url_base}/state"
return requests.get(url).json().get("state", None)
def rcstack_update(self):
url_base = f"http://{self.host}:{self.port}"
url = f"{url_base}/rcstack/update"
return requests.get(url).json()