Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-7743

`pcs resource create` fails with a traceback if empty interval is specified for an operation

    • pcs-0.10.17-5.el8
    • None
    • Low
    • sst_high_availability
    • ssg_filesystems_storage_and_HA
    • 13
    • 19
    • 2
    • QE ack
    • False
    • Hide

      None

      Show
      None
    • No
    • None
    • Release Note Not Required
    • Hide
      Cause:
      User specifies an empty interval for a resource operation in the `pcs resource create` command.

      Consequence:
      Command fails with a traceback because interval value is not validated and it is expected to be not empty.

      Fix:
      Validate value of interval option.

      Result:
      Commands fails with a proper error message instead of traceback and inform user about invalid value for the interval option.
      Show
      Cause: User specifies an empty interval for a resource operation in the `pcs resource create` command. Consequence: Command fails with a traceback because interval value is not validated and it is expected to be not empty. Fix: Validate value of interval option. Result: Commands fails with a proper error message instead of traceback and inform user about invalid value for the interval option.
    • None

      +++ This bug was initially created as a clone of Bug #2179084 +++

      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:

      1. pcs resource create test ocf:pacemaker:Dummy op monitor timeout=
      2. 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

            cluster-qe Cluster QE
            tojeline@redhat.com Tomas Jelinek
            Miroslav Lisik Miroslav Lisik
            Michal Mazourek Michal Mazourek
            Votes:
            0 Vote for this issue
            Watchers:
            15 Start watching this issue

              Created:
              Updated:
              Resolved: