vFW and vDNS support added to azure-plugin
[multicloud/azure.git] / azure / aria / aria-extension-cloudify / src / aria / aria / orchestrator / execution_plugin / operations.py
1 # Licensed to the Apache Software Foundation (ASF) under one or more
2 # contributor license agreements.  See the NOTICE file distributed with
3 # this work for additional information regarding copyright ownership.
4 # The ASF licenses this file to You under the Apache License, Version 2.0
5 # (the "License"); you may not use this file except in compliance with
6 # the License.  You may obtain a copy of the License at
7 #
8 #     http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15
16 """
17 Entry point functions.
18 """
19
20 from aria.orchestrator import operation
21 from . import local as local_operations
22
23
24 @operation
25 def run_script_locally(ctx,
26                        script_path,
27                        process=None,
28                        **kwargs):
29     return local_operations.run_script(
30         ctx=ctx,
31         script_path=script_path,
32         process=process,
33         **kwargs)
34
35
36 @operation
37 def run_script_with_ssh(ctx,
38                         script_path,
39                         fabric_env=None,
40                         process=None,
41                         use_sudo=False,
42                         hide_output=None,
43                         **kwargs):
44     return _try_import_ssh().run_script(
45         ctx=ctx,
46         script_path=script_path,
47         fabric_env=fabric_env,
48         process=process,
49         use_sudo=use_sudo,
50         hide_output=hide_output,
51         **kwargs)
52
53
54 @operation
55 def run_commands_with_ssh(ctx,
56                           commands,
57                           fabric_env=None,
58                           use_sudo=False,
59                           hide_output=None,
60                           **_):
61     return _try_import_ssh().run_commands(
62         ctx=ctx,
63         commands=commands,
64         fabric_env=fabric_env,
65         use_sudo=use_sudo,
66         hide_output=hide_output)
67
68
69 def _try_import_ssh():
70     try:
71         from .ssh import operations as ssh_operations
72         return ssh_operations
73     except Exception as e:
74         print(e)
75         raise RuntimeError('Failed to import SSH modules; Have you installed the ARIA SSH extra?')