import os from functools import partial from django.utils.translation import ugettext_lazy as _ from orchestra.apps.orchestration import ServiceController from .. import settings class WebalizerBackend(ServiceController): verbose_name = _("Webalizer") model = 'websites.Content' def save(self, content): context = self.get_context(content) self.append("mkdir -p %(webalizer_path)s" % context) self.append("[[ ! -e %(webalizer_path)s/index.html ]] && " "echo 'Webstats are coming soon' > %(webalizer_path)s/index.html" % context) self.append("echo '%(webalizer_conf)s' > %(webalizer_conf_path)s" % context) self.append("chown %(user)s.www-data %(webalizer_path)s" % context) def delete(self, content): context = self.get_context(content) self.append("rm -fr %(webalizer_path)s" % context) self.append("rm %(webalizer_conf_path)s" % context) def get_context(self, content): conf_file = "%s.conf" % content.website.name context = { 'site_logs': os.path.join(settings.WEBSITES_BASE_APACHE_LOGS, content.website.unique_name), 'site_name': content.website.name, 'webalizer_path': os.path.join(content.webapp.get_path(), content.website.name), 'webalizer_conf_path': os.path.join(settings.WEBSITES_WEBALIZER_PATH, conf_file), 'user': content.webapp.account.user, 'banner': self.get_banner(), } context['webalizer_conf'] = ( "# %(banner)s\n" "LogFile %(site_logs)s\n" "LogType clf\n" "OutputDir %(webalizer_path)s\n" "HistoryName webalizer.hist\n" "Incremental yes\n" "IncrementalName webalizer.current\n" "ReportTitle Stats of\n" "HostName %(site_name)s\n" "\n" "PageType htm*\n" "PageType php*\n" "PageType shtml\n" "PageType cgi\n" "PageType pl\n" "\n" "DNSCache /var/lib/dns_cache.db\n" "DNSChildren 15\n" "\n" "HideURL *.gif\n" "HideURL *.GIF\n" "HideURL *.jpg\n" "HideURL *.JPG\n" "HideURL *.png\n" "HideURL *.PNG\n" "HideURL *.ra\n" "\n" "IncludeURL *\n" "\n" "SearchEngine yahoo.com p=\n" "SearchEngine altavista.com q=\n" "SearchEngine google.com q=\n" "SearchEngine eureka.com q=\n" "SearchEngine lycos.com query=\n" "SearchEngine hotbot.com MT=\n" "SearchEngine msn.com MT=\n" "SearchEngine infoseek.com qt=\n" "SearchEngine webcrawler searchText=\n" "SearchEngine excite search=\n" "SearchEngine netscape.com search=\n" "SearchEngine mamma.com query=\n" "SearchEngine alltheweb.com query=\n" "\n" "DumpSites yes\n" ) % context return context