HSAdmin Backend Domains, E-Mail, Datenbanken
Michael Hierweck
2012-09-20 9a219290a4b5a81fb2e7e24ba83980606caf3a89
(Re)generate /etc/apache2/virtual.conf on pac.add and pac.delete.
3 files modified
43 ■■■■■ changed files
hsarback/src/de/hsadmin/mods/dom/DomainProcessorFactory.java 10 ●●●● patch | view | raw | blame | history
hsarback/src/de/hsadmin/mods/pac/PacProcessorFactory.java 21 ●●●●● patch | view | raw | blame | history
hsarback/src/de/hsadmin/mods/pac/httpd-virtual.jtpl 12 ●●●● patch | view | raw | blame | history
hsarback/src/de/hsadmin/mods/dom/DomainProcessorFactory.java
@@ -313,15 +313,15 @@
            createDomainDirectoriesProcessor(dom, templateVars),
            new CreateFileProcessor(selectVHostTemplate(dom), templateVars, "/etc/apache2/sites-available/" + domName + ".tmp", "root", "root", "644", true),
            new ShellProcessor("ls /etc/apache2/pems/" + pac + ".pem >/dev/null 2>&1 " +
                    "&& sed -i '/SSLCertificate.*default/d' " + "/etc/apache2/sites-available/" + domName + ".tmp" +
                    " && (ls /etc/apache2/pems/" + pac + ".chain.pem >/dev/null 2>&1 || sed -i '/SSLCertificateChain.*" + pac + "/d' " + "/etc/apache2/sites-available/" + domName + ")" +
                    " && sed -i '/SSLCertificate.*default/d' " + "/etc/apache2/sites-available/" + domName + ".tmp" +
                    " && (ls /etc/apache2/pems/" + pac + ".chain.pem >/dev/null 2>&1 || sed -i '/SSLCertificateChain.*" + pac + "/d' " + "/etc/apache2/sites-available/" + domName + ".tmp)" +
                    " || sed -i '/SSLCertificate.*" + pac + "/d' " + "/etc/apache2/sites-available/" + domName + ".tmp"),
            new ShellProcessor(
                    " ( diff -q /etc/apache2/sites-available/" + domName + ".tmp /etc/apache2/sites-available/" + domName + " && rm /etc/apache2/sites-available/" + domName + ".tmp ) " +
                    " || ( mv /etc/apache2/sites-available/" + domName + ".tmp /etc/apache2/sites-available/" + domName +
                    " (diff -q /etc/apache2/sites-available/" + domName + ".tmp /etc/apache2/sites-available/" + domName + " && rm /etc/apache2/sites-available/" + domName + ".tmp ) " +
                    " || (mv /etc/apache2/sites-available/" + domName + ".tmp /etc/apache2/sites-available/" + domName +
                    " && rm -f /etc/apache2/sites-enabled/" + linkPrefix + "-" + domName + 
                    " && ln -sf /etc/apache2/sites-available/" + domName + " /etc/apache2/sites-enabled/" + linkPrefix + "-" + domName + 
                    " && invoke-rc.d apache2 reload >/dev/null 2>&1 ) ")
                    " && invoke-rc.d apache2 reload >/dev/null 2>&1)")
        );
        return domSetupProcessor;
    }
hsarback/src/de/hsadmin/mods/pac/PacProcessorFactory.java
@@ -16,6 +16,7 @@
import de.hsadmin.core.qserv.ProcessorException;
import de.hsadmin.core.qserv.ShellProcessor;
import de.hsadmin.core.qserv.TemplateProcessor;
import de.hsadmin.core.qserv.CreateFileProcessor;
import de.hsadmin.core.qserv.WaitingTasksProcessor;
import de.hsadmin.core.util.Config;
import de.hsadmin.core.util.PasswordTool;
@@ -44,10 +45,25 @@
                createSudouersProc(hiveValues, pacValuesList), 
                createProftpdConfProc(hiveValues, pacValuesList), 
                createMakePacDirectoryStructure(unixUser),
                createIfUp(pacName));
                createIfUp(pacName),
                createHttpdVirtualProc(pacName, pacValuesList));
        WaitingTasksProcessor secProcessor = new WaitingTasksProcessor(priProcessor);
//        secProcessor.appendProcessor(pac.getHiveName(), createSendEMailProc(pacName, customerEMail, emailVars), "send email to customer");
        return secProcessor;
    }
    private Processor createHttpdVirtualProc(
            String pacName, List<Map<String, String>> pacValuesList) throws ProcessorException {
        Processor domSetupProcessor = new CompoundProcessor(
                new CreateFileProcessor("/de/hsadmin/mods/pac/httpd-virtual.jtpl", new HashMap<String, String>(), pacValuesList.iterator(), "/etc/apache2/virtual.conf.tmp", "root", "root", "644", true),
                new ShellProcessor("ls /etc/apache2/pems/" + pacName + ".pem >/dev/null 2>&1 " + "&& sed -i '/SSLCertificate.*default/d' " + "/etc/apache2/apache.conf.tmp"
                                + " && (ls /etc/apache2/pems/" + pacName + ".chain.pem >/dev/null 2>&1"
                                + " || sed -i '/SSLCertificateChain.*" + pacName + "/d' "/etc/apache2/virtual.conf.tmp)"
                                + " || sed -i '/SSLCertificate.*" + pacName"/d' " + "/etc/apache2/virtual.conf.tmp"),
                new ShellProcessor("(diff -q /etc/apache2/apache.conf.tmp /etc/apache2/apache.conf"
                                + " && rm /etc/apache2/apache.conf.tmp)"
                                + " || invoke-rc.d apache2 reload >/dev/null 2>&1"));
        return domSetupProcessor;
    }
    @Override
@@ -68,7 +84,8 @@
                createEtcHostsProc(hiveValues, pacValuesList), 
                createNetworkInterfacesProc(hiveValues, pacValuesList), 
                createSudouersProc(hiveValues, pacValuesList), 
                createProftpdConfProc(hiveValues, pacValuesList)));
                createProftpdConfProc(hiveValues, pacValuesList),
                createHttpdVirtualProc(pac.getName(), pacValuesList)));
        waitingProcessor.appendProcessor(pac.getHiveName(), createDelUserProc(pac.getName()), "remove packet");
        return waitingProcessor;
    }
hsarback/src/de/hsadmin/mods/pac/httpd-virtual.jtpl
@@ -3,18 +3,17 @@
# Do not edit manually. Changes will be overwritten.
#
NameVirtualHost {PAC_IPNUMBER}:80
NameVirtualHost {PAC_IPNUMBER_EX}:80
NameVirtualHost {PAC_IPNUMBER}:443
NameVirtualHost {PAC_IPNUMBER_EX}:443
<!-- BEGIN: iterate -->
NameVirtualHost {PAC_IP}:80
NameVirtualHost {PAC_IP}:443
<VirtualHost {PAC_IPNUMBER}:80 {PAC_IPNUMBER_EX}:80>
<VirtualHost {PAC_IP}:80>
   Redirect 404 /
</VirtualHost>
<VirtualHost {PAC_IPNUMBER}:443 {PAC_IPNUMBER_EX}:443>
<VirtualHost {PAC_IP}:443>
    SSLEngine On
    SSLCertificateFile /etc/apache2/pems/default.pem
@@ -25,4 +24,5 @@
    Redirect 404 /
    
</VirtualHost>
<!-- END: iterate -->
<!-- END: main -->