コード例 #1
0
ファイル: views.py プロジェクト: tutalk/django_tutalk
def force_logout_participant(request, exptr_name=None, scen_name=None, part_id=None):
    rc = get_redis_connection()
    logout_msg = {"uid": part_id, "gid": "group-%s" % part_id, "type": "logout", "payload": {"text": "logout"}}
    routing_key = "%s.%s.%s.logout" % (get_tutalk_host(), exptr_name, scen_name)
    ret_val = rc.publish(routing_key, json.dumps(logout_msg))
    time.sleep(2)  # allow tutalk to logout user before re-displaying page
    return redirect("scenario-runner:index")
コード例 #2
0
ファイル: views.py プロジェクト: tutalk/django_tutalk
def stop_scenario(request, exptr_name=None, scen_name=None):
    get_object_or_404(models.Experimenter, name=exptr_name)
    exptr_scens = get_scenarios()
    if exptr_name in exptr_scens:
        if scen_name in exptr_scens[exptr_name]:
            if "pid" in exptr_scens[exptr_name][scen_name]:
                pid = exptr_scens[exptr_name][scen_name]["pid"]
                if check_pid(pid):
                    try:
                        os.kill(pid, signal.SIGINT)
                        time.sleep(1)
                        if check_pid(pid):
                            os.kill(pid, signal.SIGKILL)
                            pfx = "%s.%s" % (exptr_name, scen_name)
                            rc = get_redis_connection()
                            rc.hdel(
                                "%s.scenarios" % get_tutalk_host(), "%s.status" % pfx, "%s.pid" % pfx, "%s.groups" % pfx
                            )
                        time.sleep(2)
                    except OSError as ose:
                        LOGGER.error(ose)
    return redirect("scenario-runner:index")
コード例 #3
0
ファイル: views.py プロジェクト: rimacproject/django_tutalk
def get_running_scenarios():
    rc = get_redis_connection()
    scenarios_key = "%s.scenarios" % get_tutalk_host()
    dct = rc.hgetall(scenarios_key)
    return dct