summaryrefslogtreecommitdiff
path: root/ironic/common/rpc_service.py
diff options
context:
space:
mode:
authorDmitry Tantsur <dtantsur@protonmail.com>2021-11-29 11:36:06 +0100
committerDmitry Tantsur <dtantsur@protonmail.com>2021-12-07 09:31:12 +0100
commit9a6f2d101ba734126b3e7f0d475b747ebcb84b62 (patch)
treea1d33fcb4f8689d38fa50bd8234c55d29f096ecb /ironic/common/rpc_service.py
parent3f990beb97c2f72a6af28dd24f70b016606acc61 (diff)
downloadironic-9a6f2d101ba734126b3e7f0d475b747ebcb84b62.tar.gz
All-in-one Ironic service with a local RPC bus
This adds a new executable /usr/bin/ironic (cool that we no longer have a CLI with this name) that starts API and conductor together in the same process. When an RPC host name matches the current one, the call is not routed through the remote RPC, a local function call is done instead. Story: #2009676 Task: #43953 Change-Id: I51bf7226aea145dc7c8fd93d61caa233ca16c9c9
Diffstat (limited to 'ironic/common/rpc_service.py')
-rw-r--r--ironic/common/rpc_service.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/ironic/common/rpc_service.py b/ironic/common/rpc_service.py
index c0a550c64..bbf38d7f4 100644
--- a/ironic/common/rpc_service.py
+++ b/ironic/common/rpc_service.py
@@ -38,7 +38,7 @@ class RPCService(service.Service):
self.host = host
manager_module = importutils.try_import(manager_module)
manager_class = getattr(manager_module, manager_class)
- self.manager = manager_class(host, manager_module.MANAGER_TOPIC)
+ self.manager = manager_class(host, rpc.MANAGER_TOPIC)
self.topic = self.manager.topic
self.rpcserver = None
self.deregister = True
@@ -61,6 +61,7 @@ class RPCService(service.Service):
self.handle_signal()
self.manager.init_host(admin_context)
+ rpc.set_global_manager(self.manager)
LOG.info('Created RPC server for service %(service)s on host '
'%(host)s.',
@@ -84,6 +85,7 @@ class RPCService(service.Service):
LOG.info('Stopped RPC server for service %(service)s on host '
'%(host)s.',
{'service': self.topic, 'host': self.host})
+ rpc.set_global_manager(None)
def _handle_signal(self, signo, frame):
LOG.info('Got signal SIGUSR1. Not deregistering on next shutdown '