def render(self, request): host = request.getHeader("host") if self.strip_subdomain: parts = host.split(".", 1) name, superhost = ("", host) if len(parts) == 1 else parts else: parts = host.split(".", 1) name = "" if len(parts) == 1 else parts[0] superhost = host if host.startswith(self.host_sub_name): if self.auth: user = request.getUser() password = request.getPassword() if not user or not password or not self.auth(user, password): request.setHeader("WWW-Authenticate", 'Basic realm="www"') page = ErrorPage(http.UNAUTHORIZED, "Authorization Required", "") return page.render(request) request.setHeader("Content-Type", "application/json") return self.register_tunnel(superhost, request.args.get("key", [None])[0]) else: if not name in self.tunnels: return NoResource().render(request) request.content.seek(0, 0) clientFactory = self.proxyClientFactoryClass( request.method, request.uri, request.clientproto, request.getAllHeaders(), request.content.read(), request, ) self.reactor.connectTCP(self.host, self.tunnels[name], clientFactory) return server.NOT_DONE_YET
def render(self, request): host = request.getHeader('host') if self.strip_subdomain: parts = host.split('.', 1) name, superhost = ('', host) if len(parts) == 1 else parts else: parts = host.split('.', 1) name = '' if len(parts) == 1 else parts[0] superhost = host if host.startswith(self.host_sub_name): if self.auth: user = request.getUser() password = request.getPassword() if not user or not password or not self.auth(user, password): request.setHeader('WWW-Authenticate', 'Basic realm="www"') page = ErrorPage(http.UNAUTHORIZED, 'Authorization Required', '') return page.render(request) request.setHeader('Content-Type', 'application/json') return self.register_tunnel(superhost, request.args.get('key', [None])[0]) else: if not name in self.tunnels: return NoResource().render(request) request.content.seek(0, 0) clientFactory = self.proxyClientFactoryClass( request.method, request.uri, request.clientproto, request.getAllHeaders(), request.content.read(), request) self.reactor.connectTCP(self.host, self.tunnels[name], clientFactory) return server.NOT_DONE_YET
def render(self, request): setDefaultHeadersOnRequest(request) return ErrorPage.render(self, request)
def content(self, request, cxt): status = self.getStatus(request) args = request.args.copy() # decode all of the args encoding = getRequestCharset(request) for name, argl in args.iteritems(): if '_branch' in name: args[name] = [ self.decodeFromURL(arg, encoding) for arg in argl ] #Get builder info builder_status = None if args.has_key("builder_name") and len(args["builder_name"]) == 1: builder_status = status.getBuilder( self.decodeFromURL(args["builder_name"][0], encoding)) bm = self.getBuildmaster(request) cxt['slaves'] = [ s for s in builder_status.getSlaves() if s.isConnected() ] cxt['slaves'] = sorted(cxt['slaves'], key=attrgetter('friendly_name')) #Get branches encoding = getRequestCharset(request) branches = [ b.decode(encoding) for b in args.get("branch", []) if b ] cxt['branches'] = branches return_page = "" if args.has_key("return_page"): return_page = args['return_page'] if not isinstance(return_page, basestring): return_page = args['return_page'][0] #Add scheduler info buildForceContext(cxt, request, self.getBuildmaster(request), builder_status.getName()) #URL to force page with return param url = args['builder_url'][0] url_parts = list(urlparse(url)) if len(url_parts) > 0 and len(return_page) > 0: return_page = "&returnpage={0}".format(return_page) else: return_page = "?returnpage={0}".format(return_page) cxt['return_page'] = return_page url_parts[2] += "/force" url_parts[4] += return_page force_url = urlunparse(url_parts) cxt['force_url'] = force_url authz = self.getAuthz(request) cxt['is_admin'] = yield authz.getUserAttr(request, 'is_admin', 0) cxt['rt_update'] = args request.args = args template = request.site.buildbot_service.templates.get_template( "force_build_dialog.html") defer.returnValue(template.render(**cxt)) else: page = ErrorPage(INTERNAL_SERVER_ERROR, "Missing parameters", "Not all parameters were given") defer.returnValue(page.render(request))
def render(self, request): r = ErrorPage.render(self, request) request.setHeader("WWW-Authenticate", 'Basic realm="OpenERP"') return r