ranger-agent/ord/engine/engine.py
jh629g 52897d20a5 Ranger-Agent: Update heat send logic
Remove logic to stage heat template in git repo.
Ranger-agent will receive heat template directly from ranger.

Change-Id: I9b6b0df2460989775a51368d019e49e66369c56e
2019-11-19 15:24:01 +00:00

86 lines
2.9 KiB
Python

# Copyright 2016 ATT
#
# 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.
import ast
from multiprocessing import Process
from ord.client import rpcengine
from ord.engine.healthcheck import HealthCheck
from ord.engine.workerfactory import WorkerFactory
from ord.openstack.common import log as logging
LOG = logging.getLogger(__name__)
class QueueHandler(object):
def __init__(self, engine):
super(QueueHandler, self).__init__()
self._engine = engine
self._rpcengine = rpcengine.RpcEngine()
self.factory = WorkerFactory()
def invoke_notifier_rpc(self, ctxt, payload, heat_template):
LOG.debug("\n----- message from API -----")
LOG.debug("\n Payload: %s \nctxt: %s "
% (str(payload), str(ctxt)))
LOG.debug("\n-------------------------------\n")
d = ast.literal_eval(payload)
template_type = d["template_type"]
resource_name = d["resource_name"]
resource_type = d["resource_type"]
operation = d["resource_operation"]
template_status_id = d["template_status_id"]
region = d["region"]
stack_name = resource_name
worker = self.factory.getWorker(operation,
stack_name, template_status_id,
resource_type, template_type,
heat_template)
self.factory.execute(worker, operation)
def invoke_health_probe_rpc(self, ctxt):
LOG.debug("\n----- received rabbitmq message from Health-Probe -----")
LOG.debug("\n Context: %s " % str(ctxt))
return HealthCheck.execute_health_check()
class Engine(object):
"""This class provides functionality which allows to interact the
basic ORD clients.
"""
def __init__(self):
"""Initialize an engine.
:return: instance of the engine class
"""
super(Engine, self).__init__()
# FIXME self.factory = WorkerFactory()
def _execute(self):
"""Start the process activity."""
LOG.info("Waiting for a message...")
def start(self):
process = Process(target=self._execute)
try:
"""Start the engine."""
LOG.info("Starting the engine... (Press CTRL+C to quit)")
process.start()
process.join()
except KeyboardInterrupt:
process.terminate()