REPORT de la branche 1.1 (459->476)
[euphorik.git] / tools / mise_en_prod.erl
index 680384a..933aceb 100755 (executable)
@@ -5,13 +5,39 @@
 % Recharge les modules de euphorik et met à jour la BD.
 % TODO : construire le nom du noeud en fonction du nom de l'host
 
-main(_) -> 
+hote() ->
+   '@overnux'.
+
+% le premier argument est le nom du noeud est peut valoir :
+% - yaws : noeud de production
+% - yaws_dev : noeud de pre-production
+main([Nom_node]) when Nom_node =:= "yaws"; Nom_node =:= "yaws_dev" -> 
+   Node = list_to_atom(Nom_node ++ atom_to_list(hote())),
    net_kernel:start([flynux, shortnames]),
    io:format("rechargement des modules..~n"),
-   _Pid = spawn_link(yaws@overnux, euphorik_daemon, reload_euphorik, []),
-   receive
-      {'EXIT', _, _} ->
-         io:format("mise à jour de la BD..~n"),
-         spawn(yaws@overnux, euphorik_bd_update, update, [])
-   end.
+   rpc:call(Node, euphorik_daemon, reload_euphorik, []),
+   if Nom_node =:= "yaws_dev" -> copier_bd(Node);
+      true -> true
+   end,
+   io:format("mise à jour de la BD..~n"),
+   rpc:call(Node, euphorik_bd_admin, update, []);
+main(_) ->
+   io:format("Usage : mise_en_prod.erl <node>"),
+   halt(1).
 
+% Copie la bd du noeud de production
+copier_bd(Node) ->
+   io:format("Copie de la BD de production vers le noeude pre-production~n"),
+   Fichier = "/tmp/backup_ek_tmp",
+   Fichier2 = "/tmp/backup_ek_tmp2",
+   rpc:call(yaws@overnux, mnesia, backup, [Fichier]),
+   rpc:call(Node, euphorik_bd_admin, change_node_name, [yaws@overnux, yaws_dev@overnux, Fichier, Fichier2]),
+   rpc:call(Node, mnesia, restore, [Fichier2, [{default_op, recreate_tables}]]),
+   rpc:call(yaws@overnux, file, delete, [Fichier]),
+   rpc:call(Node, file, delete, [Fichier2]).
+   
+   
+   
+   
+   
+