config/sysinv/sysinv/sysinv/sysinv
Alyson Deives Pereira c6a41c20a9 Add ZeroMQ RPC backend
This feature adds a new RPC backend for communication between
sysinv-api, sysinv-conductor and sysinv-agent processes.
This backend is implemented using a patched zerorpc library [1],
which is built on top of ZeroMQ and message-pack.
The motivation behind this change is to decouple sysinv from RabbitMQ,
and use a brokerless solution for RPC instead.

The key points are:
- All imports of rpcapi.py are replaced by rpcapiproxy.py, which
  decides the backend to use (rabbitmq or zeromq) according to
  configuration.
- During an upgrade process the rpc service listens to both rabbitmq
  and zeromq. For communication between hosts, the client backend api
  is chosen according to host software version.
- In future versions, the usage of RabbitMQ will no longer be
  necessary and its usage can be removed. I have marked these parts of
  code with "TODO(RPCHybridMode)" to easily track it.

[1] https://review.opendev.org/c/starlingx/integ/+/864310

TEST PLAN:
PASS: Bootstrap and host-unlock on AIO-SX, AIO-Duplex, Standard
PASS: Bootstrap and host-unlock on DC system-controller and subcloud
PASS: Verify sysinv.log and confirm no error occurs in RPC communication
PASS: Perform system cli commands that interacts with sysinv RPCs:
  - system host-cpu-max-frequency-modify
  - system license-install
  - system storage-backend-add ceph-external
  - system host-swact
PASS: Backup & Restore on AIO-SX
PASS: Bootstrap replay (updating mgmt and cluster subnet) on AIO-SX
PASS: Platform upgrade on AIO-DX (22.06 -> 22.12)
PASS: Platform upgrade on AIO-DX+ (22.06 -> 22.12)
PASS: Platform upgrade on AIO-SX (22.06 -> 22.12)

Depends-On: https://review.opendev.org/c/starlingx/tools/+/859576
Depends-On: https://review.opendev.org/c/starlingx/stx-puppet/+/859575
Depends-On: https://review.opendev.org/c/starlingx/ansible-playbooks/+/862609

Story: 2010087
Task: 46444

Change-Id: I5cd61b541a6d8c62628a0f99db0e35af1eae5961
Signed-off-by: Alyson Deives Pereira <alyson.deivespereira@windriver.com>
Signed-off-by: Eduardo Juliano Alberti <eduardo.alberti@windriver.com>
2022-11-24 13:28:01 -03:00
..
agent Add ZeroMQ RPC backend 2022-11-24 13:28:01 -03:00
api Add ZeroMQ RPC backend 2022-11-24 13:28:01 -03:00
cert_alarm Alarm 500.200 "expiring soon" not updating after change 2022-11-18 18:01:24 +00:00
cert_mon Fix cert-mon PriorityQueue regression in python3 2022-10-12 13:03:56 -04:00
cmd Add ZeroMQ RPC backend 2022-11-24 13:28:01 -03:00
common Add ZeroMQ RPC backend 2022-11-24 13:28:01 -03:00
conductor Add ZeroMQ RPC backend 2022-11-24 13:28:01 -03:00
db Adjust partition sysinv data from template 2022-11-09 16:46:08 +00:00
helm Add ZeroMQ RPC backend 2022-11-24 13:28:01 -03:00
objects Implementation of cli command and API to enable/disable apparmor module 2022-11-03 09:04:02 -04:00
openstack Add ZeroMQ RPC backend 2022-11-24 13:28:01 -03:00
puppet Add ZeroMQ RPC backend 2022-11-24 13:28:01 -03:00
tests Add ZeroMQ RPC backend 2022-11-24 13:28:01 -03:00
zmq_rpc Add ZeroMQ RPC backend 2022-11-24 13:28:01 -03:00
__init__.py Fix tox certificate issues in python2 2021-11-18 15:14:51 -06:00
_i18n.py Eliminate sdist step from sysinv zuul 2021-04-12 09:34:17 -05:00
netconf.py Fix bad syntax in requirements.txt file 2021-09-14 09:15:56 -05:00
sanity_coverage.py Fix tox-docs failing sphinx 2022-05-31 13:56:30 +00:00
version.py Cleanup tox for python3.9 jobs 2022-03-25 20:32:09 +00:00