Bug 2179084

Summary: `pcs resource create` fails with a traceback if empty interval is specified for an operation
Product: Red Hat Enterprise Linux 9 Reporter: Tomas Jelinek <tojeline>
Component: pcsAssignee: Miroslav Lisik <mlisik>
Status: CLOSED MIGRATED QA Contact: cluster-qe <cluster-qe>
Severity: low Docs Contact:
Priority: medium    
Version: 9.2CC: cluster-maint, idevat, mlisik, mmazoure, mpospisi, omular, tojeline
Target Milestone: rcKeywords: MigratedToJIRA, Triaged
Target Release: 9.4   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 2233766 (view as bug list) Environment:
Last Closed: 2023-09-22 20:07:36 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2233766    

Description Tomas Jelinek 2023-03-16 15:39:30 UTC
Description of problem:
`pcs resource create` fails with a traceback if empty interval is specified for an operation


Version-Release number of selected component (if applicable):
pcs-0.11.4-6


How reproducible:
always, easily


Steps to Reproduce:
1. pcs resource create test ocf:pacemaker:Dummy op monitor interval=


Actual results:
Traceback (most recent call last):
  File "/usr/sbin/pcs", line 33, in <module>
    sys.exit(load_entry_point('pcs==0.11.4', 'console_scripts', 'pcs')())
  File "/usr/lib/python3.9/site-packages/pcs/app.py", line 273, in main
    routing.create_router(cmd_map, [])(
  File "/usr/lib/python3.9/site-packages/pcs/cli/common/routing.py", line 33, in _router
    return cmd_map[sub_cmd](lib, argv_next, modifiers)
  File "/usr/lib/python3.9/site-packages/pcs/cli/common/routing.py", line 33, in _router
    return cmd_map[sub_cmd](lib, argv_next, modifiers)
  File "/usr/lib/python3.9/site-packages/pcs/resource.py", line 745, in resource_create
    lib.resource.create(
  File "/usr/lib/python3.9/site-packages/pcs/cli/common/lib_wrapper.py", line 95, in decorated_run
    return run_with_middleware(run, cli_env, *args, **kwargs)
  File "/usr/lib/python3.9/site-packages/pcs/cli/common/middleware.py", line 14, in run
    return next_in_line(env, *args, **kwargs)
  File "/usr/lib/python3.9/site-packages/pcs/cli/common/middleware.py", line 42, in apply
    result_of_next = next_in_line(env, *args, **kwargs)
  File "/usr/lib/python3.9/site-packages/pcs/cli/common/middleware.py", line 80, in apply
    result_of_next = next_in_line(env, *args, **kwargs)
  File "/usr/lib/python3.9/site-packages/pcs/cli/common/lib_wrapper.py", line 86, in run
    lib_call_result = run_library_command(lib_env, *args, **kwargs)
  File "/usr/lib/python3.9/site-packages/pcs/lib/commands/resource.py", line 433, in create
    primitive_element = resource.primitive.create(
  File "/usr/lib/python3.9/site-packages/pcs/lib/cib/resource/primitive.py", line 232, in create
    return append_new(
  File "/usr/lib/python3.9/site-packages/pcs/lib/cib/resource/primitive.py", line 290, in append_new
    create_operations(
  File "/usr/lib/python3.9/site-packages/pcs/lib/cib/resource/operations.py", line 398, in create_operations
    append_new_operation(operations_element, id_provider, operation)
  File "/usr/lib/python3.9/site-packages/pcs/lib/cib/resource/operations.py", line 428, in append_new_operation
    options["interval"],
KeyError: 'interval'


Expected results:
No traceback, print a nice error message.


Additional info:
It works with an empty timeout:
# pcs resource create test ocf:pacemaker:Dummy op monitor timeout=
# pcs resource config test
Resource: test (class=ocf provider=pacemaker type=Dummy)
  Operations:
    migrate_from: test-migrate_from-interval-0s
      interval=0s
      timeout=20s
    migrate_to: test-migrate_to-interval-0s
      interval=0s
      timeout=20s
    monitor: test-monitor-interval-60s
      interval=60s
    reload: test-reload-interval-0s
      interval=0s
      timeout=20s
    reload-agent: test-reload-agent-interval-0s
      interval=0s
      timeout=20s
    start: test-start-interval-0s
      interval=0s
      timeout=20s
    stop: test-stop-interval-0s
      interval=0s
      timeout=20s

Comment 2 RHEL Program Management 2023-09-22 20:04:39 UTC
Issue migration from Bugzilla to Jira is in process at this time. This will be the last message in Jira copied from the Bugzilla bug.

Comment 3 RHEL Program Management 2023-09-22 20:07:36 UTC
This BZ has been automatically migrated to the issues.redhat.com Red Hat Issue Tracker. All future work related to this report will be managed there.

Due to differences in account names between systems, some fields were not replicated.  Be sure to add yourself to Jira issue's "Watchers" field to continue receiving updates and add others to the "Need Info From" field to continue requesting information.

To find the migrated issue, look in the "Links" section for a direct link to the new issue location. The issue key will have an icon of 2 footprints next to it, and begin with "RHEL-" followed by an integer.  You can also find this issue by visiting https://issues.redhat.com/issues/?jql= and searching the "Bugzilla Bug" field for this BZ's number, e.g. a search like:

"Bugzilla Bug" = 1234567

In the event you have trouble locating or viewing this issue, you can file an issue by sending mail to rh-issues. You can also visit https://access.redhat.com/articles/7032570 for general account information.