Skip to content

Commit d5e900f

Browse files
mgr/cephadm: Open port 4721 while deploying cephadm agent
Fixes: https://tracker.ceph.com/issues/70060 Signed-off-by: Shweta Bhosale <[email protected]>
1 parent 213b2d8 commit d5e900f

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed

src/pybind/mgr/cephadm/services/cephadmservice.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1429,6 +1429,7 @@ def get_dependencies(cls, mgr: "CephadmOrchestrator",
14291429
def prepare_create(self, daemon_spec: CephadmDaemonDeploySpec) -> CephadmDaemonDeploySpec:
14301430
assert self.TYPE == daemon_spec.daemon_type
14311431
daemon_id, host = daemon_spec.daemon_id, daemon_spec.host
1432+
daemon_spec.ports = [self.mgr.agent_starting_port]
14321433

14331434
if not self.mgr.http_server.agent:
14341435
raise OrchestratorError('Cannot deploy agent before creating cephadm endpoint')

src/pybind/mgr/cephadm/tests/test_services.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3558,6 +3558,48 @@ def test_jaeger_agent(self, _run_cephadm, cephadm_module: CephadmOrchestrator):
35583558
)
35593559

35603560

3561+
class TestAgent:
3562+
@patch('cephadm.cert_mgr.CertMgr.get_root_ca', lambda instance: cephadm_root_ca)
3563+
@patch('cephadm.cert_mgr.CertMgr.generate_cert',
3564+
lambda instance, test, ip: (ceph_generated_cert, ceph_generated_key))
3565+
@patch("cephadm.serve.CephadmServe._run_cephadm")
3566+
def test_deploy_cephadm_agent(self, _run_cephadm, cephadm_module: CephadmOrchestrator):
3567+
_run_cephadm.side_effect = async_side_effect(('{}', '', 0))
3568+
agent_spec = ServiceSpec(service_type="agent", placement=PlacementSpec(count=1))
3569+
agent_config = {"agent.json": "{\"target_ip\": \"::1\", \"target_port\": 7150, \"refresh_period\": 20, \"listener_port\": 4721, \"host\": \"test\", \"device_enhanced_scan\": \"False\"}", "keyring": "[client.agent.test]\nkey = None\n", "root_cert.pem": f"{cephadm_root_ca}", "listener.crt": f"{ceph_generated_cert}", "listener.key": f"{ceph_generated_key}"}
3570+
3571+
with with_host(cephadm_module, 'test'):
3572+
with with_service(cephadm_module, agent_spec):
3573+
_run_cephadm.assert_called_with(
3574+
"test",
3575+
"agent.test",
3576+
['_orch', 'deploy'],
3577+
[],
3578+
stdin=json.dumps({
3579+
"fsid": "fsid",
3580+
"name": 'agent.test',
3581+
"image": '',
3582+
"deploy_arguments": [],
3583+
"params": {
3584+
'tcp_ports': [4721],
3585+
},
3586+
"meta": {
3587+
'service_name': 'agent',
3588+
'ports': [4721],
3589+
'ip': None,
3590+
'deployed_by': [],
3591+
'rank': None,
3592+
'rank_generation': None,
3593+
'extra_container_args': None,
3594+
'extra_entrypoint_args': None,
3595+
},
3596+
"config_blobs": agent_config,
3597+
}),
3598+
error_ok=True,
3599+
use_current_daemon_image=False,
3600+
)
3601+
3602+
35613603
class TestCustomContainer:
35623604
@patch("cephadm.serve.CephadmServe._run_cephadm")
35633605
def test_deploy_custom_container(

0 commit comments

Comments
 (0)