unrhodecode/rhodecode/apps/admin/update_service.py
2026-01-25 13:57:44 +01:00

38 lines
1 KiB
Python

import logging
import os
import requests
from rhodecode.lib.type_utils import str2bool
class RcStackUpdateService:
class State:
READY = "ready"
PROCESSING = "processing"
def __init__(self, server_host: str, server_port: int):
self.host = server_host
self.port = server_port
self.log = logging.getLogger(__name__)
def feature_available(self):
if str2bool(os.environ.get("DISABLE_RC_UPDATE_SERVICE", "false")) 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()