~jorge/charms/precise/mysql/fix-metadata

« back to all changes in this revision

Viewing changes to examples/mediawiki/hooks/db-relation-changed

  • Committer: Clint Byrum
  • Date: 2011-02-16 18:15:58 UTC
  • Revision ID: clint@ubuntu.com-20110216181558-ep38cbgu3dzv0yyl
-Adding haproxy integration
-making sure only one node runs the db setup

Show diffs side-by-side

added added

removed removed

Lines of Context:
5
5
import subprocess
6
6
import json
7
7
import time
 
8
import MySQLdb
8
9
 
9
10
change_type = os.environ.get("ENSEMBLE_CHANGE")
10
11
 
194
195
 
195
196
    # Restart apache
196
197
    do("/etc/init.d/apache2", "reload")
 
198
    
197
199
 
198
200
    # Write the adminsettings
199
201
    if change_type == 'modified':
200
 
      # First time setup, we have to POST to the db and capture the LocalSettings.php
201
 
      postargs = {'Sitename':'Ensemblized Wiki',
202
 
        'EmergencyContact':'webmaster@localhost',
203
 
        'LanguageCode':'en',
204
 
        'License':'none',
205
 
        'SysopName':'WikiSysop',
206
 
        'SysopPass':'change-me',
207
 
        'SysopPass2':'change-me',
208
 
        'Shm':'none',
209
 
        'Email':'email_enabled',
210
 
        'Emailuser':'emailuser_enabled',
211
 
        'Enotif':'enotif_disabled',
212
 
        'Eauthent':'eauthent_enabled',
213
 
        'DBtype':'mysql',
214
 
        'DBserver':host,
215
 
        'DBname':database,
216
 
        'DBuser':user,
217
 
        'DBpassword':password,
218
 
        'DBpassword2':password,
219
 
      }
 
202
      connection = MySQLdb.connect(user=user, host=host, passwd=password, db=database)
 
203
      cursor = connection.cursor()
 
204
      do_install = None
220
205
      try:
221
 
        install = urllib.urlopen('http://localhost/mediawiki/config/index.php', urllib.urlencode(postargs))
222
 
        print "install URL returned ",install.getcode()
 
206
        # Try to create the "mediawiki_ensemble_setup" table and if its already there, skip some things
 
207
        cursor.execute("create table mediawiki_ensemble_setup (id int)")
 
208
        do_install = True
223
209
      except Exception as e:
224
 
        print "WARNING: could not post to installer!"
225
 
        print e
226
 
      # Sadly, we really have to discard this LocalSettings.php and re-build
227
 
      # it using the template, so that joins can just generate it without
228
 
      # trying to create the whole DB.
229
 
      #do("mv","/var/lib/mediawiki/config/LocalSettings.php","/etc/mediawiki/LocalSettings.php.generated")
 
210
        # If we can't create that table, it has likely already been initialized
 
211
        print 'Could not create mediawiki_ensemble_setup: ' + str(e)
 
212
        do_install = False
 
213
      if do_install:
 
214
        # First time setup, we have to POST to the db and capture the LocalSettings.php
 
215
        postargs = {'Sitename':'Ensemblized Wiki',
 
216
          'EmergencyContact':'webmaster@localhost',
 
217
          'LanguageCode':'en',
 
218
          'License':'none',
 
219
          'SysopName':'WikiSysop',
 
220
          'SysopPass':'change-me',
 
221
          'SysopPass2':'change-me',
 
222
          'Shm':'none',
 
223
          'Email':'email_enabled',
 
224
          'Emailuser':'emailuser_enabled',
 
225
          'Enotif':'enotif_disabled',
 
226
          'Eauthent':'eauthent_enabled',
 
227
          'DBtype':'mysql',
 
228
          'DBserver':host,
 
229
          'DBname':database,
 
230
          'DBuser':user,
 
231
          'DBpassword':password,
 
232
          'DBpassword2':password,
 
233
        }
 
234
        try:
 
235
          install = urllib.urlopen('http://localhost/mediawiki/config/index.php', urllib.urlencode(postargs))
 
236
          print "install URL returned ",install.getcode()
 
237
        except Exception as e:
 
238
          print "WARNING: could not post to installer!"
 
239
          print e
 
240
        # Sadly, we really have to discard this LocalSettings.php and re-build
 
241
        # it using the template, so that joins can just generate it without
 
242
        # trying to create the whole DB.
 
243
        #do("mv","/var/lib/mediawiki/config/LocalSettings.php","/etc/mediawiki/LocalSettings.php.generated")
230
244
 
231
245
    # Write the mediawiki config
232
246
    fh = open('/etc/mediawiki/LocalSettings.php', "w")