def createRestApi(): """Create the REST API URL hierarchy""" siteRoot = RootNode() jobWrapper = guard.HTTPAuthSessionWrapper(Portal(JobRealm(), [JobDBChecker(db)]), [guard.BasicCredentialFactory("thundercloud job management")]) siteRoot.putChild("job", jobWrapper) # slave tree needs specific authentication slaveWrapper = guard.HTTPAuthSessionWrapper(Portal(SlaveRealm(), [SlaveDBChecker(db)]), [guard.BasicCredentialFactory("thundercloud slave management")]) siteRoot.putChild("slave", slaveWrapper) return server.Site(siteRoot)
from status import StatusApiTree from job import JobApiTree from twisted.web.resource import Resource from nodes import RootNode, LeafNode class Die(LeafNode): def GET(self, request): from twisted.internet import reactor reactor.stop() siteRoot = RootNode() siteRoot.putChild("", RootNode()) siteRoot.putChild("status", StatusApiTree) siteRoot.putChild("job", JobApiTree) siteRoot.putChild("die", Die())
from nodes import RootNode from nodes import LeafNode from twisted.web.resource import Resource class HeartBeat(LeafNode): def GET(self, request): return True class Jobs(LeafNode): def GET(self, request): return {"jobs": 0} StatusApiTree = RootNode() StatusApiTree.putChild("", RootNode()) StatusApiTree.putChild("heartbeat", HeartBeat()) StatusApiTree.putChild("jobs", Jobs())
from status import StatusApiTree from job import JobApiTree from twisted.web.resource import Resource from nodes import RootNode, LeafNode class Die(LeafNode): def GET(self, request): from twisted.internet import reactor reactor.stop() siteRoot = RootNode() siteRoot.putChild("", RootNode()) siteRoot.putChild("status", StatusApiTree) siteRoot.putChild("job", JobApiTree) siteRoot.putChild("die", Die())