pass
deps = sorted([self.get_mgr_ip(), self.inventory.get_addr(daemon_id), str(self.endpoint_port),
root_cert, str(self.get_module_option('device_enhanced_scan'))])
+ elif daemon_type == 'iscsi':
+ deps = [self.get_mgr_ip()]
else:
need = {
'prometheus': ['mgr', 'alertmanager', 'node-exporter', 'ingress'],
'val': key_data,
})
+ # add active mgr ip address to trusted list so dashboard can access
+ trusted_ip_list = spec.trusted_ip_list if spec.trusted_ip_list else ''
+ if trusted_ip_list:
+ trusted_ip_list += ','
+ trusted_ip_list += self.mgr.get_mgr_ip()
+
context = {
'client_name': '{}.{}'.format(utils.name_to_config_section('iscsi'), igw_id),
+ 'trusted_ip_list': trusted_ip_list,
'spec': spec
}
igw_conf = self.mgr.template.render('services/iscsi/iscsi-gateway.cfg.j2', context)
daemon_spec.keyring = keyring
daemon_spec.extra_files = {'iscsi-gateway.cfg': igw_conf}
-
daemon_spec.final_config, daemon_spec.deps = self.generate_config(daemon_spec)
-
+ daemon_spec.deps = [self.mgr.get_mgr_ip()]
return daemon_spec
def config_dashboard(self, daemon_descrs: List[DaemonDescription]) -> None:
[config]
cluster_client_name = {{ client_name }}
pool = {{ spec.pool }}
-trusted_ip_list = {{ spec.trusted_ip_list|default("''", true) }}
+trusted_ip_list = {{ trusted_ip_list|default("''", true) }}
minimum_gateways = 1
api_port = {{ spec.api_port|default("''", true) }}
api_user = {{ spec.api_user|default("''", true) }}
@mock.patch("cephadm.serve.CephadmServe._run_cephadm", _run_cephadm('{}'))
@mock.patch("subprocess.run", None)
@mock.patch("cephadm.module.CephadmOrchestrator.rados", mock.MagicMock())
+ @mock.patch("cephadm.module.CephadmOrchestrator.get_mgr_ip", lambda _: '1.2.3.4')
def test_iscsi(self, cephadm_module):
with with_host(cephadm_module, 'test'):
ps = PlacementSpec(hosts=['test'], count=1)
def get_minimal_ceph_conf(self) -> str:
return ''
+ def get_mgr_ip(self) -> str:
+ return '1.2.3.4'
+
class TestCephadmService:
def test_set_service_url_on_dashboard(self):