def post(self, request, *args, **kwargs): ttl = self.request.data.get(RedisTTL.TTL_KEY) if ttl: try: ttl = RedisTTL.validate_ttl(ttl) except ValueError: raise ValidationError('ttl must be an integer.') auditor.record(event_type=self.event_type, instance=self.job, actor_id=self.request.user.id, actor_name=self.request.user.username) description = None config = None update_code_reference = False if 'config' in request.data: spec = validate_job_spec_config( [self.job.specification.parsed_data, request.data['config']], raise_for_rest=True) config = spec.parsed_data if 'update_code' in request.data: try: update_code_reference = to_bool(request.data['update_code']) except TypeError: raise ValidationError('update_code should be a boolean') if 'description' in request.data: description = request.data['description'] new_obj = self.clone(obj=self.job, config=config, update_code_reference=update_code_reference, description=description) if ttl: RedisTTL.set_for_job(job_id=new_obj.id, value=ttl) serializer = self.get_serializer(new_obj) return Response(status=status.HTTP_201_CREATED, data=serializer.data)
def perform_create(self, serializer): ttl = self.request.data.get(RedisTTL.TTL_KEY) if ttl: try: ttl = RedisTTL.validate_ttl(ttl) except ValueError: raise ValidationError('ttl must be an integer.') instance = serializer.save(user=self.request.user, project=self.project) if ttl: RedisTTL.set_for_job(job_id=instance.id, value=ttl)
def perform_create(self, serializer): ttl = self.request.data.get(RedisTTL.TTL_KEY) if ttl: try: ttl = RedisTTL.validate_ttl(ttl) except ValueError: raise ValidationError('ttl must be an integer.') instance = serializer.save(user=self.request.user, project=get_permissible_project(view=self)) auditor.record(event_type=JOB_CREATED, instance=instance) if ttl: RedisTTL.set_for_job(job_id=instance.id, value=ttl)
def test_set_for_job(self): RedisTTL.set_for_job(job_id=1, value=10) assert RedisTTL.get_for_job(job_id=1) == 10 assert RedisTTL.get_for_job(job_id=2) == conf.get('GLOBAL_COUNTDOWN') assert RedisTTL(job=10).get_value() is None
def test_set_for_job(self): RedisTTL.set_for_job(job_id=1, value=10) assert RedisTTL.get_for_job(job_id=1) == 10 assert RedisTTL.get_for_job(job_id=2) == 2 assert RedisTTL(job=10).get_value() is None