Update proxy to use similar named methods to new API calls

This commit is contained in:
Brett Williams
2026-06-06 01:16:53 -05:00
parent 95341e815c
commit 250aa22557
6 changed files with 31 additions and 21 deletions
+12 -2
View File
@@ -441,8 +441,18 @@ def get_engines_info():
return engine_data
@server.get('/api/engines/names')
def get_engine_names():
result = []
for engine_class in EngineManager.supported_engines():
data = EngineManager.all_version_data_for_engine(engine_class.name())
if data:
result.append(engine_class.name())
return result
@server.get('/api/engines/<engine_name>')
def get_engine_info(engine_name):
def get_engine(engine_name):
try:
response_type = _validated_engine_response_type()
engine_class = EngineManager.engine_class_with_name(engine_name)
@@ -454,7 +464,7 @@ def get_engine_info(engine_name):
@server.get('/api/<engine_name>/is_available')
def is_engine_available(engine_name):
def get_engine_availability(engine_name):
return {'engine': engine_name, 'available': RenderQueue.is_available_for_job(engine_name),
'cpu_count': int(psutil.cpu_count(logical=False)),
'versions': EngineManager.all_version_data_for_engine(engine_name),
+10 -10
View File
@@ -257,15 +257,15 @@ class RenderServerProxy:
response = self.request(f'engine_for_filename?filename={os.path.basename(filename)}', timeout)
return response.text
def get_installed_engines(self, timeout=5):
return self.get_all_engine_info(timeout=timeout)
def is_engine_available(self, engine_name:str, timeout=5):
def get_engine_availability(self, engine_name:str, timeout=5):
return self.request_data(f'{engine_name}/is_available', timeout)
def get_all_engine_info(self, response_type='standard', timeout=5):
def get_engine_names(self, timeout=5):
return self.request_data('engines/names', timeout=timeout)
def get_engines(self, response_type='standard', timeout=5):
"""
Fetches all engine information from the server.
Fetches engine information from the server.
Args:
response_type (str, optional): Returns standard or full version of engine info
@@ -277,7 +277,7 @@ class RenderServerProxy:
all_data = self.request_data(f'engines?response_type={response_type}', timeout=timeout)
return all_data
def get_engine_info(self, engine_name:str, response_type='standard', timeout=5):
def get_engine(self, engine_name:str, response_type='standard', timeout=5):
"""
Fetches specific engine information from the server.
@@ -291,9 +291,9 @@ class RenderServerProxy:
"""
return self.request_data(f'engines/{engine_name}?response_type={response_type}', timeout)
def delete_engine(self, engine_name:str, version:str, system_os=None, cpu=None):
def delete_engine_download(self, engine_name:str, version:str, system_os=None, cpu=None):
"""
Sends a request to the server to delete a specific engine.
Sends a request to the server to delete a specific engine download.
Args:
engine_name (str): The name of the engine to delete.
@@ -305,7 +305,7 @@ class RenderServerProxy:
Response: The response from the server.
"""
form_data = {'engine': engine_name, 'version': version, 'system_os': system_os, 'cpu': cpu}
return requests.post(f'http://{self.hostname}:{self.port}/api/delete_engine', json=form_data)
return self._post('delete_engine', json=form_data)
# --------------------------------------------
# Download Files:
+1 -1
View File
@@ -276,7 +276,7 @@ class DistributedJobManager:
host_properties = ZeroconfServer.get_hostname_properties(hostname)
if host_properties.get('api_version') == API_VERSION:
if not system_os or (system_os and system_os == host_properties.get('system_os')):
response = RenderServerProxy(hostname).is_engine_available(engine_name)
response = RenderServerProxy(hostname).get_engine_availability(engine_name)
if response and response.get('available', False):
found_available_servers.append(response)
+4 -4
View File
@@ -66,7 +66,7 @@ class NewRenderJobForm(QWidget):
# Job / Server Data
self.server_proxy = RenderServerProxy(socket.gethostname())
self.project_info = None
self.installed_engines = {}
self.installed_engines = []
self.preferred_engine = None
# Setup
@@ -345,7 +345,7 @@ class NewRenderJobForm(QWidget):
self.engine_version_combo.addItem('latest')
self.file_format_combo.clear()
if current_engine:
engine_info = self.server_proxy.get_engine_info(current_engine, 'full', timeout=10)
engine_info = self.server_proxy.get_engine(current_engine, 'full', timeout=10)
self.current_engine_options = engine_info.get('options', [])
if not engine_info:
raise FileNotFoundError(f"Cannot get information about engine '{current_engine}'")
@@ -404,7 +404,7 @@ class NewRenderJobForm(QWidget):
"""Called by the GetProjectInfoWorker - Do not call directly."""
try:
self.engine_type.addItems(self.installed_engines.keys())
self.engine_type.addItems(self.installed_engines)
self.engine_type.setCurrentText(self.preferred_engine)
self.engine_changed()
@@ -633,7 +633,7 @@ class GetProjectInfoWorker(QThread):
def run(self):
try:
# get the engine info and add them all to the ui
self.window.installed_engines = self.window.server_proxy.get_installed_engines()
self.window.installed_engines = self.window.server_proxy.get_engine_names()
# select the best engine for the file type
self.window.preferred_engine = self.window.server_proxy.get_engine_for_filename(self.project_path)
+2 -2
View File
@@ -93,7 +93,7 @@ class EngineBrowserWindow(QMainWindow):
def update_table(self):
def update_table_worker():
raw_server_data = RenderServerProxy(self.hostname).get_all_engine_info()
raw_server_data = RenderServerProxy(self.hostname).get_engines()
if not raw_server_data:
return
@@ -158,7 +158,7 @@ class EngineBrowserWindow(QMainWindow):
if reply is not QMessageBox.StandardButton.Yes:
return
result = RenderServerProxy(self.hostname).delete_engine(
result = RenderServerProxy(self.hostname).delete_engine_download(
engine_info['engine'], engine_info['version'], engine_info.get('system_os'), engine_info.get('cpu'),
)
if result.ok:
+2 -2
View File
@@ -37,7 +37,7 @@ class GetEngineInfoWorker(QThread):
self.parent = parent
def run(self):
data = RenderServerProxy(socket.gethostname()).get_all_engine_info()
data = RenderServerProxy(socket.gethostname()).get_engines()
self.done.emit(data)
class SettingsWindow(QMainWindow):
@@ -549,4 +549,4 @@ if __name__ == "__main__":
app = QApplication([])
window = SettingsWindow()
window.show()
app.exec()
app.exec()