Aller au contenu

Action

L'API Action permet de consulter, créer, modifier et supprimer des Actions sur les alarmes.

Pour plus d'informations sur ce qu'est une action, consulter la documentation du moteur engine-action.

Création d'Actions

Crée une nouvelle Action à partir du corps de la requête.

URL : /api/v2/actions

Méthode : POST

Authentification requise : Oui

Permissions requises : Aucune

Exemple de corps de requête :

{
    "_id": "action_id_pbehavior",
    "type": "pbehavior",
    "hook": {
        "event_patterns": [
            {
                "resource": "CPU"
            },
            {
                "resource": "HDD"
            }
        ],
        "triggers": [
            "create"
        ]
    },
    "delay": "1m",
    "parameters": {
        "name": "pbehavior_name",
        "author": "System",
        "type": "Pause",
        "rrule": "",
        "reason": "Problème d'\''habilitation",
        "tstart": 0,
        "tstop": 253402297199
    }
}

Exemple de requête curl pour utilisateur root avec mot de passe root qui veut ajouter le JSON ci-dessus :

curl -X POST -u root:root -H "Content-Type: application/json" -d '{
    "_id": "action_id_pbehavior",
    "type": "pbehavior",
    "hook": {
        "event_patterns": [
            {
                "resource": "CPU"
            },
            {
                "resource": "HDD"
            }
        ],
        "triggers": [
            "create"
        ]
    },
    "delay": "1m",
    "parameters": {
        "name": "pbehavior_test_action",
        "author": "System",
        "type": "Pause",
        "rrule": "",
        "reason": "Problème d'\''habilitation",
        "tstart": 0,
        "tstop": 4170912120
    }
}' 'http://localhost:8082/api/v2/actions'

Réponse en cas de réussite

Condition : l'Action est créée

Code : 200 OK

Exemple du corps de la réponse :

{
    "_id": "action_id_pbehavior"
}

Réponse en cas d'erreur

Condition : Si le corps de la requête n'est pas valide.

Code : 400 BAD REQUEST

Exemple du corps de la réponse :

{
    "name": "",
    "description": "Invalid JSON"
}

Condition : Si une action similaire existe déjà en base.

Code : 400 BAD REQUEST

Exemple du corps de la réponse :

{
    "name": "",
    "description": "error while creating an action"
}

Condition : En cas d'erreur avec la base de données.

Code : 400 BAD REQUEST

Exemple du corps de la réponse :

{
  "name": "",
  "description": "error while creating an action"
}

Modification d'Actions

Modifie une action à partir du corps de la requête.

URL : /api/v2/actions/<action_id>

Méthode : PUT

Authentification requise : Oui

Permissions requises : Aucune

Exemple de corps de requête :

{
    "_id": "action_id_pbehavior",
    "type": "pbehavior",
    "hook": {
        "event_patterns": [
            {
                "resource": "RAM"
            },
            {
                "resource": "SWAP"
            }
        ],
        "triggers": [
            "create"
        ]
    },
    "delay": "1m",
    "parameters": {
        "name": "pbehavior_name",
        "author": "System",
        "type": "Pause",
        "rrule": "",
        "reason": "",
        "tstart": 0,
        "tstop": 253402297199
    }
}

Exemple de requête curl pour utilisateur root avec mot de passe root qui veut envoyer le JSON ci-dessus pour modifier l'Action dont l'_id vaut action_id_pbehavior :

curl -X PUT -u root:root -H "Content-Type: application/json" -d '{
    "_id": "action_id_pbehavior",
    "type": "pbehavior",
    "hook": {
        "event_patterns": [
            {
                "resource": "RAM"
            },
            {
                "resource": "SWAP"
            }
        ],
        "triggers": [
            "create"
        ]
    },
    "delay": "1m",
    "parameters": {
        "name": "pbehavior_name",
        "author": "System",
        "type": "Pause",
        "rrule": "",
        "reason": "",
        "tstart": 0,
        "tstop": 253402297199
    }
}' 'http://localhost:8082/api/v2/actions/action_id_pbehavior'

Réponse en cas de réussite

Condition : la règle est modifiée

Code : 200 OK

Exemple du corps de la réponse :

{
}

Suppression d'Actions

Supprime une Action en fonction de son id.

URL : /api/v2/actions/<action_id>

Méthode : DELETE

Authentification requise : Oui

Permissions requises : Aucune

Exemple de requête curl pour utilisateur root avec mot de passe root qui veut supprimer l'action avec l'id action_id_pbehavior :

curl -X DELETE -u root:root 'http://localhost:8082/api/v2/actions/action_id_pbehavior'

Réponse en cas de réussite

Condition : La suppression de l'Action a réussi.

Renvoie un booléen.

Récupération des Actions

Récupère une ou plusieurs Actions créées en base.

Récupération d'une Action par id

URL : /api/v2/actions/<action_id>

Méthode : GET

Authentification requise : Oui

Permissions requises : Aucune

Exemple de requête curl pour utilisateur root avec mot de passe root pour récupérer l'action avec l'id action_id_pbehavior :

curl -X GET -u root:root 'http://localhost:8082/api/v2/actions/action_id_pbehavior'
Réponse en cas de réussite

Condition : Une Action correspondant à l'id est trouvée.

Code : 200 OK

Exemple du corps de la réponse :

{
    "regex": null,
    "parameters": {
        "name": "pbehavior_test_action",
        "author": "System",
        "reason": "Probl\u00e8me d'habilitation",
        "rrule": "",
        "tstart": 0,
        "tstop": 4170912120,
        "type": "Pause"
    },
    "fields": [],
    "hook": {
        "event_patterns": [{
            "resource": "CPU"
        }, {
            "resource": "HDD"
        }],
        "triggers": ["create"]
    },
    "_id": "action_id_pbehavior",
    "type": "pbehavior"
}
Réponse en cas d'erreur

Condition : Aucune Action correspondant à l'id n'est trouvée.

Code : 404 NOT FOUND

Exemple du corps de la réponse :

{
    "name": "",
    "description": "failed to get action"
}

Récupération de toutes les Actions en base de données

Récupère toutes les Actions stockées en base

URL : /api/v2/actions

Méthode : GET

Authentification requise : Oui

Permissions requises : Aucune

Exemple de requête curl pour utilisateur root avec mot de passe root pour récupérer toutes les Actions :

curl -X GET -u root:root 'http://localhost:8082/api/v2/actions'
Réponse en cas de réussite

Condition : aucune.

Code : 200 OK

Exemple du corps de la réponse :

[{
    "hook": {
        "event_patterns": [{
            "resource": "CPU"
        }, {
            "resource": "HDD"
        }],
        "triggers": ["create"]
    },
    "_id": "action_id_pbehavior",
    "type": "pbehavior",
    "parameters": {
        "name": "pbehavior_test_action",
        "author": "System",
        "reason": "Probl\u00e8me d'habilitation",
        "rrule": "",
        "tstart": 0,
        "tstop": 4170912120,
        "type": "Pause"
    }
}, {
    "hook": {
        "event_patterns": [{
            "resource": "CPU_2"
        }, {
            "resource": "HDD_2"
        }],
        "triggers": ["create"]
    },
    "_id": "action_test_snooze_100m",
    "type": "snooze",
    "parameters": {
        "duration": 6000,
        "message": null,
        "author": "action"
    }
}]

Dernière mise à jour: 2021-01-19