On Mon, 2009-12-21 at 11:49 -0500, Darryl L. Pierce wrote: > Now the app will show the current connection. When the user selects > a different host then any connection exception is caught and the > previous connection restored. > > Signed-off-by: Darryl L. Pierce <[email protected]> > --- > nodeadmin/changehost.py | 6 ++++-- > nodeadmin/configscreen.py | 5 ++++- > nodeadmin/libvirtworker.py | 16 +++++++++++++++- > 3 files changed, 23 insertions(+), 4 deletions(-) > > diff --git a/nodeadmin/changehost.py b/nodeadmin/changehost.py > index 23e6854..f604c03 100644 > --- a/nodeadmin/changehost.py > +++ b/nodeadmin/changehost.py > @@ -27,7 +27,10 @@ CONNECTED_PAGE = 2 > > class ChangeHostConfigScreen(HostListConfigScreen): > def __init__(self): > - HostListConfigScreen.__init__(self, "Change Host") > + HostListConfigScreen.__init__(self, "") > + > + def get_title(self): > + return "Currently: %s" % self.get_libvirt().get_url() > > def get_elements_for_page(self, screen, page): > if page is CONNECTION_LIST_PAGE: return > self.get_connection_list_page(screen) > @@ -36,7 +39,6 @@ class ChangeHostConfigScreen(HostListConfigScreen): > def process_input(self, page): > if page is CONNECTION_LIST_PAGE: > logging.info("Changing libvirt connection to %s" % > self.get_selected_connection()) > - libvirtworker.set_default_url(self.get_selected_connection()) > > self.get_libvirt().open_connection(self.get_selected_connection()) > elif page is CONNECTED_PAGE: self.set_finished() > > diff --git a/nodeadmin/configscreen.py b/nodeadmin/configscreen.py > index 02ab5b4..7a23325 100644 > --- a/nodeadmin/configscreen.py > +++ b/nodeadmin/configscreen.py > @@ -37,6 +37,9 @@ class ConfigScreen: > self.__libvirt = LibvirtWorker() > self.__vm_config = VirtManagerConfig() > > + def get_title(self): > + return self.__title > + > def get_hal(self): > return self.__hal > > @@ -83,7 +86,7 @@ class ConfigScreen: > screen = SnackScreen() > elements = self.get_elements_for_page(screen, > self.__current_page) > # TODO: need to set the form height to the number of elements on > the page > - gridform = GridForm(screen, self.__title, 1, 10) > + gridform = GridForm(screen, self.get_title(), 1, 10) > current_element = 0 > for element in elements: > gridform.add(element, 0, current_element) > diff --git a/nodeadmin/libvirtworker.py b/nodeadmin/libvirtworker.py > index b35509f..3338f80 100644 > --- a/nodeadmin/libvirtworker.py > +++ b/nodeadmin/libvirtworker.py > @@ -74,6 +74,8 @@ class LibvirtWorker: > def __init__(self, url = None): > if url is None: url = get_default_url() > logging.info("Connecting to libvirt: %s" % url) > + self.__url = None > + self.__conn = None > self.open_connection(url) > self.__capabilities = > virtinst.CapabilitiesParser.parse(self.__conn.getCapabilities()) > self.__net = virtinst.VirtualNetworkInterface(conn = self.__conn) > @@ -84,9 +86,21 @@ class LibvirtWorker: > '''Returns the underlying connection.''' > return self.__conn > > + def get_url(self): > + return self.__url > + > def open_connection(self, url): > '''Lets the user change the url for the connection.''' > - self.__conn = libvirt.open(url) > + old_conn = self.__conn > + old_url = self.__url > + try: > + self.__conn = libvirt.open(url) > + self.__url = url > + set_default_url(url) > + except Exception, error: > + self.__conn = old_conn > + self.__url = old_url > + raise error > > def list_domains(self, defined = True, started = True): > '''Lists all domains.'''
Ack, pushed with modified message (s/remove/remote) _______________________________________________ Ovirt-devel mailing list [email protected] https://www.redhat.com/mailman/listinfo/ovirt-devel
