Bug 1583753

Summary: lsmcli volume-replicate-range does not check for values of int arguments
Product: Red Hat Enterprise Linux 7 Reporter: Jakub Krysl <jkrysl>
Component: libstoragemgmtAssignee: Tony Asleson <tasleson>
Status: CLOSED DUPLICATE QA Contact: Jakub Krysl <jkrysl>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.5CC: tasleson
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-12-07 19:14:14 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:

Description Jakub Krysl 2018-05-29 15:31:42 UTC
Description of problem:
'lsmcli volume-replicate-range' arguments --count, --src-start and --dst-start do not check for values. So giving them some unexpected value leads to ValueError:

# lsmcli -u "sim://" volume-replicate-range --count='100' --src-vol='VOL_ID_00001' --rep-type='CLONE' --dst-vol='VOL_ID_00002' --dst-start='WRONG' --src-start='0'
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/lsm/lsmcli/cmdline.py", line 67, in cmd_line_wrapper
    cli.process(c)
  File "/usr/lib/python2.7/site-packages/lsm/lsmcli/cmdline.py", line 1809, in process
    self.args.func(self.args)
  File "/usr/lib/python2.7/site-packages/lsm/lsmcli/cmdline.py", line 1531, in volume_replicate_range
    ranges.append(BlockRange(long(src_starts[b]), long(dst_starts[b]),
ValueError: invalid literal for long() with base 10: 'WRONG'

Version-Release number of selected component (if applicable):
libstoragemgmt-1.6.2-1

How reproducible:
100%

Steps to Reproduce:
1. lsmcli -u "sim://" volume-replicate-range --count='100' --src-vol='VOL_ID_00001' --rep-type='CLONE' --dst-vol='VOL_ID_00002' --dst-start='WRONG' --src-start='0'

1. lsmcli -u "sim://" volume-replicate-range --count='WRONG' --src-vol='VOL_ID_00001' --rep-type='CLONE' --dst-vol='VOL_ID_00002' --dst-start='0' --src-start='0'

1. lsmcli -u "sim://" volume-replicate-range --count='100' --src-vol='VOL_ID_00001' --rep-type='CLONE' --dst-vol='VOL_ID_00002' --dst-start='0' --src-start='WRONG'

Actual results:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/lsm/lsmcli/cmdline.py", line 67, in cmd_line_wrapper
    cli.process(c)
  File "/usr/lib/python2.7/site-packages/lsm/lsmcli/cmdline.py", line 1809, in process
    self.args.func(self.args)
  File "/usr/lib/python2.7/site-packages/lsm/lsmcli/cmdline.py", line 1531, in volume_replicate_range
    ranges.append(BlockRange(long(src_starts[b]), long(dst_starts[b]),
ValueError: invalid literal for long() with base 10: 'WRONG'

Expected results:
Error: 'WRONG' is not accepted value, please provide integer.

Additional info:

Comment 2 Tony Asleson 2018-12-07 19:14:14 UTC

*** This bug has been marked as a duplicate of bug 1564151 ***