Exemplo n.º 1
0
    def before_main(self):
        path = cherrypy.request.path
        if config('TESTMODE'):
            return
        if path.startswith("/static"):
            return
        if path.startswith("/tg_widgets"):
            return
        if path.startswith("/favicon"):
            return
        if path.startswith("/log"):
            return

        if is_authenticated():
            return
        else:
            redirect("/login?destination=%s" % urllib.quote(cherrypy.request.browser_url))
Exemplo n.º 2
0
def get_uni():
    if config('TESTMODE'):
        return "testuser"
    return cherrypy.session.get('uni','')
Exemplo n.º 3
0
 def checkout_dir(self):
     return os.path.join(config("checkout_dir","/tmp/rollo/checkouts/"),
                         str(self.deployment.id),"local")
Exemplo n.º 4
0
    def run(self,rollback=None):
        """ run the stage's code """
        self.rollback = rollback
        recipe = self.stage.recipe
        if recipe.language == "python":
            self.status = "ok"
            try:
                exec recipe.code in locals(),globals()
            except Exception, e:
                l = Log(pushstage=self,command=recipe.code,
                        stdout="",stderr=str(e))
                self.status = "failed"
        else:
            # write to temp file, exec, then clean up
            script_filename = os.path.join(config("script_dir","/tmp/rollo/scripts"),"%d.sh" % self.id)
            code = recipe.code
            if not code.startswith("#!"):
                # make sure it has a shebang line
                code = "#!/bin/bash\n" + code
            open(script_filename,"w").write(code)
            os.chmod(script_filename,stat.S_IRWXU|stat.S_IRWXG|stat.S_IROTH)
            try:
                os.makedirs(self.push.checkout_dir())
            except:
                pass
            #TODO: setup timeout
            env = self.push.env()
            if rollback is not None:
                env['ROLLBACK_URL'] = rollback.rollback_url