# Path: muranoagent/bunch.py
# class Bunch(dict):
#     def __getattr__(self, item):
#     def __setattr__(self, key, value):
#     def __delattr__(self, key):
# 
# Path: muranoagent/files_manager.py
# CONF = config.CONF
# LOG = logging.getLogger(__name__)
# class FilesManager(object):
#     def __init__(self, execution_plan):
#     def put_file(self, file_id, script):
#     def _make_symlink(self, cache_path, file_name, script):
#     def _fetch_file(self, file_id):
#     def _download_url_file(self, file_def, file_id):
#     def clear(self):
#     def _download_file(self, url, path):
#     def _url(self, file):
#     def _is_git_repository(self, url):
#     def _is_svn_repository(self, url):
#     def _download_svn(self, url_file, folder):
#     def _execute_command(self, command):
# 
# Path: muranoagent/script_runner.py
# class FunctionRunner(object):
# class ScriptRunner(object):
#     def __init__(self, name, script_runner):
#     def __call__(self, *args, **kwargs):
#     def __init__(self, name, script_info, files_manager):
#     def __call__(self, *args, **kwargs):
#     def _get_executor(self, script_type, script_name, entry_point):
#     def execute_function(self, name, *args, **kwargs):
#     def __getattr__(self, item):
#     def _load(self):
#     def _prepare_files(self):


import sys
from muranoagent import bunch
from muranoagent import files_manager as fm
from muranoagent import script_runner
# Copyright (c) 2013 Mirantis Inc.
#
# Licensed 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.




class ExecutionPlanRunner(object):
    def __init__(self, execution_plan):
        self._execution_plan = execution_plan
        self._main_script = self._prepare_script(execution_plan.Body)

# Path: muranoagent/bunch.py
# class Bunch(dict):
#     def __getattr__(self, item):
#     def __setattr__(self, key, value):
#     def __delattr__(self, key):
# 
# Path: muranoagent/files_manager.py
# CONF = config.CONF
# LOG = logging.getLogger(__name__)
# class FilesManager(object):
#     def __init__(self, execution_plan):
#     def put_file(self, file_id, script):
#     def _make_symlink(self, cache_path, file_name, script):
#     def _fetch_file(self, file_id):
#     def _download_url_file(self, file_def, file_id):
#     def clear(self):
#     def _download_file(self, url, path):
#     def _url(self, file):
#     def _is_git_repository(self, url):
#     def _is_svn_repository(self, url):
#     def _download_svn(self, url_file, folder):
#     def _execute_command(self, command):
# 
# Path: muranoagent/script_runner.py
# class FunctionRunner(object):
# class ScriptRunner(object):
#     def __init__(self, name, script_runner):
#     def __call__(self, *args, **kwargs):
#     def __init__(self, name, script_info, files_manager):
#     def __call__(self, *args, **kwargs):
#     def _get_executor(self, script_type, script_name, entry_point):
#     def execute_function(self, name, *args, **kwargs):
#     def __getattr__(self, item):
#     def _load(self):
#     def _prepare_files(self):


# Path: muranoagent/execution_plan_runner.py
import sys
from muranoagent import bunch
from muranoagent import files_manager as fm
from muranoagent import script_runner

# Copyright (c) 2013 Mirantis Inc.
#
# Licensed 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.




class ExecutionPlanRunner(object):
    def __init__(self, execution_plan):
        self._execution_plan = execution_plan
        self._main_script = self._prepare_script(execution_plan.Body)

        self._script_funcs = {}