Beispiel #1
0
def status(request):
    output = [
        ("system_status", functions.get_configuration("system_status", False))]
    output.append(
        ("system_mode", functions.get_configuration("system_mode", False)))
    output.append(("login", request.user.is_authenticated()))

    if request.user.is_authenticated():
        output.append(("user", request.user.get_full_name()))
        output.append(("admin", request.user.is_superuser))
        output.append(
            ("auto_optimization", functions.get_configuration("auto_optimization", False)))

    return create_json_response(dict(output), request)
Beispiel #2
0
def status(request):
    output = [("system_status",
               functions.get_configuration("system_status", False))]
    output.append(
        ("system_mode", functions.get_configuration("system_mode", False)))
    output.append(("login", request.user.is_authenticated()))

    if request.user.is_authenticated():
        output.append(("user", request.user.get_full_name()))
        output.append(("admin", request.user.is_superuser))
        output.append(("auto_optimization",
                       functions.get_configuration("auto_optimization",
                                                   False)))

    return create_json_response(dict(output), request)
Beispiel #3
0
def forecast(request):
    if not request.user.is_superuser:
        raise PermissionDenied

    try:
        latest_timestamp = get_past_time()
        initial_time = calendar.timegm(latest_timestamp.timetuple())
    except SensorValue.DoesNotExist:
        initial_time = time()

    if request.method == 'POST':
        try:
            data = json.loads(request.body)

            if 'forecast_id' in data:
                result = FORECAST_QUEUE.get_by_id(data['forecast_id'])
                if result == None:
                    output = {
                        "forecast_id": data['forecast_id'],
                        'sensors': [],
                        'status': "running"
                    }
                else:
                    output = result
                    output["status"] = "finished"
                return create_json_response(output, request)

            code = None
            if 'code' in data:
                code = data['code']

            configurations = None
            if 'configurations' in data:
                configurations = functions.get_modified_configurations(
                    data['configurations'])

            if functions.get_configuration('auto_optimization'):
                # schedule forecast and immediately return its id.
                # The forecast result can be later retrieved by it
                forecast_id = FORECAST_QUEUE.schedule_new(
                    initial_time, configurations=configurations, code=code)
                output = {
                    "forecast_id": forecast_id,
                    'sensors': [],
                    'status': "running"
                }
            else:
                output = get_forecast(initial_time,
                                      configurations=configurations,
                                      code=code)
        except ValueError as e:
            logger.error(e)
            return create_json_response({"status": "failed"}, request)
    else:
        output = get_forecast(initial_time)

    return create_json_response(output, request)
Beispiel #4
0
def forecast(request):
    if not request.user.is_superuser:
        raise PermissionDenied

    try:
        latest_timestamp = get_past_time()
        initial_time = calendar.timegm(latest_timestamp.timetuple())
    except SensorValue.DoesNotExist:
        initial_time = time()

    if request.method == 'POST':
        try:
            data = json.loads(request.body)

            if 'forecast_id' in data:
                result = FORECAST_QUEUE.get_by_id(data['forecast_id'])
                if result == None:
                    output = {"forecast_id": data[
                        'forecast_id'], 'sensors': [], 'status': "running"}
                else:
                    output = result
                    output["status"] = "finished"
                return create_json_response(output, request)

            code = None
            if 'code' in data:
                code = data['code']

            configurations = None
            if 'configurations' in data:
                configurations = functions.get_modified_configurations(
                    data['configurations'])

            if functions.get_configuration('auto_optimization'):
                # schedule forecast and immediately return its id.
                # The forecast result can be later retrieved by it
                forecast_id = FORECAST_QUEUE.schedule_new(
                    initial_time, configurations=configurations, code=code)
                output = {"forecast_id":
                          forecast_id, 'sensors': [], 'status': "running"}
            else:
                output = get_forecast(
                    initial_time, configurations=configurations, code=code)
        except ValueError as e:
            logger.error(e)
            return create_json_response({"status": "failed"}, request)
    else:
        output = get_forecast(initial_time)

    return create_json_response(output, request)