Ejemplo n.º 1
0
    def push(self):
        design_root_dir = os.path.join(self.file_dir, '_design')

        # TODO: Handle deleted design documents
        for dir in os.listdir(design_root_dir):
            design_dir = os.path.join(design_root_dir, dir)
            push(design_dir, self.heimdall_db)
Ejemplo n.º 2
0
def define_views(db):
    """Purely administrative.  Done once (or so) to set the views.

    Similar to the way that couchapp works.

    https://github.com/couchapp/couchapp/tree/
    """
    for app in apps:
        push(app, db)
Ejemplo n.º 3
0
    def __init__(self):
        # handle zmq setup
        zmq_port = os.environ['PERSIST_RESPONSE_PORT']
        context = zmq.Context()
        socket = context.socket(zmq.REP)
        self.socket = socket


        # now, setup couchdb
        db_port = os.environ.get('COUCH_PORT', '5984')
        db_server = os.environ.get('COUCH_HOST', '127.0.0.1')
        views_path = os.environ['COUCH_VIEWS_LOCATION']
        couch = couchdbkit.Server(uri='http://%s:%s' % (db_server, db_port))
        db = couch.get_or_create_db('flags')
        push(views_path, db)
        Flag.set_db(db)
Ejemplo n.º 4
0
def delAndPurge():
    """
    """
    parser = argparse.ArgumentParser()
    parser.add_argument('--conf',
                        help='wsgi conf file')

    parser.add_argument('--userid',
                        help='user id')

    args = parser.parse_args()

    config = ConfigParser.RawConfigParser()
    config.read(args.conf)

    server = couchdbkit.Server(config.get('app:main', 'couchdb.url'))
    db = server.get_or_create_db(config.get('app:main','couchdb.db'))

    User.set_db(db)
    Link.set_db(db)


    push('couchdb/_design/purge', db)

    try:
        user = User.get(args.userid)
        user.delete()

        print "%s is now deleted" % args.userid
    except couchdbkit.exceptions.ResourceNotFound:
        print "%s not found" % args.userid

    links = Link.view('purge/all',
                      key=args.userid,
                      include_docs=True)

    print "%d links found" % len(links)

    for link in links:
        link.delete()

    print "job done"
Ejemplo n.º 5
0
class UserModel(object):
    def __init__(self):
        self.is_login = True
        self.id = 100
        self.permission = UserPermission.root
        self.name = 'Kelp'
        self.email = '*****@*****.**'


# -----------------------------------------------
# couch db documents
# -----------------------------------------------
server = Server(uri=get_db_url())
db = server.get_or_create_db('blog')
# push views of posts to database.
push(os.path.join(os.path.dirname(__file__), '_design', 'posts'), db)
class PostModel(Document):
    """
    The post data model.
    """
    title = StringProperty()
    content = StringProperty()
    create_time = DateTimeProperty(default=datetime.utcnow)

    def dict(self):
        return {
            'id': self._id,
            'title': self.title,
            'content': self.content,
            'create_time': self.create_time.strftime('%Y-%m-%dT%H:%M:%S.%fZ')
        }
Ejemplo n.º 6
0
server = couchdbkit.Server(settings['couchdb.url'])
db = server.get_or_create_db(settings['couchdb.db'])

User.set_db(db)
Link.set_db(db)

for view in ['couchdb/_design/user',
             'couchdb/_design/public',
             'couchdb/_design/user_link',
             'couchdb/_design/my_link',
             'couchdb/_design/viewTag',
             'couchdb/_design/viewFollowers',
             'couchdb/_design/contacts_links',
             'couchdb/_design/tags',
             ]:
    push(view, db)

avatarSize = 128,128

def limitAndPage(request):
    """
    Set the limit and default page.
    """
    # TODO validators ?
    limit = 10
    page = 0

    if 'limit' in request.GET:
        try:
            limit = int(request.GET['limit'])
        except ValueError:
Ejemplo n.º 7
0
class UserModel(object):
    def __init__(self):
        self.is_login = True
        self.id = 100
        self.permission = UserPermission.root
        self.name = 'Kelp'
        self.email = '*****@*****.**'


