diff options
| author | Victor Shyba <victor.shyba@gmail.com> | 2016-08-17 23:00:34 -0300 | 
|---|---|---|
| committer | Victor Shyba <victor.shyba@gmail.com> | 2016-08-17 23:05:21 -0300 | 
| commit | dc0bae8b6025a060297b55520674cd7238f0186b (patch) | |
| tree | 7567a099e2dcb93c50fbe144d6a227ed65777fa8 | |
| parent | 29f528927322bb8e3ca326399367c33225b492b5 (diff) | |
[bug] remove misleading ensure_ddoc
ensure_ddoc doesnt make sense anymore as we dont have any ddoc other
than _security, which has its own method for setting. 'ensure_security'
is explicit and is set internally when user is creating a database,
otherwise it will be False as it's only used during creation. This isn't
exposed externally (of couch module) to avoid confusion.
This confusion was making create-user-db fail to create a security ddoc
as it wasn't passing ensure_ddocs=True.
-- Resolves: #8388
| -rw-r--r-- | common/src/leap/soledad/common/couch/__init__.py | 15 | ||||
| -rw-r--r-- | common/src/leap/soledad/common/couch/state.py | 2 | ||||
| -rw-r--r-- | scripts/profiling/mail/couchdb_server.py | 5 | 
3 files changed, 9 insertions, 13 deletions
| diff --git a/common/src/leap/soledad/common/couch/__init__.py b/common/src/leap/soledad/common/couch/__init__.py index be30210c..0f4102db 100644 --- a/common/src/leap/soledad/common/couch/__init__.py +++ b/common/src/leap/soledad/common/couch/__init__.py @@ -116,7 +116,7 @@ class CouchDatabase(object):      """      @classmethod -    def open_database(cls, url, create, ensure_ddocs=False, replica_uid=None, +    def open_database(cls, url, create, replica_uid=None,                        database_security=None):          """          Open a U1DB database using CouchDB as backend. @@ -127,8 +127,6 @@ class CouchDatabase(object):          :type create: bool          :param replica_uid: an optional unique replica identifier          :type replica_uid: str -        :param ensure_ddocs: Ensure that the design docs exist on server. -        :type ensure_ddocs: bool          :param database_security: security rules as CouchDB security doc          :type database_security: dict @@ -149,21 +147,20 @@ class CouchDatabase(object):                      server.create(dbname)                  else:                      raise DatabaseDoesNotExist() -        db = cls(url, -                 dbname, ensure_ddocs=ensure_ddocs, +        db = cls(url, dbname, ensure_security=create,                   database_security=database_security)          return SoledadBackend(              db, replica_uid=replica_uid) -    def __init__(self, url, dbname, ensure_ddocs=True, +    def __init__(self, url, dbname, ensure_security=False,                   database_security=None):          """          :param url: Couch server URL with necessary credentials          :type url: string          :param dbname: Couch database name          :type dbname: string -        :param ensure_ddocs: Ensure that the design docs exist on server. -        :type ensure_ddocs: bool +        :param ensure_security: will PUT a _security ddoc if set +        :type ensure_security: bool          :param database_security: security rules as CouchDB security doc          :type database_security: dict          """ @@ -174,7 +171,7 @@ class CouchDatabase(object):          self.batching = False          self.batch_generation = None          self.batch_docs = {} -        if ensure_ddocs: +        if ensure_security:              self.ensure_security_ddoc(database_security)      def batch_start(self): diff --git a/common/src/leap/soledad/common/couch/state.py b/common/src/leap/soledad/common/couch/state.py index 9b40a264..9ff9fe55 100644 --- a/common/src/leap/soledad/common/couch/state.py +++ b/common/src/leap/soledad/common/couch/state.py @@ -80,7 +80,7 @@ class CouchServerState(ServerState):          :rtype: SoledadBackend          """          url = urljoin(self.couch_url, dbname) -        db = CouchDatabase.open_database(url, create=False, ensure_ddocs=False) +        db = CouchDatabase.open_database(url, create=False)          return db      def ensure_database(self, dbname): diff --git a/scripts/profiling/mail/couchdb_server.py b/scripts/profiling/mail/couchdb_server.py index 2cf0a3fd..452f8ec2 100644 --- a/scripts/profiling/mail/couchdb_server.py +++ b/scripts/profiling/mail/couchdb_server.py @@ -18,8 +18,7 @@ def start_couchdb_wrapper():  def get_u1db_database(dbname, port):      return CouchDatabase.open_database(          'http://127.0.0.1:%d/%s' % (port, dbname), -        True, -        ensure_ddocs=True) +        True)  def create_tokens_database(port, uuid, token_value): @@ -38,5 +37,5 @@ def get_couchdb_wrapper_and_u1db(uuid, token_value):      couchdb_u1db = get_u1db_database('user-%s' % uuid, couchdb_wrapper.port)      get_u1db_database('shared', couchdb_wrapper.port)      create_tokens_database(couchdb_wrapper.port, uuid, token_value) -     +      return couchdb_wrapper, couchdb_u1db | 
