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://<Canopsis_URL>/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",
    "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",
    "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://<Canopsis_URL>/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://<Canopsis_URL>/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://<Canopsis_URL>/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://<Canopsis_URL>/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: 2020-04-29