[
https://issues.apache.org/jira/browse/ARIA-92?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15966097#comment-15966097
]
ASF GitHub Bot commented on ARIA-92:
------------------------------------
Github user ran-z commented on a diff in the pull request:
https://github.com/apache/incubator-ariatosca/pull/95#discussion_r111189473
--- Diff: aria/orchestrator/execution_plugin/instantiation.py ---
@@ -0,0 +1,187 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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.
+
+# TODO: this module will eventually be moved to a new "aria.instantiation"
package
+
+from ...utils.formatting import full_type_name
+from ...utils.collections import OrderedDict
+from ...parser import validation
+from ...parser.consumption import ConsumptionContext
+
+
+def configure_operation(operation):
+ configuration = OrderedDict(operation.configuration) if
operation.configuration else {}
+
+ arguments = OrderedDict()
+ arguments['script_path'] = operation.implementation
+ arguments['process'] = _get_process(configuration.pop('process')) \
+ if 'process' in configuration else None
+
+ host = None
+ interface = operation.interface
+ if interface.node is not None:
+ host = interface.node.host
+ elif interface.relationship is not None:
+ if operation.relationship_edge is True:
+ host = interface.relationship.target_node.host
+ else: # either False or None
+ host = interface.relationship.source_node.host
+
+ if host is None:
+ _configure_local(operation)
+ else:
+ _configure_remote(operation, configuration, arguments)
+
+ # Any remaining unhandled configuration values will become extra
arguments, available as kwargs
+ # in either "run_script_locally" or "run_script_with_ssh"
+ arguments.update(configuration)
+
+ return arguments
+
+def _configure_local(operation):
+ """
+ Local operation.
+ """
+ from . import operations
+ operation.implementation = '{0}.{1}'.format(operations.__name__,
+
operations.run_script_locally.__name__)
+
+
+def _configure_remote(operation, configuration, arguments):
+ """
+ Remote SSH operation via Fabric.
+ """
+ default_user = 'admin'
--- End diff --
why these defaults? wouldnt it be better to fail?
> Execution plugin operations default mappings
> --------------------------------------------
>
> Key: ARIA-92
> URL: https://issues.apache.org/jira/browse/ARIA-92
> Project: AriaTosca
> Issue Type: Story
> Reporter: Ran Ziv
> Assignee: Tal Liron
>
> The execution plugin serves as the default plugin, i.e. if no other plugin
> was specified, it'll be used to execute scripts in operations.
> These scripts will currently only execute locally. The execution plugin also
> supports running scripts on remote machines (via SSH).
> One option is to have the parser recognize whether the node in question is
> contained inside a host node, in which case the script should be executed
> remotely (by default, yet overridable by specifying the full plugin operation
> mapping), and if not then it should be executed locally.
> Another option is to have the user specify it using special syntax, e.g.:
> "local > script.sh" and "remote > script.sh"
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)