[AlternC-dev] Gestion de création des ressources

Retour à l'archive de la liste
Le site d'AlternC
Google Custom Search

Alan Garcia a.garcia at nnx.com
Lun 7 Juil 14:46:57 CEST 2014


On 07/07/2014 12:33, Remi wrote:
> On Mon, 7 Jul 2014, François wrote:
>
> |On 07/07/2014 11:56 AM, Remi wrote:
> |
> |Je réponds comme un sagouin : ok mon idée est "pas bonne".
> |Alors comment je fais passer le test unitaire qui dit que quand je fais
> |un compte FTP il y a bien un répertoire?
> |Je fais sleep(30) en espérant que la (i)cron soit passée?
> |
> |c'est juste crade.
>
> Quel est le problème dans le fonctionnement actuel?
>
> Créer un répertoire est une action immédiate, créer un compte FTP
> également.
>
> Si la classe "action" est asynchrone et que ça nous pose problème, c'est
> éventuellement que cette classe n'a pas été pensée comme on le souhaitait
> à long terme.
>
> * $action->create_dir : une écriture en BDD pour l'entrée en file + une
> écriture de fichier
>
> * do_actions : 2 écritures en BDD pour le démarrage et la fin de la tâche
> + un mkdir
>
> Pourquoi faire 3 écritures en BDD, une écriture de fichier est il
> requis pour la simple création d'un répertoire?

Parce que le panel n'as pas de raison d'avoir les droits d'y toucher. 
Parce que c'est meme pas forcément la machine qui héberge le panel qui 
va le faire.

A terme, le panel doit etre un site web php/mysql comme les autres. 
Après, il peux ou bien taper directement dans la base, ou passer par une 
API, ce n'a pas d'importance sur le principe.

Mais le panel n'as pas de raison d'agir sur les fichiers. Et "un jour" 
il n'en aura meme plus les les droits.

Sur ton truc de "oui, mais pour le panel "yaka" crééer un répertoire", 
c'est l'approche qu'on avait avant et qui a conduit a des soucis :
  - création de répertoire : ok, on va dire pas de soucis
  - suppression de répertoire : ca DOIT etre asynchrone, parce que 
typiquement un répertoire de cache spip de 3Go, faut pas etre pressé
  - extraction d'archive : une archive de plusieurs Go, argggg.
  - suppression de fichier : ok, on va dire pas de soucis

Donc on a une partie des actions qui n'a "pas de soucis". Sauf que si on 
veux faire des actions à la suite, genre : je supprime mon répertoire de 
cache et je re-créé le répertoire, paf pastéque : le répertoire avait 
pas fini d'être supprimé.

La classe action actuelle a été un truc codé rapidement, et pas parfait, 
pour résoudre ces problèmes là.
Le fonctionnement est le suivant :
  - on ajoute un truc en todolist
  - déclenche le lancement du script do_action si il n'est pas déjà en 
train de tourner. Ce qui fait que l'action est immédiate.

On se retrouve, certe, a avoir un workflow plus lourd pour certain truc 
simple (genre création de répertoire), mais au moins on en a un seul 
pour tout ce qui est action "systeme". Si on se retrouve à avoir 15 
workflow, on s'en sortira pas.

Ce que propose fser et alban me parait une bonne idée.
Par contre, je pense qu'il faut, en tout est pour tout, avoir deux 
workflow dans Alternc :
  - un pour les action nécessitant une action "systéme" : modification 
de vhost, modification de zone DNS, création de répertoires
  - un pour les action nécessitant simplement du provisionning : 
création de compte FTP, changement d'un mot de passe mail.

Mais, meme ainsi, ca a un vrai avantage d'avoir cette espece de 
"todolist", parce que ca permet aussi de pouvoir "rejouer" des actions.
"Tiens, ma création de compte FTP n'est pas passé a cause du quota, j'ai 
demandé un update de quota, je clique sur REDO dans ma todolist, et ca 
marche".

Ca avance dans le sens d'avoir un daemon AlternC system, ca m'plait.

Hop, et 2cts de plus

-- 
Alan Garcia
Neuronnexion, Prestataire Internet & Intranet
21 rue Frédéric Petit - 80000 Amiens
tel: 03 22 71 61 90 - fax: 03 22 71 61 99
http://www.neuronnexion.coop


Plus d'informations sur la liste de diffusion Dev