def execute(self, *args, **options):
        
        verbosity = int(options.get('verbosity'))
        
        workers = []

        if not len(args):
            print "No database to ping"
            sys.exit(1)
            
        for db_key in args:
            if verbosity >= 2:
                print "Using database", db_key
                print "Settings data:", settings.COUCHDB[db_key]

            db = django_couch.db(db_key)

            for row in django_couch.design_docs(db):
                nop, view = row.id.split('/', 1)

                d = db[row.id]

                for function in d.get('views', []):
                    worker = Pinger(verbosity, db_key, view, function)
                    workers.append(worker)
                    worker.start()

        for worker in workers:
            if verbosity > 1:
                print "Waiting for worker %s (%s/%s @ %s)..." % (worker, worker.view_name, worker.func_name, worker.db_key)
            worker.join()
            if verbosity > 1:
                print '  done'
Beispiel #2
0
    def authenticate(self, username, password):
        db = django_couch.db('db')
        rows = self.db.view(settings.COUCHDB_AUTH_VIEW, key=username.lower(), include_docs=True, limit=1).rows

        if len(rows) and check_password(password, rows[0].value):
            return CustomUser(db[rows[0].id])
        pass
Beispiel #3
0
    def execute(self, command = None, **options):
        if not command:
            print "No action specified"
            return
        
        if not command in ['restore', 'backup']:
            print "Unknown command:", command
            return
        
        if not options.get('database') and not options.get('dbkey'):
            print "No database specified"
            return

        if options.get('dbkey'):
            db = django_couch.db(options['dbkey'])
        else:
            server = Server(options.get('server'))
            db = server[options.get('database')]
        
        if command == 'backup':
            print "Backing up remote to", options.get('path')
            self.backup(db, options.get('path'))
        elif command == 'restore':
            print "Restoring local path to remote server", options.get('path')
            self.restore(db, options.get('path'), options)
Beispiel #4
0
 def load(user_id):
     db = django_couch.db('db')
     try:
         doc = Tax(db[user_id])
     except ResourceNotFound:
         raise Http404(u"Product '%s' not found" % user_id)
     assert doc.type == 'product', "Invalid data loaded"
     return doc
Beispiel #5
0
    def __init__(self, *args, **kwargs):
        self._db = django_couch.db('db')
        self.type = 'product'
        now = datetime.now()
        self.is_active = True
        self.created = now.strftime(settings.DATETIME_FMT)

        super(Product, self).__init__(*args, **kwargs)
Beispiel #6
0
 def load(user_id):
     db = django_couch.db('db')
     try:
         doc = CustomUser(db[user_id])
     except ResourceNotFound:
         raise Http404(u"User '%s' not found" % user_id)
     assert doc.type == 'user', "Invalid data loaded"
     return doc
Beispiel #7
0
    def __init__(self, *args, **kwargs):
        self._db = django_couch.db('db')
        self.type = 'user'
        now = datetime.now()
        self.is_active = True
        self.is_superuser = True
        self.joined = now.strftime(settings.DATETIME_FMT)

        super(User, self).__init__(*args, **kwargs)
 def execute(self, db_key, username, *args, **kwargs):
     
     db = django_couch.db(db_key)
     skel = {
         'type': 'user',
         'is_staff': True,
         'is_superuser': True,
         'username': username,
     }
     
     u = User(skel, _db = db)
     password = DjangoUser.objects.make_random_password()
     u.set_password(password)
     #password_hash = u.password
     
     
     u.create('u_%s' % username)
     print 'User %s created. Document id: %s, password: %s' % (username, u.id, password)
def docs_list(request, *args, **kwargs):
    db_key = kwargs.get('db_key')
    template = kwargs.get('template')
    view_args = kwargs.get('view_args', {}).copy()
    view = kwargs.get('view')
    
    db = django_couch.db(db_key)
    
    # some magic here
    if 'startkey' in view_args:
        view_args['startkey'] = loads(view_args['startkey'] % kwargs)
        
    if 'endkey' in view_args:
        view_args['endkey'] = loads(view_args['endkey'] % kwargs)

    
    view_res = db.view(view, **view_args)
    rows = view_res.rows
    
    
    
    return render_to_response(template, {'rows': rows, 'kwargs': kwargs})
Beispiel #10
0
 def __init__(self):
     self.db = django_couch.db(settings.COUCHDB_AUTH_DB)
 def run(self):
     db = django_couch.db(self.db_key)
     if self.verbosity >= 2:
         print 'quering view %s/%s' % (self.view_name, self.func_name)
     db.view('%s/%s' % (self.view_name, self.func_name), limit = 0).rows
 def items(self):
     return django_couch.db().view('pages/attachments').rows