Index: /branches/ipp-259_genericise_backups/tools/backups/confluence_backup.py
===================================================================
--- /branches/ipp-259_genericise_backups/tools/backups/confluence_backup.py	(revision 40949)
+++ /branches/ipp-259_genericise_backups/tools/backups/confluence_backup.py	(revision 40950)
@@ -4,29 +4,50 @@
 import os.path as path
 
-import backups.backup as bck
+import backups.utils.config_parse_helper as cfg_help
+import backups.utils.errors as errs
 import backups.utils.subprocess_utils as sub_utils
-import backups.utils.errors as errs
 from backups.backup import Backup
-from backups.utils.config_parse_helper import ConfigSchema
+from backups.utils.config_parse_helper import ConfigSchema, ConfigSchemaSection, ConfigSchemaLine
 
 EXPECTED_CONFIG_FILE = path.join(path.dirname(__file__), './confluence_backup.config')
 
-CONFLUENCE_SCHEMA = bck.get_backup_schema()
-
-
-def make_confluence_schema():
-    schema = ConfigSchema(None)
-    schema.add_section(bck.DEFAULT_SCHEMA_SECTION)
-    schema.add_section(bck.COPY_SCHEMA_SECTION)
-    schema.add_section(bck.TAR_SCHEMA_SECTION)
-    schema.add_section(bck.MYSQLDUMP_SCHEMA_SECTION)
-    return schema
+CONFLUENCE_SCHEMA = ConfigSchema(
+    [ ConfigSchemaSection('DEFAULT',
+        [ ConfigSchemaLine('backup_paths',   True,  list,
+            cfg_help.SpecialSchemaProcessing.commma_separated)
+        , ConfigSchemaLine('source_machine', True,  str)
+        , ConfigSchemaLine('verbose',        False, bool)
+        , ConfigSchemaLine('make_dirs',      False, bool)
+        ])
+    , ConfigSchemaSection('COPY',
+        [ ConfigSchemaLine('sources',         True,  list,
+            cfg_help.SpecialSchemaProcessing.commma_separated)
+        , ConfigSchemaLine('additional_args', False, list,
+            cfg_help.SpecialSchemaProcessing.space_separated)
+        ])
+    , ConfigSchemaSection('TAR',
+        [ ConfigSchemaLine('sources',         True,  list,
+            cfg_help.SpecialSchemaProcessing.commma_separated)
+        , ConfigSchemaLine('additional_args', False, list,
+            cfg_help.SpecialSchemaProcessing.space_separated)
+        , ConfigSchemaLine('target_filename', True,  str)
+        , ConfigSchemaLine('prefix_date',     True,  bool)
+        ])
+    , ConfigSchemaSection('MYSQLDUMP',
+        [ ConfigSchemaLine('user',            True,  str)
+        , ConfigSchemaLine('password',        True,  str)
+        , ConfigSchemaLine('db_name',         True,  str)
+        , ConfigSchemaLine('additional_args', False, list,
+            cfg_help.SpecialSchemaProcessing.space_separated)
+        , ConfigSchemaLine('target_filename', True,  str)
+        , ConfigSchemaLine('prefix_date',     True,  bool)
+        ])
+    ]
+)
 
 
 class ConfluenceBackup(Backup):
 
-    def __init__(self, config_file=EXPECTED_CONFIG_FILE, schema=None):
-        if schema is None:
-            schema = make_confluence_schema()
+    def __init__(self, config_file=EXPECTED_CONFIG_FILE, schema=CONFLUENCE_SCHEMA):
         self.load_config(config_file, schema)
 
Index: /branches/ipp-259_genericise_backups/tools/backups/jira_backup.py
===================================================================
--- /branches/ipp-259_genericise_backups/tools/backups/jira_backup.py	(revision 40949)
+++ /branches/ipp-259_genericise_backups/tools/backups/jira_backup.py	(revision 40950)
@@ -4,27 +4,50 @@
 import os.path as path
 
-import backups.backup as bck
+import backups.utils.config_parse_helper as cfg_help
+import backups.utils.errors as errs
 import backups.utils.subprocess_utils as sub_utils
-import backups.utils.errors as errs
 from backups.backup import Backup
-from backups.utils.config_parse_helper import ConfigSchema
+from backups.utils.config_parse_helper import ConfigSchema, ConfigSchemaSection, ConfigSchemaLine
 
 EXPECTED_CONFIG_FILE = path.join(path.dirname(__file__), './jira_backup.config')
 
-
-def make_jira_schema():
-    schema = ConfigSchema(None)
-    schema.add_section(bck.DEFAULT_SCHEMA_SECTION)
-    schema.add_section(bck.COPY_SCHEMA_SECTION)
-    schema.add_section(bck.TAR_SCHEMA_SECTION)
-    schema.add_section(bck.MYSQLDUMP_SCHEMA_SECTION)
-    return schema
+JIRA_SCHEMA = ConfigSchema(
+    [ ConfigSchemaSection('DEFAULT',
+        [ ConfigSchemaLine('backup_paths',   True,  list,
+            cfg_help.SpecialSchemaProcessing.commma_separated)
+        , ConfigSchemaLine('source_machine', True,  str)
+        , ConfigSchemaLine('verbose',        False, bool)
+        , ConfigSchemaLine('make_dirs',      False, bool)
+        ])
+    , ConfigSchemaSection('COPY',
+        [ ConfigSchemaLine('sources',         True,  list,
+            cfg_help.SpecialSchemaProcessing.commma_separated)
+        , ConfigSchemaLine('additional_args', False, list,
+            cfg_help.SpecialSchemaProcessing.space_separated)
+        ])
+    , ConfigSchemaSection('TAR',
+        [ ConfigSchemaLine('sources',         True,  list,
+            cfg_help.SpecialSchemaProcessing.commma_separated)
+        , ConfigSchemaLine('additional_args', False, list,
+            cfg_help.SpecialSchemaProcessing.space_separated)
+        , ConfigSchemaLine('target_filename', True,  str)
+        , ConfigSchemaLine('prefix_date',     True,  bool)
+        ])
+    , ConfigSchemaSection('MYSQLDUMP',
+        [ ConfigSchemaLine('user',            True,  str)
+        , ConfigSchemaLine('password',        True,  str)
+        , ConfigSchemaLine('db_name',         True,  str)
+        , ConfigSchemaLine('additional_args', False, list,
+            cfg_help.SpecialSchemaProcessing.space_separated)
+        , ConfigSchemaLine('target_filename', True,  str)
+        , ConfigSchemaLine('prefix_date',     True,  bool)
+        ])
+    ]
+)
 
 
 class JiraBackup(Backup):
 
-    def __init__(self, config_file=EXPECTED_CONFIG_FILE, schema=None):
-        if schema is None:
-            schema = make_jira_schema()
+    def __init__(self, config_file=EXPECTED_CONFIG_FILE, schema=JIRA_SCHEMA):
         self.load_config(config_file, schema)
 
