wiki:AlternCv2/APIS

Version 1 (modified by benjamin, 8 years ago) (diff)

Api Ecrite par nahuel/anarcat/benjamin

Liste des modules de l'API AlternD

  • Core : Noyau central
    • list - liste des modules disponibles
    • enable - activation d'un module
    • disable - desactivation
  • ClusterManager? : Gère les configs multiserveur.
    • server_list - Liste les serveurs installés et leurs modules
    • server_add - Ajoute un serveur (ses modules installés sont autodétectés)
    • birdy, des idées ?

Required modules on the Core

  • Accounts
    • add
    • list
    • del
    • edit
  • Quotas
    • get - retourne le nombre maxi de services donné
    • set - fixe le nombre maxi de services donné

Common functions

[obligatoirement proposé par toute classe]

  • export - exporte la config du service sous forme d'une chaine formattée (norme à définir)
  • import - recrée les services depuis une chaine formattée (norme à définir)
  • classname - nom du module (permet l'introspection)
  • classtype - type fonctionnel ("dns" pour la classe bind, "http" pour la classe apache etc.)

Modules (facultatifs)

  • DNS : Gestion de serveur DNS (ex: bind, mydns)
    • list - liste les zones autoritaires d'un compte
    • add - crée une zone autoritaire sur un compte
    • del - détruit une zone autoritaire sur un compte
    • list_rr - liste les enregistrements d'une zone (A, MX, CNAME, ...)
    • add_rr - ajoute un enregistrement à une zone
    • del_rr - efface un enregistrement d'une zone

      note : on pourra utiliser nsupdate pour add/del_rr ca évite un reload de bind ;)

  • HTTP : Gestion des vhost HTTP (ex: apache2, apache2-superpatch)
    • add - Crée un vhost (param de base = ServerName? et Compte AlternC)
    • del - Supprime un vhost
    • edit - Modifie des paramètres d'un vhost

      anarcat : on devrait permettre de mettre de la conf arbitraire (php_admin machin, Limit, etc) benjamin : pas vraiment, vu que cela permet par ex php_admin_flag safe_mode off ... (ou alors accessible à admin only) on filtre. je crois qu'il y a de l'espace pour laisser plus de jeu ici

  • E-Mails : Gestions des comptes mails (ex: courier, cyrus)
    • add - Crée un compte pop ou un alias
    • edit - Modifie les paramètres d'un email
    • del - Détruit un email.
    • list - Obtiens la liste des emails d'un compte.
  • Statistiques web (ex: awstats, webalizer)
    • add - Crée un jeu de stats
    • edit - Modifie les paramètres du jeu de stat (autorisations, archivage, etc.)
    • del - Efface le jeu de stats et purge ses données
    • adduser - Ajoute un compte utilisateur

      Note : ici on risque d'avoir des problème de correspondances de fonctionnalités ...

      phpmyvisite / awstat / webalizer & co sont très différents

  • Ftp : comptes ftp (ex: proftpd)
    • add - créé un compte ftp
    • del - supprime un ou des compte ftp
    • edit - met à jour le compte ftp ( mot de passe, repertoire /, RO ou RW)
  • Mailing-Lists (ex: mailman, sympa)
    • add - ajoute une mailing list
    • del - supprime une ou des mailing list
    • edit - modifie les paramètres de base de la mailing list
    • subscribe - abonne un/plusieurs emails
    • unsubscribe - désabonne un/plusieurs emails
  • DB (ex: mysql, postgresql, firebird)
    • add - Crée une base de données utilisateur
    • del - Droppe une base de données utilisateur
    • user_add - Ajoute un compte d'accès aux db.
    • user_del - Supprime un compte d'accès aux db.
    • user_right - Modifie les droits pour l'utilisateur des bases
    • user_right_enum - Retourne la liste des droits affectable à un utilisateur

    car la liste des droits varie d'un sgbd à un autre ...

  • Jabber (ex: ejabberd)
    • add_vhost - Crée un domaine virtuel dans jabber
    • del_vhost - Supprime un vhost et tous ses comptes
    • add - Crée un compte jabber sur un vhost
    • edit - Modifie les paramètres d'un compte
    • del - Supprime un compte

TODO

  • pour chaque fonction de chaque module, préciser ses paramètres, leurs types,

la valeur (ou les valeurs) retournées et les codes d'erreur possibles (string + integer)