From 71e3b7c2683e557217e1b8d0bbf8646b951bb7bb Mon Sep 17 00:00:00 2001
From: Antoine Catton <acatton@tiolive.com>
Date: Tue, 25 Oct 2011 16:12:50 +0200
Subject: [PATCH] Final improvement of mydumper

---
 slapos/recipe/mydumper.py | 61 ++++++++++++++++++++++++++++++---------
 1 file changed, 48 insertions(+), 13 deletions(-)

diff --git a/slapos/recipe/mydumper.py b/slapos/recipe/mydumper.py
index 4437fb910..75dd3e2bc 100644
--- a/slapos/recipe/mydumper.py
+++ b/slapos/recipe/mydumper.py
@@ -29,20 +29,53 @@ import subprocess
 from slapos.recipe.librecipe import GenericBaseRecipe
 
 def dump(args):
-  mydumper_binary = args['mydumper']
-  database = args['database']
-  socket = args['socket']
-  directory = args['directory']
-
-  mydumper_cmd = [mydumper_binary,
-                  '-B', database,
-                  '-u', 'root',
-                  '-S', socket,
-                  '-o', directory,
-                 ]
+  mydumper_cmd = [args['mydumper']]
+  mydumper_cmd.extend(['-B', args['database']])
+
+  if args['socket'] is not None:
+    mydumper_cmd.extend(['-S', args['socket']])
+  else:
+    mydumper_cmd.extend(['-h', args['host']])
+    mydumper_cmd.etxned(['-P', args['port']])
+
+  mydumper_cmd.extend(['-u', args['user']])
+  if args['password'] is not None:
+    mydumper_cmd.extend(['-p', args['password']])
+
+  if args['compression']:
+    mydumper_cmd.append('--compress')
+
+  if args['rows'] is not None:
+    mydumper_cmd.extend(['-r', args['rows']])
+
+  mydumper_cmd.extend(['-o', args['directory']])
+
+  subprocess.check_call(mydumper_cmd)
+
+
+
+def do_import(args):
+  mydumper_cmd = [args['mydumper']]
+  mydumper_cmd.extend(['-B', args['database']])
+
+  if args['socket'] is not None:
+    mydumper_cmd.extend(['-S', args['socket']])
+  else:
+    mydumper_cmd.extend(['-h', args['host']])
+    mydumper_cmd.etxned(['-P', args['port']])
+
+  mydumper_cmd.extend(['-u', args['user']])
+  if args['password'] is not None:
+    mydumper_cmd.extend(['-p', args['password']])
+
+  mydumper_cmd.append('--overwrite-tables')
+
+  mydumper_cmd.extend(['-d', args['directory']])
 
   subprocess.check_call(mydumper_cmd)
 
+
+
 class Recipe(GenericBaseRecipe):
 
   def install(self):
@@ -59,7 +92,6 @@ class Recipe(GenericBaseRecipe):
                   directory=self.options['backup-directory'],
                   user=self.options['user'],
                   password=self.options.get('password'),
-                  compression=self.optionIsTrue('compression', default=False)
                  )
 
     name = __name__
@@ -67,7 +99,10 @@ class Recipe(GenericBaseRecipe):
       config.update(mydumper=self.options['myloader-binary'])
       name += '.do_import'
     else:
-      config.update(mydumper=self.options['mydumper-binary'])
+      config.update(mydumper=self.options['mydumper-binary'],
+                    compression=self.optionIsTrue('compression', default=False),
+                    rows=self.options.get('rows'),
+                   )
       name += '.dump'
 
     wrapper = self.createPythonScript(self.options['wrapper'],
-- 
2.30.9