django-orchestra/orchestra/contrib/websites/backends/wordpress.py

38 lines
1.2 KiB
Python

import textwrap
from orchestra.contrib.orchestration import ServiceController
class WordPressURLController(ServiceController):
"""
Configures WordPress site URL with associated website domain.
"""
verbose_name = "WordPress URL"
model = 'websites.Content'
default_route_match = "content.webapp.type == 'wordpress-php'"
def save(self, content):
context = self.get_context(content)
if context['url']:
self.append(textwrap.dedent("""\
mysql %(db_name)s -e 'UPDATE wp_options
SET option_value="%(url)s"
WHERE option_id IN (1, 2) AND option_value="http:";'
""") % context
)
def delete(self, content):
context = self.get_context(content)
self.append(textwrap.dedent("""\
mysql %(db_name)s -e 'UPDATE wp_options
SET option_value="http:"
WHERE option_id IN (1, 2);'
""") % context
)
def get_context(self, content):
return {
'url': content.get_absolute_url(),
'db_name': content.webapp.data.get('db_name'),
}