uploading data to multiple hosts

This commit is contained in:
DYefremov
2022-11-05 00:58:39 +03:00
parent cbec74c2a4
commit 69c3b4a6c1
3 changed files with 20 additions and 12 deletions

View File

@@ -392,10 +392,10 @@ def download_data(*, settings, download_type=DownloadType.ALL, callback=log, fil
def upload_data(*, settings, download_type=DownloadType.ALL, remove_unused=False,
callback=log, done_callback=None, use_http=False, files_filter=None):
callback=log, done_callback=None, use_http=False, files_filter=None, ext_host=None):
s_type = settings.setting_type
data_path = settings.profile_data_path
host, port, use_ssl = settings.host, settings.http_port, settings.http_use_ssl
host, port, use_ssl = ext_host or settings.host, settings.http_port, settings.http_use_ssl
user, password = settings.user, settings.password
base_url = f"http{'s' if use_ssl else ''}://{host}:{port}"
base = "web" if s_type is SettingsType.ENIGMA_2 else "control"

View File

@@ -2045,15 +2045,23 @@ class Application(Gtk.Application):
@run_task
def upload_data(self, download_type):
try:
profile = self._s_type
opts = self._settings
use_http = profile is SettingsType.ENIGMA_2 and opts.use_http
upload_data(settings=opts, download_type=download_type, remove_unused=True, use_http=use_http)
except Exception as e:
msg = "Uploading data error: {}"
log(msg.format(e), debug=self._settings.debug_mode, fmt_message=msg)
self.show_error_message(str(e))
opts = self._settings
use_http = self._s_type is SettingsType.ENIGMA_2 and opts.use_http
multiple = len(self._settings.hosts) > 1
for host in self._settings.hosts:
if multiple:
log(f"##### Uploading data on [{host}] #####")
try:
upload_data(settings=opts,
download_type=download_type,
remove_unused=True,
use_http=use_http,
ext_host=host)
except Exception as e:
msg = "Uploading data error: {}"
log(msg.format(e), debug=self._settings.debug_mode, fmt_message=msg)
if host == self._settings.host:
self.show_error_message(str(e))
def on_data_open(self, action=None, value=None):
""" Opening data via "File/Open". """

View File

@@ -373,7 +373,7 @@ class SettingsDialog:
self._s_type = SettingsType.ENIGMA_2 if self._enigma_radio_button.get_active() else SettingsType.NEUTRINO_MP
self._settings.setting_type = self._s_type
self._settings.host = self._hosts_box.get_active_id()
self._settings.host = self._host_field.get_text()
self._settings.hosts = [h[1] for h in self._hosts_box.get_model()]
self._settings.port = self._port_field.get_text()
self._settings.user = self._login_field.get_text()