def getChild(self, path, req): if path == "force": return self.force(req) if path == "ping": return self.ping(req) if path == "events": num = req.postpath.pop(0) req.prepath.append(num) num = int(num) # TODO: is this dead code? .statusbag doesn't exist,right? log.msg("getChild['path']: %s" % req.uri) return NoResource("events are unavailable until code gets fixed") filename = req.postpath.pop(0) req.prepath.append(filename) e = self.builder_status.getEventNumbered(num) if not e: return NoResource("No such event '%d'" % num) file = e.files.get(filename, None) if file == None: return NoResource("No such file '%s'" % filename) if type(file) == type(""): if file[:6] in ("<HTML>", "<html>"): return static.Data(file, "text/html") return static.Data(file, "text/plain") return file if path == "builds": return BuildsResource(self.builder_status, self.builder_control) return HtmlResource.getChild(self, path, req)
def render_GET(self, request): # https://stackoverflow.com/questions/1538617/http-download-very-big-file/1657324 if 'camid' in request.args: videoID = request.args.get('camid')[0] myEditedFileName = os.path.join(self._CacheLocation, str(videoID) + "-edit.mp4") myPlayListFileName = os.path.join(self._CacheLocation, str(videoID) + ".m3u8") finalVideoFileToServe = os.path.join(self._CacheLocation, str(videoID) + ".mp4") if os.path.isfile(myEditedFileName): finalVideoFileToServe = myEditedFileName elif os.path.isfile(myPlayListFileName): finalVideoFileToServe = myPlayListFileName if os.path.isfile(finalVideoFileToServe): request.responseHeaders.setRawHeaders( "server", ["Bliknet Streamer HTTP Server"]) # request.responseHeaders.setRawHeaders("server", ["Bliknet Streamer HTTP Server"]) # request.responseHeaders.setRawHeaders("Content-Type", ["text/vtt;charset=utf-8"]) request.responseHeaders.setRawHeaders( "Access-Control-Allow-Origin", ["*"]) request.responseHeaders.setRawHeaders( "Content-Type", [mimetypes.guess_type(finalVideoFileToServe)[0]]) request.responseHeaders.setRawHeaders( "Content-Length", [os.path.getsize(finalVideoFileToServe)]) rangedFile = static.File(finalVideoFileToServe, defaultType='video/octet-stream') return rangedFile.render_GET(request) else: return NoResource() elif "nasfile" in request.args and self._NASMount is not None: NASFileLocation = request.args.get('nasfile')[0] myFileName = os.path.join(self._NASMount, str(NASFileLocation)) if os.path.isfile(myFileName): myMimeType = mimetypes.guess_type(myFileName) request.responseHeaders.setRawHeaders( "server", ["Bliknet Streamer HTTP Server"]) request.responseHeaders.setRawHeaders("Content-Type", [myMimeType]) request.responseHeaders.setRawHeaders( "Access-Control-Allow-Origin", ["*"]) request.responseHeaders.setRawHeaders( "Content-Length", [os.path.getsize(myFileName)]) rangedFile = static.File(myFileName, defaultType=myMimeType) return rangedFile.render_GET(request) else: return NoResource() else: return NoResource()
def html(self, request): tpl = "<HTML><BODY>\n\n%s\n\n</body></html>\n" pptpl = "<HTML><BODY>\n\n<pre>%s</pre>\n\n</body></html>\n" t = request.postpath[0] # one of 'short', 'long' #, or 'html' if isinstance(self.results, failure.Failure): # it would be nice to remove unittest functions from the # traceback like unittest.format_exception() does. if t == 'short': s = StringIO.StringIO() self.results.printTraceback(s) return pptpl % PRE(s.getvalue()) elif t == 'long': s = StringIO.StringIO() self.results.printDetailedTraceback(s) return pptpl % PRE(s.getvalue()) #elif t == 'html': # return tpl % formatFailure(self.results) # ACK! source lines aren't stored in the Failure, rather, # formatFailure pulls them (by filename) from the local # disk. Feh. Even printTraceback() won't work. Double feh. return NoResource("No such mode '%s'" % t) if self.results == None: return tpl % "No results to show: test probably passed." # maybe results are plain text? return pptpl % PRE(self.results)
def decorator(*args, **kwargs): try: return func(*args, **kwargs) except: failure = Failure() msg = getException(failure) msg += ': ' + failure.getErrorMessage() return NoResource(msg)
def getChild(self, path, request): try: name = tuple(path.split(".")) result = self.test_results[name] return TestResult(name, result) except KeyError: return NoResource("No such test name '%s'" % path)
def getChild(self, path, req): try: changeid = int(path) except ValueError: return NoResource("Expected a change number") return ChangeResource(changeid)
def getChild(self, path, req): for log in self.step_status.getLogs(): if path == log.getName(): if log.hasContents(): return IHTMLLog(interfaces.IStatusLog(log)) return NoResource("Empty Log '%s'" % path) return HtmlResource.getChild(self, path, req)
def getChild(self, name, request): if name: try: seq = int(name) return LiveAPI2ChannelSeq(self._ch, seq, self._shared_dict) except: return NoResource('Seq format error!')
def getChild(self, path, req): if path == '': return Redirect('..') num = int(path) c = self.getStatus(req).getChange(num) if not c: return NoResource("No change number '%d'" % num) return ChangeResource(c)
def render(self, request): deferrd = handle_api2_request(self._ch, self._seq, self._shared_dict) if deferrd: request.setHeader('Content-Type', 'video/x-flv') request.setHeader('Cache-Control', 'max-age=2592000') request.setHeader('Connection', 'keep-alive') deferrd.addCallback(self._cb_render_GET, request) return server.NOT_DONE_YET else: return NoResource('Chunk not found!').render(request)
def getChild(self, name, request): try: ref = resolve_url(request.uri) if ref: return (TestResource(ref)) else: return SimpleResource( html_render.html_page('Hola Mundo!', 'Pagina inicial')) except: return NoResource()
def getChild(self, path, req): try: num = int(path) c = self.getStatus(req).getChange(num) except ValueError: c = None num = path if not c: return NoResource("No change number '%s'" % path) return ChangeResource(c, num)
def getChild(self, name, request): r = self.children.get(name, None) if r is None: # Go into the thing callback, args = self._get_callback(request) if callback is None: return NoResource() else: return maybeResource(callback)(request, **args) else: return r
def getChild(self, chunkName, request): """ Return resource for a names child. """ if request.method == 'PUT': if self.store.hasChunk(chunkName): return ConflictResource() return ChunkResource(self.store, chunkName) elif request.method in ('GET', 'HEAD'): if not self.store.hasChunk(chunkName): return NoResource() return ChunkResource(self.store, chunkName)
def render_GET(self, request): if not self._shared_dict.has_key(self.channel): return NoResource("Channel Not Found!").render(request) frag = self._shared_dict[self.channel] try: args = request.args #peer_id = args['id'][0] start = args.has_key('start') and int(args['start'][0]) or -1 head = args.has_key('head') and int(args.get('head')[0]) or 0 offset = args.has_key('offset') and int(args.get('offset')[0]) or config.DEFAULT_RETURN_BYTES except Exception, e: request.setHeader('Cache-Control', 'no-cache') return resource.ErrorPage(http.INTERNAL_SERVER_ERROR,'Query string format error',str(e)).render(request)
def getChild(self, path, req): try: self.getStatus(req).getSlave(path) return OneBuildSlaveResource(path) except KeyError: return NoResource("No such slave '%s'" % html.escape(path))
def getChild(self, name, request): if name == '': return NoResource("Channel not found!") else: self.channel = name return self
def getChildWithDefault(self, name, request): """ This resource cannot have children, hence this will always fail. """ return NoResource("No such child resource.")
def getChild(self, path, req): num = int(path) c = self.getStatus(req).getChange(num) if not c: return NoResource("No change number '%d'" % num) return StaticHTML(c.asHTML(), "Change #%d" % num)
def getChild(self, name, request): handler = self.page_handler.get(request.path) if handler is not None: return handler() else: return NoResource()
def getChild(self, name, request): if name: return LiveAPI2Channel(name, self._shared_dict) return NoResource('Require channel name!')
def getChild(self, name, request): if name: self._channel = name return self else: return NoResource('Not Implemented Error!')
def getChild(self, path, request): if self.tests.has_key(path): return self.oneTestClass(self, path, self.tests[path]) return NoResource("No such test '%s'" % path)