예제 #1
0
파일: views.py 프로젝트: simhaonline/pcp
    def run(self):
        # sleep because of web server restart/reload
        time.sleep(10)
        
        sh = SSHHandler(None, None)
        sh.commit()

        f = open("/tmp/committest", "w")
        f.write("ready")
        f.close()
예제 #2
0
파일: tools.py 프로젝트: a740122/pcp
def user_directories(user, use_cache=False):

    dirs = None
    if use_cache:
        dirs = cache.get('user_directories_%s' % user.pk)

    if dirs is None:
        sh = SSHHandler(user, user.parms.web_machine)
        dirs = sh.run("/usr/bin/find -L %s -maxdepth %d -type d" % (user.parms.home, config.find_directory_deep), instant=True)[0].split("\n")

        cache.set('user_directories_%s' % user.pk, dirs, timeout=3600*24*7)

    return [d.strip() for d in dirs if d.strip() and not "/." in d]
예제 #3
0
파일: tools.py 프로젝트: a740122/pcp
def get_user_wsgis(user, use_cache=True):

    wsgis = None
    if use_cache:
        wsgis = cache.get('user_wsgis_%s' % user.pk)

    if wsgis is None:
        sh = SSHHandler(user, user.parms.web_machine)
        wsgis = sh.run("/usr/bin/find %s -maxdepth 5 -type f -iname '*.wsgi'" % user.parms.home, instant=True)[0]
        wsgis = [one.strip() for one in wsgis.split("\n") if one]
        cache.set('user_wsgis_%s' % user.pk, wsgis, timeout=3600*24*7)

    return wsgis
예제 #4
0
def get_user_wsgis(user, use_cache=True):

    wsgis = None
    if use_cache:
        wsgis = cache.get('user_wsgis_%s' % user.pk)

    if wsgis is None:
        sh = SSHHandler(user, user.parms.web_machine)
        wsgis = sh.run("/usr/bin/find %s -maxdepth 5 -type f -iname '*.wsgi'" %
                       user.parms.home,
                       instant=True)[0]
        wsgis = [one.strip() for one in wsgis.split("\n") if one]
        cache.set('user_wsgis_%s' % user.pk, wsgis, timeout=3600 * 24 * 7)

    return wsgis
예제 #5
0
def user_directories(user, use_cache=False):

    dirs = None
    if use_cache:
        dirs = cache.get('user_directories_%s' % user.pk)

    if dirs is None:
        sh = SSHHandler(user, user.parms.web_machine)
        dirs = sh.run("/usr/bin/find -L %s -maxdepth %d -type d" %
                      (user.parms.home, config.find_directory_deep),
                      instant=True)[0].split("\n")

        cache.set('user_directories_%s' % user.pk, dirs, timeout=3600 * 24 * 7)

    return [d.strip() for d in dirs if d.strip() and not "/." in d]
예제 #6
0
파일: views.py 프로젝트: a740122/pcp
def app_copy(request):
    u = request.session.get('switched_user', request.user)
    superuser = request.user
    if not superuser.is_superuser:
        return HttpResponseForbidden(_("Permission error"))

    app = UserSite.objects.get(id=int(request.POST.get("app")))
    new_location = request.POST.get("new_location")

    sh = SSHHandler(request.user, app.owner.parms.web_machine)
    cmd = "cp -a %s %s" % (app.document_root, new_location)
    sh.run(cmd=cmd, instant=True)

    messages.add_message(request, messages.SUCCESS, _('Site has been copied'))

    return HttpResponseRedirect(reverse("master"))
예제 #7
0
def app_copy(request):
    u = request.session.get('switched_user', request.user)
    superuser = request.user
    if not superuser.is_superuser:
        return HttpResponseForbidden(_("Permission error"))

    app = UserSite.objects.get(id=int(request.POST.get("app")))
    new_location = request.POST.get("new_location")

    sh = SSHHandler(request.user, app.owner.parms.web_machine)
    cmd = "cp -a %s %s" % (app.document_root, new_location)
    sh.run(cmd=cmd, instant=True)

    messages.add_message(request, messages.SUCCESS, _('Site has been copied'))

    return HttpResponseRedirect(reverse("master"))
예제 #8
0
파일: tools.py 프로젝트: a740122/pcp
def get_user_venvs(user, use_cache=True):

    venvs = None
    if use_cache:
        venvs = cache.get('user_venvs_%s' % user.pk)

    if venvs is None:
        sh = SSHHandler(user, user.parms.web_machine)
        venv_location = join(user.parms.home, settings.VIRTUALENVS_DIR)
        root_len = len(venv_location) + 1
        output = sh.run("/usr/bin/find %s -maxdepth 1 -type d" % venv_location, instant=True)[0].split("\n")
        venvs = [one[root_len:] for one in output if one[root_len:]]

        cache.set("user_venvs_%s" % user.pk, venvs, timeout=3600*24*7)

    return venvs
예제 #9
0
def get_user_venvs(user, use_cache=True):

    venvs = None
    if use_cache:
        venvs = cache.get('user_venvs_%s' % user.pk)

    if venvs is None:
        sh = SSHHandler(user, user.parms.web_machine)
        venv_location = join(user.parms.home, settings.VIRTUALENVS_DIR)
        root_len = len(venv_location) + 1
        output = sh.run("/usr/bin/find %s -maxdepth 1 -type d" % venv_location,
                        instant=True)[0].split("\n")
        venvs = [one[root_len:] for one in output if one[root_len:]]

        cache.set("user_venvs_%s" % user.pk, venvs, timeout=3600 * 24 * 7)

    return venvs
예제 #10
0
파일: commit.py 프로젝트: simhaonline/pcp
 def handle(self, *args, **options):
     m = Machine.objects.all()[0]
     u = User.objects.all()[0]
     sh = SSHHandler(u, m)
     sh.commit()