You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ariatosca.apache.org by da...@apache.org on 2016/10/20 13:09:28 UTC
incubator-ariatosca git commit: pylint some top level modules [Forced
Update!]
Repository: incubator-ariatosca
Updated Branches:
refs/heads/pylint-toplevelmodules 27e7d0b7f -> aa2641ac9 (forced update)
pylint some top level modules
Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/aa2641ac
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/aa2641ac
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/aa2641ac
Branch: refs/heads/pylint-toplevelmodules
Commit: aa2641ac9ece05bdb6f6e2cf17ce00a303069f79
Parents: 2e14ee4
Author: Dan Kilman <da...@gmail.com>
Authored: Thu Oct 20 13:55:29 2016 +0300
Committer: Dan Kilman <da...@gmail.com>
Committed: Thu Oct 20 16:09:23 2016 +0300
----------------------------------------------------------------------
aria/__init__.py | 26 ++++++++++++----------
aria/contexts.py | 58 ++++++++++++++++++++++++++++++++++++++++++++++++-
aria/decorators.py | 19 +++++++++++-----
aria/exceptions.py | 12 +++++++---
aria/logger.py | 19 +++++++++++-----
5 files changed, 108 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/aa2641ac/aria/__init__.py
----------------------------------------------------------------------
diff --git a/aria/__init__.py b/aria/__init__.py
index 32c0df3..ed4e408 100644
--- a/aria/__init__.py
+++ b/aria/__init__.py
@@ -14,19 +14,16 @@
# limitations under the License.
"""
-aria Package
-Path: aria
-
-Methods:
- * __version__ - Aria Package Version.
- * tosca_templates - Use the parser.parse method to validate tosca_templates.
- * parser - aria.parser sub-package TOSCA parser and validation.
- * deployment - aria.deployment sub-package convert plan,
- from parser to a deployment plan.
+Aria top level package
"""
from .VERSION import version as __version__
-from .storage.drivers import ResourceDriver, ModelDriver, FileSystemModelDriver, FileSystemResourceDriver
+from .storage.drivers import (
+ ResourceDriver,
+ ModelDriver,
+ FileSystemModelDriver,
+ FileSystemResourceDriver,
+)
from .storage import ModelStorage, ResourceStorage, models
from .decorators import workflow, operation
@@ -41,8 +38,11 @@ _resource_storage = {}
def application_model_storage(driver):
+ """
+ Initiate model storage for the supplied storage driver
+ """
+
assert isinstance(driver, ModelDriver)
- global _model_storage
if driver not in _model_storage:
_model_storage[driver] = ModelStorage(
driver, models=[
@@ -62,8 +62,10 @@ def application_model_storage(driver):
def application_resource_storage(driver):
+ """
+ Initiate resource storage for the supplied storage driver
+ """
assert isinstance(driver, ResourceDriver)
- global _resource_storage
if driver not in _resource_storage:
_resource_storage[driver] = ResourceStorage(
driver,
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/aa2641ac/aria/contexts.py
----------------------------------------------------------------------
diff --git a/aria/contexts.py b/aria/contexts.py
index 11d33ac..ae7fc66 100644
--- a/aria/contexts.py
+++ b/aria/contexts.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+Workflow and operation contexts
+"""
+
from uuid import uuid4
from aria.logger import LoggerMixin
@@ -21,7 +25,9 @@ from aria.workflows.api.tasks_graph import TaskGraph
class WorkflowContext(LoggerMixin):
- # todo: add documentations
+ """
+ Context object used during workflow creation and execution
+ """
def __init__(
self,
@@ -55,6 +61,10 @@ class WorkflowContext(LoggerMixin):
operation_details,
node_instance,
inputs=None):
+ """
+ Called during workflow creation, return an operation context. This object should be added to
+ the task graph.
+ """
return OperationContext(
name=name,
operation_details=operation_details,
@@ -64,46 +74,76 @@ class WorkflowContext(LoggerMixin):
@property
def task_graph(self):
+ """
+ The task graph class
+ """
return TaskGraph
@property
def blueprint_id(self):
+ """
+ The blueprint id
+ """
return self.deployment.blueprint_id
@property
@lru_cache()
def blueprint(self):
+ """
+ The blueprint model
+ """
return self.model.blueprint.get(self.blueprint_id)
@property
@lru_cache()
def deployment(self):
+ """
+ The deployment model
+ """
return self.model.deployment.get(self.deployment_id)
@property
def nodes(self):
+ """
+ Iterator over nodes
+ """
return self.model.node.iter(
filters={'blueprint_id': self.blueprint_id})
@property
def node_instances(self):
+ """
+ Iterator over node instances
+ """
return self.model.node_instance.iter(filters={'deployment_id': self.deployment_id})
@property
def execution(self):
+ """
+ The execution model
+ """
return self.model.execution.get(self.execution_id)
@execution.setter
def execution(self, value):
+ """
+ Store the execution in the model storage
+ """
self.model.execution.store(value)
def download_blueprint_resource(self, destination, path=None):
+ """
+ Download a blueprint resource from the resource storage
+ """
return self.resource.blueprint.download(
entry_id=self.blueprint_id,
destination=destination,
path=path)
def download_deployment_resource(self, destination, path=None):
+ """
+ Download a deployment resource from the resource storage
+ """
return self.resource.deployment.download(
entry_id=self.deployment_id,
destination=destination,
@@ -111,14 +151,24 @@ class WorkflowContext(LoggerMixin):
@lru_cache()
def get_deployment_resource_data(self, path=None):
+ """
+ Read a deployment resource as string from the resource storage
+ """
return self.resource.deployment.data(entry_id=self.deployment_id, path=path)
@lru_cache()
def get_blueprint_resource_data(self, path=None):
+ """
+ Read a blueprint resource as string from the resource storage
+ """
return self.resource.blueprint.data(entry_id=self.blueprint_id, path=path)
class OperationContext(LoggerMixin):
+ """
+ Context object used during operation creation and execution
+ """
+
def __init__(
self,
name,
@@ -148,8 +198,14 @@ class OperationContext(LoggerMixin):
@property
def operation(self):
+ """
+ The model operation
+ """
return self.storage.operation.get(self.id)
@operation.setter
def operation(self, value):
+ """
+ Store the operation in the model storage
+ """
self.storage.operation.store(value)
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/aa2641ac/aria/decorators.py
----------------------------------------------------------------------
diff --git a/aria/decorators.py b/aria/decorators.py
index e2ea4e5..7bc41b3 100644
--- a/aria/decorators.py
+++ b/aria/decorators.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+Workflow and operation decorators
+"""
+
from uuid import uuid4
from functools import partial, wraps
@@ -24,6 +28,9 @@ def workflow(
workflow_context=True,
simple_workflow=True,
suffix_template=''):
+ """
+ Workflow decorator
+ """
if func is None:
return partial(
workflow,
@@ -32,7 +39,7 @@ def workflow(
suffix_template=suffix_template)
@wraps(func)
- def wrapper(context, **custom_kwargs):
+ def _wrapper(context, **custom_kwargs):
workflow_name = _generate_workflow_name(
func_name=func.__name__,
suffix_template=suffix_template,
@@ -46,17 +53,20 @@ def workflow(
validate_function_arguments(func, func_kwargs)
func(**func_kwargs)
return func_kwargs['graph']
- return wrapper
+ return _wrapper
def operation(
func=None,
operation_context=True):
+ """
+ Operation decorator
+ """
if func is None:
return partial(operation)
@wraps(func)
- def wrapper(context, **custom_kwargs):
+ def _wrapper(context, **custom_kwargs):
func_kwargs = _create_func_kwargs(
custom_kwargs,
context,
@@ -64,13 +74,12 @@ def operation(
validate_function_arguments(func, func_kwargs)
context.description = func.__doc__
return func(**func_kwargs)
- return wrapper
+ return _wrapper
def _generate_workflow_name(func_name, context, suffix_template, **custom_kwargs):
return '{func_name}.{suffix}'.format(
func_name=func_name,
- context=context,
suffix=suffix_template.format(context=context, **custom_kwargs) or str(uuid4()))
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/aa2641ac/aria/exceptions.py
----------------------------------------------------------------------
diff --git a/aria/exceptions.py b/aria/exceptions.py
index d035b92..8b7ede7 100644
--- a/aria/exceptions.py
+++ b/aria/exceptions.py
@@ -14,17 +14,23 @@
# limitations under the License.
"""
-Aria exceptions module.
- Every sub-package in Aria have a module with his Exceptions.
- aria.exceptions module is a center for all exceptions.
+Aria exceptions module
+Every sub-package in Aria has a module with its exceptions.
+aria.exceptions module conveniently collects all these exceptions for easier imports.
"""
from .workflows.exceptions import * # pylint: disable=W0401, W0614
class AriaError(Exception):
+ """
+ General aria exception
+ """
pass
class StorageError(AriaError):
+ """
+ General storage exception
+ """
pass
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/aa2641ac/aria/logger.py
----------------------------------------------------------------------
diff --git a/aria/logger.py b/aria/logger.py
index 71d2d32..4959126 100644
--- a/aria/logger.py
+++ b/aria/logger.py
@@ -13,11 +13,14 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+Logging related mixins and functions
+"""
+
import logging
from logging.handlers import RotatingFileHandler
-# todo: documentation...
-base_logger = logging.getLogger('aria')
+_base_logger = logging.getLogger('aria')
class LoggerMixin(object):
@@ -34,7 +37,7 @@ class LoggerMixin(object):
def __init__(self, *args, **kwargs):
self.logger_name = self.logger_name or self.__class__.__name__
- self.logger = base_logger.getChild(self.logger_name)
+ self.logger = _base_logger.getChild(self.logger_name)
self.logger.setLevel(self.logger_level)
super(LoggerMixin, self).__init__(*args, **kwargs)
@@ -45,6 +48,9 @@ class LoggerMixin(object):
logger_level=logging.DEBUG,
base_logger=logging.getLogger(),
**kwargs):
+ """
+ Set the logger used by the consuming class
+ """
cls.logger_name = logger_name
cls.logger_level = logger_level
cls.base_logger = base_logger
@@ -57,11 +63,11 @@ class LoggerMixin(object):
def __setstate__(self, obj_dict):
vars(self).update(
- logger=base_logger.getChild(obj_dict['logger_name']),
+ logger=_base_logger.getChild(obj_dict['logger_name']),
**obj_dict)
-def create_logger(logger=base_logger, handlers=(), **configs):
+def create_logger(logger=_base_logger, handlers=(), **configs):
"""
:param logging.Logger logger: The logger name [default: aria logger]
@@ -115,6 +121,9 @@ def create_file_log_handler(
max_bytes=5 * 1000 * 1024,
backup_count=10,
formatter=None):
+ """
+ Create a logging.handlers.RotatingFileHandler
+ """
rotating_file = RotatingFileHandler(
filename=file_path,
maxBytes=max_bytes,