# -----------------------------------------------
# couch db documents
# -----------------------------------------------
server = Server(uri=get_db_url())
db = server.get_or_create_db('blog')
# push views of posts to database.
push(os.path.join(os.path.dirname(__file__), '_design', 'posts'), db)


class PostModel(Document):
    """
    The post data model.
    """
    title = StringProperty()
    content = StringProperty()
    create_time = DateTimeProperty(default=datetime.utcnow)

    def dict(self):
        return {
            'id': self._id,
            'title': self.title,
            'content': self.content,
Ejemplo n.º 8
0
import couchdbkit
from couchdbkit.designer import push

from model import StorageFile

context = zmq.Context()

# server object
server = couchdbkit.Server()

# create database
db = server.get_or_create_db('timelapse')
StorageFile.set_db(db)

push('couchdb/_design/storagefile', db)

@view_config(route_name='home', renderer='templates/home.pt')
def home(request):

    return {'project':'cyplp.timelapse_commander'}

@view_config(route_name='controls', renderer='templates/controls.pt')
def controls(request):
    orderEmetter = context.socket(zmq.REQ)
    orderEmetter.connect("tcp://127.0.0.1:5559")  # TODO timeout

    orderEmetter.send_json({'command': 'status'})
    status = orderEmetter.recv_json()

    return {'status': status}
Ejemplo n.º 9
0
from couchdbkit import Server
from couchdbkit.designer import push

import config as cfg

if __name__ == "__main__":
    server = Server(cfg.server)

    db = server.get_or_create_db(cfg.db)

    push("./mqdb/_design/message", db)
Ejemplo n.º 10
0
 def addView(self, design_doc, workspaceDB):
     designer.push(design_doc, workspaceDB, atomic = False)
Ejemplo n.º 11
0
 def sync(self, dbs, atomic=True, **kwargs):
     push(self.design_path, dbs, atomic=atomic,
             docid=self.design_name)
Ejemplo n.º 12
0
from couchdbkit import Server
from couchdbkit.designer import push

import config as cfg


if __name__ == "__main__":
    server = Server(cfg.server)
    
    db = server.get_or_create_db(cfg.db)
    
    push("./mqdb/_design/message", db)
Ejemplo n.º 13
0
def setUpModule():

    content = dict(
        agency= """\
agency_name,agency_url,agency_timezone
Hampton Roads Transit (HRT),http://www.gohrt.com/,America/New_York
""",
# Real Data
#        calendar= """\
#service_id,monday,tuesday,wednesday,thursday,friday,saturday,sunday,start_date,end_date
#WE,1,1,1,1,1,0,0,20120122,20121229
#MR,1,1,1,1,0,0,0,20120122,20121229
#""",
        calendar= """\
service_id,monday,tuesday,wednesday,thursday,friday,saturday,sunday,start_date,end_date
WE,1,1,1,1,1,0,0,20120122,20120601
MR,1,1,1,1,0,0,0,20120122,20120601
""",
        calendar_dates= """\
service_id,date,exception_type
WE,20120528,2
SA,20120528,1
""",
        fare_attributes= """\
fare_id,price,currency_type,payment_method,transfers
1,1.50,USD,0,2
""",
        fare_rules= """\
fare_id,route_id
1,001
""",
        routes= """\
route_id,route_short_name,route_long_name,route_desc,route_type,route_url
001,1,GRANBY ST, Downtown Norfolk Pembroke East ,3,http://www.gohrt.com/routes/route-1.pdf
004,4,CHURCH ST, Norfolk General Hospital/ODU/Downtown Norfolk ,3,http://www.gohrt.com/routes/route-4.pdf
090,90,ELIZABETH RIVER FERRY, Norfolk/Portsmouth Ferry,4,http://www.gohrt.com/services/paddlewheel-ferry#schedule
""",
        stop_times= """\
trip_id,arrival_time,departure_time,stop_id,stop_sequence,timepoint
1,7:15:00,7:15:00,F001,1,1
53651,5:19:00,5:19:00,0020,7,0
53678,6:33:00,6:33:00,0001,4,0
53678,6:38:00,6:38:00,0406,5,0
""",
        stops= """\
stop_id,stop_name,stop_lat,stop_lon
0001,CHARLOTTE & MONTICELLO,36.85192,-76.28732
0020,GRANBY & 33RD,36.87707,-76.28177
2111,WEAVER & MARTHA LEE,37.02489,-76.42312
0406,CHURCH & OLNEY,36.85400,-76.27973
F001,FERRY STOP - WATERSIDE,36.84403,-76.28941
""",
        trips= """\
route_id,service_id,trip_id,direction_id,block_id
090,WE,1,0,090 -  1
001,MR,53651,0,001 -  3
004,MR,53678,0,004 -  2
""",
    )
    try:
        os.remove( "test.zip" )
    except OSError:
        pass
    z= zipfile.ZipFile( "test.zip", 'w' )
    for c in content:
        z.writestr( c+".txt", content[c] )
    z.close()

    global connection, db
    connection = Server()
    db = connection.get_or_create_db('couchdbkit_test')
    push('_design/service', db)

    loader = caravel.transit_system.load.Loader()
    loader.load( "test.zip" )
Ejemplo n.º 14
0
from models import ToStore

settings = get_current_registry().settings

# server object
server = couchdbkit.Server(settings['couchdb.url'])

# create database
db = server.get_or_create_db(settings['couchdb.db'])
ToStore.set_db(db)

here = os.path.dirname(__file__)
for view in ['list']:
    path = os.path.join(here, 'couchdb', '_design', view)
    push(path, db)


@view_config(route_name='listing', renderer='templates/listing.pt')
def list_view(request):
    stored = ToStore.view(
        'list/all',
        descending=True,
    )
    return {'file_list': stored}


@view_config(route_name='new', renderer='json', request_method='POST')
def new_view(request):
    if request.POST.get('fdescr', 'fname'):  # TODO
        descripton = request.POST['description']
Ejemplo n.º 15
0
from models import ToStore

settings = get_current_registry().settings

# server object
server = couchdbkit.Server(settings['couchdb.url'])

# create database
db = server.get_or_create_db(settings['couchdb.db'])
ToStore.set_db(db)

here = os.path.dirname(__file__)
for view in ['list']:
    path = os.path.join(here, 'couchdb', '_design', view)
    push(path, db)

@view_config(route_name='listing', renderer='templates/listing.pt')
def list_view(request):
    stored = ToStore.view('list/all',
                          descending=True,)
    return {'file_list': stored}


@view_config(route_name='new', renderer='json', request_method='POST')
def new_view(request):
    if request.POST.get('fdescr', 'fname'): # TODO
        descripton = request.POST['description']
        filename = request.POST['filename'].filename

        inputFile = request.POST['filename'].file
Ejemplo n.º 16
0
def setUpModule():
    global connection, db
    connection = Server()
    db = connection.get_or_create_db('couchdbkit_test')
    push('_design/mapping', db)
Ejemplo n.º 17
0
from couchdbkit import Server, Document, StringProperty
from couchdbkit.designer import push

try:
    import simplejson as json
except ImportError:
    import json
import mimerender

mimerender = mimerender.BottleMimeRender()

couch = Server()
db = couch.get_or_create_db('simple-todo')

push('db/todolist', db)
push('db/todo', db)

class TodoList(Document):
    pass

class Todo(Document):
    title = StringProperty()
    priority = StringProperty()
    todolist = StringProperty()

TodoList.set_db(db)
Todo.set_db(db)

@route('/static/:filepath#.*#')
def server_static(filepath):
Ejemplo n.º 18
0
 def addView(self, design_doc, workspaceDB):
     designer.push(design_doc, workspaceDB, atomic=False)
Ejemplo n.º 19
0
 def __init__(self):
     server = Server()
     self.db = server.get_or_create_db('stocktools')
     push('_design/stockdocument', self.db)
     print "pushed OK"
     StockDocument.set_db(self.db)