summaryrefslogtreecommitdiff
path: root/server/pkg/create-user-db
diff options
context:
space:
mode:
Diffstat (limited to 'server/pkg/create-user-db')
-rwxr-xr-xserver/pkg/create-user-db97
1 files changed, 0 insertions, 97 deletions
diff --git a/server/pkg/create-user-db b/server/pkg/create-user-db
deleted file mode 100755
index 5e0ef5e2..00000000
--- a/server/pkg/create-user-db
+++ /dev/null
@@ -1,97 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-# create-user-db
-# Copyright (C) 2015 LEAP
-#
-# 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/>.
-import os
-import sys
-import netrc
-import argparse
-from leap.soledad.common.couch import CouchDatabase
-from leap.soledad.common.couch.state import is_db_name_valid
-from leap.soledad.common.couch import list_users_dbs
-from leap.soledad.server._config import get_config
-
-
-BYPASS_AUTH = os.environ.get('SOLEDAD_BYPASS_AUTH', False)
-
-
-description = """
-Creates a user database.
-This is meant to be used by Soledad Server.
-"""
-parser = argparse.ArgumentParser(description=description)
-parser.add_argument('dbname', metavar='user-d34db33f', type=str,
- default='', nargs='?',
- help='database name on the format user-{uuid4}')
-parser.add_argument('--migrate-all', action='store_true',
- help="recreate all design docs for all existing account")
-CONF = get_config()
-DBCONF = get_config(section='database-security')
-NETRC_PATH = CONF['admin_netrc']
-
-
-def url_for_db(dbname):
- if BYPASS_AUTH:
- login = ''
- password = ''
- host = 'localhost'
- url = 'http://localhost:5984/%(dbname)s' % {
- 'dbname': dbname}
- else:
- if not os.path.exists(NETRC_PATH):
- print ('netrc not found in %s' % NETRC_PATH)
- sys.exit(1)
- parsed_netrc = netrc.netrc(NETRC_PATH)
- host, (login, _, password) = parsed_netrc.hosts.items()[0]
- url = ('http://%(login)s:%(password)s@%(host)s:5984/%(dbname)s' % {
- 'login': login,
- 'password': password,
- 'host': host,
- 'dbname': dbname})
- return url
-
-
-def ensure_database(dbname):
- """
- This method will ensure that a database named `dbname` will exist
- or created if it doesn't. Calling it twice will ensure that design
- documents are present and updated.
- The database name has to match this criteria to be considered valid:
- user-[a-f0-9]+
-
- :param dbname: name of the user database
- :type dbname: str
- """
- if not is_db_name_valid(dbname):
- print ("Invalid name! %s" % dbname)
- sys.exit(1)
- url = url_for_db(dbname)
- db_security = DBCONF
- db = CouchDatabase.open_database(url=url, create=True,
- replica_uid=None,
- database_security=db_security)
- print ('success! Ensured that database %s exists, with replica_uid: %s' %
- (db._dbname, db.replica_uid))
-
-
-if __name__ == '__main__':
- args = parser.parse_args()
- if args.migrate_all:
- couch_url = url_for_db('')
- for dbname in list_users_dbs(couch_url):
- ensure_database(dbname)
- else:
- ensure_database(args.dbname)