Procédure d'exploitation pour la mise en pause forcée d'une opération
#####################################################################

Pour permettre le traitement non-concurrent de certaines opérations (ingest et reclassement en particulier), il est possible de pouvoir forcer la mise en pause à la réception d'opérations (toutes ou seulement d'un type donné, sur tous les tenants ou un tenant donné en particulier).

Concrètement, elle permet de forcer le mode "pas à pas" pour toutes ou un type donné seulement d'opérations, sur l'ensemble des tenants ou sur un tenant donné seulement.


Mise en pause forcée
====================

La mise en pause forcée est déclenchée par l'appel au point d'API porté par le composant ``access-external`` à l'URL suivante : ``http://{{ ip_service }}:{{ vitam.accessexternal.port_service }}/admin-external/v1/forcepause``

Exemple d'appel à l'aide de curl :


.. code-block:: bash

    curl -X POST -k
    --key vitam-vitam_1.key
    --cert vitam-vitam_1.pem
    ``https://{{ ip_service }}:{{ vitam.accessexternal.port_service }}/admin-external/v1/forcepause``
    -H 'X-Tenant-Id: 0'
    -H 'X-Access-Contract-Id: ContratTNR'
    -H 'Content-Type: application/json;charset=UTF-8'
    -H 'Accept: application/json'
    --data-binary '{"type" : "INGEST", "tenant" : "0"}'
    --compressed


Exemple de Json pour mettre une pause sur le processus d'ingest pour le tenant 0 :

.. code:: json

   '{"type" : "INGEST", "tenant" : "0"}'


Exemple de Json pour mettre une pause sur tous les processus pour le tenant 0 :

.. code:: json

    '{"tenant" : "0"}'

Exemple de Json pour mettre une pause sur tous les processus pour tous les tenants :

.. code:: json

    '{"pauseAll":true}'


Sortie de la mise en pause forcée
=================================

La sortie de mise en pause forcée est déclenchée par l'appel au point d'API porté par le composant ``access-external`` à l'URL suivante : ``http://{{ ip_service }}:{{ vitam.accessexternal.port_service }}/admin-external/v1/removeforcepause``

Exemple d'appel à l'aide de curl :

.. code-block:: bash

    curl -X POST -k
    --key vitam-vitam_1.key
    --cert vitam-vitam_1.pem
    ``https://{{ ip_service }}:{{ vitam.accessexternal.port_service }}/admin-external/v1/removeforcepause``
    -H 'X-Tenant-Id: 0'
    -H 'X-Access-Contract-Id: ContratTNR'
    -H 'Content-Type: application/json;charset=UTF-8'
    -H 'Accept: application/json'
    --data-binary '{"type" : "INGEST", "tenant" : "0"}'
    --compressed

Exemple de Json pour sortir de la mise en pause sur le processus d'ingest pour le tenant 0 :

.. code:: json

    '{"type" : "INGEST", "tenant" : "0"}'


Exemple de Json pour sortir de la mise en pause sur tous les processus pour le tenant 0 :

.. code:: json

    '{"tenant" : "0"}'

Exemple de Json pour sortir de la mise en pause sur tous les processus pour tous les tenants :

.. code:: json

    '{"pauseAll":false}'


.. warning:: Les états de mise en pause ne sont pas sauvegardés. En cas de redémarrage des applications (en particulier le composant access-external), ces états sont perdus.
