Beispiel #1
0
    def __init__(self):
        if os.environ.has_key('PYSILHOUETTE_CONF') is False:
            print >>sys.stderr, '[Error] "PYSILHOUETTE_CONF" did not exist in the environment.'
            sys.exit(1)
            
        self.cf = pysilhouette.prep.readconf(os.environ['PYSILHOUETTE_CONF'])
        if self.logger is None:
            pysilhouette.log.reload_conf(self.cf["env.sys.log.conf.path"])
            self.logger = logging.getLogger('pysilhouette.command') 

        try:
            self.db = Database(self.cf['database.url'],
                          encoding="utf-8",
                          convert_unicode=True,
                          #assert_unicode='warn', # DEBUG
                          echo = False,
                          echo_pool = False,
                          )

            reload_mappers(self.db.get_metadata())
            self.session = self.db.get_session()
        except Exception, e:
            print >>sys.stderr, '[Error] Initializing a database error - %s' % str(e.args)
            self.logger.error('Initializing a database error - %s' % str(e.args))
            t_logger = logging.getLogger('pysilhouette_traceback')
            t_logger.error(traceback.format_exc())
            sys.exit(1)
Beispiel #2
0
def create_database(cf):
    db = None
    if cf['database.url'][:6].strip() == 'sqlite':
        db = Database(
            cf['database.url'],
            encoding="utf-8",
            convert_unicode=True,
        )
    else:
        if cf['database.pool.status'] == 1:
            db = Database(
                cf['database.url'],
                encoding="utf-8",
                convert_unicode=True,
                poolclass=QueuePool,
                pool_size=cf['database.pool.size'],
                max_overflow=cf['database.pool.max.overflow'],
            )
        else:
            db = Database(
                cf['database.url'],
                encoding="utf-8",
                convert_unicode=True,
                poolclass=SingletonThreadPool,
                pool_size=cf['database.pool.size'],
            )
    if db is None:
        raise SilhouetteDBException(
            'Initializing a database error - "Database" failed to create.')
    reload_mappers(db.get_metadata())
    return db
Beispiel #3
0
    def __init__(self):
        if os.environ.has_key('PYSILHOUETTE_CONF') is False:
            print >> sys.stderr, '[Error] "PYSILHOUETTE_CONF" did not exist in the environment.'
            sys.exit(1)

        self.cf = pysilhouette.prep.readconf(os.environ['PYSILHOUETTE_CONF'])
        if self.logger is None:
            pysilhouette.log.reload_conf(self.cf["env.sys.log.conf.path"])
            self.logger = logging.getLogger('pysilhouette.command')

        try:
            self.db = Database(
                self.cf['database.url'],
                encoding="utf-8",
                convert_unicode=True,
                #assert_unicode='warn', # DEBUG
                echo=False,
                echo_pool=False,
            )

            reload_mappers(self.db.get_metadata())
            self.session = self.db.get_session()
        except Exception, e:
            print >> sys.stderr, '[Error] Initializing a database error - %s' % str(
                e.args)
            self.logger.error('Initializing a database error - %s' %
                              str(e.args))
            t_logger = logging.getLogger('pysilhouette_traceback')
            t_logger.error(traceback.format_exc())
            sys.exit(1)
Beispiel #4
0
def create_database(cf):
    db = None
    if cf['database.url'][:6].strip() == 'sqlite':
        db = Database(cf['database.url'],
                      encoding="utf-8",
                      convert_unicode=True,
                      )
    else:
        if cf['database.pool.status'] == 1:
            db = Database(cf['database.url'],
                          encoding="utf-8",
                          convert_unicode=True,
                          poolclass=QueuePool,
                          pool_size=cf['database.pool.size'],
                          max_overflow=cf['database.pool.max.overflow'],
                          )
        else:
            db = Database(cf['database.url'],
                          encoding="utf-8",
                          convert_unicode=True,
                          poolclass=SingletonThreadPool,
                          pool_size=cf['database.pool.size'],
                          )
    if db is None:
        raise SilhouetteDBException('Initializing a database error - "Database" failed to create.')
    reload_mappers(db.get_metadata())
    return db
