django-orchestra-test/orchestra/apps/websites/backends/webalizer.py

85 lines
3.3 KiB
Python

import os
from functools import partial
from django.utils.translation import ugettext_lazy as _
from orchestra.apps.orchestration import ServiceBackend
from .. import settings
class WebalizerBackend(ServiceBackend):
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