38 lines
1 KiB
Python
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()
|