Example #1
0
def main():
    load_config()
    __connection__ = hub = PackageHub("bodhi")
    if len(sys.argv) != 2:
        print "Usage: %s <release>" % sys.argv[0]
        sys.exit(1)
    try:
        release = Release.byName(sys.argv[1].upper())
    except SQLObjectNotFound:
        print "Cannot find Release '%s'" % sys.argv[1]
        sys.exit(1)

    updates = PackageUpdate.select(PackageUpdate.q.releaseID == release.id)
    progress = ProgressBar(maxValue=updates.count())
    print "Destroying all updates, comments, and bugs associated with %s" % release.name

    for update in updates:
        for comment in update.comments:
            comment.destroySelf()
        for build in update.builds:
            build.destroySelf()
        for bug in update.bugs:
            if len(bug.updates) == 1:
                bug.destroySelf()
        update.destroySelf()
        progress()

    release.destroySelf()
    hub.commit()
    print
Example #2
0
import dejavu
import turbogears
from turbogears import controllers, expose
from cherrypy import request, response
from dejagears.model import Page
from docutils.core import publish_parts
from turbojson import jsonify
import cherrypy
import re
import datetime
from turbogears.identity.djprovider import TG_User, TG_Group, TG_UserGroup, TG_Permission, TG_GroupPermission

from turbogears import widgets
from model import Team, Player

hub = PackageHub("dejagears")
__connection__ = hub

