Skip to content

Commit 4a422c8

Browse files
committed
do not wrap resource agent longdesc
1 parent 9192c10 commit 4a422c8

File tree

4 files changed

+30
-24
lines changed

4 files changed

+30
-24
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
- Commands `pcs resource|booth delete|remove` and
1818
`pcs cluster node delete-remote|remove-remote` will now end with an error when
1919
trying to delete unmanaged started resources ([RHEL-76162])
20+
- Do not wrap resource and stonith agent description to preserve existing
21+
formatting ([RHEL-111451])
2022

2123
### Deprecated
2224
- Using `--force` in `pcs resource|booth delete|remove` and
@@ -27,6 +29,7 @@
2729

2830
[RHEL-76157]: https://issues.redhat.com/browse/RHEL-76157
2931
[RHEL-76162]: https://issues.redhat.com/browse/RHEL-76162
32+
[RHEL-111451]: https://issues.redhat.com/browse/RHEL-111451
3033

3134

3235
## [0.12.1] - 2025-07-08

pcs/cli/resource/output.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
format_wrap_for_terminal,
2020
options_to_cmd,
2121
pairs_to_cmd,
22+
smart_wrap_text,
2223
)
2324
from pcs.cli.nvset import nvset_dto_to_lines
2425
from pcs.cli.reports.output import warn
@@ -192,11 +193,17 @@ def resource_agent_metadata_to_text(
192193

193194
if metadata.longdesc:
194195
output.append("")
195-
output.extend(
196-
format_wrap_for_terminal(
197-
metadata.longdesc.replace("\n", " "), subsequent_indent=0
196+
# Some agents provide longdesc as a single long line. Others provide
197+
# formatted text with pagarpahs, indentation, lists, etc. Wrap only
198+
# one-line longdesc to preserve such formatting. Agent authors are
199+
# expected to wrap formatted longdesc appropriately. We cannot fix just
200+
# some wrapping while keeping other formatting in place.
201+
if "\n" in metadata.longdesc:
202+
output.extend(metadata.longdesc.splitlines())
203+
else:
204+
output.extend(
205+
format_wrap_for_terminal(metadata.longdesc, subsequent_indent=0)
198206
)
199-
)
200207

201208
params = []
202209
for param in metadata.parameters:
@@ -210,7 +217,7 @@ def resource_agent_metadata_to_text(
210217
output.append("Stonith options:")
211218
else:
212219
output.append("Resource options:")
213-
output.extend(indent(params, indent_step=INDENT_STEP))
220+
output.extend(smart_wrap_text(indent(params, indent_step=INDENT_STEP)))
214221

215222
operations = []
216223
for operation in default_operations:
@@ -219,7 +226,9 @@ def resource_agent_metadata_to_text(
219226
if operations:
220227
output.append("")
221228
output.append("Default operations:")
222-
output.extend(indent(operations, indent_step=INDENT_STEP))
229+
output.extend(
230+
smart_wrap_text(indent(operations, indent_step=INDENT_STEP))
231+
)
223232

224233
return output
225234

pcs/resource.py

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
from pcs import constraint, utils
1313
from pcs.cli.cluster_property.output import PropertyConfigurationFacade
1414
from pcs.cli.common.errors import CmdLineInputError
15-
from pcs.cli.common.output import smart_wrap_text
1615
from pcs.cli.common.parse_args import (
1716
FUTURE_OPTION,
1817
OUTPUT_FORMAT_VALUE_CMD,
@@ -547,14 +546,12 @@ def resource_list_options(
547546
)
548547
print(
549548
"\n".join(
550-
smart_wrap_text(
551-
resource_agent_metadata_to_text(
552-
lib.resource_agent.get_agent_metadata(agent_name),
553-
lib.resource_agent.get_agent_default_operations(
554-
agent_name
555-
).operations,
556-
verbose=modifiers.is_specified("--full"),
557-
)
549+
resource_agent_metadata_to_text(
550+
lib.resource_agent.get_agent_metadata(agent_name),
551+
lib.resource_agent.get_agent_default_operations(
552+
agent_name
553+
).operations,
554+
verbose=modifiers.is_specified("--full"),
558555
)
559556
)
560557
)

pcs/stonith.py

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
)
1111
from pcs.cli.common import parse_args
1212
from pcs.cli.common.errors import CmdLineInputError
13-
from pcs.cli.common.output import smart_wrap_text
1413
from pcs.cli.common.parse_args import (
1514
Argv,
1615
InputModifiers,
@@ -108,14 +107,12 @@ def stonith_list_options(
108107
agent_name = ResourceAgentNameDto("stonith", None, argv[0])
109108
print(
110109
"\n".join(
111-
smart_wrap_text(
112-
resource_agent_metadata_to_text(
113-
lib.resource_agent.get_agent_metadata(agent_name),
114-
lib.resource_agent.get_agent_default_operations(
115-
agent_name
116-
).operations,
117-
verbose=modifiers.is_specified("--full"),
118-
)
110+
resource_agent_metadata_to_text(
111+
lib.resource_agent.get_agent_metadata(agent_name),
112+
lib.resource_agent.get_agent_default_operations(
113+
agent_name
114+
).operations,
115+
verbose=modifiers.is_specified("--full"),
119116
)
120117
)
121118
)

0 commit comments

Comments
 (0)