'Handles kick off request.'

def post(self):

    spec = model.MapreduceSpec.from_json_str(self._get_required_param('mapreduce_spec'))
    input_readers_json = simplejson.loads(self._get_required_param('input_readers'))
    queue_name = os.environ.get('HTTP_X_APPENGINE_QUEUENAME', 'default')
    mapper_input_reader_class = spec.mapper.input_reader_class()
    input_readers = [mapper_input_reader_class.from_json_str(reader_json) for reader_json in input_readers_json]
    KickOffJobHandler._schedule_shards(spec, input_readers, queue_name, self.base_path())
    ControllerCallbackHandler.reschedule(self.base_path(), spec, queue_name=queue_name, serial_id=0)
