]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/cephadm: make default command timeout field an int
authorAdam King <adking@redhat.com>
Wed, 3 Jan 2024 13:35:05 +0000 (08:35 -0500)
committerAdam King <adking@redhat.com>
Wed, 28 Feb 2024 20:04:48 +0000 (15:04 -0500)
When the fields was "secs" instead, we could hit

Traceback (most recent call last):
  File "/usr/share/ceph/mgr/cephadm/serve.py", line 1380, in _run_cephadm_json
    out, err, code = await self._run_cephadm(
  File "/usr/share/ceph/mgr/cephadm/serve.py", line 1525, in _run_cephadm
    raise OrchestratorError(
orchestrator._interface.OrchestratorError: cephadm exited with an error code: 2, stderr: usage: cephadm
       [-h] [--image IMAGE] [--docker] [--data-dir DATA_DIR]
       [--log-dir LOG_DIR] [--logrotate-dir LOGROTATE_DIR]
       [--sysctl-dir SYSCTL_DIR] [--unit-dir UNIT_DIR] [--verbose]
       [--timeout TIMEOUT] [--retry RETRY] [--env ENV] [--no-container-init]
       [--no-cgroups-split]
       {version,pull,inspect-image, . . .
       ...
cephadm: error: argument --timeout: invalid int value: '295.0'

where the value ends up as a floating point value
after converting to a string (which is necessary to actually
pass it to the binary). By setting the field to be an
int, we should be able to avoid this.

Signed-off-by: Adam King <adking@redhat.com>
(cherry picked from commit e917d66838b2ea52538f4460d89d633ce7786067)

src/pybind/mgr/cephadm/module.py

index 5b80862f7502562f5a652be81a964ccbf28df032..ba3c97db0da23a9dd0cd52e9881d3104c62e0c59 100644 (file)
@@ -476,7 +476,7 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule,
         ),
         Option(
             'default_cephadm_command_timeout',
-            type='secs',
+            type='int',
             default=15 * 60,
             desc='Default timeout applied to cephadm commands run directly on '
             'the host (in seconds)'