--- exception.py | 70 ---------------------------------------- gui.py | 4 +-- text.py | 16 +-------- ui/exnSave.glade | 93 +---------------------------------------------------- 4 files changed, 5 insertions(+), 178 deletions(-) diff --git a/exception.py b/exception.py index 5a41e9e..8651355 100644 --- a/exception.py +++ b/exception.py @@ -197,76 +197,6 @@ def dumpException(out, text, tb, anaconda): out.write("\nException occurred during %s file copy:\n" % (file,)) traceback.print_exc(None, out) -def scpAuthenticate(master, childpid, password): - while 1: - # Read up to password prompt. Propagate OSError exceptions, which - # can occur for anything that causes scp to immediately die (bad - # hostname, host down, etc.) - buf = os.read(master, 4096) - if buf.lower().find("password: ") != -1: - os.write(master, password+"\n") - # read the space and newline that get echoed back - os.read(master, 2) - break - - while 1: - buf = "" - try: - buf = os.read(master, 4096) - except (OSError, EOFError): - break - - (pid, childstatus) = os.waitpid (childpid, 0) - return childstatus - -# Save the traceback to a remote system via SCP. Returns success or not. -def copyExceptionToRemote(intf, scpInfo): - import pty - - (host, path, user, password) = scpInfo - - if host.find(":") != -1: - (host, port) = host.split(":") - - # Try to convert the port to an integer just as a check to see - # if it's a valid port number. If not, they'll get a chance to - # correct the information when scp fails. - try: - int(port) - portArgs = ["-P", port] - except ValueError: - portArgs = [] - else: - portArgs = [] - - # Thanks to Will Woods <wwoods@xxxxxxxxxx> for the scp control - # here and in scpAuthenticate. - - # Fork ssh into its own pty - (childpid, master) = pty.fork() - if childpid < 0: - log.critical("Could not fork process to run scp") - return False - elif childpid == 0: - # child process - run scp - args = ["scp", "-oNumberOfPasswordPrompts=1", - "-oStrictHostKeyChecking=no"] + portArgs + \ - ["/tmp/anacdump.txt", "%s@%s:%s" % (user, host, path)] - os.execvp("scp", args) - - # parent process - try: - childstatus = scpAuthenticate(master, childpid, password) - except OSError: - return False - - os.close(master) - - if os.WIFEXITED(childstatus) and os.WEXITSTATUS(childstatus) == 0: - return True - else: - return False - # Save the traceback to a removable storage device, such as a floppy disk # or a usb/firewire drive. If there's no filesystem on the disk/partition, # write a vfat one. diff --git a/gui.py b/gui.py index 123f287..2a85722 100755 --- a/gui.py +++ b/gui.py @@ -730,8 +730,6 @@ class SaveExceptionWindow: def __init__(self, anaconda, longTracebackFile=None, screen=None): exnxml = gtk.glade.XML(findGladeFile("exnSave.glade"), domain="anaconda") - self.hostEntry = exnxml.get_widget("hostEntry") - self.destEntry = exnxml.get_widget("destEntry") self.usernameEntry = exnxml.get_widget("usernameEntry") self.passwordEntry = exnxml.get_widget("passwordEntry") @@ -797,7 +795,7 @@ class SaveExceptionWindow: elif self.saveToLocal(): return self.localChooser.get_filename() else: - return map(lambda e: e.get_text(), [self.hostEntry, self.destEntry, self.usernameEntry, self.passwordEntry]) + return map(lambda e: e.get_text(), [self.usernameEntry, self.passwordEntry]) def pop(self): self.window.destroy() diff --git a/text.py b/text.py index 71ec6d7..41ca1c7 100644 --- a/text.py +++ b/text.py @@ -155,13 +155,9 @@ class SaveExceptionWindow: def _destCb(self, *args): if self.rg.getSelection() == "disk": - self.hostEntry.setFlags(FLAG_DISABLED, FLAGS_SET) - self.destEntry.setFlags(FLAG_DISABLED, FLAGS_SET) self.usernameEntry.setFlags(FLAG_DISABLED, FLAGS_SET) self.passwordEntry.setFlags(FLAG_DISABLED, FLAGS_SET) else: - self.hostEntry.setFlags(FLAG_DISABLED, FLAGS_RESET) - self.destEntry.setFlags(FLAG_DISABLED, FLAGS_RESET) self.usernameEntry.setFlags(FLAG_DISABLED, FLAGS_RESET) self.passwordEntry.setFlags(FLAG_DISABLED, FLAGS_RESET) @@ -175,7 +171,7 @@ class SaveExceptionWindow: if self.saveToDisk(): return self.diskList.current() else: - return map(lambda e: e.value(), [self.hostEntry, self.destEntry, self.usernameEntry, self.passwordEntry]) + return map(lambda e: e.value(), [self.usernameEntry, self.passwordEntry]) def pop(self): self.screen.popWindow() @@ -192,18 +188,12 @@ class SaveExceptionWindow: self.remoteButton.setCallback(self._destCb, None) buttons = ButtonBar(self.screen, [TEXT_OK_BUTTON, TEXT_CANCEL_BUTTON]) - self.hostEntry = Entry(24) - self.destEntry = Entry(24) self.usernameEntry = Entry(24) self.passwordEntry = Entry(24, password=1) self.diskList = Listbox(height=3, scroll=1) - remoteGrid = Grid(2, 4) - remoteGrid.setField(Label(_("Host")), 0, 0, anchorLeft=1) - remoteGrid.setField(self.hostEntry, 1, 0) - remoteGrid.setField(Label(_("Remote path")), 0, 1, anchorLeft=1) - remoteGrid.setField(self.destEntry, 1, 1) + remoteGrid = Grid(2, 2) remoteGrid.setField(Label(_("User name")), 0, 2, anchorLeft=1) remoteGrid.setField(self.usernameEntry, 1, 2) remoteGrid.setField(Label(_("Password")), 0, 3, anchorLeft=1) @@ -223,8 +213,6 @@ class SaveExceptionWindow: # self.diskList.setCurrent("sda") - self.hostEntry.setFlags(FLAG_DISABLED, FLAGS_SET) - self.destEntry.setFlags(FLAG_DISABLED, FLAGS_SET) self.usernameEntry.setFlags(FLAG_DISABLED, FLAGS_SET) self.passwordEntry.setFlags(FLAG_DISABLED, FLAGS_SET) else: diff --git a/ui/exnSave.glade b/ui/exnSave.glade index b7ba57a..0bab909 100644 --- a/ui/exnSave.glade +++ b/ui/exnSave.glade @@ -74,7 +74,7 @@ <child> <widget class="GtkLabel" id="label6"> <property name="visible">True</property> - <property name="label" translatable="yes">Select a destination for the exception information.</property> + <property name="label" translatable="yes">Your traceback can either be saved to a local disk or to a bug tracking system.</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> @@ -228,7 +228,7 @@ <widget class="GtkRadioButton" id="remoteButton"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="label" translatable="yes">_Remote (scp)</property> + <property name="label" translatable="yes">_Remote (%s)</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> @@ -271,56 +271,6 @@ <property name="spacing">5</property> <child> - <widget class="GtkLabel" id="label2"> - <property name="visible">True</property> - <property name="label">Host (host:port)</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label3"> - <property name="visible">True</property> - <property name="label">Destination file</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - - <child> <widget class="GtkLabel" id="label4"> <property name="visible">True</property> <property name="label">User name</property> @@ -385,45 +335,6 @@ <property name="spacing">5</property> <child> - <widget class="GtkEntry" id="hostEntry"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="has_focus">True</property> - <property name="editable">True</property> - <property name="visibility">True</property> - <property name="max_length">0</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char">â?¢</property> - <property name="activates_default">False</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkEntry" id="destEntry"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">True</property> - <property name="visibility">True</property> - <property name="max_length">0</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char">â?¢</property> - <property name="activates_default">False</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> <widget class="GtkEntry" id="usernameEntry"> <property name="visible">True</property> <property name="can_focus">True</property> -- 1.5.5.1 _______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/anaconda-devel-list