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 <[email protected]> Authored: Thu Jun 22 21:13:28 2017 -0500 Committer: Tal Liron <[email protected]> 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,
