--- data/org.virt-manager.virt-manager.gschema.xml | 6 ++++ virtManager/config.py | 4 +++ virtManager/create.py | 38 ++++++++++++++++++-------- 3 files changed, 37 insertions(+), 11 deletions(-) diff --git a/data/org.virt-manager.virt-manager.gschema.xml b/data/org.virt-manager.virt-manager.gschema.xml index 411c812..d88450f 100644 --- a/data/org.virt-manager.virt-manager.gschema.xml +++ b/data/org.virt-manager.virt-manager.gschema.xml @@ -153,6 +153,12 @@ <schema id="org.virt-manager.virt-manager.urls" path="/org/virt-manager/virt-manager/urls/"> + <key name="containers" type="as"> + <default>[]</default> + <summary>Saved list of source URLs</summary> + <description>Saved list of source URLs used to bootstrap OS containers</description> + </key> + <key name="urls" type="as"> <default>[]</default> <summary>Saved list of install URLs</summary> diff --git a/virtManager/config.py b/virtManager/config.py index 5b04013..6fd6530 100644 --- a/virtManager/config.py +++ b/virtManager/config.py @@ -549,11 +549,15 @@ class vmmConfig(object): del urls[len(urls) - 1] self.conf.set(gsettings_path, urls) + def add_container_url(self, url): + self._url_add_helper("/urls/containers", url) def add_media_url(self, url): self._url_add_helper("/urls/urls", url) def add_iso_path(self, path): self._url_add_helper("/urls/isos", path) + def get_container_urls(self): + return self.conf.get("/urls/containers") def get_media_urls(self): return self.conf.get("/urls/urls") def get_iso_paths(self): diff --git a/virtManager/create.py b/virtManager/create.py index 1559a34..5007d77 100644 --- a/virtManager/create.py +++ b/virtManager/create.py @@ -288,17 +288,22 @@ class vmmCreate(vmmGObjectUI): text = uiutil.init_combo_text_column(conn_list, 1) text.set_property("ellipsize", Pango.EllipsizeMode.MIDDLE) + def set_model_list(widget_id): + lst = self.widget(widget_id) + model = Gtk.ListStore(str) + lst.set_model(model) + lst.set_entry_text_column(0) + # ISO media list - iso_list = self.widget("install-iso-combo") - iso_model = Gtk.ListStore(str) - iso_list.set_model(iso_model) - iso_list.set_entry_text_column(0) + set_model_list("install-iso-combo") # Lists for the install urls - media_url_list = self.widget("install-url-combo") - media_url_model = Gtk.ListStore(str) - media_url_list.set_model(media_url_model) - media_url_list.set_entry_text_column(0) + set_model_list("install-url-combo") + + # Lists for OS container bootstrap + set_model_list("install-oscontainer-source-url-combo") + + def sep_func(model, it, combo): ignore = combo @@ -440,6 +445,11 @@ class vmmCreate(vmmGObjectUI): self.widget("install-oscontainer-source-insecure").set_active(False) self.widget("install-oscontainer-bootstrap").set_active(False) self.widget("install-oscontainer-auth-options").set_expanded(False) + src_model = (self.widget("install-oscontainer-source-url-combo") + .get_model()) + _populate_media_model(src_model, self.config.get_container_urls()) + + # Install VZ container from template self.widget("install-container-template").set_text("centos-7-x86_64") @@ -1278,9 +1288,14 @@ class vmmCreate(vmmGObjectUI): 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_url(self, store_media=False): + src_url = (self.widget("install-oscontainer-source-url-entry") + .get_text().strip()) + + if src_url and store_media: + self.config.add_container_url(src_url) + + return src_url def _get_config_oscontainer_source_username(self): @@ -2134,6 +2149,7 @@ class vmmCreate(vmmGObjectUI): # Validation passed, store the install path (if there is one) in # gsettings + self._get_config_oscontainer_source_url(store_media=True) self._get_config_local_media(store_media=True) self._get_config_url_info(store_media=True) return True -- 2.9.4 _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list