You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ariatosca.apache.org by mx...@apache.org on 2016/11/22 09:17:55 UTC
[3/4] incubator-ariatosca git commit: hiding private atts
hiding private atts
Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/01aebc28
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/01aebc28
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/01aebc28
Branch: refs/heads/ARIA-25-Storage-genericizing
Commit: 01aebc28353e8333ad65dddb6226c0b7e623f22c
Parents: cc54639
Author: mxmrlv <mx...@gmail.com>
Authored: Mon Nov 21 17:50:04 2016 +0200
Committer: mxmrlv <mx...@gmail.com>
Committed: Mon Nov 21 17:50:04 2016 +0200
----------------------------------------------------------------------
aria/storage/__init__.py | 58 +++++++++++++++--------------
aria/storage/drivers.py | 8 ++--
aria/storage/structures.py | 10 ++---
tests/storage/test_model_storage.py | 8 ++--
tests/storage/test_models_api.py | 2 +-
tests/storage/test_resource_storage.py | 2 +-
6 files changed, 46 insertions(+), 42 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/01aebc28/aria/storage/__init__.py
----------------------------------------------------------------------
diff --git a/aria/storage/__init__.py b/aria/storage/__init__.py
index 9b17ffb..6353308 100644
--- a/aria/storage/__init__.py
+++ b/aria/storage/__init__.py
@@ -106,12 +106,8 @@ class ModelStorage(Storage):
:param model_cls: the model to register.
"""
model_name = _generate_lower_name(model_cls)
- model_api = _ModelApi(model_name, self.driver, model_cls)
- self.registered[model_name] = model_api
-
- # for pointer_schema_register in model_api.pointer_mapping.values():
- # model_cls = pointer_schema_register.model_cls
- # self.register(model_cls)
+ model_api = _ModelApi(model_name, self._driver, model_cls)
+ self._registered[model_name] = model_api
class _ModelApi(object):
@@ -125,22 +121,30 @@ class _ModelApi(object):
"""
assert isinstance(driver, ModelDriver)
assert issubclass(model_cls, Model)
- self.name = name
- self.driver = driver
- self.model_cls = model_cls
+ self._name = name
+ self._driver = driver
+ self._model_cls = model_cls
+
+ @property
+ def name(self):
+ return self._name
+
+ @property
+ def model_cls(self):
+ return self._model_cls
def __iter__(self):
return self.iter()
def __repr__(self):
- return '{self.name}(driver={self.driver}, model={self.model_cls})'.format(self=self)
+ return '{self.name}(driver={self._driver}, model={self.model_cls})'.format(self=self)
def create(self):
"""
Creates the model in the storage.
"""
- with self.driver as connection:
- connection.create(name=self.name, model_cls=self.model_cls)
+ with self._driver as connection:
+ connection.create(name=self._name, model_cls=self._model_cls)
def get(self, entry_id, **kwargs):
"""
@@ -150,12 +154,12 @@ class _ModelApi(object):
:return: model instance
:rtype: Model
"""
- with self.driver as connection:
+ with self._driver as connection:
data = connection.get(
- name=self.name,
+ name=self._name,
entry_id=entry_id,
**kwargs)
- return self.model_cls(**data)
+ return self._model_cls(**data)
def store(self, entry, **kwargs):
"""
@@ -163,10 +167,10 @@ class _ModelApi(object):
:param Model entry: the table/document to store.
"""
- assert isinstance(entry, self.model_cls)
- with self.driver as connection:
+ assert isinstance(entry, self._model_cls)
+ with self._driver as connection:
connection.store(
- name=self.name,
+ name=self._name,
entry_id=entry.id,
entry=entry,
**kwargs)
@@ -177,9 +181,9 @@ class _ModelApi(object):
:param basestring entry_id: id of the entity to delete from storage.
"""
- with self.driver as connection:
+ with self._driver as connection:
connection.delete(
- name=self.name,
+ name=self._name,
entry_id=entry_id,
**kwargs)
@@ -187,9 +191,9 @@ class _ModelApi(object):
"""
Generator over the entries of model in storage.
"""
- with self.driver as connection:
- for data in connection.iter(name=self.name, **kwargs):
- yield self.model_cls(**data)
+ with self._driver as connection:
+ for data in connection.iter(name=self._name, **kwargs):
+ yield self._model_cls(**data)
def update(self, entry_id, **kwargs):
"""
@@ -199,9 +203,9 @@ class _ModelApi(object):
:param kwargs: the fields to update.
:return:
"""
- with self.driver as connection:
+ with self._driver as connection:
connection.update(
- name=self.name,
+ name=self._name,
entry_id=entry_id,
**kwargs
)
@@ -211,8 +215,8 @@ class ResourceApi(object):
"""
Managing the resource in the storage, using the driver.
- :param basestring name: the name of the resource.
:param ResourceDriver driver: the driver which supports this resource in the storage.
+ :param basestring resource_name: the name of the resource.
"""
def __init__(self, driver, resource_name):
"""
@@ -318,7 +322,7 @@ class ResourceStorage(Storage):
Registers the resource type in the resource storage manager.
:param resource: the resource to register.
"""
- self.registered[resource] = ResourceApi(self.driver, resource_name=resource)
+ self._registered[resource] = ResourceApi(self._driver, resource_name=resource)
def __getattr__(self, resource):
"""
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/01aebc28/aria/storage/drivers.py
----------------------------------------------------------------------
diff --git a/aria/storage/drivers.py b/aria/storage/drivers.py
index fc76fe0..d3106bb 100644
--- a/aria/storage/drivers.py
+++ b/aria/storage/drivers.py
@@ -90,7 +90,7 @@ class Driver(LoggerMixin):
"""
pass
- def create(self, name, model_cls, *args, **kwargs):
+ def create(self, name, *args, **kwargs):
"""
Create table/document in storage by name.
:param basestring name: name of table/document in storage.
@@ -357,7 +357,7 @@ class FileSystemResourceDriver(ResourceDriver, BaseFileSystemDriver):
pass
os.makedirs(self._join_path(name))
- def data(self, entry_type, entry_id, path=None):
+ def data(self, entry_type, entry_id, path=None, **kwargs):
"""
Retrieve the content of a file system storage resource.
@@ -379,7 +379,7 @@ class FileSystemResourceDriver(ResourceDriver, BaseFileSystemDriver):
with open(resource, 'rb') as resource_file:
return resource_file.read()
- def download(self, entry_type, entry_id, destination, path=None):
+ def download(self, entry_type, entry_id, destination, path=None, **kwargs):
"""
Download a specific file or dir from the file system resource storage.
@@ -397,7 +397,7 @@ class FileSystemResourceDriver(ResourceDriver, BaseFileSystemDriver):
else:
distutils.dir_util.copy_tree(resource, destination) # pylint: disable=no-member
- def upload(self, entry_type, entry_id, source, path=None):
+ def upload(self, entry_type, entry_id, source, path=None, **kwargs):
"""
Uploads a specific file or dir to the file system resource storage.
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/01aebc28/aria/storage/structures.py
----------------------------------------------------------------------
diff --git a/aria/storage/structures.py b/aria/storage/structures.py
index 7396d00..3a8b289 100644
--- a/aria/storage/structures.py
+++ b/aria/storage/structures.py
@@ -305,20 +305,20 @@ class Storage(LoggerMixin):
"""
def __init__(self, driver, items=(), **kwargs):
super(Storage, self).__init__(**kwargs)
- self.driver = driver
- self.registered = OrderedDict()
+ self._driver = driver
+ self._registered = OrderedDict()
for item in items:
self.register(item)
self.logger.debug('{name} object is ready: {0!r}'.format(
self, name=self.__class__.__name__))
def __repr__(self):
- return '{name}(driver={self.driver})'.format(
+ return '{name}(driver={self._driver})'.format(
name=self.__class__.__name__, self=self)
def __getattr__(self, item):
try:
- return self.registered[item]
+ return self._registered[item]
except KeyError:
return super(Storage, self).__getattribute__(item)
@@ -326,7 +326,7 @@ class Storage(LoggerMixin):
"""
Setup and create all storage items
"""
- for name, api in self.registered.items():
+ for name, api in self._registered.items():
try:
api.create()
self.logger.debug(
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/01aebc28/tests/storage/test_model_storage.py
----------------------------------------------------------------------
diff --git a/tests/storage/test_model_storage.py b/tests/storage/test_model_storage.py
index 1798a20..e6a83b1 100644
--- a/tests/storage/test_model_storage.py
+++ b/tests/storage/test_model_storage.py
@@ -32,7 +32,7 @@ def test_storage_base():
driver = InMemoryModelDriver()
storage = Storage(driver)
- assert storage.driver == driver
+ assert storage._driver == driver
with pytest.raises(AttributeError):
storage.non_existent_attribute()
@@ -64,14 +64,14 @@ def test_storage_driver():
storage.register(models.ProviderContext)
storage.setup()
pc = models.ProviderContext(context={}, name='context_name', id='id2')
- storage.driver.store(name='provider_context', entry=pc, entry_id=pc.id)
+ storage._driver.store(name='provider_context', entry=pc, entry_id=pc.id)
- assert storage.driver.get(
+ assert storage._driver.get(
name='provider_context',
entry_id='id2',
model_cls=models.ProviderContext) == pc.fields_dict
- assert [i for i in storage.driver.iter(name='provider_context')] == [pc.fields_dict]
+ assert [i for i in storage._driver.iter(name='provider_context')] == [pc.fields_dict]
assert [i for i in storage.provider_context] == [pc]
storage.provider_context.delete('id2')
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/01aebc28/tests/storage/test_models_api.py
----------------------------------------------------------------------
diff --git a/tests/storage/test_models_api.py b/tests/storage/test_models_api.py
index 4c54ab2..5db8da0 100644
--- a/tests/storage/test_models_api.py
+++ b/tests/storage/test_models_api.py
@@ -26,7 +26,7 @@ def test_models_api_base():
driver.create(name='provider_context', model_cls=models.ProviderContext)
table = _ModelApi('provider_context', driver, models.ProviderContext)
assert repr(table) == (
- '{table.name}(driver={table.driver}, '
+ '{table.name}(driver={table._driver}, '
'model={table.model_cls})'.format(table=table))
provider_context = models.ProviderContext(context={}, name='context_name', id='id')
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/01aebc28/tests/storage/test_resource_storage.py
----------------------------------------------------------------------
diff --git a/tests/storage/test_resource_storage.py b/tests/storage/test_resource_storage.py
index 918b270..6be4122 100644
--- a/tests/storage/test_resource_storage.py
+++ b/tests/storage/test_resource_storage.py
@@ -47,7 +47,7 @@ class TestResourceStorage(TestFileSystem):
assert repr(storage) == 'ResourceStorage(driver={driver})'.format(
driver=driver
)
- assert repr(storage.registered['blueprint']) == (
+ assert repr(storage._registered['blueprint']) == (
'ResourceApi(driver={driver}, resource={resource_name})'.format(
driver=driver,
resource_name='blueprint'))