- Show error if source URL is not provided. - Require password for authentication to source registry when username is provided. - Show error if destination path is not directory. - Show error if the user has no write permissions to destination path. - Show Yes/No dialog if the destination directory is not empty. --- virtManager/create.py | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/virtManager/create.py b/virtManager/create.py index af90eec..20880da 100644 --- a/virtManager/create.py +++ b/virtManager/create.py @@ -20,6 +20,7 @@ import logging import pkgutil +import os import threading import time @@ -1271,6 +1272,30 @@ class vmmCreate(vmmGObjectUI): return self._get_config_install_page() in [INSTALL_PAGE_CONTAINER_APP, INSTALL_PAGE_CONTAINER_OS, INSTALL_PAGE_VZ_TEMPLATE] + + + def _get_config_oscontainer_bootstrap(self): + return self.widget("install-oscontainer-bootstrap").get_active() + + + def _get_config_oscontainer_source_url(self): + return (self.widget("install-oscontainer-source-url-entry") + .get_text().strip()) + + + def _get_config_oscontainer_source_username(self): + return (self.widget("install-oscontainer-source-user") + .get_text().strip()) + + + def _get_config_oscontainer_source_password(self): + return self.widget("install-oscontainer-source-passwd").get_text() + + + def _get_config_oscontainer_isecure(self): + return self.widget("install-oscontainer-source-insecure").get_active() + + def _should_skip_disk_page(self): return self._get_config_install_page() in [INSTALL_PAGE_IMPORT, INSTALL_PAGE_CONTAINER_APP, @@ -1953,6 +1978,41 @@ class vmmCreate(vmmGObjectUI): if not fs: return self.err.val_err(_("An OS directory path is required.")) + if self._get_config_oscontainer_bootstrap(): + + src_url = self._get_config_oscontainer_source_url() + user = self._get_config_oscontainer_source_username() + passwd = self._get_config_oscontainer_source_password() + + # Check if the source path was provided + if not src_url: + return self.err.val_err(_("Source URL is required")) + + # Require username and password when authenticate + # to source registry. + if user and not passwd: + return self.err.val_err(_("Please specify password " + "for accessing source registry")) + + # Validate destination path + if os.path.exists(fs): + if not os.path.isdir(fs): + return self.err.val_err(_("Destination path " + "is not directory: " + fs)) + if not os.access(fs, os.W_OK): + return self.err.val_err(_("No write permissions for " + "directory path: " + fs)) + if os.listdir(fs) != []: + # Show Yes/No dialog if the destination is not empty + res = self.err.yes_no( + _("OS root directory is not empty"), + _("Creating root file system in not empty " + "directory might fail due to file conflicts.\n" + "Would you like to contanue?")) + if not res: + return False + + elif instmethod == INSTALL_PAGE_VZ_TEMPLATE: instclass = virtinst.ContainerInstaller template = self.widget("install-container-template").get_text() -- 2.9.4 _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list