def _read_rhn_proxy_settings(self): # Read and store rhn-setup's proxy settings, as they have been set # on the prior screen (which is owned by rhn-setup) up2date_cfg = config.initUp2dateConfig() cfg = rhsm.config.initConfig() if up2date_cfg['enableProxy']: proxy = up2date_cfg['httpProxy'] if proxy: # Remove any URI scheme provided proxy = remove_scheme(proxy) try: host, port = proxy.split(':') cfg.set('server', 'proxy_hostname', host) cfg.set('server', 'proxy_port', port) except ValueError: cfg.set('server', 'proxy_hostname', proxy) cfg.set('server', 'proxy_port', rhsm.config.DEFAULT_PROXY_PORT) if up2date_cfg['enableProxyAuth']: cfg.set('server', 'proxy_user', up2date_cfg['proxyUser']) cfg.set('server', 'proxy_password', up2date_cfg['proxyPassword']) else: cfg.set('server', 'proxy_hostname', '') cfg.set('server', 'proxy_port', '') cfg.set('server', 'proxy_user', '') cfg.set('server', 'proxy_password', '') cfg.save() self.backend.cp_provider.set_connection_info()
def testConnection(self): proxy_host = remove_scheme(self.cfg.get("server", "proxy_hostname")) proxy_port = self.cfg.get("server", "proxy_port") proxy_user = self.cfg.get("server", "proxy_user") proxy_password = self.cfg.get("server", "proxy_password") server_host = self.cfg.get("server", "hostname") server_port = self.cfg.get("server", "port") server_prefix = self.cfg.get("server", "prefix") cp = connection.UEPConnection(host=server_host, ssl_port=server_port, handler=server_prefix, proxy_hostname=proxy_host, proxy_port=proxy_port, proxy_user=proxy_user, proxy_password=proxy_password, username=None, password=None, cert_file=None, key_file=None ) try: cp.getStatus() except connection.RemoteServerException, e: log.debug("Reporting proxy connection as good despite %s" % \ e.code) return True
def display_connection_status(self, button): connection_label = self.xml.get_widget("connectionStatusLabel") if not len(remove_scheme(self.cfg.get("server", "proxy_hostname"))): connection_label.set_label(_("Proxy location cannot be empty")) elif self.test_connection(): connection_label.set_label(_("Proxy connection succeeded")) else: connection_label.set_label(_("Proxy connection failed"))
def test_connection(self): proxy_host = remove_scheme(self.cfg.get("server", "proxy_hostname")) proxy_port = self.cfg.get_int("server", "proxy_port") cp = self.cp_provider.get_no_auth_cp() try: cp.getStatus() except connection.RemoteServerException, e: log.debug("Reporting proxy connection as good despite %s" % e.code) return True
def _read_rhn_proxy_settings(self): # Read and store rhn-setup's proxy settings, as they have been set # on the prior screen (which is owned by rhn-setup) up2date_cfg = config.initUp2dateConfig() cfg = rhsm.config.initConfig() if up2date_cfg['enableProxy']: proxy = up2date_cfg['httpProxy'] if proxy: # Remove any URI scheme provided proxy = remove_scheme(proxy) try: host, port = proxy.split(':') cfg.set('server', 'proxy_hostname', host) cfg.set('server', 'proxy_port', port) except ValueError: cfg.set('server', 'proxy_hostname', proxy) cfg.set('server', 'proxy_port', rhsm.config.DEFAULT_PROXY_PORT) if up2date_cfg['enableProxyAuth']: cfg.set('server', 'proxy_user', up2date_cfg['proxyUser']) cfg.set('server', 'proxy_password', up2date_cfg['proxyPassword']) else: cfg.set('server', 'proxy_hostname', '') cfg.set('server', 'proxy_port', '') cfg.set('server', 'proxy_user', '') cfg.set('server', 'proxy_password', '') cfg.save() self.backend.uep = rhsm.connection.UEPConnection( host=cfg.get('server', 'hostname'), ssl_port=int(cfg.get('server', 'port')), handler=cfg.get('server', 'prefix'), proxy_hostname=cfg.get('server', 'proxy_hostname'), proxy_port=cfg.get('server', 'proxy_port'), proxy_user=cfg.get('server', 'proxy_user'), proxy_password=cfg.get('server', 'proxy_password'), username=None, password=None, cert_file=ConsumerIdentity.certpath(), key_file=ConsumerIdentity.keypath())
def write_values(self, widget=None, dummy=None): proxy = self.xml.get_widget("proxyEntry").get_text() or "" # don't save these values if they are disabled in the gui if proxy and self.xml.get_widget("enableProxyButton").get_active(): # Remove any URI scheme provided proxy = remove_scheme(proxy) # Update the proxy entry field to show we removed any scheme self.xml.get_widget("proxyEntry").set_text(proxy) try: proxy_hostname, proxy_port = proxy.split(':') self.cfg.set("server", "proxy_hostname", proxy_hostname) self.cfg.set("server", "proxy_port", proxy_port) except ValueError: # no port? just write out the hostname and assume default self.cfg.set("server", "proxy_hostname", proxy) self.cfg.set("server", "proxy_port", rhsm.config.DEFAULT_PROXY_PORT) else: # delete config options if we disable it in the ui self.cfg.set("server", "proxy_hostname", "") self.cfg.set("server", "proxy_port", "") if self.xml.get_widget("enableProxyAuthButton").get_active(): if self.xml.get_widget("proxyUserEntry").get_text() is not None: self.cfg.set("server", "proxy_user", str(self.xml.get_widget("proxyUserEntry").get_text())) if self.xml.get_widget("proxyPasswordEntry").get_text() is not None: self.cfg.set("server", "proxy_password", str(self.xml.get_widget("proxyPasswordEntry").get_text())) else: self.cfg.set("server", "proxy_user", "") self.cfg.set("server", "proxy_password", "") try: self.cfg.save() self.cp_provider.set_connection_info() except Exception: show_error_window(_("There was an error saving your configuration.") + _("Make sure that you own %s.") % self.cfg.fileName, parent=self.dlg)
def set_connection_info(self, host=None, ssl_port=None, handler=None, cert_file=None, key_file=None, proxy_hostname_arg=None, proxy_port_arg=None, proxy_user_arg=None, proxy_password_arg=None): cfg = rhsm.config.initConfig() self.cert_file = ConsumerIdentity.certpath() self.key_file = ConsumerIdentity.keypath() self.server_hostname = host or cfg.get('server', 'hostname') self.server_port = ssl_port or cfg.get_int('server', 'port') self.server_prefix = handler or cfg.get('server', 'prefix') self.proxy_hostname = proxy_hostname_arg or remove_scheme(cfg.get('server', 'proxy_hostname')) self.proxy_port = proxy_port_arg or cfg.get_int('server', 'proxy_port') self.proxy_user = proxy_user_arg or cfg.get('server', 'proxy_user') self.proxy_password = proxy_password_arg or cfg.get('server', 'proxy_password') self.clean()
def test_no_port(self): proxy_url = "proxy.example.com" res = remove_scheme(proxy_url) self.assertEquals(res, proxy_url)
def test_https_scheme(self): proxy_url = "https://example.com:3128" res = remove_scheme(proxy_url) self.assertEquals(res, "example.com:3128")
def test_colon_port(self): proxy_url = "proxy.example.com:3128" res = remove_scheme(proxy_url) self.assertEquals(res, proxy_url)