Projet

Général

Profil

Development #43278

API pour connaitre le statut d'un job

Ajouté par Frédéric Péters il y a presque 4 ans. Mis à jour il y a plus de 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
25 mai 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Dans l'idée qu'une API qui créerait un job en retournerait l'identifiant, et qu'on voudrait derrière s'assurer qu'il a bien tourné, etc.


Fichiers

Révisions associées

Révision e2fecd63 (diff)
Ajouté par Nicolas Roche il y a plus de 3 ans

api: add an API to request jobs status (#43278)

Historique

#1

Mis à jour par Nicolas Roche il y a plus de 3 ans

#2

Mis à jour par Nicolas Roche il y a plus de 3 ans

  • Statut changé de Solution proposée à Nouveau
  • Assigné à Nicolas Roche supprimé
  • Patch proposed changé de Oui à Non

et qu'on voudrait derrière s'assurer qu'il a bien tourné, etc.

Mince, j'imagine que ça pourrait-être par exemple un appel depuis un workflow,
et là je réalise que je n'ai pas du tout géré les droits d'accès.
(et que peut-être qu'il s'agirait plutôt d'un endpoint générique)

#3

Mis à jour par Nicolas Roche il y a plus de 3 ans

La politique d'accès doit être la même que celle qu'il y a sur le endpoint qui a été utilisé pour pousser le job. ex:

connector = job.resource
endpoint_name = job.method_name[:-4]  # ne marche qu'avec les SMS où @add_job@ est directement appelée par le @endpoint@ @send@
endpoint = getattr(connector, endpoint_name, None)
perm = endpoint.endpoint_info.perm

Il manque un champ aux jobs qui permette de retrouver cette permission d'accès.

#4

Mis à jour par Frédéric Péters il y a plus de 3 ans

La politique d'accès doit être la même que celle qu'il y a sur le endpoint qui a été utilisé pour pousser le job. ex:
Il manque un champ aux jobs qui permette de retrouver cette permission d'accès.

Faut pas se prendre la tête ainsi; la politique d'accès c'est can_access du connecteur, point.

#5

Mis à jour par Nicolas Roche il y a plus de 3 ans

#6

Mis à jour par Nicolas Roche il y a plus de 3 ans

  • Assigné à mis à Nicolas Roche
#7

Mis à jour par Frédéric Péters il y a plus de 3 ans

        app = get_related_app(connector)
        if not app:
            return self.error('Cannot retrieve job resource connector')
        if not app_enabled(app.label):
            return self.error('Please enable %s' % app.label)

Cela peut à mon sens être retiré. (+ la partie api/utils.py du coup)

        if not is_authorized(self.request, connector, 'can_access'):
            return self.error('Permission denied')

Plutôt raise PermissionDenied().

#9

Mis à jour par Frédéric Péters il y a plus de 3 ans

  • Statut changé de Solution proposée à Solution validée
#10

Mis à jour par Nicolas Roche il y a plus de 3 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit e2fecd6373f162e808de7b1d33227cd0e08f010a
Author: Nicolas ROCHE <nroche@entrouvert.com>
Date:   Fri Aug 14 19:09:59 2020 +0200

    api: add an API to request jobs status (#43278)
#11

Mis à jour par Frédéric Péters il y a plus de 3 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF