diff --git a/hsarback/src/de/hsadmin/mods/pac/PacProcessorFactory.java b/hsarback/src/de/hsadmin/mods/pac/PacProcessorFactory.java index 564ce77..251a450 100644 --- a/hsarback/src/de/hsadmin/mods/pac/PacProcessorFactory.java +++ b/hsarback/src/de/hsadmin/mods/pac/PacProcessorFactory.java @@ -20,6 +20,7 @@ import de.hsadmin.core.qserv.ProcessorException; import de.hsadmin.core.qserv.ShellProcessor; import de.hsadmin.core.qserv.VelocityProcessor; import de.hsadmin.core.qserv.WaitingTasksProcessor; +import de.hsadmin.core.util.Config; import de.hsadmin.core.util.PasswordTool; import de.hsadmin.hostsharing.BasePacType; import de.hsadmin.hostsharing.QuotaLimit; @@ -39,7 +40,7 @@ public class PacProcessorFactory implements EntityProcessorFactory { Hive hive = pac.getHive(); UnixUser unixUser = getPacAdminUser(pac); String password = PasswordTool.generatePassword(); - return new CompoundProcessor( + WaitingTasksProcessor mainProcessor = new WaitingTasksProcessor(new CompoundProcessor( createAddUserProc(pacName, unixUser, password), createSetQuotaProc(pac), createEtcHostsProc(hive), @@ -51,8 +52,12 @@ public class PacProcessorFactory implements EntityProcessorFactory { createMakePacDirectoryStructure(unixUser), createIfUp(pac), createHttpdVirtualProc(hive), - createDNSServerConfigProcessor(em), - createAccountingRulesProc()); + createAccountingRulesProc())); + final Config config = Config.getInstance(); + for (String queueName : config.getProperty("queues.dns").split(",")) { + mainProcessor.appendProcessor(queueName, createDNSServerConfigProcessor(em), queueName + ".hostsharing.net"); + } + return mainProcessor; } else { return new NullProcessor(); } @@ -65,13 +70,18 @@ public class PacProcessorFactory implements EntityProcessorFactory { String basepacName = pac.getBasepac().getName(); if (basepacName.equals(BasePacType.PAC_WEB)) { Hive hive = pac.getHive(); - return new CompoundProcessor( + final WaitingTasksProcessor mainProcessor = new WaitingTasksProcessor( new CompoundProcessor( createEtcHostsProc(hive), createNetworkInterfacesProc(hive), createProftpdConfProc(hive), createHttpdVirtualProc(hive), createSetQuotaProc(pac) - ); + )); + final Config config = Config.getInstance(); + for (String queueName : config.getProperty("queues.dns").split(",")) { + mainProcessor.appendProcessor(queueName, createDNSServerConfigProcessor(em), queueName + ".hostsharing.net"); + } + return mainProcessor; } else { return new NullProcessor(); } @@ -93,7 +103,6 @@ public class PacProcessorFactory implements EntityProcessorFactory { createSudouersProc(hive), createProftpdConfProc(hive), createHttpdVirtualProc(hive), - createDNSServerConfigProcessor(em), createHiveDNSRemoveProcessor(domainName), createAccountingRulesProc()), "remove packet"); return waiting;