django-orchestra/orchestra/apps/webapps/backends/drupalmu.py

38 lines
1.3 KiB
Python

import os
import textwrap
from django.utils.translation import ugettext_lazy as _
from orchestra.apps.orchestration import ServiceController
from .. import settings
class DrupalMuBackend(ServiceController):
verbose_name = _("Drupal multisite")
model = 'webapps.WebApp'
def save(self, webapp):
context = self.get_context(webapp)
self.append(textwrap.dedent("""\
mkdir %(drupal_path)s
chown -R www-data %(drupal_path)s
# the following assumes settings.php to be previously configured
REGEX='^\s*$databases\[.default.\]\[.default.\]\[.prefix.\]'
CONFIG='$databases[\'default\'][\'default\'][\'prefix\'] = \'%(app_name)s_\';'
if [[ ! $(grep $REGEX %(drupal_settings)s) ]]; then
echo $CONFIG >> %(drupal_settings)s
fi""") % context
)
def delete(self, webapp):
context = self.get_context(webapp)
self.append("rm -fr %(app_path)s" % context)
def get_context(self, webapp):
context = super(DrupalMuBackend, self).get_context(webapp)
context['drupal_path'] = settings.WEBAPPS_DRUPAL_SITES_PATH % context
context['drupal_settings'] = os.path.join(context['drupal_path'], 'settings.php')
return context