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
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
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)
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)
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
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)
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)
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)
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)