app/soc/tasks/helper/error_handler.py
author Lennard de Rijk <ljvderijk@gmail.com>
Wed, 30 Sep 2009 21:26:50 +0200
changeset 2995 5931e6d6056f
parent 2614 dbc8a50dbce0
permissions -rw-r--r--
Changed the working of the iterative_task decorator. The decorator now needs the logic for the model which it fetches. This is much nicer then "fetching" it using import. Also order has been removed since it has no use when iterating over all entities when key is involved. Fields to filter can now dynamically be set by the function that is wrapped. Note that it will merge the filter with the task_default kwarg and it will only use the start_key if their is no key present in the context. Also note that task_default gathers all kwargs. I tried to do it otherwise (with default kwargs) but I couldn't get it to work. Feel free to improve :).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2614
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
     1
#!/usr/bin/python2.5
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
     2
#
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
     3
# Copyright 2009 the Melange authors.
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
     4
#
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
     5
# Licensed under the Apache License, Version 2.0 (the "License");
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
     6
# you may not use this file except in compliance with the License.
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
     7
# You may obtain a copy of the License at
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
     8
#
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
     9
#   http://www.apache.org/licenses/LICENSE-2.0
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    10
#
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    11
# Unless required by applicable law or agreed to in writing, software
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    12
# distributed under the License is distributed on an "AS IS" BASIS,
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    13
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    14
# See the License for the specific language governing permissions and
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    15
# limitations under the License.
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    16
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    17
"""Module for handling errors while running a Task.
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    18
"""
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    19
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    20
__authors__ = [
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    21
  '"Lennard de Rijk" <ljvderijk@gmail.com>',
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    22
  ]
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    23
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    24
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    25
import logging
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    26
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    27
from django import http
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    28
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    29
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    30
def logErrorAndReturnOK(error_msg='Error found in Task'):
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    31
  """Logs the given error message and returns a HTTP OK response.
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    32
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    33
  Args:
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    34
    error_msg: Error message to log
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    35
  """
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    36
  logging.error(error_msg)
dbc8a50dbce0 Refactored logErrorAndReturnOK into separate module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    37
  return http.HttpResponse()