Skip to content
This repository was archived by the owner on Jun 1, 2023. It is now read-only.

Commit 466ae3b

Browse files
committed
Revamped persistent storage support.
1 parent b3b7e92 commit 466ae3b

File tree

9 files changed

+166
-180
lines changed

9 files changed

+166
-180
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ install:
1616
script:
1717
- codecov --version
1818
- tox
19+
- isort --check src tests
1920
after_success:
2021
- codecov
2122
notifications:

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def run_tests(self):
6161
"Programming Language :: Python :: 3.7",
6262
"Topic :: Software Development :: Libraries :: Python Modules"],
6363
install_requires=[
64-
"cryptojwt>=1.0.0",
64+
"cryptojwt>=1.1.0",
6565
"pyOpenSSL",
6666
"filelock>=3.0.12"
6767
],

src/oidcmsg/__init__.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
__author__ = 'Roland Hedberg'
2-
__version__ = '1.0.0'
3-
2+
__version__ = '1.1.0'
43

54
VERIFIED_CLAIM_PREFIX = '__verified'
65

src/oidcmsg/context.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
from cryptojwt.key_jar import init_key_jar
66

77
from oidcmsg.message import Message
8-
from oidcmsg.storage.init import get_storage_class
98
from oidcmsg.storage.init import get_storage_conf
109
from oidcmsg.storage.init import init_storage
10+
from oidcmsg.storage.init import storage_factory
1111

1212

1313
def add_issuer(conf, issuer):
@@ -32,7 +32,6 @@ def __init__(self, config=None, keyjar=None, entity_id=''):
3232
_iss = config.get('issuer')
3333
if _iss:
3434
self.db_conf = add_issuer(self.db_conf, _iss)
35-
self.storage_cls = get_storage_class(self.db_conf)
3635

3736
if self.db_conf.get('default'):
3837
self.db = init_storage(self.db_conf)
@@ -50,19 +49,16 @@ def add_boxes(self, boxes, db_conf):
5049
def _keyjar(self, keyjar=None, db_conf=None, conf=None, entity_id=''):
5150
if keyjar is None:
5251
if db_conf:
53-
storage_args = {
54-
'abstract_storage_cls': self.storage_cls,
55-
'storage_conf': get_storage_conf(db_conf, 'keyjar')
56-
}
52+
_storage = storage_factory(get_storage_conf(db_conf, 'keyjar'))
5753
else:
58-
storage_args = {}
54+
_storage = None
5955

6056
if 'keys' in conf:
6157
args = {k: v for k, v in conf["keys"].items() if k != "uri_path"}
62-
args.update(storage_args)
58+
args.update({'storage': _storage})
6359
_keyjar = init_key_jar(**args)
6460
else:
65-
_keyjar = KeyJar(**storage_args)
61+
_keyjar = KeyJar(storage=_storage)
6662
if 'jwks' in conf:
6763
_keyjar.import_jwks(conf['jwks'], '')
6864

src/oidcmsg/storage/__init__.py

Lines changed: 20 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,51 @@
11
import logging
2+
23
from .utils import importer
34

45
logger = logging.getLogger(__name__)
56

67

7-
class AbstractStorage(object):
8+
class Storage(object):
89
"""
9-
An AbstractStorage that take a storage engine and offer a standard set
10-
of methods and I/O to data.
10+
Offers a standard set of methods and I/O on persistent data.
1111
"""
1212

13-
def __init__(self, conf_dict):
14-
if isinstance(conf_dict['handler'], str):
15-
_handler = importer(conf_dict['handler'])
16-
_args = {k: v for k, v in conf_dict.items() if k != 'handler'}
17-
try:
18-
self.storage = _handler(_args)
19-
except TypeError as e:
20-
# needed for globally configured ORM models
21-
logger.debug('Abstorage {}: {}'.format(_handler, e))
22-
self.storage = _handler()
23-
else:
24-
self.storage = conf_dict['handler'](conf_dict)
13+
def __init__(self, conf_dict=None):
14+
pass
2515

2616
def get(self, k, default=None):
27-
return self.storage.get(k, default)
28-
29-
def set(self, k, v):
30-
return self.storage.set(k, v)
17+
raise NotImplemented()
3118

32-
def update(self, k, v):
33-
return self.storage.update(k, v)
19+
def update(self, ava):
20+
raise NotImplemented()
3421

3522
def delete(self, k, v):
36-
return self.storage.delete(v, k=k)
23+
raise NotImplemented()
3724

3825
def __getitem__(self, k):
39-
return self.storage.get(k)
26+
raise NotImplemented()
4027

4128
def __setitem__(self, k, v):
42-
return self.storage.set(k, v)
29+
raise NotImplemented()
4330

4431
def __delitem__(self, v):
45-
return self.storage.delete(v)
32+
raise NotImplemented()
4633

4734
def __call__(self):
48-
return self.storage()
49-
50-
def __repr__(self):
51-
return self.__str__()
35+
raise NotImplemented()
5236

5337
def __len__(self):
54-
return len(self.storage())
38+
raise NotImplemented()
5539

5640
def __contains__(self, k):
57-
return self.storage.__contains__(k)
58-
59-
def __str__(self):
60-
return self.storage.__str__()
41+
raise NotImplemented()
6142

6243
def __iter__(self):
63-
return iter(self.storage.__iter__())
44+
raise NotImplemented()
6445

65-
def flush(self):
66-
return self.storage.flush()
46+
def synch(self):
47+
raise NotImplemented()
6748

6849
def keys(self):
69-
return self.storage.keys()
50+
raise NotImplemented()
51+

0 commit comments

Comments
 (0)