Beispiel #5
0
    def setUp(self):
        # O/R mapping
        self._db = Database(cf['database.url'], encoding="utf-8", convert_unicode=True, echo=True)
        reload_mappers(self._db.get_metadata())

        # database init
        self._db.get_metadata().drop_all()
        self._db.get_metadata().create_all() # create table
        pass
Beispiel #6
0
    def setUp(self):
        # O/R mapping
        self._db = Database(cf['database.url'],
                            encoding="utf-8",
                            convert_unicode=True,
                            echo=True)
        reload_mappers(self._db.get_metadata())

        # database init
        self._db.get_metadata().drop_all()
        self._db.get_metadata().create_all()  # create table
        pass
Beispiel #7
0
def test_setup(cf):
    # --
    db = Database(cf['database.url'], encoding='utf-8', convert_unicode=True)
    reload_mappers(db.get_metadata())

    db.get_metadata().drop_all()
    db.get_metadata().create_all()

    f_cmd = (
        u'python /root/repository/pysilhouette_svn/pysilhouette/job/sendmail.py'
        u' --from="root@localhost"'
        u' --to="root@localhost"'
        u' --subject="test"'
        u' --hostname="localhost"'
        u' --port="25"'
        u' --msg="%s"'
        u' --charset="utf-8"')

    session = db.get_session()
    jg1 = JobGroup(u'get date', '172.16.0.123')
    jg1.finish_command = f_cmd % jg1.name
    jb1 = Job(u'get date', '0', u'/bin/date error')
    jb1.rollback_command = u'/bin/date'
    jg1.jobs.append(jb1)
    jg2 = JobGroup(u'get route', '172.16.0.123')
    jg2.finish_command = f_cmd % jg2.name
    jg2.jobs.append(Job(u'get route', '1', u'/sbin/route'))
    jg3 = JobGroup(u'print string', '172.16.0.123')
    jg3.finish_command = f_cmd % jg3.name
    jg3.jobs.append(Job(u'print string', '2', u'/bin/echo test'))
    session.add_all([jg1, jg2, jg3])
    #session.add(jg1)
    session.commit()

    from pysilhouette.db.access import jobgroup_findbystatus
    _m_jgs = jobgroup_findbystatus(session)
    return db, session, _m_jgs
Beispiel #8
0
def test_setup(cf):
    # --
    db = Database(cf['database.url'], encoding='utf-8', convert_unicode=True)
    reload_mappers(db.get_metadata())

    db.get_metadata().drop_all()
    db.get_metadata().create_all()

    f_cmd = (u'python /root/repository/pysilhouette_svn/pysilhouette/job/sendmail.py'
             u' --from="root@localhost"'
             u' --to="root@localhost"'
             u' --subject="test"'
             u' --hostname="localhost"'
             u' --port="25"'
             u' --msg="%s"'
             u' --charset="utf-8"')

    session = db.get_session()
    jg1 = JobGroup(u'get date', '172.16.0.123')
    jg1.finish_command = f_cmd % jg1.name
    jb1 = Job(u'get date','0',u'/bin/date error')
    jb1.rollback_command = u'/bin/date'
    jg1.jobs.append(jb1)
    jg2 = JobGroup(u'get route', '172.16.0.123')
    jg2.finish_command = f_cmd % jg2.name
    jg2.jobs.append(Job(u'get route','1', u'/sbin/route'))
    jg3 = JobGroup(u'print string', '172.16.0.123')
    jg3.finish_command = f_cmd % jg3.name
    jg3.jobs.append(Job(u'print string','2', u'/bin/echo test'))
    session.add_all([jg1,jg2,jg3])
    #session.add(jg1)
    session.commit()

    from pysilhouette.db.access import jobgroup_findbystatus
    _m_jgs = jobgroup_findbystatus(session)
    return db, session, _m_jgs