def create_database(dbname): (DB_SU, DB_SU_PW) = drutils.get_dbsu() if drutils.database_exists(dbname, DB_SU, DB_SU_PW): raise DatabaseError("There is already a mysql database named '%s'." % dbname) if drutils.database_user_exists(dbname, DB_SU, DB_SU_PW): raise DatabaseError("There is already a mysql user named '%s'." % dbname) drutils.create_database_and_user(dbname, DB_SU, DB_SU_PW)
def infer_database_name(name): name = shorten_name(name) # get list of existing databases (DB_SU, DB_SU_PW) = drutils.get_dbsu() dblist = drutils.get_databases(DB_SU, DB_SU_PW) # if name is nonempty and is not in the list of databases, use it if name != "" and name not in dblist: return name # if name is empty, use "nappl" if name == "": name = "nappl" # find the first unused name of the form NAME-DDD: i = 1 while True: dbname = "%s_%03d" % (name, i) if dbname not in dblist: break ++i return dbname
def delete(self): """Deletes a Drupal container""" # drop the database try: dbname = self.get_dbname() # drop the database & user (DB_SU, DB_SU_PW) = drutils.get_dbsu() drutils.drop_database(dbname, DB_SU, DB_SU_PW) drutils.drop_user(dbname, DB_SU, DB_SU_PW) # drutils-delete # delete the drutils mysql cnf file # drutils-delete drutils_mysql_cnf = "/var/drutils/mysql/%s.cnf" % dbname # drutils-delete if os.path.exists(drutils_mysql_cnf): # drutils-delete os.remove(drutils_mysql_cnf) except: pass # # Delete the ApacheContainer # super(DrupalContainer, self).delete()