コード例 #1
0
ファイル: user.py プロジェクト: bcui6611/pycouchtests
def modify_server(settings):
    resource = CouchdbResource()
    for s in settings:
        confpath = "/_config/{0}/{1}".format(s["section"], s["key"])
        payload = {}
        payload[s["key"]] = s["value"]
        info = resource.put(path=confpath, payload=payload, headers={"X-Couch-Persist": "false"})
コード例 #2
0
ファイル: user.py プロジェクト: bcui6611/pycouchtests
def login(name, password):
    resource = CouchdbResource()
    info = resource.request("POST", path="/_session",
            headers = {"Content-Type": "application/json",
                       "X-CouchDB-WWW-Authenticate": "Cookie"},
            payload={"name":name, "password":password})

    return info.json_body
コード例 #3
0
def main():
    usage = '%prog [options]\n  See %prog --help for a full list of options.'
    parser = optparse.OptionParser(usage=usage)
    parser.add_option('--source-url',
        action='store',
        dest='source_url',
        help='Url of the source server.')
    parser.add_option('--target-url',
        action='store',
        dest='target_url',
        help='Url of the target server.')
    parser.add_option('--source-db',
        action='store',
        dest='source_db',
        help='Source database name.')
    parser.add_option('--target-db',
        action='store',
        dest='target_db',
        help='Target database name.')
    parser.add_option('--continuous',
        action='store_true',
        dest='continuous',
        help='Set as a continuous replication.')
    parser.add_option('--cancel',
        action='store_true',
        dest='cancel',
        help='Cancel continuous replication.')
    parser.add_option('--create-dbs',
        action='store_true',
        dest='create_dbs',
        help='Create databases if missing.')

    options, args = parser.parse_args()

    if not options.target_url or (not options.source_url) or (not options.source_db) or (not options.target_db):
        parser.error('--source-url, --target-url, --source-db and --target-db are required.')
        sys.exit(1)

    start = time.time()

    if options.source_url.endswith('/'):
        options.source_url = options.source_url.rstrip('/')
    if options.target_url.endswith('/'):
        options.target_url = options.target_url.rstrip('/')

    if options.create_dbs:
        source_db = Database(options.source_url + '/' + options.source_db, create=True)
        target_db = Database(options.target_url + '/' + options.target_db, create=True)
    else:
        try:
            source_db = Database(options.source_url + '/' + options.source_db)
        except ResourceNotFound:
            db_missing(options.source_url, options.source_db)
        try:
            target_db = Database(options.target_url + '/' + options.target_db)
        except ResourceNotFound:
            db_missing(options.target_url, options.target_db)

    print 'Starting replication...\n',
    sys.stdout.flush()

    continuous = options.continuous or False
    cancel = options.cancel or False
    body = {
        "source": url_quote(options.source_url) + '/' + options.source_db,
        "target": url_quote(options.target_url) + '/' + options.target_db,
        "continuous": continuous,
        "cancel": cancel
    }
    res = CouchdbResource(uri=url_quote(options.source_url))
    try:
        resp = res.request('POST', '/_replicate', payload=body)
        print resp.json_body
        print 'Replication time: %.1f s\n' % (time.time() - start)
    except ResourceNotFound:
        print dict(status=404, msg='Replication task not found.')
    except PreconditionFailed:
        print dict(status=412, msg='Precondition not met.')
    except RequestFailed, e:
        print dict(status=400, msg='Request failed.')
コード例 #4
0
ファイル: user.py プロジェクト: bcui6611/pycouchtests
def logout():
    resource = CouchdbResource()
    info = resource.request("DELETE", "/_session", 
                            headers = {"Content-Type": "application/json",
                                       "X-CouchDB-WWW-Authenticate": "Cookie"})
    return info.json_body
コード例 #5
0
ファイル: user.py プロジェクト: bcui6611/pycouchtests
def session():
    resource = CouchdbResource()
    info = resource.get("/_session")
    return info.json_body
コード例 #6
0
ファイル: user.py プロジェクト: bcui6611/pycouchtests
def get_userdb():
    resource = CouchdbResource()
    path = "/_config/couch_httpd_auth/authentication_db"
    info = resource.get(path)
    
    return info.json_body