Exemple #1
0
 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
Exemple #2
0
 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
Exemple #3
0
	def render(self, request):
		setDefaultHeadersOnRequest(request)
		return ErrorPage.render(self, request)
Exemple #4
0
    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
Exemple #6
0
 def render(self, request):
     setDefaultHeadersOnRequest(request)
     return ErrorPage.render(self, request)
 def render(self, request):
     r = ErrorPage.render(self, request)
     request.setHeader("WWW-Authenticate", 'Basic realm="OpenERP"')
     return r