For use in upgrade. It's useful to see if daemon was deployed by mgr running
same container digest as container we are upgrading to.
Signed-off-by: Adam King <adking@redhat.com>
(cherry picked from commit
baa95a7a13ceef0292f163af6c7c7c74d8a21420)
def daemon_is_self(self, daemon_type: str, daemon_id: str) -> bool:
return daemon_type == 'mgr' and daemon_id == self.get_mgr_id()
+ def get_active_mgr_digests(self) -> List[str]:
+ digests = self.mgr_service.get_active_daemon(
+ self.cache.get_daemons_by_type('mgr')).container_image_digests
+ return digests if digests else []
+
def _schedule_daemon_action(self, daemon_name: str, action: str) -> str:
dd = self.cache.get_daemon(daemon_name)
assert dd.daemon_type is not None
sd.memory_request = d.get('memory_request')
sd.memory_limit = d.get('memory_limit')
sd._service_name = d.get('service_name')
+ sd.deployed_by = d.get('deployed_by')
sd.version = d.get('version')
sd.ports = d.get('ports')
sd.ip = d.get('ip')
'service_name': daemon_spec.service_name,
'ports': daemon_spec.ports,
'ip': daemon_spec.ip,
+ 'deployed_by': self.mgr.get_active_mgr_digests(),
}),
'--config-json', '-',
] + daemon_spec.extra_args,
_run_cephadm.assert_called_with(
'test', 'mon.test', 'deploy', [
'--name', 'mon.test',
- '--meta-json', '{"service_name": "mon", "ports": [], "ip": null}',
+ '--meta-json', '{"service_name": "mon", "ports": [], "ip": null, "deployed_by": []}',
'--config-json', '-',
'--reconfig',
],
service_name: Optional[str] = None,
ports: Optional[List[int]] = None,
ip: Optional[str] = None,
+ deployed_by: Optional[List[str]] = None,
) -> None:
# Host is at the same granularity as InventoryHost
self.ports: Optional[List[int]] = ports
self.ip: Optional[str] = ip
+
+ self.deployed_by = deployed_by
self.is_active = is_active