Пример #1
0
    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()
Пример #2
0
    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()