コード例 #1
0
ファイル: ilab.py プロジェクト: jaimeirurzun/weblabdeusto
    def run(self):
        self.serializer = RequestSerializer()
        action = self.req.headers.get('SOAPAction')
        if action is None:
            return "No SOAPAction provided"

        cookies = self.req.headers.getheader('cookie')

        self.sess_id = None
        self.reservation_id = None
        for cur_cookie in (cookies or '').split('; '):
            if cur_cookie.startswith("weblabsessionid="):
                self.sess_id = SessionId('.'.join(
                    cur_cookie[len('weblabsessionid='):].split('.')[:-1]))
            if cur_cookie.startswith('weblab_reservation_id='):
                self.reservation_id = SessionId(
                    cur_cookie[len('weblab_reservation_id='):].split('.')[0])

        if self.reservation_id is None and self.sess_id is not None:
            try:
                reservation_id_str = self.server.get_reservation_id_by_session_id(
                    self.sess_id)
                if reservation_id_str is not None:
                    self.reservation_id = SessionId(reservation_id_str)
            except:
                traceback.print_exc()
                self.reservation_id = None

        if self.sess_id is None:
            return "Not logged in!"

        length = int(self.req.headers.getheader('content-length'))
        self.payload = self.req.rfile.read(length)

        methods = {
            '"http://ilab.mit.edu/GetLabConfiguration"':
            self.process_GetLabConfiguration,
            '"http://ilab.mit.edu/Submit"':
            self.process_Submit,
            '"http://ilab.mit.edu/GetExperimentStatus"':
            self.process_GetExperimentStatus,
            '"http://ilab.mit.edu/RetrieveResult"':
            self.process_RetrieveResult,
            '"http://ilab.mit.edu/SaveAnnotation"':
            self.process_SaveAnnotation,
            '"http://ilab.mit.edu/ListAllClientItems"':
            self.process_ListAllClientItems,
            '"http://ilab.mit.edu/LoadClientItem"':
            self.process_LoadClientItem,
            '"http://ilab.mit.edu/SaveClientItem"':
            self.process_SaveClientItem,
            '"http://ilab.mit.edu/GetExperimentInformation"':
            self.process_GetExperimentInformation,
        }

        if not action in methods:
            return "Action not found"

        return methods[action]()
コード例 #2
0
ファイル: ilab.py プロジェクト: coycooper/Projects_Coy
#
# Author: Pablo Orduña <*****@*****.**>
#
from __future__ import print_function, unicode_literals

from flask import request, make_response
from weblab.core.wl import weblab_api

import json
import traceback

from weblab.data.experiments import ExperimentId

from weblab.core.coordinator.clients.ilab_batch import RequestSerializer

serializer = RequestSerializer()


@weblab_api.route_web('/ilab/')
def ilab():
    action = request.headers.get('SOAPAction')
    if action is None:
        return "No SOAPAction provided"

    if weblab_api.ctx.session_id is None:
        return "Not logged in!"

    if weblab_api.ctx.reservation_id is None:
        try:
            reservation_id_str = weblab_api.api.get_reservation_id_by_session_id(
            )