| | |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.HashSet; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Set; |
| | | |
| | | import javax.persistence.EntityManager; |
| | | import javax.persistence.Query; |
| | |
| | | new VelocityProcessor("/de/hsadmin/mods/dom/zonefile.vm", zonefileTemplateVars, dom, zonefileTargetPath, false); |
| | | final Processor zonefileACLProcessor = |
| | | new ShellProcessor("chown root:bind " + zonefileTargetPath + " && chmod 644 " + zonefileTargetPath); |
| | | final Query query = em.createQuery("SELECT d FROM Domains d WHERE d.user.pac.hive.name = :hivename"); |
| | | query.setParameter("hivename", dom.getUser().getHiveName()); |
| | | final String hiveName = dom.getUser().getHiveName(); |
| | | final Query domsQuery = em.createQuery("SELECT d FROM Domains d WHERE d.user.pac.hive.name = :hivename"); |
| | | domsQuery.setParameter("hivename", hiveName); |
| | | final List<?> domsList = domsQuery.getResultList(); |
| | | final Set<String> domsNames = new HashSet<>(); |
| | | for (final Object obj : domsList) { |
| | | if (obj instanceof Domain) { |
| | | domsNames.add(((Domain) obj).getName()); |
| | | } |
| | | } |
| | | final Query pacsQuery = em.createQuery("SELECT p FROM Pacs p WHERE p.hive.name = :hivename"); |
| | | domsQuery.setParameter("hivename", hiveName); |
| | | final List<?> pacsList = pacsQuery.getResultList(); |
| | | for (final Object obj : pacsList) { |
| | | if (obj instanceof Pac) { |
| | | domsNames.add(((Pac) obj).getName() + ".hostsharing.net"); |
| | | } |
| | | } |
| | | final Map<String, Object> namedZonesTemplateVars = new HashMap<String, Object>(); |
| | | namedZonesTemplateVars.put("domains", query.getResultList()); |
| | | namedZonesTemplateVars.put("domains", domsNames); |
| | | final Processor prizonesFileProcessor = new CompoundProcessor( |
| | | new VelocityProcessor("/de/hsadmin/mods/dom/named-pri-zones.vm", |
| | | namedZonesTemplateVars, dom, "/etc/bind/named.pri-zones.tmp", true), |
| | |
| | | private ShellProcessor createHiveDNSRemoveProcessor(String domName) { |
| | | return new ShellProcessor("grep -v '\"pri." + domName + "\"' /etc/bind/named.pri-zones > /etc/bind/named.pri-zones.tmp" + |
| | | " && mv /etc/bind/named.pri-zones.tmp /etc/bind/named.pri-zones" + |
| | | " && rm /etc/bind/pri." + domName + |
| | | " && rm -f /etc/bind/pri." + domName + |
| | | " && invoke-rc.d bind9 reload"); |
| | | } |
| | | |