def __init__(self, name, path=None,
template_inputs=None,
logger=None,
event_loop=None,
enable_rollback=False):
"""
Represents AIOrchestra deployment context designed to
manage deployment through its lifecycle
:param name: deployment context name
:type name: str
:param path: path to TOSCA template
:type path: str
:param template_inputs: TOSCA template input parameters
:type template_inputs: dict
:param logger: python logger instance
:param event_loop: asyncio or any compatible event loop
:type event_loop: asyncio.Loop
:param enable_rollback: weather to enable rollback on failure or not
"""
self.__name = name
self._tmplt = tosca_template.ToscaTemplate(
path=path, a_file=True,
parsed_params=template_inputs)
self.__path = path
self.origin_nodes = self._tmplt.graph.nodetemplates
self.vertices = self._tmplt.graph.vertices
self.inputs_definitions = self._tmplt.inputs
self.__outputs = self._tmplt.outputs
self.template_inputs = template_inputs if template_inputs else {}
self.__status = self.PENDING
if not logger:
self.logger = log.UnifiedLogger(
log_to_console=True,
level="DEBUG").setup_logger(__name__)
else:
self.logger = logger
if not event_loop:
if uvloop:
uv_loop = uvloop.new_event_loop()
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
asyncio.set_event_loop(uv_loop)
self.event_loop = asyncio.get_event_loop()
else:
self.event_loop = event_loop
self.__orchestra_nodes = [node.OrchestraNode(self, origin_node)
for origin_node in self.origin_nodes]
self.__deployment_plan = None
self.rollback_enabled = enable_rollback
评论列表
文章目录