TEMPLATE = '''
<table xmlns:py="http://purl.org/kid/ns#" class="simpleroster" border="1">
  <tr>
    <span py:if="isinstance(fields,dict)">
      <span py:for="key in fields" py:strip="True">
        <span py:for="field in fields[key]" py:strip="True">
          <th py:content="field[0]"/>
        </span>
      </span>
    </span>
    <span py:if="isinstance(fields,list)">
      <span py:for="field in fields" py:strip="True">
        <th py:content="field[0]"/>
Example #3
0
from turbogears.database import PackageHub
import dejavu
from dejavu import UnitProperty, Unit, UnitSequencer
import datetime
import logging

hub = PackageHub("dejagears")
__connection__ = hub

class Page(Unit):
  pagename = UnitProperty(unicode,index=True,hints={"bytes":30})
  data = UnitProperty(unicode,hints={"bytes":0})

class Player(Unit):
  name = UnitProperty(unicode,index=True,hints={"bytes":40})
  birthdate = UnitProperty(datetime.date)
  team = UnitProperty(int)
  points = UnitProperty(int,hints={"default":0})

class Team(Unit):
  city = UnitProperty(str,hints={"bytes":20})
  nickname = UnitProperty(str,index=True,hints={"bytes":20})
Team.one_to_many('ID',Player,'team')


# Auto set up the database, only if it does not already exists
log = logging.getLogger("turbogears.database")
arena = hub.getConnection().arena
arena.register_all(globals())

"""
Example #4
0
from turbogears.database import PackageHub
from sqlobject import *

hub = PackageHub('agenda')
__connection__ = hub


class Persona(SQLObject):
    nombre = StringCol()
    telefono = StringCol()
    email = StringCol()
    citas = MultipleJoin('Cita', joinColumn='cita_id')


class Cita(SQLObject):
    asunto = StringCol()
    inicio = DateTimeCol()
    duracion = IntCol()
    persona = ForeignKey('Persona')


# Crear las tablas (Si no existen), al cargar este modulo
for table in [Persona, Cita]:
    table.createTable(ifNotExists=True)
Example #5
0
from datetime import datetime
from turbogears.database import PackageHub
from sqlobject import *
from turbogears import identity

hub = PackageHub('tumpire')
__connection__ = hub

# class YourDataClass(SQLObject):
#     pass
 
# identity models.
class Visit(SQLObject):
    """
    A visit to your site
    """
    class sqlmeta:
        table = 'visit'

    visit_key = StringCol(length=40, alternateID=True,
                          alternateMethodName='by_visit_key')
    created = DateTimeCol(default=datetime.now)
    expiry = DateTimeCol()

    def lookup_visit(cls, visit_key):
        try:
            return cls.by_visit_key(visit_key)
        except SQLObjectNotFound:
            return None
    lookup_visit = classmethod(lookup_visit)
Example #6
0
from turbogears.database import PackageHub

__connection__ = hub = PackageHub('tgpisa')
Example #7
0
import datetime
from turbogears.visit.api import BaseVisitManager, Visit
from turbogears.database import PackageHub
from turbogears import config
from turbogears.util import load_class
from dejavu import Unit, UnitProperty, UnitSequencer
import turbogears
import dejavu

hub = PackageHub("turbogears.visit")
__connection__ = hub

import logging

log = logging.getLogger("turbogears.visit")

visit_class = None


class DejavuVisitManager(BaseVisitManager):
    def __init__(self, timeout):
        global visit_class
        super(DejavuVisitManager, self).__init__(timeout)
        visit_class_path = config.get("visit.djprovider.model",
                                      __name__ + ".TG_Visit")
        visit_class = load_class(visit_class_path)
        if visit_class:
            log.info("Succesfully loaded \"%s\"" % visit_class_path)

    def create_model(self):
        global visit_class
Example #8
0
from turbogears.database import PackageHub
from sqlobject import *

hub = PackageHub('validator')
__connection__ = hub

# class YourDataClass(SQLObject):
#     pass

Example #9
0
import dejavu, cherrypy, cPickle, logging, datetime
from dejavu import Unit, UnitProperty, UnitSequencer
from turbogears.database import PackageHub
import turbogears
from turbogears.util import load_class

hub = PackageHub("turbogears.session_filter")
__connection__ = hub

log = logging.getLogger("turbogears.session_filter")

session_class = None


class DejavuStorage:
    def __init__(self):
        global session_class
        session_class_path = turbogears.config.get(
            "session_filter.storage_table", __name__ + ".TG_Session")
        session_class = load_class(session_class_path)
        arena = hub.getConnection().arena
        try:
            if not arena._registered_classes.has_key(session_class):
                arena.register(session_class)
                if not arena.has_storage(session_class):
                    arena.create_storage(session_class)
        except Exception, e:
            log.info(str(e))

    def load(self, id):
        global session_class
"""This module contains the data model of the application."""


import pkg_resources
pkg_resources.require("SQLObject>=0.10.1")

from turbogears.database import PackageHub
# import some basic SQLObject classes for declaring the data model
# (see http://www.sqlobject.org/SQLObject.html#declaring-the-class)
from sqlobject import SQLObject, SQLObjectNotFound, RelatedJoin
from sqlobject.inheritance import InheritableSQLObject
# import some datatypes for table columns from SQLObject
# (see http://www.sqlobject.org/SQLObject.html#column-types for more)
from sqlobject import StringCol, UnicodeCol, IntCol, DateTimeCol

__connection__ = hub = PackageHub('protdigest1')


# your data model


# class YourDataClass(SQLObject):
#     pass




# functions for populating the database

def bootstrap_model(clean=False):
    """Create all database tables and fill them with default data.
Example #11
0
"""This module contains the data model of the application."""


import pkg_resources
pkg_resources.require("SQLObject>=0.10.1")

from turbogears.database import PackageHub
# import some basic SQLObject classes for declaring the data model
# (see http://www.sqlobject.org/SQLObject.html#declaring-the-class)
from sqlobject import SQLObject, SQLObjectNotFound, RelatedJoin
from sqlobject.inheritance import InheritableSQLObject
# import some datatypes for table columns from SQLObject
# (see http://www.sqlobject.org/SQLObject.html#column-types for more)
from sqlobject import StringCol, UnicodeCol, IntCol, DateTimeCol

__connection__ = hub = PackageHub('proteindigest')


# your data model


# class YourDataClass(SQLObject):
#     pass




# functions for populating the database

def bootstrap_model(clean=False):
    """Create all database tables and fill them with default data.
Example #12
0
from sqlobject import *

from turbogears.database import PackageHub

hub = PackageHub("pytilsex")
__connection__ = hub

# class YourDataClass(SQLObject):
#     pass

Example #13
0
import math,re
from sqlobject import *
from turbogears.database import PackageHub
from datetime import datetime 
from sqlobject.main import SQLObjectNotFound
import _mysql_exceptions

hub = PackageHub("projector")
__connection__ = hub

def lastUpdate():
    results = Node._connection.queryOne("""
                SELECT MAX(changed)
                FROM node """)
    if results[0]:
        return datetime.fromtimestamp(results[0])
    else:
        return datetime.fromtimestamp(0)
        
def lastCommentUpdate():
    ### only count non gotchis (they have no filename)
    results = Node._connection.queryOne("""
                SELECT UNIX_TIMESTAMP(MAX(timestamp))
                FROM projector_upload 
                WHERE filename = '' """)
    if results[0]:
        return datetime.fromtimestamp(results[0])
    else:
        return datetime.fromtimestamp(0)

class Term(SQLObject):
Example #14
0
from datetime import datetime
from turbogears.database import PackageHub
from sqlobject import *
from turbogears import identity

#added for iskonline
from mx.DateTime import now
import string

hub = PackageHub('infoshopkeeperonline')
__connection__ = hub

# class YourDataClass(SQLObject):
#     pass


# identity models.
class Visit(SQLObject):
    """
    A visit to your site
    """
    class sqlmeta:
        table = 'visit'

    visit_key = StringCol(length=40,
                          alternateID=True,
                          alternateMethodName='by_visit_key')
    created = DateTimeCol(default=datetime.now)
    expiry = DateTimeCol()

    def lookup_visit(cls, visit_key):
Example #15
0
from sqlobject import *
from turbogears.database import PackageHub

hub = PackageHub("topicalizer")
__connection__ = hub


class token_by_category(SQLObject):
    token = StringCol()
    category = StringCol()


class co_occurrence(SQLObject):
    token = StringCol()
    co_occurs_with = IntCol()
    count = IntCol()
Example #16
0
import sys
import time
import cPickle as pickle

from os.path import isfile
from sqlobject import SQLObjectNotFound
from turbogears.database import PackageHub

from bodhi.util import ProgressBar, load_config
from bodhi.exceptions import (DuplicateEntryError, SQLiteIntegrityError,
                              PostgresIntegrityError)
from bodhi.model import (PackageUpdate, Release, Comment, Bugzilla, CVE,
                         Package, PackageBuild)

hub = __connection__ = PackageHub("bodhi")


def save_db():
    ## Save each release and it's metrics
    releases = []
    for release in Release.select():
        rel = {}
        for attr in ('name', 'long_name', 'id_prefix', 'dist_tag', 'locked',
                     'metrics'):
            rel[attr] = getattr(release, attr)
        releases.append(rel)

    updates = []
    all_updates = PackageUpdate.select()
    progress = ProgressBar(maxValue=all_updates.count())
Example #17
0
from datetime import datetime
import pkg_resources
pkg_resources.require("SQLObject>=0.7.1")
from turbogears.database import PackageHub
# import some basic SQLObject classes for declaring the data model
# (see http://www.sqlobject.org/SQLObject.html#declaring-the-class)
from sqlobject import SQLObject, SQLObjectNotFound, RelatedJoin
# import some datatypes for table columns from SQLObject
# (see http://www.sqlobject.org/SQLObject.html#column-types for more)
from sqlobject import StringCol, UnicodeCol, IntCol, DateTimeCol
from turbogears import identity

__connection__ = hub = PackageHub('grooserv')

# your data model

# class YourDataClass(SQLObject):
#     pass

# the identity model


class Visit(SQLObject):
    """
    A visit to your site
    """
    class sqlmeta:
        table = 'visit'

    visit_key = StringCol(length=40,
                          alternateID=True,
Example #18
0
#    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/>.
#
##############################################################################
from turbogears.database import PackageHub
# import some basic SQLObject classes for declaring the data model
# (see http://www.sqlobject.org/SQLObject.html#declaring-the-class)
from sqlobject import SQLObject, SQLObjectNotFound, RelatedJoin
# import some datatypes for table columns from SQLObject
# (see http://www.sqlobject.org/SQLObject.html#column-types for more)
from sqlobject import StringCol, UnicodeCol, IntCol, DateTimeCol

__connection__ = hub = PackageHub('livechat')

# your data model

# class YourDataClass(SQLObject):
#     pass

# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
Example #19
0
def main():
    load_config()
    __connection__ = hub = PackageHub("bodhi")
    koji = get_session()
    tasks = []
    broke = set()

    # Clean up any stray pending tags
    for release in Release.select():
        print "Finding all pending-testing builds..."
        if release.name.startswith('EL'):
            continue

        tag = release.pending_testing_tag
        tagged = [build['nvr'] for build in koji.listTagged(tag)]
        for nvr in tagged:
            try:
                build = PackageBuild.byNvr(nvr)
                for update in build.updates:
                    if update.status in ('testing', 'stable', 'obsolete'):
                        print "%s %s" % (nvr, update.status)
                        if '--fix' in sys.argv:
                            print "Untagging %s" % nvr
                            koji.untagBuild(tag, nvr, force=True)
            except SQLObjectNotFound:
                print "Can't find build for %s" % nvr
                if '--fix' in sys.argv:
                    print "Untagging %s" % nvr
                    koji.untagBuild(tag, nvr, force=True)

        tag = release.pending_stable_tag
        tagged = [build['nvr'] for build in koji.listTagged(tag)]
        for nvr in tagged:
            try:
                build = PackageBuild.byNvr(nvr)
                for update in build.updates:
                    if update.status in ('pending', 'obsolete', 'stable'):
                        print "%s %s" % (nvr, update.status)
                        if '--fix' in sys.argv:
                            print "Untagging %s" % nvr
                            koji.untagBuild(tag, nvr, force=True)
            except SQLObjectNotFound:
                print "Can't find build for %s" % nvr
                if '--fix' in sys.argv:
                    print "Untagging %s" % nvr
                    koji.untagBuild(tag, nvr, force=True)

    # Check for testing updates that aren't tagged properly
    for update in PackageUpdate.select(PackageUpdate.q.status == 'testing'):
        dest_tag = update.release.testing_tag
        for build in update.builds:
            tags = [tag['name'] for tag in koji.listTags(build=build.nvr)]
            if dest_tag not in tags:
                print "%s marked as testing, but tagged with %s" % (build.nvr,
                                                                    tags)
                if '--fix' in sys.argv:
                    broke.add((tags[0], dest_tag, build.nvr))

    # Check all candidate updates to see if they are in a different bodhi state
    for release in Release.select():
        tag = release.candidate_tag
        tagged = [build['nvr'] for build in koji.listTagged(tag, latest=True)]
        for nvr in tagged:
            try:
                build = PackageBuild.byNvr(nvr)
                for update in build.updates:
                    if update.status in ('testing', 'stable'):
                        print "%s %s but tagged as %s" % (nvr, update.status,
                                                          tag)
                        if '--fix' in sys.argv:
                            dest = release.testing_tag
                            if update.status == 'stable':
                                dest = release.stable_tag
                            elif update.status == 'obsolete':
                                dest = release.candidate_tag
                            broke.add((tag, dest, nvr))
            except SQLObjectNotFound:
                pass

    # Make sure that all builds in koji tagged as an update exist
    # in bodhi, and are in the expect state.
    for release in Release.select():
        for tag in (release.testing_tag, release.stable_tag):
            tagged = [
                build['nvr'] for build in koji.listTagged(tag, latest=True)
            ]
            for nvr in tagged:
                try:
                    build = PackageBuild.byNvr(nvr)
                except SQLObjectNotFound:
                    print "PackageUpdate(%s) not found!" % nvr
                    continue
                if not len(build.updates):
                    print "PackageBuild(%s) has no updates" % (build.nvr)
                status = 'testing' in tag and 'testing' or 'stable'
                for update in build.updates:
                    if update.status != status:
                        print "%s is %s in bodhi but tagged as %s in koji" % (
                            update.title, update.status, tag)
                        if '--fix' in sys.argv:
                            dest = release.testing_tag
                            if update.status == 'stable':
                                dest = release.stable_tag
                            elif update.status == 'obsolete':
                                dest = release.candidate_tag
                            for b in update.builds:
                                broke.add((tag, dest, b.nvr))

    if broke:
        print " ** Fixing broken tags! **"
        koji.multicall = True
        for tag, dest, build in broke:
            print "Moving %s from %s to %s" % (build, tag, dest)
            koji.moveBuild(tag, dest, build, force=True)
        print "Running koji.multiCall()"
        results = koji.multiCall()
        success = False
        print "Waiting for tasks"
        bad_tasks = wait_for_tasks([task[0] for task in results])
        if bad_tasks == 0:
            success = True
        if success:
            print "Tags successfully moved!"
        else:
            print "Error moving tags!"
            print "bad_tasks = %r" % bad_tasks
Example #20
0
from sqlobject.inheritance import InheritableSQLObject

import warnings
import logging

log = logging.getLogger("turbogears.identity.soprovider")

import cherrypy
import turbogears
from turbogears import identity
from turbogears.database import PackageHub
from turbogears.util import load_class
from turbogears.identity import set_login_attempted
from turbojson.jsonify import jsonify_sqlobject, jsonify

hub = PackageHub("turbogears.identity")
__connection__ = hub

try:
    set, frozenset
except NameError:  # Python 2.3
    from sets import Set as set, ImmutableSet as frozenset


def to_db_encoding(s, encoding):
    if isinstance(s, str):
        pass
    elif hasattr(s, '__unicode__'):
        s = unicode(s)
    if isinstance(s, unicode):
        s = s.encode(encoding)
Example #21
0
import pkg_resources
pkg_resources.require("SQLObject>=0.10.1")
from turbogears.database import PackageHub
# import some basic SQLObject classes for declaring the data model
# (see http://www.sqlobject.org/SQLObject.html#declaring-the-class)
from sqlobject import SQLObject, SQLObjectNotFound, RelatedJoin
# import some datatypes for table columns from SQLObject
# (see http://www.sqlobject.org/SQLObject.html#column-types for more)
from sqlobject import StringCol, UnicodeCol, IntCol, DateTimeCol

__connection__ = hub = PackageHub('erpcomparator')


# your data model


# class YourDataClass(SQLObject):
#     pass


Example #22
0
from turbogears.database import PackageHub
from sqlobject import *

hub = PackageHub("simtest")
__connection__ = hub

# class YourDataClass(SQLObject):
#     pass

Example #23
0
"""
this is the data model for the project
"""
__revision__ = "$Revision"

from datetime import datetime

from turbogears.database import PackageHub
import sqlobject as orm
from turbogears import identity

HUB = PackageHub("sonar")
__connection__ = HUB

# class YourDataClass(SQLObject):
#     pass


# identity models.
class Visit(orm.SQLObject):  #pylint: disable-msg=R0904
    """
    keep track of user visits
    """
    class sqlmeta:  #pylint: disable-msg=C0103,R0903
        """
        names like "Group", "Order" and "User" are reserved words in SQL
        so we set the name to something safe for SQL
        """
        table = "visit"

    visit_key = orm.col.StringCol(length=40,
Example #24
0
   See the COPYING file for more details.
"""

from datetime import datetime
import pkg_resources
pkg_resources.require("SQLObject>=0.8")
from turbogears.database import PackageHub
# import some basic SQLObject classes for declaring the data model
# (see http://www.sqlobject.org/SQLObject.html#declaring-the-class)
from sqlobject import SQLObject, SQLObjectNotFound, RelatedJoin
# import some datatypes for table columns from SQLObject
# (see http://www.sqlobject.org/SQLObject.html#column-types for more)
from sqlobject import StringCol, UnicodeCol, IntCol, DateTimeCol
from turbogears import identity

__connection__ = hub = PackageHub('wesstats')

# your data model

# class YourDataClass(SQLObject):
#     pass

# the identity model


class Visit(SQLObject):
    """
    A visit to your site
    """
    class sqlmeta:
        table = 'visit'
Example #25
0
from turbogears.database import PackageHub
from sqlobject import *

hub = PackageHub("roboide")
__connection__ = hub


# Holds ID to team name mappings
class TeamNames(SQLObject):
    name = StringCol()


# Holds the setting name -> ID mapping
class Settings(SQLObject):
    # The setting name
    name = StringCol()
    # The setting description
    description = StringCol()


class RoboPresent(SQLObject):
    team = ForeignKey('TeamNames')
    present = BoolCol()


class RoboLogs(SQLObject):
    #The team
    team = ForeignKey('TeamNames')
    #Time log was written
    date = DateTimeCol(default=DateTimeCol.now)
    #Value written
Example #26
0
try:
    from sqlobject import *

    from turbogears.database import PackageHub

except ImportError:

    pass

else:

    from datetime import *

    hub = PackageHub("turbogears.i18n.sogettext")
    __connection__ = hub

    class TG_Domain(SQLObject):

        name = StringCol(alternateID=True)
        messages = MultipleJoin("TG_Message")

        class sqlmeta:
            table = "tg_i18n_domain"
            defaultOrder = "name"

    class TG_Message(SQLObject):

        name = UnicodeCol()
        text = UnicodeCol(default="")
        domain = ForeignKey("TG_Domain")
        locale = StringCol(length=15)
Example #27
0
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

""" Bodhi Initialization """

__requires__ = 'bodhi'

from os.path import isfile

from turbogears import config, update_config
from turbogears.database import PackageHub

from bodhi.util import ProgressBar, load_config

hub = PackageHub("bodhi")
__connection__ = hub

# Releases to initialize bodhi with.
# When running `make init` or pickledb.py, this is unnecessary, as the db
# snapshot stores this data and will populate it for us.
releases = ()
#    {
#        'name'      : 'F8',
#        'long_name' : 'Fedora 8',
#        'dist_tag'  : 'dist-f8',
#        'id_prefix' : 'FEDORA'
#    },
#)

import pkg_resources
pkg_resources.require("SQLObject>=0.8,<=0.10.0")
from turbogears.database import PackageHub
# import some basic SQLObject classes for declaring the data model
# (see http://www.sqlobject.org/SQLObject.html#declaring-the-class)
from sqlobject import SQLObject, SQLObjectNotFound, RelatedJoin
# import some datatypes for table columns from SQLObject
# (see http://www.sqlobject.org/SQLObject.html#column-types for more)
from sqlobject import StringCol, UnicodeCol, IntCol, DateTimeCol

__connection__ = hub = PackageHub('wiki20')


# your data model
class Page(SQLObject):
    pagename = UnicodeCol(alternateID=True, length=30)
    data = UnicodeCol()


# class YourDataClass(SQLObject):
#     pass