You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ariatosca.apache.org by em...@apache.org on 2017/06/23 02:14:11 UTC
[2/2] incubator-ariatosca git commit: Initial work on organization
and bug fixes
Initial work on organization and bug fixes
Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/66213279
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/66213279
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/66213279
Branch: refs/heads/ARIA-286-sphinx-documentation
Commit: 66213279b7f82e315f2da1ad6933874bff2fdfcf
Parents: 75112ab
Author: Tal Liron <ta...@gmail.com>
Authored: Thu Jun 22 21:13:28 2017 -0500
Committer: Tal Liron <ta...@gmail.com>
Committed: Thu Jun 22 21:13:28 2017 -0500
----------------------------------------------------------------------
aria/__init__.py | 2 +-
aria/cli/__init__.py | 4 +
aria/cli/color.py | 5 +
aria/cli/commands/__init__.py | 4 +
aria/cli/commands/executions.py | 45 ++++--
aria/cli/commands/logs.py | 22 ++-
aria/cli/commands/node_templates.py | 21 ++-
aria/cli/commands/nodes.py | 23 +--
aria/cli/commands/plugins.py | 38 +++--
aria/cli/commands/reset.py | 13 +-
aria/cli/commands/service_templates.py | 58 +++++---
aria/cli/commands/services.py | 43 +++---
aria/cli/commands/workflows.py | 23 ++-
aria/cli/config/__init__.py | 4 +
aria/cli/config/config.py | 3 +
aria/cli/core/__init__.py | 4 +
aria/cli/core/aria.py | 3 +
aria/cli/csar.py | 7 +
aria/cli/defaults.py | 3 +
aria/cli/env.py | 3 +
aria/cli/exceptions.py | 3 +
aria/cli/execution_logging.py | 5 +
aria/cli/helptexts.py | 19 +--
aria/cli/inputs.py | 24 ++--
aria/cli/logger.py | 3 +
aria/cli/main.py | 15 +-
aria/cli/service_template_utils.py | 15 +-
aria/cli/table.py | 4 +
aria/cli/utils.py | 4 +
aria/core.py | 4 +
aria/exceptions.py | 5 +-
aria/extension.py | 4 +
aria/logger.py | 16 +--
aria/modeling/__init__.py | 4 +
aria/modeling/constraints.py | 3 +
aria/modeling/exceptions.py | 4 +
aria/modeling/functions.py | 4 +
aria/modeling/mixins.py | 14 +-
aria/modeling/models.py | 50 +++++++
aria/modeling/orchestration.py | 17 +--
aria/modeling/relationship.py | 9 +-
aria/modeling/service_changes.py | 13 +-
aria/modeling/service_common.py | 54 ++++++-
aria/modeling/service_instance.py | 48 ++++---
aria/modeling/service_template.py | 51 ++++---
aria/modeling/types.py | 4 +
aria/modeling/utils.py | 4 +
aria/orchestrator/__init__.py | 4 +-
aria/parser/__init__.py | 4 +
aria/storage/__init__.py | 33 ++---
aria/storage/core.py | 37 ++---
aria/storage/sql_mapi.py | 143 ++++++++++---------
aria/utils/__init__.py | 4 +
aria/utils/archive.py | 3 +
aria/utils/argparse.py | 4 +
aria/utils/caching.py | 4 +
aria/utils/collections.py | 4 +
aria/utils/console.py | 4 +
aria/utils/exceptions.py | 4 +
aria/utils/file.py | 4 +
aria/utils/formatting.py | 4 +
aria/utils/http.py | 14 +-
aria/utils/imports.py | 4 +-
aria/utils/openclose.py | 4 +
aria/utils/plugin.py | 4 +
aria/utils/process.py | 4 +
aria/utils/specification.py | 4 +
aria/utils/threading.py | 4 +
aria/utils/type.py | 4 +
aria/utils/uris.py | 4 +
aria/utils/uuid.py | 9 +-
aria/utils/validation.py | 2 +
aria/utils/versions.py | 2 +
docs/aria.cli.rst | 100 +++++++++++++
docs/aria.modeling.models.rst | 21 +++
docs/aria.modeling.rst | 51 +++++++
docs/aria.orchestrator.execution_plugin.rst | 31 ++++
docs/aria.orchestrator.rst | 26 ++++
docs/aria.orchestrator.workflows.rst | 41 ++++++
docs/aria.parser.consumption.rst | 61 ++++++++
docs/aria.parser.loading.rst | 66 +++++++++
docs/aria.parser.modeling.rst | 26 ++++
docs/aria.parser.presentation.rst | 66 +++++++++
docs/aria.parser.reading.rst | 66 +++++++++
docs/aria.parser.rst | 31 ++++
docs/aria.parser.validation.rst | 31 ++++
docs/aria.rst | 40 ++++++
docs/aria.storage.rst | 51 +++++++
docs/aria.utils.rst | 121 ++++++++++++++++
docs/aria_extension_tosca.rst | 30 ++++
docs/cli.rst | 57 ++++++++
docs/conf.py | 21 +--
docs/index.rst | 56 ++++++--
docs/parser.rst | 56 --------
docs/requirements.txt | 3 +-
docs/tosca.rst | 36 -----
.../simple_nfv_v1_0/presenter.py | 4 +-
97 files changed, 1702 insertions(+), 433 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/__init__.py
----------------------------------------------------------------------
diff --git a/aria/__init__.py b/aria/__init__.py
index 34db3a8..5eea665 100644
--- a/aria/__init__.py
+++ b/aria/__init__.py
@@ -14,7 +14,7 @@
# limitations under the License.
"""
-ARIA top level package
+The ARIA root package provides entry points for extension and storage initialization.
"""
import sys
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/__init__.py
----------------------------------------------------------------------
diff --git a/aria/cli/__init__.py b/aria/cli/__init__.py
index ae1e83e..c0ef46f 100644
--- a/aria/cli/__init__.py
+++ b/aria/cli/__init__.py
@@ -12,3 +12,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
+"""
+CLI package.
+"""
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/color.py
----------------------------------------------------------------------
diff --git a/aria/cli/color.py b/aria/cli/color.py
index 5e0355a..0761f6b 100644
--- a/aria/cli/color.py
+++ b/aria/cli/color.py
@@ -12,6 +12,11 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
+"""
+Terminal colorization utilities.
+"""
+
from StringIO import StringIO
import re
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/commands/__init__.py
----------------------------------------------------------------------
diff --git a/aria/cli/commands/__init__.py b/aria/cli/commands/__init__.py
index a01a029..ba34a43 100644
--- a/aria/cli/commands/__init__.py
+++ b/aria/cli/commands/__init__.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+CLI commands package.
+"""
+
from . import (
executions,
logs,
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/commands/executions.py
----------------------------------------------------------------------
diff --git a/aria/cli/commands/executions.py b/aria/cli/commands/executions.py
index b337e84..691de5a 100644
--- a/aria/cli/commands/executions.py
+++ b/aria/cli/commands/executions.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+CLI ``executions`` sub-commands.
+"""
+
import os
from .. import helptexts
@@ -27,28 +31,30 @@ from ...orchestrator.workflows.executor.dry import DryExecutor
from ...utils import formatting
from ...utils import threading
-EXECUTION_COLUMNS = ['id', 'workflow_name', 'status', 'service_name',
- 'created_at', 'error']
+EXECUTION_COLUMNS = ('id', 'workflow_name', 'status', 'service_name',
+ 'created_at', 'error')
@aria.group(name='executions')
@aria.options.verbose()
def executions():
- """Handle workflow executions
+ """
+ Manage executions
"""
pass
@executions.command(name='show',
- short_help='Show execution information')
+ short_help='Show information for an execution')
@aria.argument('execution-id')
@aria.options.verbose()
@aria.pass_model_storage
@aria.pass_logger
def show(execution_id, model_storage, logger):
- """Show information for a specific execution
+ """
+ Show information for an execution
- `EXECUTION_ID` is the execution to get information on.
+ EXECUTION_ID is the unique ID of the execution.
"""
logger.info('Showing execution {0}'.format(execution_id))
execution = model_storage.execution.get(execution_id)
@@ -68,7 +74,7 @@ def show(execution_id, model_storage, logger):
@executions.command(name='list',
- short_help='List service executions')
+ short_help='List executions')
@aria.options.service_name(required=False)
@aria.options.sort_by()
@aria.options.descending
@@ -80,10 +86,11 @@ def list(service_name,
descending,
model_storage,
logger):
- """List executions
+ """
+ List executions
- If `SERVICE_NAME` is provided, list executions for that service.
- Otherwise, list executions for all services.
+ If SERVICE_NAME is provided, list executions on that service. Otherwise, list executions on all
+ services.
"""
if service_name:
logger.info('Listing executions for service {0}...'.format(
@@ -102,7 +109,7 @@ def list(service_name,
@executions.command(name='start',
- short_help='Execute a workflow')
+ short_help='Start a workflow on a service')
@aria.argument('workflow-name')
@aria.options.service_name(required=True)
@aria.options.inputs(help=helptexts.EXECUTION_INPUTS)
@@ -126,9 +133,12 @@ def start(workflow_name,
resource_storage,
plugin_manager,
logger):
- """Execute a workflow
+ """
+ Start a workflow on a service
- `WORKFLOW_NAME` is the name of the workflow to execute (e.g. `uninstall`)
+ SERVICE_NAME is the unique name of the service.
+
+ WORKFLOW_NAME is the unique name of the workflow within the service (e.g. "uninstall").
"""
service = model_storage.service.get_by_name(service_name)
executor = DryExecutor() if dry else None # use WorkflowRunner's default executor
@@ -145,7 +155,7 @@ def start(workflow_name,
@executions.command(name='resume',
- short_help='Resume a workflow')
+ short_help='Resume a stopped execution')
@aria.argument('execution-id')
@aria.options.inputs(help=helptexts.EXECUTION_INPUTS)
@aria.options.dry_execution
@@ -166,6 +176,11 @@ def resume(execution_id,
resource_storage,
plugin_manager,
logger):
+ """
+ Resume a stopped execution
+
+ EXECUTION_ID is the unique ID of the execution.
+ """
executor = DryExecutor() if dry else None # use WorkflowRunner's default executor
workflow_runner = \
@@ -217,7 +232,7 @@ def _run_execution(workflow_runner, logger, model_storage, dry, mark_pattern):
def _cancel_execution(workflow_runner, execution_thread, logger, log_iterator):
- logger.info('Cancelling execution. Press Ctrl+C again to force-cancel')
+ logger.info('Cancelling execution. Press Ctrl+C again to force-cancel.')
workflow_runner.cancel()
while execution_thread.is_alive():
try:
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/commands/logs.py
----------------------------------------------------------------------
diff --git a/aria/cli/commands/logs.py b/aria/cli/commands/logs.py
index 2f7f361..b751b97 100644
--- a/aria/cli/commands/logs.py
+++ b/aria/cli/commands/logs.py
@@ -12,6 +12,11 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
+"""
+CLI ``logs`` sub-commands.
+"""
+
from .. import execution_logging
from ..logger import ModelLogIterator
from ..core import aria
@@ -20,20 +25,24 @@ from ..core import aria
@aria.group(name='logs')
@aria.options.verbose()
def logs():
- """Show logs from workflow executions
+ """
+ Manage logs of workflow executions
"""
pass
@logs.command(name='list',
- short_help='List execution logs')
+ short_help='List logs for an execution')
@aria.argument('execution-id')
@aria.options.verbose()
@aria.options.mark_pattern()
@aria.pass_model_storage
@aria.pass_logger
def list(execution_id, mark_pattern, model_storage, logger):
- """Display logs for an execution
+ """
+ List logs for an execution
+
+ EXECUTION_ID is the unique ID of the execution.
"""
logger.info('Listing logs for execution id {0}'.format(execution_id))
log_iterator = ModelLogIterator(model_storage, execution_id)
@@ -45,15 +54,16 @@ def list(execution_id, mark_pattern, model_storage, logger):
@logs.command(name='delete',
- short_help='Delete execution logs')
+ short_help='Delete logs of an execution')
@aria.argument('execution-id')
@aria.options.verbose()
@aria.pass_model_storage
@aria.pass_logger
def delete(execution_id, model_storage, logger):
- """Delete logs of an execution
+ """
+ Delete logs of an execution
- `EXECUTION_ID` is the execution logs to delete.
+ EXECUTION_ID is the unique ID of the execution.
"""
logger.info('Deleting logs for execution id {0}'.format(execution_id))
logs_list = model_storage.log.list(filters=dict(execution_fk=execution_id))
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/commands/node_templates.py
----------------------------------------------------------------------
diff --git a/aria/cli/commands/node_templates.py b/aria/cli/commands/node_templates.py
index 50c755e..ec160d2 100644
--- a/aria/cli/commands/node_templates.py
+++ b/aria/cli/commands/node_templates.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+CLI ``node-templates`` sub-commands.
+"""
+
from .. import table
from .. import utils
from ..core import aria
@@ -24,22 +28,24 @@ NODE_TEMPLATE_COLUMNS = ['id', 'name', 'description', 'service_template_name', '
@aria.group(name='node-templates')
@aria.options.verbose()
def node_templates():
- """Handle a service template's node templates
+ """
+ Manages stored service templates' node templates
"""
pass
@node_templates.command(name='show',
- short_help='Show node information')
+ short_help='Show information for a stored node template')
@aria.argument('node-template-id')
# @aria.options.service_template_name(required=True)
@aria.options.verbose()
@aria.pass_model_storage
@aria.pass_logger
def show(node_template_id, model_storage, logger):
- """Show information for a specific node of a specific service template
+ """
+ Show information for a stored node template
- `NODE_TEMPLATE_ID` is the node id to get information on.
+ NODE_TEMPLATE_ID is the unique node template ID.
"""
logger.info('Showing node template {0}'.format(node_template_id))
node_template = model_storage.node_template.get(node_template_id)
@@ -64,7 +70,7 @@ def show(node_template_id, model_storage, logger):
@node_templates.command(name='list',
- short_help='List node templates for a service template')
+ short_help='List stored node templates')
@aria.options.service_template_name()
@aria.options.sort_by('service_template_name')
@aria.options.descending
@@ -72,9 +78,10 @@ def show(node_template_id, model_storage, logger):
@aria.pass_model_storage
@aria.pass_logger
def list(service_template_name, sort_by, descending, model_storage, logger):
- """List node templates
+ """
+ List stored node templates
- If `SERVICE_TEMPLATE_NAME` is provided, list nodes for that service template.
+ If SERVICE_TEMPLATE_NAME is provided, list node templates for that stored service template.
Otherwise, list node templates for all service templates.
"""
if service_template_name:
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/commands/nodes.py
----------------------------------------------------------------------
diff --git a/aria/cli/commands/nodes.py b/aria/cli/commands/nodes.py
index 1bbefe6..30f1dd4 100644
--- a/aria/cli/commands/nodes.py
+++ b/aria/cli/commands/nodes.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+CLI ``nodes`` sub-commands.
+"""
+
from .. import table
from .. import utils
from ..core import aria
@@ -24,21 +28,23 @@ NODE_COLUMNS = ['id', 'name', 'service_name', 'node_template_name', 'state']
@aria.group(name='nodes')
@aria.options.verbose()
def nodes():
- """Handle a service's nodes
+ """
+ Manage services' nodes
"""
pass
@nodes.command(name='show',
- short_help='Show node information')
+ short_help='Show information for a node')
@aria.argument('node_id')
@aria.options.verbose()
@aria.pass_model_storage
@aria.pass_logger
def show(node_id, model_storage, logger):
- """Showing information for a specific node
+ """
+ Show information for a node
- `NODE_ID` is the id of the node to get information on.
+ NODE_ID is the unique node ID.
"""
logger.info('Showing node {0}'.format(node_id))
node = model_storage.node.get(node_id)
@@ -55,7 +61,7 @@ def show(node_id, model_storage, logger):
@nodes.command(name='list',
- short_help='List node for a service')
+ short_help='List node')
@aria.options.service_name(required=False)
@aria.options.sort_by('service_name')
@aria.options.descending
@@ -67,10 +73,11 @@ def list(service_name,
descending,
model_storage,
logger):
- """List nodes
+ """
+ List nodes
- If `SERVICE_NAME` is provided, list nodes for that service.
- Otherwise, list nodes for all services.
+ If SERVICE_NAME is provided, list nodes for that service. Otherwise, list nodes for all
+ services.
"""
if service_name:
logger.info('Listing nodes for service {0}...'.format(service_name))
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/commands/plugins.py
----------------------------------------------------------------------
diff --git a/aria/cli/commands/plugins.py b/aria/cli/commands/plugins.py
index 670288e..b5d68a2 100644
--- a/aria/cli/commands/plugins.py
+++ b/aria/cli/commands/plugins.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+CLI ``plugins`` sub-commands.
+"""
+
from .. import table
from .. import utils
from ..core import aria
@@ -25,24 +29,26 @@ PLUGIN_COLUMNS = ['id', 'package_name', 'package_version', 'supported_platform',
@aria.group(name='plugins')
@aria.options.verbose()
def plugins():
- """Handle plugins
+ """
+ Manage plugins
"""
pass
@plugins.command(name='validate',
- short_help='Validate a plugin')
+ short_help='Validate a plugin archive')
@aria.argument('plugin-path')
@aria.options.verbose()
@aria.pass_plugin_manager
@aria.pass_logger
def validate(plugin_path, plugin_manager, logger):
- """Validate a plugin archive
+ """
+ Validate a plugin archive
- A valid plugin is a wagon (http://github.com/cloudify-cosmo/wagon)
- in the zip format (suffix may also be .wgn).
+ A valid plugin is a wagon (`http://github.com/cloudify-cosmo/wagon`) in the ZIP format (suffix
+ may also be `.wgn`).
- `PLUGIN_PATH` is the path to wagon archive to validate.
+ PLUGIN_PATH is the path to the wagon archive.
"""
logger.info('Validating plugin {0}...'.format(plugin_path))
plugin_manager.validate_plugin(plugin_path)
@@ -57,9 +63,13 @@ def validate(plugin_path, plugin_manager, logger):
@aria.pass_plugin_manager
@aria.pass_logger
def install(ctx, plugin_path, plugin_manager, logger):
- """Install a plugin
+ """
+ Install a plugin
- `PLUGIN_PATH` is the path to wagon archive to install.
+ A valid plugin is a wagon (`http://github.com/cloudify-cosmo/wagon`) in the ZIP format (suffix
+ may also be `.wgn`).
+
+ PLUGIN_PATH is the path to the wagon archive.
"""
ctx.invoke(validate, plugin_path=plugin_path)
logger.info('Installing plugin {0}...'.format(plugin_path))
@@ -68,15 +78,16 @@ def install(ctx, plugin_path, plugin_manager, logger):
@plugins.command(name='show',
- short_help='show plugin information')
+ short_help='Show information for an installed plugin')
@aria.argument('plugin-id')
@aria.options.verbose()
@aria.pass_model_storage
@aria.pass_logger
def show(plugin_id, model_storage, logger):
- """Show information for a specific plugin
+ """
+ Show information for an installed plugin
- `PLUGIN_ID` is the id of the plugin to show information on.
+ PLUGIN_ID is the unique installed plugin ID in this ARIA instance.
"""
logger.info('Showing plugin {0}...'.format(plugin_id))
plugin = model_storage.plugin.get(plugin_id)
@@ -84,14 +95,15 @@ def show(plugin_id, model_storage, logger):
@plugins.command(name='list',
- short_help='List plugins')
+ short_help='List all installed plugins')
@aria.options.sort_by('uploaded_at')
@aria.options.descending
@aria.options.verbose()
@aria.pass_model_storage
@aria.pass_logger
def list(sort_by, descending, model_storage, logger):
- """List all plugins on the manager
+ """
+ List all installed plugins
"""
logger.info('Listing all plugins...')
plugins_list = model_storage.plugin.list(
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/commands/reset.py
----------------------------------------------------------------------
diff --git a/aria/cli/commands/reset.py b/aria/cli/commands/reset.py
index 1fe0714..c82c707 100644
--- a/aria/cli/commands/reset.py
+++ b/aria/cli/commands/reset.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+CLI ``reset`` command.
+"""
+
from .. import helptexts
from ..core import aria
from ..env import env
@@ -20,7 +24,7 @@ from ..exceptions import AriaCliError
@aria.command(name='reset',
- short_help="Reset ARIA's working directory")
+ short_help="Reset ARIA working directory")
@aria.options.force(help=helptexts.FORCE_RESET)
@aria.options.reset_config
@aria.pass_logger
@@ -28,9 +32,10 @@ from ..exceptions import AriaCliError
def reset(force, reset_config, logger):
"""
Reset ARIA working directory
- Resetting the working directory will result in the deletion of all state in ARIA; The user
- configuration will remain intact, unless the `reset_config` flag has been set as well, in
- which case the entire ARIA working directory shall be removed.
+
+ Deletes installed plugins, service templates, services, executions, and logs. The user
+ configuration will remain intact unless the `--reset_config` flag has been set as well, in
+ which case the entire ARIA working directory shall be removed.
"""
if not force:
raise AriaCliError("To reset the ARIA's working directory, you must also provide the force"
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/commands/service_templates.py
----------------------------------------------------------------------
diff --git a/aria/cli/commands/service_templates.py b/aria/cli/commands/service_templates.py
index d139195..f567aa8 100644
--- a/aria/cli/commands/service_templates.py
+++ b/aria/cli/commands/service_templates.py
@@ -13,6 +13,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+CLI ``service-templates`` sub-commands.
+"""
import os
@@ -35,13 +38,14 @@ SERVICE_TEMPLATE_COLUMNS = \
@aria.group(name='service-templates')
@aria.options.verbose()
def service_templates():
- """Handle service templates on the manager
+ """
+ Manage service templates
"""
pass
@service_templates.command(name='show',
- short_help='Show service template information')
+ short_help='Show information for a stored service template')
@aria.argument('service-template-name')
@aria.options.verbose()
@aria.pass_model_storage
@@ -52,9 +56,10 @@ def service_templates():
@aria.pass_logger
def show(service_template_name, model_storage, mode_full, mode_types, format_json, format_yaml,
logger):
- """Show information for a specific service template
+ """
+ Show information for a stored service template
- `SERVICE_TEMPLATE_NAME` is the name of the service template to show information on.
+ SERVICE_TEMPLATE_NAME is the unique name of the stored service template.
"""
service_template = model_storage.service_template.get_by_name(service_template_name)
@@ -94,14 +99,15 @@ def show(service_template_name, model_storage, mode_full, mode_types, format_jso
@service_templates.command(name='list',
- short_help='List service templates')
+ short_help='List all stored service templates')
@aria.options.sort_by()
@aria.options.descending
@aria.options.verbose()
@aria.pass_model_storage
@aria.pass_logger
def list(sort_by, descending, model_storage, logger):
- """List all service templates
+ """
+ List all stored service templates
"""
logger.info('Listing all service templates...')
@@ -115,7 +121,7 @@ def list(sort_by, descending, model_storage, logger):
@service_templates.command(name='store',
- short_help='Store a service template')
+ short_help='Parse and store a service template archive')
@aria.argument('service-template-path')
@aria.argument('service-template-name')
@aria.options.service_template_filename
@@ -126,11 +132,12 @@ def list(sort_by, descending, model_storage, logger):
@aria.pass_logger
def store(service_template_path, service_template_name, service_template_filename,
model_storage, resource_storage, plugin_manager, logger):
- """Store a service template
+ """
+ Parse and store a service template archive
- `SERVICE_TEMPLATE_PATH` is the path of the service template to store.
+ SERVICE_TEMPLATE_PATH is the path to the service template archive.
- `SERVICE_TEMPLATE_NAME` is the name of the service template to store.
+ SERVICE_TEMPLATE_NAME is the unique name to give to the service template in storage.
"""
logger.info('Storing service template {0}...'.format(service_template_name))
@@ -148,7 +155,7 @@ def store(service_template_path, service_template_name, service_template_filenam
@service_templates.command(name='delete',
- short_help='Delete a service template')
+ short_help='Delete a stored service template')
@aria.argument('service-template-name')
@aria.options.verbose()
@aria.pass_model_storage
@@ -156,9 +163,10 @@ def store(service_template_path, service_template_name, service_template_filenam
@aria.pass_plugin_manager
@aria.pass_logger
def delete(service_template_name, model_storage, resource_storage, plugin_manager, logger):
- """Delete a service template
+ """
+ Delete a stored service template
- `SERVICE_TEMPLATE_NAME` is the name of the service template to delete.
+ SERVICE_TEMPLATE_NAME is the unique name of the stored service template.
"""
logger.info('Deleting service template {0}...'.format(service_template_name))
service_template = model_storage.service_template.get_by_name(service_template_name)
@@ -168,22 +176,23 @@ def delete(service_template_name, model_storage, resource_storage, plugin_manage
@service_templates.command(name='inputs',
- short_help='Show service template inputs')
+ short_help='Show stored service template inputs')
@aria.argument('service-template-name')
@aria.options.verbose()
@aria.pass_model_storage
@aria.pass_logger
def inputs(service_template_name, model_storage, logger):
- """Show inputs for a specific service template
+ """
+ Show stored service template inputs
- `SERVICE_TEMPLATE_NAME` is the name of the service template to show inputs for.
+ SERVICE_TEMPLATE_NAME is the unique name of the stored service template.
"""
logger.info('Showing inputs for service template {0}...'.format(service_template_name))
print_service_template_inputs(model_storage, service_template_name, logger)
@service_templates.command(name='validate',
- short_help='Validate a service template')
+ short_help='Validate a service template archive')
@aria.argument('service-template')
@aria.options.service_template_filename
@aria.options.verbose()
@@ -193,9 +202,10 @@ def inputs(service_template_name, model_storage, logger):
@aria.pass_logger
def validate(service_template, service_template_filename,
model_storage, resource_storage, plugin_manager, logger):
- """Validate a service template
+ """
+ Validate a service template archive
- `SERVICE_TEMPLATE` is the path or URL of the service template or archive to validate.
+ SERVICE_TEMPLATE_PATH is the path to the service template archive.
"""
logger.info('Validating service template: {0}'.format(service_template))
service_template_path = service_template_utils.get(service_template, service_template_filename)
@@ -205,16 +215,18 @@ def validate(service_template, service_template_filename,
@service_templates.command(name='create-archive',
- short_help='Create a CSAR archive')
+ short_help='Create a CSAR archive from a service template source')
@aria.argument('service-template-path')
@aria.argument('destination')
@aria.options.verbose()
@aria.pass_logger
def create_archive(service_template_path, destination, logger):
- """Create a CSAR archive
+ """
+ Create a CSAR archive from a service template source
+
+ SERVICE_TEMPLATE_PATH is the path to the service template source.
- `service_template_path` is the path of the service template to create the archive from
- `destination` is the path of the output CSAR archive
+ DESTINATION is the path to the created CSAR archive.
"""
logger.info('Creating a CSAR archive')
if not destination.endswith(csar.CSAR_FILE_EXTENSION):
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/commands/services.py
----------------------------------------------------------------------
diff --git a/aria/cli/commands/services.py b/aria/cli/commands/services.py
index ae5895a..a99f5b3 100644
--- a/aria/cli/commands/services.py
+++ b/aria/cli/commands/services.py
@@ -13,6 +13,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+CLI ``services`` sub-commands.
+"""
import os
from StringIO import StringIO
@@ -36,13 +39,14 @@ SERVICE_COLUMNS = ('id', 'name', 'description', 'service_template_name', 'create
@aria.group(name='services')
@aria.options.verbose()
def services():
- """Handle services
+ """
+ Manage services
"""
pass
@services.command(name='show',
- short_help='Display service information')
+ short_help='Show information for a service')
@aria.argument('service-name')
@aria.options.verbose()
@aria.options.service_mode_full
@@ -52,9 +56,10 @@ def services():
@aria.pass_model_storage
@aria.pass_logger
def show(service_name, model_storage, mode_full, mode_graph, format_json, format_yaml, logger):
- """Show information for a specific service template
+ """
+ Show information for a service
- `SERVICE_NAME` is the name of the service to display information on.
+ SERVICE_NAME is the unique name of the service.
"""
service = model_storage.service.get_by_name(service_name)
@@ -99,10 +104,11 @@ def list(service_template_name,
descending,
model_storage,
logger):
- """List services
+ """
+ List services
- If `--service-template-name` is provided, list services for that service template.
- Otherwise, list services for all service templates.
+ If `--service-template-name` is provided, list services based on that service template.
+ Otherwise, list all services.
"""
if service_template_name:
logger.info('Listing services for service template {0}...'.format(
@@ -120,7 +126,7 @@ def list(service_template_name,
@services.command(name='create',
- short_help='Create a services')
+ short_help='Create a service')
@aria.argument('service-name', required=False)
@aria.options.service_template_name(required=True)
@aria.options.inputs(help=helptexts.SERVICE_INPUTS)
@@ -136,10 +142,10 @@ def create(service_template_name,
resource_storage,
plugin_manager,
logger):
- """Create a service
-
- `SERVICE_NAME` is the name of the service you'd like to create.
+ """
+ Create a service
+ SERVICE_NAME is the unique name to give to the service.
"""
logger.info('Creating new service from service template {0}...'.format(
service_template_name))
@@ -168,9 +174,10 @@ def create(service_template_name,
@aria.pass_plugin_manager
@aria.pass_logger
def delete(service_name, force, model_storage, resource_storage, plugin_manager, logger):
- """Delete a service
+ """
+ Delete a service
- `SERVICE_NAME` is the name of the service to delete.
+ SERVICE_NAME is the unique name of the service.
"""
logger.info('Deleting service {0}...'.format(service_name))
service = model_storage.service.get_by_name(service_name)
@@ -186,9 +193,10 @@ def delete(service_name, force, model_storage, resource_storage, plugin_manager,
@aria.pass_model_storage
@aria.pass_logger
def outputs(service_name, model_storage, logger):
- """Show outputs for a specific service
+ """
+ Show service outputs
- `SERVICE_NAME` is the name of the service to print outputs for.
+ SERVICE_NAME is the unique name of the service.
"""
logger.info('Showing outputs for service {0}...'.format(service_name))
service = model_storage.service.get_by_name(service_name)
@@ -211,9 +219,10 @@ def outputs(service_name, model_storage, logger):
@aria.pass_model_storage
@aria.pass_logger
def inputs(service_name, model_storage, logger):
- """Show inputs for a specific service
+ """
+ Show service inputs
- `SERVICE_NAME` is the id of the service to print inputs for.
+ SERVICE_NAME is the unique name of the service.
"""
logger.info('Showing inputs for service {0}...'.format(service_name))
service = model_storage.service.get_by_name(service_name)
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/commands/workflows.py
----------------------------------------------------------------------
diff --git a/aria/cli/commands/workflows.py b/aria/cli/commands/workflows.py
index 221dbc4..03cf00e 100644
--- a/aria/cli/commands/workflows.py
+++ b/aria/cli/commands/workflows.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+CLI ``worfklows`` sub-commands.
+"""
+
from .. import table
from ..core import aria
from ..exceptions import AriaCliError
@@ -22,22 +26,26 @@ WORKFLOW_COLUMNS = ['name', 'service_template_name', 'service_name']
@aria.group(name='workflows')
def workflows():
- """Handle service workflows
+ """
+ Manage service workflows
"""
pass
@workflows.command(name='show',
- short_help='Show workflow information')
+ short_help='Show information for a service workflow')
@aria.argument('workflow-name')
@aria.options.service_name(required=True)
@aria.options.verbose()
@aria.pass_model_storage
@aria.pass_logger
def show(workflow_name, service_name, model_storage, logger):
- """Show information for a specific workflow of a specific service
+ """
+ Show information for a service workflow
- `WORKFLOW_NAME` is the name of the workflow to get information on.
+ SERVICE_NAME is the unique name of the service.
+
+ WORKFLOW_NAME is the unique name of the workflow within the service (e.g. "uninstall").
"""
logger.info('Retrieving workflow {0} for service {1}'.format(
workflow_name, service_name))
@@ -81,13 +89,16 @@ def show(workflow_name, service_name, model_storage, logger):
@workflows.command(name='list',
- short_help='List workflows for a service')
+ short_help='List service workflows')
@aria.options.service_name(required=True)
@aria.options.verbose()
@aria.pass_model_storage
@aria.pass_logger
def list(service_name, model_storage, logger):
- """List all workflows of a specific service
+ """
+ List service workflows
+
+ SERVICE_NAME is the unique name of the service.
"""
logger.info('Listing workflows for service {0}...'.format(service_name))
service = model_storage.service.get_by_name(service_name)
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/config/__init__.py
----------------------------------------------------------------------
diff --git a/aria/cli/config/__init__.py b/aria/cli/config/__init__.py
index ae1e83e..738e8ed 100644
--- a/aria/cli/config/__init__.py
+++ b/aria/cli/config/__init__.py
@@ -12,3 +12,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
+"""
+CLI configuration package.
+"""
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/config/config.py
----------------------------------------------------------------------
diff --git a/aria/cli/config/config.py b/aria/cli/config/config.py
index d584fad..bbece80 100644
--- a/aria/cli/config/config.py
+++ b/aria/cli/config/config.py
@@ -13,6 +13,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+CLI configuration mechanism.
+"""
import os
import pkg_resources
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/core/__init__.py
----------------------------------------------------------------------
diff --git a/aria/cli/core/__init__.py b/aria/cli/core/__init__.py
index ae1e83e..88a9801 100644
--- a/aria/cli/core/__init__.py
+++ b/aria/cli/core/__init__.py
@@ -12,3 +12,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
+"""
+CLI core package.
+"""
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/core/aria.py
----------------------------------------------------------------------
diff --git a/aria/cli/core/aria.py b/aria/cli/core/aria.py
index 56fe2f7..bcff367 100644
--- a/aria/cli/core/aria.py
+++ b/aria/cli/core/aria.py
@@ -13,6 +13,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+Enhancements and ARIA-specific conveniences for `Click <http://click.pocoo.org>`__.
+"""
import os
import sys
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/csar.py
----------------------------------------------------------------------
diff --git a/aria/cli/csar.py b/aria/cli/csar.py
index 8f44557..40b1699 100644
--- a/aria/cli/csar.py
+++ b/aria/cli/csar.py
@@ -13,6 +13,13 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+Support for the CSAR (Cloud Service ARchive) packaging specification.
+
+See the `TOSCA Simple Profile v1.0 cos01 specification <http://docs.oasis-open.org/tosca
+/TOSCA-Simple-Profile-YAML/v1.0/cos01/TOSCA-Simple-Profile-YAML-v1.0-cos01.html#_Toc461787381>`__
+"""
+
import os
import logging
import pprint
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/defaults.py
----------------------------------------------------------------------
diff --git a/aria/cli/defaults.py b/aria/cli/defaults.py
index 5c16938..8c1f3ae 100644
--- a/aria/cli/defaults.py
+++ b/aria/cli/defaults.py
@@ -13,6 +13,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+CLI defaults.
+"""
SERVICE_TEMPLATE_FILENAME = 'service_template.yaml'
TASK_MAX_ATTEMPTS = 30
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/env.py
----------------------------------------------------------------------
diff --git a/aria/cli/env.py b/aria/cli/env.py
index 52a4ec6..84bdebe 100644
--- a/aria/cli/env.py
+++ b/aria/cli/env.py
@@ -13,6 +13,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+Environment (private)
+"""
import os
import shutil
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/exceptions.py
----------------------------------------------------------------------
diff --git a/aria/cli/exceptions.py b/aria/cli/exceptions.py
index 89cfacd..7da9836 100644
--- a/aria/cli/exceptions.py
+++ b/aria/cli/exceptions.py
@@ -13,6 +13,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+CLI exceptions.
+"""
from ..exceptions import AriaError
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/execution_logging.py
----------------------------------------------------------------------
diff --git a/aria/cli/execution_logging.py b/aria/cli/execution_logging.py
index 248ff7c..af40e01 100644
--- a/aria/cli/execution_logging.py
+++ b/aria/cli/execution_logging.py
@@ -12,6 +12,11 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
+"""
+Formatting for ``executions`` sub-commands.
+"""
+
import os
import re
from StringIO import StringIO
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/helptexts.py
----------------------------------------------------------------------
diff --git a/aria/cli/helptexts.py b/aria/cli/helptexts.py
index 74934db..a5d41e8 100644
--- a/aria/cli/helptexts.py
+++ b/aria/cli/helptexts.py
@@ -13,10 +13,13 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+Gathers all CLI command help texts in one place.
+"""
DEFAULT_MUTUALITY_ERROR_MESSAGE = 'mutually exclusive'
VERBOSE = \
- "Show verbose output. You can supply this up to three times (i.e. -vvv)"
+ "Show verbose output; you can supply this up to three times (i.e. -vvv)"
VERSION = "Display the version and exit"
FORCE_RESET = "Confirmation for resetting ARIA's working directory"
@@ -28,12 +31,12 @@ EXECUTION_ID = "The unique identifier for the execution"
SERVICE_TEMPLATE_PATH = "The path to the application's service template file"
SERVICE_TEMPLATE_FILENAME = (
- "The name of the archive's main service template file. "
- "This is only relevant if uploading a (non-CSAR) archive")
+ "The name of the archive's main service template file "
+ "(only relevant if uploading a non-CSAR archive)")
INPUTS_PARAMS_USAGE = (
- '(Can be provided as wildcard based paths '
- '(*.yaml, /my_inputs/, etc..) to YAML files, a JSON string or as '
- 'key1=value1;key2=value2). This argument can be used multiple times')
+ '(can be provided as wildcard based paths '
+ '("inp?.yaml", "/my_inputs/", etc.) to YAML files, a JSON string or as '
+ '"key1=value1;key2=value2"); this argument can be used multiple times')
SERVICE_INPUTS = "Inputs for the service {0}".format(INPUTS_PARAMS_USAGE)
EXECUTION_INPUTS = "Inputs for the execution {0}".format(INPUTS_PARAMS_USAGE)
@@ -46,8 +49,8 @@ DRY_EXECUTION = "Execute a workflow dry run (prints operations information witho
IGNORE_AVAILABLE_NODES = "Delete the service even if it has available nodes"
SORT_BY = "Key for sorting the list"
DESCENDING = "Sort list in descending order [default: False]"
-JSON_OUTPUT = "Output logs in a consumable JSON format"
-MARK_PATTERN = "Mark a regex pattern in the logs"
+JSON_OUTPUT = "Output logs in JSON format"
+MARK_PATTERN = "Mark a regular expression pattern in the logs"
SHOW_FULL = "Show full information"
SHOW_JSON = "Show in JSON format (implies --full)"
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/inputs.py
----------------------------------------------------------------------
diff --git a/aria/cli/inputs.py b/aria/cli/inputs.py
index 4d46ebb..11f70a0 100644
--- a/aria/cli/inputs.py
+++ b/aria/cli/inputs.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+Helpers for validating and coercing service template inputs.
+"""
+
import os
import glob
from ruamel import yaml
@@ -22,15 +26,17 @@ from .exceptions import AriaCliError
def inputs_to_dict(resources):
- """Returns a dictionary of inputs
-
- `resources` can be:
- - A list of files.
- - A single file
- - A directory containing multiple input files
- - A key1=value1;key2=value2 pairs string.
- - A string formatted as JSON/YAML.
- - Wildcard based string (e.g. *-inputs.yaml)
+ """
+ Returns a dictionary of inputs
+
+ ``resources`` can be:
+
+ * A list of files.
+ * A single file
+ * A directory containing multiple input files
+ * A key1=value1;key2=value2 pairs string.
+ * A string formatted as JSON/YAML.
+ * Wildcard based string (e.g. ``*-inputs.yaml``)
"""
if not resources:
return dict()
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/logger.py
----------------------------------------------------------------------
diff --git a/aria/cli/logger.py b/aria/cli/logger.py
index 96f3fb3..14baae0 100644
--- a/aria/cli/logger.py
+++ b/aria/cli/logger.py
@@ -13,6 +13,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+Centralized logging configuration and formatting.
+"""
import os
import copy
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/main.py
----------------------------------------------------------------------
diff --git a/aria/cli/main.py b/aria/cli/main.py
index 02cf095..640360b 100644
--- a/aria/cli/main.py
+++ b/aria/cli/main.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+Executable entry point into the CLI.
+"""
+
from aria import install_aria_extensions
from aria.cli import commands
from aria.cli.core import aria
@@ -22,12 +26,15 @@ from aria.cli.core import aria
@aria.options.verbose()
@aria.options.version
def _aria():
- """ARIA's Command Line Interface
+ """
+ ARIA's Command Line Interface.
+
+ To activate bash-completion run::
- To activate bash-completion. Run: `eval "$(_ARIA_COMPLETE=source aria)"`
+ eval "$(_ARIA_COMPLETE=source aria)"
- ARIA's working directory resides by default in ~/.aria. To change it, set
- the environment variable `ARIA_WORKDIR` to something else (e.g. /tmp/).
+ ARIA's working directory resides by default in "~/.aria". To change it, set the environment
+ variable ARIA_WORKDIR to something else (e.g. "/tmp/").
"""
aria.set_cli_except_hook()
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/service_template_utils.py
----------------------------------------------------------------------
diff --git a/aria/cli/service_template_utils.py b/aria/cli/service_template_utils.py
index c953c02..8d4b009 100644
--- a/aria/cli/service_template_utils.py
+++ b/aria/cli/service_template_utils.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+Loading mechanism for service templates.
+"""
+
import os
from urlparse import urlparse
@@ -23,19 +27,18 @@ from ..utils import archive as archive_utils
def get(source, service_template_filename):
- """Get a source and return a path to the main service template file
+ """
+ Get a source and return a path to the main service template file
The behavior based on then source argument content is:
- - local yaml file: return the file
- - local archive:
+ - local ``.yaml`` file: return the file
+ - local archive (``.csar``, ``.zip``, ``.tar``, ``.tar.gz``, and ``.tar.bz2``):
extract it locally and return path service template file
- URL:
- download and get service template from downloaded archive
- - github repo:
+ - GitHub repo:
- download and get service template from downloaded archive
- Supported archive types are: csar, zip, tar, tar.gz and tar.bz2
-
:param source: Path/URL/github repo to archive/service-template file
:type source: str
:param service_template_filename: Path to service template (if source is an archive [but
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/table.py
----------------------------------------------------------------------
diff --git a/aria/cli/table.py b/aria/cli/table.py
index d984c87..9e53437 100644
--- a/aria/cli/table.py
+++ b/aria/cli/table.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+Tabular formatting utilities.
+"""
+
import os
from datetime import datetime
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/cli/utils.py
----------------------------------------------------------------------
diff --git a/aria/cli/utils.py b/aria/cli/utils.py
index 852f24d..0ceb2ea 100644
--- a/aria/cli/utils.py
+++ b/aria/cli/utils.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+Miscellaneous CLI utilities.
+"""
+
import os
import sys
from StringIO import StringIO
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/core.py
----------------------------------------------------------------------
diff --git a/aria/core.py b/aria/core.py
index f660167..830a841 100644
--- a/aria/core.py
+++ b/aria/core.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+ARIA core module
+"""
+
from . import exceptions
from .parser import consumption
from .parser.loading.location import UriLocation
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/exceptions.py
----------------------------------------------------------------------
diff --git a/aria/exceptions.py b/aria/exceptions.py
index 93987dc..b7705ea 100644
--- a/aria/exceptions.py
+++ b/aria/exceptions.py
@@ -14,9 +14,8 @@
# limitations under the License.
"""
-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.
+The ARIA exceptions module provides base exception classes and other common exceptions used
+throughout ARIA.
"""
import sys
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/extension.py
----------------------------------------------------------------------
diff --git a/aria/extension.py b/aria/extension.py
index 4dba74f..3065435 100644
--- a/aria/extension.py
+++ b/aria/extension.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+The ARIA extension module provides a mechanism for registering and loading ARIA extensions.
+"""
+
# pylint: disable=no-self-use
from .utils import collections
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/logger.py
----------------------------------------------------------------------
diff --git a/aria/logger.py b/aria/logger.py
index bd7ed4e..0f35752 100644
--- a/aria/logger.py
+++ b/aria/logger.py
@@ -14,7 +14,8 @@
# limitations under the License.
"""
-Logging related mixins and functions
+The ARIA logger module provides mix-ins and functions for logging, supporting multiple backends
+(such as SQL) and consistent formatting.
"""
import logging
@@ -40,10 +41,10 @@ class LoggerMixin(object):
"""
Mixin Logger Class
configuration (class members):
- logger_name: logger name [default: <class_name>]
- logger_level: logger level [default: logging.DEBUG]
- base_logger: This Mixing will create child logger from this base_logger
- [default: root logger]
+
+ logger_name: logger name [default: <class_name>]
+ logger_level: logger level [default: logging.DEBUG]
+ base_logger: This Mixing will create child logger from this base_logger [default: root logger]
"""
logger_name = None
logger_level = logging.DEBUG
@@ -125,8 +126,8 @@ class _DefaultConsoleFormat(logging.Formatter):
"""
_DefaultConsoleFormat class
Console logger formatter
- info level logs format: '%(message)s'
- every other log level are formatted: '%(levelname)s: %(message)s'
+ info level logs format: '%(message)s'
+ every other log level are formatted: '%(levelname)s: %(message)s'
"""
def format(self, record):
try:
@@ -161,7 +162,6 @@ def create_file_log_handler(
class _SQLAlchemyHandler(logging.Handler):
-
def __init__(self, model, log_cls, execution_id, **kwargs):
logging.Handler.__init__(self, **kwargs)
self._model = model
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/modeling/__init__.py
----------------------------------------------------------------------
diff --git a/aria/modeling/__init__.py b/aria/modeling/__init__.py
index 4ac79e7..4ec6b2c 100644
--- a/aria/modeling/__init__.py
+++ b/aria/modeling/__init__.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+ARIA modeling package
+"""
+
from collections import namedtuple
from . import (
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/modeling/constraints.py
----------------------------------------------------------------------
diff --git a/aria/modeling/constraints.py b/aria/modeling/constraints.py
index 107b010..45b3861 100644
--- a/aria/modeling/constraints.py
+++ b/aria/modeling/constraints.py
@@ -13,6 +13,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+ARIA modeling constraints module
+"""
class NodeTemplateConstraint(object):
"""
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/modeling/exceptions.py
----------------------------------------------------------------------
diff --git a/aria/modeling/exceptions.py b/aria/modeling/exceptions.py
index d0e3e22..19e664a 100644
--- a/aria/modeling/exceptions.py
+++ b/aria/modeling/exceptions.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+ARIA modeling exceptions module
+"""
+
from ..exceptions import AriaException
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/modeling/functions.py
----------------------------------------------------------------------
diff --git a/aria/modeling/functions.py b/aria/modeling/functions.py
index 06fd19f..06f6c32 100644
--- a/aria/modeling/functions.py
+++ b/aria/modeling/functions.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+ARIA modeling functions module
+"""
+
from ..parser.consumption import ConsumptionContext
from ..parser.exceptions import InvalidValueError
from ..utils.collections import OrderedDict
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/modeling/mixins.py
----------------------------------------------------------------------
diff --git a/aria/modeling/mixins.py b/aria/modeling/mixins.py
index c98a866..134748d 100644
--- a/aria/modeling/mixins.py
+++ b/aria/modeling/mixins.py
@@ -13,10 +13,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-"""
-classes:
- * ModelMixin - abstract model implementation.
- * ModelIDMixin - abstract model implementation with IDs.
+"""'
+ARIA modeling mix-ins module
"""
from sqlalchemy.ext import associationproxy
@@ -49,9 +47,9 @@ class ModelMixin(object):
def to_dict(self, fields=None, suppress_error=False):
"""
- Return a dict representation of the model
+ Create a dict representation of the model.
- :param suppress_error: If set to True, sets ``None`` to attributes that it's unable to
+ :param suppress_error: If set to ``True``, sets ``None`` to attributes that it's unable to
retrieve (e.g., if a relationship wasn't established yet, and so it's
impossible to access a property through it)
"""
@@ -79,9 +77,9 @@ class ModelMixin(object):
@classmethod
def fields(cls):
"""
- Return the list of field names for this table
+ List of field names for this table.
- Mostly for backwards compatibility in the code (that uses ``fields``)
+ Mostly for backwards compatibility in the code (that uses ``fields``).
"""
fields = set(cls._iter_association_proxies())
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/modeling/models.py
----------------------------------------------------------------------
diff --git a/aria/modeling/models.py b/aria/modeling/models.py
index f30b86f..d15f791 100644
--- a/aria/modeling/models.py
+++ b/aria/modeling/models.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+Modeling models module
+"""
+
# pylint: disable=abstract-method
from sqlalchemy.ext.declarative import declarative_base
@@ -89,56 +93,76 @@ __all__ = (
)
+def _fix_doc(cls):
+ cls.__doc__ = cls.__bases__[-1].__doc__
+ return cls
+
+
# region service template models
+@_fix_doc
class ServiceTemplate(aria_declarative_base, service_template.ServiceTemplateBase):
+ #__doc__ = service_template.ServiceTemplateBase.__doc__
name = Column(Text, index=True, unique=True)
+@_fix_doc
class NodeTemplate(aria_declarative_base, service_template.NodeTemplateBase):
pass
+@_fix_doc
class GroupTemplate(aria_declarative_base, service_template.GroupTemplateBase):
pass
+@_fix_doc
class PolicyTemplate(aria_declarative_base, service_template.PolicyTemplateBase):
pass
+@_fix_doc
class SubstitutionTemplate(aria_declarative_base, service_template.SubstitutionTemplateBase):
pass
+@_fix_doc
class SubstitutionTemplateMapping(aria_declarative_base,
service_template.SubstitutionTemplateMappingBase):
pass
+@_fix_doc
class RequirementTemplate(aria_declarative_base, service_template.RequirementTemplateBase):
pass
+@_fix_doc
class RelationshipTemplate(aria_declarative_base, service_template.RelationshipTemplateBase):
pass
+@_fix_doc
class CapabilityTemplate(aria_declarative_base, service_template.CapabilityTemplateBase):
pass
+@_fix_doc
class InterfaceTemplate(aria_declarative_base, service_template.InterfaceTemplateBase):
pass
+@_fix_doc
class OperationTemplate(aria_declarative_base, service_template.OperationTemplateBase):
pass
+@_fix_doc
class ArtifactTemplate(aria_declarative_base, service_template.ArtifactTemplateBase):
pass
+
+@_fix_doc
class PluginSpecification(aria_declarative_base, service_template.PluginSpecificationBase):
pass
@@ -147,46 +171,57 @@ class PluginSpecification(aria_declarative_base, service_template.PluginSpecific
# region service instance models
+@_fix_doc
class Service(aria_declarative_base, service_instance.ServiceBase):
name = Column(Text, index=True, unique=True)
+@_fix_doc
class Node(aria_declarative_base, service_instance.NodeBase):
pass
+@_fix_doc
class Group(aria_declarative_base, service_instance.GroupBase):
pass
+@_fix_doc
class Policy(aria_declarative_base, service_instance.PolicyBase):
pass
+@_fix_doc
class Substitution(aria_declarative_base, service_instance.SubstitutionBase):
pass
+@_fix_doc
class SubstitutionMapping(aria_declarative_base, service_instance.SubstitutionMappingBase):
pass
+@_fix_doc
class Relationship(aria_declarative_base, service_instance.RelationshipBase):
pass
+@_fix_doc
class Capability(aria_declarative_base, service_instance.CapabilityBase):
pass
+@_fix_doc
class Interface(aria_declarative_base, service_instance.InterfaceBase):
pass
+@_fix_doc
class Operation(aria_declarative_base, service_instance.OperationBase):
pass
+@_fix_doc
class Artifact(aria_declarative_base, service_instance.ArtifactBase):
pass
@@ -195,14 +230,17 @@ class Artifact(aria_declarative_base, service_instance.ArtifactBase):
# region service changes models
+@_fix_doc
class ServiceUpdate(aria_declarative_base, service_changes.ServiceUpdateBase):
pass
+@_fix_doc
class ServiceUpdateStep(aria_declarative_base, service_changes.ServiceUpdateStepBase):
pass
+@_fix_doc
class ServiceModification(aria_declarative_base, service_changes.ServiceModificationBase):
pass
@@ -212,30 +250,37 @@ class ServiceModification(aria_declarative_base, service_changes.ServiceModifica
# region common service models
+@_fix_doc
class Input(aria_declarative_base, service_common.InputBase):
pass
+@_fix_doc
class Configuration(aria_declarative_base, service_common.ConfigurationBase):
pass
+@_fix_doc
class Output(aria_declarative_base, service_common.OutputBase):
pass
+@_fix_doc
class Property(aria_declarative_base, service_common.PropertyBase):
pass
+@_fix_doc
class Attribute(aria_declarative_base, service_common.AttributeBase):
pass
+@_fix_doc
class Type(aria_declarative_base, service_common.TypeBase):
pass
+@_fix_doc
class Metadata(aria_declarative_base, service_common.MetadataBase):
pass
@@ -244,22 +289,27 @@ class Metadata(aria_declarative_base, service_common.MetadataBase):
# region orchestration models
+@_fix_doc
class Execution(aria_declarative_base, orchestration.ExecutionBase):
pass
+@_fix_doc
class Plugin(aria_declarative_base, orchestration.PluginBase):
pass
+@_fix_doc
class Task(aria_declarative_base, orchestration.TaskBase):
pass
+@_fix_doc
class Log(aria_declarative_base, orchestration.LogBase):
pass
+@_fix_doc
class Argument(aria_declarative_base, orchestration.ArgumentBase):
pass
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/modeling/orchestration.py
----------------------------------------------------------------------
diff --git a/aria/modeling/orchestration.py b/aria/modeling/orchestration.py
index 276b68e..bd89ddb 100644
--- a/aria/modeling/orchestration.py
+++ b/aria/modeling/orchestration.py
@@ -14,10 +14,7 @@
# limitations under the License.
"""
-classes:
- * Execution - execution implementation model.
- * Plugin - plugin implementation model.
- * Task - a task
+ARIA modeling orchestration module
"""
# pylint: disable=no-self-argument, no-member, abstract-method
@@ -52,8 +49,8 @@ class ExecutionBase(mixins.ModelMixin):
__tablename__ = 'execution'
- __private_fields__ = ['service_fk',
- 'service_template']
+ __private_fields__ = ('service_fk',
+ 'service_template')
SUCCEEDED = 'succeeded'
FAILED = 'failed'
@@ -257,8 +254,8 @@ class TaskBase(mixins.ModelMixin):
__tablename__ = 'task'
- __private_fields__ = ['dependency_operation_task_fk', 'dependency_stub_task_fk', 'node_fk',
- 'relationship_fk', 'plugin_fk', 'execution_fk']
+ __private_fields__ = ('dependency_operation_task_fk', 'dependency_stub_task_fk', 'node_fk',
+ 'relationship_fk', 'plugin_fk', 'execution_fk')
START_WORKFLOW = 'start_workflow'
END_WORKFLOW = 'end_workflow'
@@ -457,8 +454,8 @@ class LogBase(mixins.ModelMixin):
__tablename__ = 'log'
- __private_fields__ = ['execution_fk',
- 'task_fk']
+ __private_fields__ = ('execution_fk',
+ 'task_fk')
@declared_attr
def execution(cls):
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/modeling/relationship.py
----------------------------------------------------------------------
diff --git a/aria/modeling/relationship.py b/aria/modeling/relationship.py
index 40be5b2..ce0b055 100644
--- a/aria/modeling/relationship.py
+++ b/aria/modeling/relationship.py
@@ -13,7 +13,12 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+ARIA modeling relationship module
+"""
+
# pylint: disable=invalid-name, redefined-outer-name
+
from sqlalchemy.orm import relationship, backref
from sqlalchemy.orm.collections import attribute_mapped_collection
from sqlalchemy import (
@@ -219,7 +224,7 @@ def many_to_one(model_class,
The declaration will automatically create a matching one-to-many property at the child model,
named after the plural form of our table name. Use the ``parent_property`` argument to override
this name. Note: the automatic property will always be a SQLAlchemy query object; if you need a
- Python collection then use :meth:`one_to_many` at that model.
+ Python collection then use :func:`one_to_many` at that model.
*This utility method should only be used during class creation.*
@@ -258,7 +263,7 @@ def many_to_many(model_class,
The declaration will automatically create a matching many-to-many property at the other model,
named after the plural form of our table name. Use the ``other_property`` argument to override
this name. Note: the automatic property will always be a SQLAlchemy query object; if you need a
- Python collection then use :meth:`many_to_many` again at that model.
+ Python collection then use :func:`many_to_many` again at that model.
*This utility method should only be used during class creation.*
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/modeling/service_changes.py
----------------------------------------------------------------------
diff --git a/aria/modeling/service_changes.py b/aria/modeling/service_changes.py
index f632fef..97f8643 100644
--- a/aria/modeling/service_changes.py
+++ b/aria/modeling/service_changes.py
@@ -14,10 +14,7 @@
# limitations under the License.
"""
-classes:
- * ServiceUpdate - service update implementation model.
- * ServiceUpdateStep - service update step implementation model.
- * ServiceModification - service modification implementation model.
+ARIA modeling service changes module
"""
# pylint: disable=no-self-argument, no-member, abstract-method
@@ -44,8 +41,8 @@ class ServiceUpdateBase(ModelMixin):
"""
__tablename__ = 'service_update'
- __private_fields__ = ['service_fk',
- 'execution_fk']
+ __private_fields__ = ('service_fk',
+ 'execution_fk')
created_at = Column(DateTime, nullable=False, index=True)
service_plan = Column(Dict, nullable=False)
@@ -119,7 +116,7 @@ class ServiceUpdateStepBase(ModelMixin):
__tablename__ = 'service_update_step'
- __private_fields__ = ['service_update_fk']
+ __private_fields__ = ('service_update_fk',)
_action_types = namedtuple('ACTION_TYPES', 'ADD, REMOVE, MODIFY')
ACTION_TYPES = _action_types(ADD='add', REMOVE='remove', MODIFY='modify')
@@ -211,7 +208,7 @@ class ServiceModificationBase(ModelMixin):
__tablename__ = 'service_modification'
- __private_fields__ = ['service_fk']
+ __private_fields__ = ('service_fk',)
STARTED = 'started'
FINISHED = 'finished'
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/modeling/service_common.py
----------------------------------------------------------------------
diff --git a/aria/modeling/service_common.py b/aria/modeling/service_common.py
index 272dfd7..59bcd02 100644
--- a/aria/modeling/service_common.py
+++ b/aria/modeling/service_common.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+ARIA modeling service common module
+"""
+
# pylint: disable=no-self-argument, no-member, abstract-method
from sqlalchemy import (
@@ -32,6 +36,15 @@ from . import relationship
class OutputBase(ParameterMixin):
+ """
+ :ivar name: Name
+ :vartype name: basestring
+ :ivar type_name: Type name
+ :vartype type_name: basestring
+ :ivar value: Value
+ :ivar description: Description
+ :vartype description: basestring
+ """
__tablename__ = 'output'
@@ -61,6 +74,15 @@ class OutputBase(ParameterMixin):
class InputBase(ParameterMixin):
+ """
+ :ivar name: Name
+ :vartype name: basestring
+ :ivar type_name: Type name
+ :vartype type_name: basestring
+ :ivar value: Value
+ :ivar description: Description
+ :vartype description: basestring
+ """
__tablename__ = 'input'
@@ -134,6 +156,15 @@ class InputBase(ParameterMixin):
class ConfigurationBase(ParameterMixin):
+ """
+ :ivar name: Name
+ :vartype name: basestring
+ :ivar type_name: Type name
+ :vartype type_name: basestring
+ :ivar value: Value
+ :ivar description: Description
+ :vartype description: basestring
+ """
__tablename__ = 'configuration'
@@ -163,6 +194,15 @@ class ConfigurationBase(ParameterMixin):
class PropertyBase(ParameterMixin):
+ """
+ :ivar name: Name
+ :vartype name: basestring
+ :ivar type_name: Type name
+ :vartype type_name: basestring
+ :ivar value: Value
+ :ivar description: Description
+ :vartype description: basestring
+ """
__tablename__ = 'property'
@@ -271,6 +311,15 @@ class PropertyBase(ParameterMixin):
class AttributeBase(ParameterMixin):
+ """
+ :ivar name: Name
+ :vartype name: basestring
+ :ivar type_name: Type name
+ :vartype type_name: basestring
+ :ivar value: Value
+ :ivar description: Description
+ :vartype description: basestring
+ """
__tablename__ = 'attribute'
@@ -304,11 +353,14 @@ class AttributeBase(ParameterMixin):
class TypeBase(InstanceModelMixin):
"""
Represents a type and its children.
+
+ :ivar name:
+ :vartype name: basestring
"""
__tablename__ = 'type'
- __private_fields__ = ['parent_type_fk']
+ __private_fields__ = ('parent_type_fk',)
variant = Column(Text, nullable=False)
description = Column(Text)
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/modeling/service_instance.py
----------------------------------------------------------------------
diff --git a/aria/modeling/service_instance.py b/aria/modeling/service_instance.py
index 2bf9872..78ee105 100644
--- a/aria/modeling/service_instance.py
+++ b/aria/modeling/service_instance.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+ARIA modeling service instance module
+"""
+
# pylint: disable=too-many-lines, no-self-argument, no-member, abstract-method
from sqlalchemy import (
@@ -88,8 +92,8 @@ class ServiceBase(InstanceModelMixin):
__tablename__ = 'service'
- __private_fields__ = ['substitution_fk',
- 'service_template_fk']
+ __private_fields__ = ('substitution_fk',
+ 'service_template_fk')
# region foreign keys
@@ -357,10 +361,10 @@ class NodeBase(InstanceModelMixin):
__tablename__ = 'node'
- __private_fields__ = ['type_fk',
+ __private_fields__ = ('type_fk',
'host_fk',
'service_fk',
- 'node_template_fk']
+ 'node_template_fk')
INITIAL = 'initial'
CREATING = 'creating'
@@ -722,7 +726,9 @@ class GroupBase(InstanceModelMixin):
__tablename__ = 'group'
- __private_fields__ = ['type_fk', 'service_fk', 'group_template_fk']
+ __private_fields__ = ('type_fk',
+ 'service_fk',
+ 'group_template_fk')
# region foreign_keys
@@ -846,7 +852,9 @@ class PolicyBase(InstanceModelMixin):
__tablename__ = 'policy'
- __private_fields__ = ['type_fk', 'service_fk', 'policy_template_fk']
+ __private_fields__ = ('type_fk',
+ 'service_fk',
+ 'policy_template_fk')
# region foreign_keys
@@ -962,8 +970,8 @@ class SubstitutionBase(InstanceModelMixin):
__tablename__ = 'substitution'
- __private_fields__ = ['node_type_fk',
- 'substitution_template_fk']
+ __private_fields__ = ('node_type_fk',
+ 'substitution_template_fk')
# region foreign_keys
@@ -1053,10 +1061,10 @@ class SubstitutionMappingBase(InstanceModelMixin):
__tablename__ = 'substitution_mapping'
- __private_fields__ = ['substitution_fk',
+ __private_fields__ = ('substitution_fk',
'node_fk',
'capability_fk',
- 'requirement_template_fk']
+ 'requirement_template_fk')
# region foreign keys
@@ -1176,14 +1184,14 @@ class RelationshipBase(InstanceModelMixin):
__tablename__ = 'relationship'
- __private_fields__ = ['type_fk',
+ __private_fields__ = ('type_fk',
'source_node_fk',
'target_node_fk',
'target_capability_fk',
'requirement_template_fk',
'relationship_template_fk',
'target_position',
- 'source_position']
+ 'source_position')
# region foreign keys
@@ -1360,9 +1368,9 @@ class CapabilityBase(InstanceModelMixin):
__tablename__ = 'capability'
- __private_fields__ = ['capability_fk',
+ __private_fields__ = ('capability_fk',
'node_fk',
- 'capability_template_fk']
+ 'capability_template_fk')
# region foreign_keys
@@ -1487,11 +1495,11 @@ class InterfaceBase(InstanceModelMixin):
__tablename__ = 'interface'
- __private_fields__ = ['type_fk',
+ __private_fields__ = ('type_fk',
'node_fk',
'group_fk',
'relationship_fk',
- 'interface_template_fk']
+ 'interface_template_fk')
# region foreign_keys
@@ -1644,10 +1652,10 @@ class OperationBase(InstanceModelMixin):
__tablename__ = 'operation'
- __private_fields__ = ['service_fk',
+ __private_fields__ = ('service_fk',
'interface_fk',
'plugin_fk',
- 'operation_template_fk']
+ 'operation_template_fk')
# region foreign_keys
@@ -1849,9 +1857,9 @@ class ArtifactBase(InstanceModelMixin):
__tablename__ = 'artifact'
- __private_fields__ = ['type_fk',
+ __private_fields__ = ('type_fk',
'node_fk',
- 'artifact_template_fk']
+ 'artifact_template_fk')
# region foreign_keys
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/modeling/service_template.py
----------------------------------------------------------------------
diff --git a/aria/modeling/service_template.py b/aria/modeling/service_template.py
index 4d1e837..063605d 100644
--- a/aria/modeling/service_template.py
+++ b/aria/modeling/service_template.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+ARIA modeling service template module
+"""
+
# pylint: disable=too-many-lines, no-self-argument, no-member, abstract-method
from __future__ import absolute_import # so we can import standard 'types'
@@ -98,14 +102,14 @@ class ServiceTemplateBase(TemplateModelMixin):
__tablename__ = 'service_template'
- __private_fields__ = ['substitution_template_fk',
+ __private_fields__ = ('substitution_template_fk',
'node_type_fk',
'group_type_fk',
'policy_type_fk',
'relationship_type_fk',
'capability_type_fk',
'interface_type_fk',
- 'artifact_type_fk']
+ 'artifact_type_fk')
description = Column(Text)
main_file_name = Column(Text)
@@ -438,8 +442,8 @@ class NodeTemplateBase(TemplateModelMixin):
__tablename__ = 'node_template'
- __private_fields__ = ['type_fk',
- 'service_template_fk']
+ __private_fields__ = ('type_fk',
+ 'service_template_fk')
# region foreign_keys
@@ -638,8 +642,8 @@ class GroupTemplateBase(TemplateModelMixin):
__tablename__ = 'group_template'
- __private_fields__ = ['type_fk',
- 'service_template_fk']
+ __private_fields__ = ('type_fk',
+ 'service_template_fk')
# region foreign keys
@@ -770,7 +774,8 @@ class PolicyTemplateBase(TemplateModelMixin):
__tablename__ = 'policy_template'
- __private_fields__ = ['type_fk', 'service_template_fk']
+ __private_fields__ = ('type_fk',
+ 'service_template_fk')
# region foreign keys
@@ -893,7 +898,7 @@ class SubstitutionTemplateBase(TemplateModelMixin):
__tablename__ = 'substitution_template'
- __private_fields__ = ['node_type_fk']
+ __private_fields__ = ('node_type_fk',)
# region foreign keys
@@ -979,10 +984,10 @@ class SubstitutionTemplateMappingBase(TemplateModelMixin):
__tablename__ = 'substitution_template_mapping'
- __private_fields__ = ['substitution_template_fk',
+ __private_fields__ = ('substitution_template_fk',
'node_template_fk',
'capability_template_fk',
- 'requirement_template_fk']
+ 'requirement_template_fk')
# region foreign keys
@@ -1125,11 +1130,11 @@ class RequirementTemplateBase(TemplateModelMixin):
__tablename__ = 'requirement_template'
- __private_fields__ = ['target_node_type_fk',
+ __private_fields__ = ('target_node_type_fk',
'target_node_template_fk',
'target_capability_type_fk'
'node_template_fk',
- 'relationship_template_fk']
+ 'relationship_template_fk')
# region foreign keys
@@ -1338,7 +1343,7 @@ class RelationshipTemplateBase(TemplateModelMixin):
__tablename__ = 'relationship_template'
- __private_fields__ = ['type_fk']
+ __private_fields__ = ('type_fk',)
# region foreign keys
@@ -1453,8 +1458,8 @@ class CapabilityTemplateBase(TemplateModelMixin):
__tablename__ = 'capability_template'
- __private_fields__ = ['type_fk',
- 'node_template_fk']
+ __private_fields__ = ('type_fk',
+ 'node_template_fk')
# region foreign keys
@@ -1612,10 +1617,10 @@ class InterfaceTemplateBase(TemplateModelMixin):
__tablename__ = 'interface_template'
- __private_fields__ = ['type_fk',
+ __private_fields__ = ('type_fk',
'node_template_fk',
'group_template_fk',
- 'relationship_template_fk']
+ 'relationship_template_fk')
# region foreign keys
@@ -1768,9 +1773,9 @@ class OperationTemplateBase(TemplateModelMixin):
__tablename__ = 'operation_template'
- __private_fields__ = ['service_template_fk',
+ __private_fields__ = ('service_template_fk',
'interface_template_fk',
- 'plugin_fk']
+ 'plugin_fk')
# region foreign keys
@@ -1943,8 +1948,8 @@ class ArtifactTemplateBase(TemplateModelMixin):
__tablename__ = 'artifact_template'
- __private_fields__ = ['type_fk',
- 'node_template_fk']
+ __private_fields__ = ('type_fk',
+ 'node_template_fk')
# region foreign keys
@@ -2064,8 +2069,8 @@ class PluginSpecificationBase(TemplateModelMixin):
__tablename__ = 'plugin_specification'
- __private_fields__ = ['service_template_fk',
- 'plugin_fk']
+ __private_fields__ = ('service_template_fk',
+ 'plugin_fk')
version = Column(Text)
enabled = Column(Boolean, nullable=False, default=True)
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/modeling/types.py
----------------------------------------------------------------------
diff --git a/aria/modeling/types.py b/aria/modeling/types.py
index 920a0c2..d420c6b 100644
--- a/aria/modeling/types.py
+++ b/aria/modeling/types.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+ARIA modeling types module (private)
+"""
+
import json
from collections import namedtuple
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/modeling/utils.py
----------------------------------------------------------------------
diff --git a/aria/modeling/utils.py b/aria/modeling/utils.py
index 43be410..6a2d6df 100644
--- a/aria/modeling/utils.py
+++ b/aria/modeling/utils.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+ARIA modeling utils module
+"""
+
import os
from json import JSONEncoder
from StringIO import StringIO
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/orchestrator/__init__.py
----------------------------------------------------------------------
diff --git a/aria/orchestrator/__init__.py b/aria/orchestrator/__init__.py
index b855aed..1b9f25b 100644
--- a/aria/orchestrator/__init__.py
+++ b/aria/orchestrator/__init__.py
@@ -12,9 +12,11 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
"""
-ARIA orchestrator
+ARIA orchestrator package
"""
+
from .decorators import (
workflow,
operation,
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/parser/__init__.py
----------------------------------------------------------------------
diff --git a/aria/parser/__init__.py b/aria/parser/__init__.py
index 64df88a..c25f468 100644
--- a/aria/parser/__init__.py
+++ b/aria/parser/__init__.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""
+ARIA parser package
+"""
+
from .specification import implements_specification, iter_specifications
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/66213279/aria/storage/__init__.py
----------------------------------------------------------------------
diff --git a/aria/storage/__init__.py b/aria/storage/__init__.py
index bd7c8c1..6e16450 100644
--- a/aria/storage/__init__.py
+++ b/aria/storage/__init__.py
@@ -14,29 +14,30 @@
# limitations under the License.
"""
-ARIA's storage Sub-Package
-Path: aria.storage
+ARIA storage package
-Storage package is a generic abstraction over different storage types.
-We define this abstraction with the following components:
+A generic abstraction over different storage types. We define this abstraction with the following
+components:
-1. storage: simple mapi to use
-2. driver: implementation of the database client mapi.
+1. storage: simple MAPI to use
+2. driver: implementation of the database client MAPI
3. model: defines the structure of the table/document.
4. field: defines a field/item in the model.
API:
- * application_storage_factory - function, default ARIA storage factory.
- * Storage - class, simple storage mapi.
- * models - module, default ARIA standard models.
- * structures - module, default ARIA structures - holds the base model,
- and different fields types.
- * Model - class, abstract model implementation.
- * Field - class, base field implementation.
- * IterField - class, base iterable field implementation.
- * drivers - module, a pool of ARIA standard drivers.
- * StorageDriver - class, abstract model implementation.
+
+* application_storage_factory - function, default ARIA storage factory.
+* Storage - class, simple storage mapi.
+* models - module, default ARIA standard models.
+* structures - module, default ARIA structures - holds the base model,
+ and different fields types.
+* Model - class, abstract model implementation.
+* Field - class, base field implementation.
+* IterField - class, base iterable field implementation.
+* drivers - module, a pool of ARIA standard drivers.
+* StorageDriver - class, abstract model implementation.
"""
+
from .core import (
Storage,
ModelStorage,