Exemplo n.º 1
0
    def get_initial(self, **kwargs):
        initial = super(ActionWorkflowView, self).get_initial()
        try:
            action_id, job_id = self.kwargs['job_id'].split('===')
        except ValueError:
            job_id = self.kwargs['job_id']
            action_id = None

        if self.is_update():
            initial.update({'original_name': None})
            job = self.get_object()[0]
            d = job.get_dict()
            for action in d['job_actions']:
                try:
                    if action['action_id'] == action_id:
                        actions = create_dict_action(**action)
                        rules = {
                            k: v
                            for k, v in action.items()
                            if not k == 'freezer_action'
                        }
                        initial.update(**actions['freezer_action'])
                        initial.update(**rules)
                except KeyError:
                    messages.warning(
                        self.request,
                        _("Cannot edit an action "
                          "created by the scheduler"))
                    exceptions.handle(self.request, "")

            initial.update({'original_name': job.id})
        return initial
Exemplo n.º 2
0
    def get_initial(self, **kwargs):
        initial = super(ActionWorkflowView, self).get_initial()
        try:
            action_id, job_id = self.kwargs['job_id'].split('===')
        except ValueError:
            job_id = self.kwargs['job_id']
            action_id = None

        if self.is_update():
            initial.update({'original_name': None})
            job = self.get_object()[0]
            d = job.get_dict()
            for action in d['job_actions']:
                try:
                    if action['action_id'] == action_id:
                        actions = create_dict_action(**action)
                        rules = {k: v for k, v in action.items()
                                 if not k == 'freezer_action'}
                        initial.update(**actions['freezer_action'])
                        initial.update(**rules)
                except KeyError:
                    messages.warning(self.request, _("Cannot edit an action "
                                                     "created by the scheduler"))
                    exceptions.handle(self.request, "")

            initial.update({'original_name': job.id})
        return initial
Exemplo n.º 3
0
def session_create(request, context):
    """A session is a group of jobs who share the same scheduling time. """
    session = create_dict_action(**context)
    session['description'] = session.pop('description', None)
    schedule = {
        'schedule_end_date': session.pop('schedule_end_date', None),
        'schedule_interval': session.pop('schedule_interval', None),
        'schedule_start_date': session.pop('schedule_start_date', None),
    }
    session['schedule'] = schedule
    return _freezerclient(request).sessions.create(session)
Exemplo n.º 4
0
def session_update(request, context):
    """Update session information """
    session = create_dict_action(**context)
    session_id = session.pop('session_id', None)
    session['description'] = session.pop('description', None)
    schedule = {
        'schedule_end_date': session.pop('schedule_end_date', None),
        'schedule_interval': session.pop('schedule_interval', None),
        'schedule_start_date': session.pop('schedule_start_date', None),
    }
    session['schedule'] = schedule
    return _freezerclient(request).sessions.update(session_id, session)
Exemplo n.º 5
0
 def get_initial(self):
     initial = super(JobWorkflowView, self).get_initial()
     if self.is_update():
         initial.update({'original_name': None})
         job = self.get_object()[0]
         d = job.get_dict()
         schedule = create_dict_action(**d['job_schedule'])
         initial.update(**schedule)
         info = {k: v for k, v in d.items() if not k == 'job_schedule'}
         initial.update(**info)
         initial.update({'original_name': d.get('job_id', None)})
     return initial
Exemplo n.º 6
0
 def get_initial(self):
     initial = super(JobWorkflowView, self).get_initial()
     if self.is_update():
         initial.update({'original_name': None})
         job = self.get_object()[0]
         d = job.get_dict()
         schedule = create_dict_action(**d['job_schedule'])
         initial.update(**schedule)
         info = {k: v for k, v in d.items()
                 if not k == 'job_schedule'}
         initial.update(**info)
         initial.update({'original_name': d.get('job_id', None)})
     return initial
Exemplo n.º 7
0
def action_create(request, context):
    """Create a new action for a job """
    action = {}

    if context['max_retries']:
        action['max_retries'] = context.pop('max_retries')
    if context['max_retries_interval']:
        action['max_retries_interval'] = context.pop('max_retries_interval')
    if context['mandatory']:
        action['mandatory'] = context.pop('mandatory')

    job_id = context.pop('original_name')
    job_action = create_dict_action(**context)
    action['freezer_action'] = job_action
    action_id = _freezerclient(request).actions.create(action)
    action['action_id'] = action_id
    job = _freezerclient(request).jobs.get(job_id)
    job['job_actions'].append(action)
    return _freezerclient(request).jobs.update(job_id, job)
Exemplo n.º 8
0
def action_update(request, context):
    job_id = context.pop('original_name')
    action_id = context.pop('action_id')

    job = _freezerclient(request).jobs.get(job_id)

    for a in job['job_actions']:
        if a['action_id'] == action_id:

            if context['max_retries']:
                a['max_retries'] = context.pop('max_retries')
            if context['max_retries_interval']:
                a['max_retries_interval'] = \
                    context.pop('max_retries_interval')
            if context['mandatory']:
                a['mandatory'] = context.pop('mandatory')

            updated_action = create_dict_action(**context)

            a['freezer_action'].update(updated_action)

    return _freezerclient(request).jobs.update(job_id, job)
Exemplo n.º 9
0
def job_edit(request, context):
    """Edit an existing job file, but leave the actions to actions_edit"""
    job = create_dict_action(**context)

    schedule = {}
    if job['schedule_end_date']:
        schedule['schedule_end_date'] = job.pop('schedule_end_date')

    if job['schedule_interval']:
        schedule['schedule_interval'] = job.pop('schedule_interval')

    if job['schedule_start_date']:
        schedule['schedule_start_date'] = job.pop('schedule_start_date')

    job['description'] = job.pop('description', None)
    actions = job.pop('job_actions', [])

    job.pop('clients', None)
    job.pop('client_id', None)

    job['job_schedule'] = schedule
    job['job_actions'] = actions
    job_id = job.pop('original_name', None)
    return _freezerclient(request).jobs.update(job_id, job)
Exemplo n.º 10
0
def job_create(request, context):
    """Create a new job file """

    job = create_dict_action(**context)

    schedule = {}
    if job['schedule_end_date']:
        schedule['schedule_end_date'] = job.pop('schedule_end_date')

    if job['schedule_interval']:
        schedule['schedule_interval'] = job.pop('schedule_interval')

    if job['schedule_start_date']:
        schedule['schedule_start_date'] = job.pop('schedule_start_date')

    job.pop('clients', None)
    client_id = job.pop('client_id', None)
    actions = job.pop('job_actions', [])

    job['description'] = job.pop('description', None)
    job['job_schedule'] = schedule
    job['job_actions'] = actions
    job['client_id'] = client_id
    return _freezerclient(request).jobs.create(job)