Source code for lib_openmolar.server.functions.function_store

#! /usr/bin/env python
# -*- coding: utf-8 -*-

###############################################################################
##                                                                           ##
##  Copyright 2011, Neil Wallace <rowinggolfer@googlemail.com>               ##
##                                                                           ##
##  This program is free software: you can redistribute it and/or modify     ##
##  it under the terms of the GNU General Public License as published by     ##
##  the Free Software Foundation, either version 3 of the License, or        ##
##  (at your option) any later version.                                      ##
##                                                                           ##
##  This program is distributed in the hope that it will be useful,          ##
##  but WITHOUT ANY WARRANTY; without even the implied warranty of           ##
##  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            ##
##  GNU General Public License for more details.                             ##
##                                                                           ##
##  You should have received a copy of the GNU General Public License        ##
##  along with this program.  If not, see <http://www.gnu.org/licenses/>.    ##
##                                                                           ##
###############################################################################

import hashlib
import random
import pickle
import string

from db_functions import DBFunctions
from message_functions import MessageFunctions
from shell_functions import ShellFunctions
from lib_openmolar.server.misc.om_server_config import OMServerConfig

[docs]class FunctionStore(DBFunctions, ShellFunctions, MessageFunctions): ''' A class whose functions will be inherited by the server. Inherits from many other classes as only one call of SimpleXMLServer.register_instance is allowed. ''' _user = None
[docs] def __init__(self): self.config = OMServerConfig() DBFunctions.__init__(self)
@property
[docs] def MASTER_PWORD(self): return self.config.postgres_pass
[docs] def admin_welcome(self): ''' the html shown on startup to the admin application ''' dbs = self.available_databases() ## used to return this as part of the db list...############ #''' <li class="connect"> # <a href='connect_%s'>%s</a> # </li> # <li class="manage"> # <a href='manage_%s'>%s</a> # </li> #''' % (db, _("start a session on this database"), db, # _("management options")) ############################################################# if dbs == "NONE": message = self.postgres_error_message() elif dbs == []: message = self.no_databases_message() else: message = self.admin_welcome_template() db_list = "<ul>" for db in dbs: s_v = self.get_schema_version(db) db_list += ''' <li> <b>%s</b> (Schema Version %s) <a class="management_link" href='manage_%s'>%s</a> </li> '''% ( db, s_v, db, _("management options")) message = message.replace("{DATABASE LIST}", db_list) return message
[docs] def last_backup(self): ''' returns a iso formatted datetime string showing when the last backup was made ''' import datetime return datetime.datetime.now().isoformat()
[docs] def management_functions(self): ''' A list of tuples (func, description). Ultimately these are displayed to the user in a dialog. ''' return ( ("dropdb", _("Drop this database")), ("truncate_db", _("Remove All Data from this database")), ("manage_users", _("Manage Users")) )
def _test(): ''' test the FunctionStore class ''' sf = FunctionStore() print (sf.admin_welcome()) print (dir(sf)) print (sf.message_link("random_url_text")) sf.backup("openmolar_demo") sf.backup("openmolar_demo", schema_only=True) print (sf.get_update_script("/home/neil/tmp/openmolar_demo/orig.sql", "/home/neil/tmp/openmolar_demo/new.sql" )) if __name__ == "__main__": import __builtin__ import logging logging.basicConfig(level=logging.DEBUG) __builtin__.LOGGER = logging.getLogger("openmolar_server") _test()