def DoRemoveProxy(self): errors = [] try: logging.info('Removing bash...') backend.remove_bash() except Exception as e: errors.append(e) try: logging.info('Removing environment...') backend.remove_environment() except Exception as e: errors.append(e) try: logging.info('Removing apt...') backend.remove_apt() except Exception as e: errors.append(e) try: logging.info('Removing gsettings...') backend.remove_gsettings() except Exception as e: errors.append(e) try: logging.info('Removing sudoers...') backend.remove_sudoers() except Exception as e: errors.append(e) # Finalize if errors: logging.error('The following errors occured while removing proxy ' 'settings\n{}'.format('\n'.join(errors))) else: logging.info('Proxy settings were succesfully removed.') okbox = Synchronizer(wx.MessageBox, args=('Proxy settings were succesfully ' 'removed. You might have to restart ' 'your browser or any other ' 'applications for changes to take ' 'effect.', 'Settings Removed'), kwargs={'style': wx.OK}) okbox.run()
def DoApplyProxy(self, protos, hosts, ports, user, pwd, noproxy, useauth): # Check before applying.... checknames = ('bash', 'environment', 'apt', 'gsettings', 'sudoers') checkfuncs = (backend.check_bash, backend.check_environment, backend.check_apt, backend.check_gsettings, backend.check_sudoers) remfuncs = (backend.remove_bash, backend.remove_environment, backend.remove_apt, backend.remove_gsettings, backend.remove_sudoers) found = [] remfound = {} for cfunc, name, rfunc in zip(checkfuncs, checknames, remfuncs): logging.info('Checking {}...'.format(name)) result = cfunc() if result: found.extend(result) remfound[name] = rfunc # If found any settings, ask for overwrite if found: message = ('Proxy settings were detected in:\n{}' .format('\n'.join(found))) logging.warning(message) warnbox = Synchronizer(wx.MessageBox, args=('Some proxy settings were detected ' 'in your system. Do you want to ' 'overwite them?', 'Confirm Overwrite' ), kwargs={'style': wx.CENTRE | wx.ICON_QUESTION | wx.YES_NO}) overwrite = warnbox.run() if overwrite == wx.NO: logging.info('No settings were applied.') return else: logging.warning('Overwriting settings...') for name, rfunc in remfound.items(): logging.info('Removing {}...'.format(name)) rfunc() # Catch all the exceptions individually and report later errors = [] try: logging.info('Setting bash...') backend.set_bash(protos, hosts, ports, user=user, pwd=pwd, noproxy=noproxy, useauth=useauth) except Exception as e: errors.append(e) try: logging.info('Setting environment...') backend.set_environment(protos, hosts, ports, user=user, pwd=pwd, noproxy=noproxy, useauth=useauth) except Exception as e: errors.append(e) try: logging.info('Setting apt...') backend.set_apt(protos, hosts, ports, user=user, pwd=pwd, useauth=useauth) except Exception as e: errors.append(e) try: logging.info('Setting gsettings...') backend.set_gsettings(protos, hosts, ports, user=user, pwd=pwd, noproxy=noproxy) except Exception as e: errors.append(e) try: logging.info('Setting sudoers...') backend.set_sudoers(protos, noproxy=noproxy) except Exception as e: errors.append(e) # Finalize if errors: errstring = '\n'.join((str(e) for e in errors)) logging.error('The following errors occured while applying proxy ' 'settings\n{}'.format(errstring)) else: logging.info('Proxy settings were succesfully applied.') okbox = Synchronizer(wx.MessageBox, args=('Proxy settings were succesfully ' 'applied. You might have to restart ' 'your browser or any other ' 'applications for changes to take ' 'effect.', 'Settings Applied'), kwargs={'style': wx.OK}) okbox.run()