Bug 1395226 - Misbehavior of the flag --clone in "pcs resource create" command
Summary: Misbehavior of the flag --clone in "pcs resource create" command
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: pcs
Version: 7.2
Hardware: Unspecified
OS: Unspecified
medium
unspecified
Target Milestone: rc
: ---
Assignee: Ivan Devat
QA Contact: cluster-qe@redhat.com
URL:
Whiteboard:
Keywords:
: 1449360 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-11-15 13:12 UTC by Ivan Devat
Modified: 2017-08-01 18:24 UTC (History)
7 users (show)

(edit)
Cause: 
Pcs incorrectly identifies command line arguments when a user runs "pcs resource create" command with flag "--clone".

Consequence:
Pcs puts a different contents into the cib than the user expects according to the documentation.

Fix: 
Correct the identification of command line arguments.

Result: 
Pcs puts a correct contents into the cib.
Clone Of:
(edit)
Last Closed: 2017-08-01 18:24:40 UTC


Attachments (Terms of Use)
proposed fix (32.60 KB, patch)
2017-02-01 16:15 UTC, Ivan Devat
no flags Details | Diff


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2017:1958 normal SHIPPED_LIVE pcs bug fix and enhancement update 2017-08-01 18:09:47 UTC
Red Hat Bugzilla 1378107 None None None Never

Internal Trackers: 1378107

Description Ivan Devat 2016-11-15 13:12:10 UTC
Description of problem:
Flag --clone in command "pcs resource create" does not act consistently in more ways.

> 1) Flag --clone steals options of the "meta" keyword when "--clone" precedes "meta".

How reproducible:
always


Steps to Reproduce:
[vm-rhel72-1 ~] $ pcs resource create R ocf:heartbeat:Dummy --clone c=d meta a=b
[vm-rhel72-1 ~] $ pcs cluster cib


Actual results:
...
<clone id="R-clone">
  <primitive class="ocf" id="R" provider="heartbeat" type="Dummy">
    <instance_attributes id="R-instance_attributes"/>
    <operations>
      <op id="R-start-interval-0s" interval="0s" name="start" timeout="20"/>
      <op id="R-stop-interval-0s" interval="0s" name="stop" timeout="20"/>
      <op id="R-monitor-interval-10" interval="10" name="monitor" timeout="20"/>
    </operations>
  </primitive>
  <meta_attributes id="R-clone-meta_attributes">
    <nvpair id="R-clone-meta_attributes-a" name="a" value="b"/>
    <nvpair id="R-clone-meta_attributes-c" name="c" value="d"/>
  </meta_attributes>
</clone>
...
Note attribute named "a" is in clone.


Expected results:
...
<clone id="R-clone">
  <primitive class="ocf" id="R" provider="heartbeat" type="Dummy">
    <instance_attributes id="R-instance_attributes"/>
    <meta_attributes id="R-meta_attributes">
      <nvpair id="R-meta_attributes-a" name="a" value="b"/>
    </meta_attributes>
    <operations>
      <op id="R-start-interval-0s" interval="0s" name="start" timeout="20"/>
      <op id="R-stop-interval-0s" interval="0s" name="stop" timeout="20"/>
      <op id="R-monitor-interval-10" interval="10" name="monitor" timeout="20"/>
    </operations>
  </primitive>
  <meta_attributes id="R-clone-meta_attributes">
    <nvpair id="R-clone-meta_attributes-c" name="c" value="d"/>
  </meta_attributes>
</clone>
...
Note attribute named "a" is in primitive.


> 2) Flag --clone steals options of the "op" keyword when "--clone" precedes "op".

How reproducible:
always


Steps to Reproduce:
[vm-rhel72-1 ~] $ pcs resource create R ocf:heartbeat:Dummy --clone c=d op monitor interval=10


Actual results:
Error: When using 'op' you must specify an operation name and at least one option


Expected results:
Create resource with operation monitor.

Comment 2 Ivan Devat 2017-02-01 16:15 UTC
Created attachment 1246713 [details]
proposed fix

Tests are in the patch.

Comment 3 Ivan Devat 2017-02-20 07:57:59 UTC
After Fix:

[vm-rhel72-1 ~] $ rpm -q pcs
pcs-0.9.156-1.el7.x86_64

> 1) Flag --clone does not steal options of the "meta" keyword when "--clone" precedes "meta".

[vm-rhel72-1 ~] $ pcs resource create R ocf:heartbeat:Dummy --clone c=d meta a=b
[vm-rhel72-1 ~] $ pcs cluster cib|grep '\(id="R-meta_attributes"\|id="R-clone-meta_attributes"\)' -A 2
          <meta_attributes id="R-meta_attributes">
            <nvpair id="R-meta_attributes-a" name="a" value="b"/>
          </meta_attributes>
--
        <meta_attributes id="R-clone-meta_attributes">
          <nvpair id="R-clone-meta_attributes-c" name="c" value="d"/>
        </meta_attributes>

> 2) Flag --clone does not steal options of the "op" keyword when "--clone" precedes "op".

[vm-rhel72-1 ~] $ pcs resource create R ocf:heartbeat:Dummy --clone c=d op monitor interval=10
[vm-rhel72-1 ~] $ pcs cluster cib|grep R-monitor-interval-10
            <op id="R-monitor-interval-10" interval="10" name="monitor"/>

Comment 5 Tomas Jelinek 2017-05-10 08:39:13 UTC
*** Bug 1449360 has been marked as a duplicate of this bug. ***

Comment 8 errata-xmlrpc 2017-08-01 18:24:40 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2017:1958


Note You need to log in before you can comment on or make changes to this bug.