Commit Graph

53 Commits

Author SHA1 Message Date
Rishabh Dave
b67ce004ad test_cephfs_shell: use StringIO instead of BytesIO
Code in qa/ uses both StringIO and BytesIO. Let's use StringIO
exclusively (unless necessary) for uniformity. The reason for using
StringIO over BytesIO is that tests mostly need stdout as string than
as bytes and StringIO is used more frequently used in qa/ code at this
point.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2020-06-05 00:02:36 +05:30
Rishabh Dave
1abfdd161c cephfs-shell: support cephfs-shell.conf
cephfs-shell options should reside in cephfs-shell.conf and not in
ceph.conf. Please note, unlike before, -c option of cephfs-shell must
take path to cephfs-shell.conf instead of path to ceph.conf.

This commit also updates the docs and the tests for cephfs-shell accordingly
and renames the variable config_path in cephfs-shell to shell_conf_path so
that it's easy to distinguish.

Fixes: https://tracker.ceph.com/issues/44127
Signed-off-by: Rishabh Dave <ridave@redhat.com>
2020-05-20 21:32:45 +05:30
Rishabh Dave
39db91ea19 test_cephfs_shell: refactor test_put_and_get_without_target_directory
The refactor intends to simplify the test and make it more readable,

It also changes how this test creates directory -- tempfile.mkdtemp is
used instead of coreutils mkdir to avoid bug reported here -
https://tracker.ceph.com/issues/43567.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2020-04-27 14:28:03 +05:30
Kefu Chai
981ad34987 qa/tasks/cephfs/test_cephfs_shell: assertRegex(text, regex)
per Python3 doc of unittest,

> assertRegex(text, regex, msg=None)

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-04-07 21:51:23 +08:00
Kyr Shatskyy
9f6c764f10 qa/tasks/cephfs: get rid of StringIO for py3
Use io.BytesIO and six.ensure_str for py3 compatibility

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
2020-03-06 10:19:55 +01:00
Patrick Donnelly
29d850fb7e
Merge PR #32570 into master
* refs/pull/32570/head:
	cephfs-shell: Add tests for setxattr, getxattr and listxattr
	cephfs-shell: Add listxattr command
	cephfs-shell: Add getxattr command
	cephfs-shell: Add setxattr command
	doc: Update about extended attributes

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2020-02-02 06:56:50 -08:00
Varsha Rao
e601242afe cephfs-shell: Add tests for setxattr, getxattr and listxattr
Signed-off-by: Varsha Rao <varao@redhat.com>
2020-01-30 01:16:27 +05:30
Varsha Rao
d4b6a5c2d4 cephfs-shell: Instead of assert use stat for tests in rmdir
Using assert causes the tests to fail on teuthology due to this test being run
separately from the ceph cluster. Instead use stat for testing.

Signed-off-by: Varsha Rao <varao@redhat.com>
2020-01-22 16:30:11 +05:30
Varsha Rao
d21df7560e cephfs-shell: Add function for common rmdir test code
Signed-off-by: Varsha Rao <varao@redhat.com>
2020-01-22 16:30:11 +05:30
Varsha Rao
c512b94127 cephfs-shell: Add rmdir test for non empty directory
Signed-off-by: Varsha Rao <varao@redhat.com>
2020-01-22 16:30:11 +05:30
Varsha Rao
0ef7c6e849 cephfs-shell: Add rmdir -p test for non empty directory
Signed-off-by: Varsha Rao <varao@redhat.com>
2020-01-22 16:30:11 +05:30
Varsha Rao
32be18e239 cephfs-shell: Add rmdir -p test for non existing dir
Signed-off-by: Varsha Rao <varao@redhat.com>
2020-01-22 16:30:11 +05:30
Varsha Rao
dec171dddb cephfs-shell: Add rmdir -p test to delete all dirs in given path
Signed-off-by: Varsha Rao <varao@redhat.com>
2020-01-22 16:30:11 +05:30
Varsha Rao
31710d037c cephfs-shell: Add rmdir -p test for root directory with empty directories
Signed-off-by: Varsha Rao <varao@redhat.com>
2020-01-22 16:30:11 +05:30
Varsha Rao
5236f76a19 cephfs-shell: Add rmdir test for valid file
Signed-off-by: Varsha Rao <varao@redhat.com>
2020-01-22 16:30:11 +05:30
Varsha Rao
b93d91b171 cephfs-shell: Add rmdir test for invalid directory
Signed-off-by: Varsha Rao <varao@redhat.com>
2020-01-22 16:30:11 +05:30
Varsha Rao
00c052fec5 cephfs-shell: Add rmdir test for valid directory
Signed-off-by: Varsha Rao <varao@redhat.com>
2020-01-22 16:30:11 +05:30
Varsha Rao
cd15fc8a77 cephfs-shell: Modify Quota Test
This patch makes following modifications quota test:
- Add additional condtion to confirm Command Failure Error due to exceeding set
  quota values.
- Rename function valid to set_and_get_quota_vals.
- Use run_cephfs_shell_cmd instead of get_cephfs_shell_cmd_output.

Signed-off-by: Varsha Rao <varao@redhat.com>
2019-12-28 17:55:40 +05:30
Varsha Rao
228a290c2d cephfs-shell: Fix permission errors on quota tests
Use of mount_a.run_shell() to create directory, requires Sudo access and
cephfs-shell should be run without sudo access. Instead use cephfs-shell mkdir
command to create directory.

Signed-off-by: Varsha Rao <varao@redhat.com>
2019-12-28 17:55:40 +05:30
Varsha Rao
d4b5c760cd cephfs-shell: Add tests for quota
Signed-off-by: Varsha Rao <varao@redhat.com>
2019-12-28 17:55:40 +05:30
Rishabh Dave
4e11b5b5e7 test_cephfs_shell: fix test_du_works_for_hardlinks
ln command needs superuser privileges, oddly that test had run
successfully before.

Fixes: https://tracker.ceph.com/issues/43250
Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-12-13 12:15:27 +05:30
Thomas Bechtold
0127cd1e88 qa: Enable flake8 tox and fix failures
There were a couple of problems found by flake8 in the qa/
directory (most of them fixed now). Enabling flake8 during the usual
check runs hopefully avoids adding new issues in the future.

Signed-off-by: Thomas Bechtold <tbechtold@suse.com>
2019-12-12 10:21:01 +01:00
Patrick Donnelly
0448a31fcb
qa: fix output check to not be sensitive to debugging
The traceback would screw up the equality checks.

Also, use unittest asserts so we can easily see the assert values.

Fixes: https://tracker.ceph.com/issues/43247
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2019-12-10 16:45:09 -08:00
Patrick Donnelly
12e7401a43
Merge PR #27894 into master
* refs/pull/27894/head:
	cephfs-shell: Add default list to df
	cephfs-shell: Add tests for df command
	cephfs-shell: Fix 'df' command errors

Reviewed-by: Rishabh Dave <ridave@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2019-12-09 17:05:52 -08:00
Rishabh Dave
d6f768b24e qa/cephfs: test conf file reading for CephFS shell
Adds tests that checks -
* reading conf option
* reading conf option after setting it twice
* reading conf option after setting it after a reset

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-12-06 08:54:06 +05:30
Rishabh Dave
a1e3e270b9 qa/cephfs: allow passing conf to methods that runs shell command
Add an argument to the methods that issues CephFS shell command to
accept path to the ceph.conf file.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-12-06 08:54:06 +05:30
Rishabh Dave
2f85a03b56 test_cephfs_shell: update test since shell can now read ceph.conf
In the test
test_cephfs_shell.TestMisc.test_issue_cephfs_shell_cmd_at_invocation,
don't set the shell option with in the command to be tested since
CephFS shell can now read it's value from ceph.conf.

Also, add methods to set config options for vstart as well teuthology
testing.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-12-06 08:52:59 +05:30
Patrick Donnelly
f1e3fec83d
Merge PR #27467 into master
* refs/pull/27467/head:
	cephfs-shell: add snapshot management

Reviewed-by: Rishabh Dave <ridave@redhat.com>
Reviewed-by: Varsha Rao <varao@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2019-11-26 09:47:40 -08:00
Varsha Rao
2c1c683b19 cephfs-shell: Add tests for df command
This patch adds tests for valid and invalid directory, valid files and testing
df without any arguments.

Signed-off-by: Varsha Rao <varao@redhat.com>
2019-11-15 16:51:05 +05:30
Rishabh Dave
bafef71e49 test_cephfs_shell: initialize stderr for run_cephfs_shell_cmd()
Since teuthology initializes stderr to None by default, absence of this
breaks the tests accessing stderr of commands executed within the test
when the execution is using teuthology.

Fixes: https://tracker.ceph.com/issues/42806
Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-11-14 13:54:14 +05:30
Milind Changire
73597e94f1 cephfs-shell: add snapshot management
Snapshots can be managed by:
$ snap {create|delete} snap_name dir_name

Fixes: http://tracker.ceph.com/issues/38681
Signed-off-by: Milind Changire <mchangir@redhat.com>
2019-11-04 16:17:32 +05:30
Rishabh Dave
34ab7b9465 test_cephfs_shell: pass arg to "help" in test_help
The default behaviour by cmd2 for help command with no argument is to
print all possible commands and return 1. This leads to a failure even
when test is supposed to pass.

Fixes: https://tracker.ceph.com/issues/42101
Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-11-02 14:18:07 +05:30
Rishabh Dave
d165b98554 test_cephfs_shell: add note on how to run this testsuite
Inform that exporting path to cephfs-shell is needed beforehand.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-09-17 17:24:30 +05:30
Rishabh Dave
f9b4d790e5 test_cephfs_shell: test cephfs-shell command at invocation
Verify that "cephfs-shell -c ceph.conf <cephfs-shell-cmd>" works as
expected.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-09-13 10:45:42 +05:30
Rishabh Dave
79c9d91b9a test_cephfs_shell: test du with no args
Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-09-13 10:45:39 +05:30
Rishabh Dave
54562691ee test_cephfs_shell: test du with multiple paths in args
Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-09-13 10:45:34 +05:30
Rishabh Dave
08c7e2862b test_cephfs_shell: test behaviour of "du -r"
Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-09-13 10:45:31 +05:30
Rishabh Dave
7f7aed5506 test_cephfs_shell: test du's output for softlinks
Test that CephFS shell command du prints output for softlinks as
expected

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-09-13 10:45:27 +05:30
Rishabh Dave
877a79d8cf test_cephfs_shell: test du's output for hardlinks
Test that CephFS shell command du prints output for directories as
expected.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-09-13 10:45:11 +05:30
Rishabh Dave
7062dd6164 test_cephfs_shell: test du's output for directories
Test that CephFS shell command du prints output for directories as
expected.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-09-13 10:45:08 +05:30
Rishabh Dave
370c97678d test_cephfs_shell: test du's output for regular files
Test that CephFS shell command du prints an output for regular files
correctly.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-09-13 10:45:04 +05:30
Rishabh Dave
d3f895f44a test_cephfs_shell: add a method to get command output
Let run_cephfs_shell_cmd() return the object instead of output in string
format so that stderr, return value, etc. of the command executed
remain available. And add a new method that returns only output of the
CephFS shell command executed.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-09-13 10:44:59 +05:30
Rishabh Dave
f0723d200c test_cephfs_shell: allow cmd as list too
Convert cmd to string if it is passed as list to
run_cephfs_shell_cmd(). Allowing cmd to be list would be nice since
elsewhere, in tests, command to be executed must be a list of arguments
rather than string of arguments separated by spaces.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-09-13 10:44:39 +05:30
Rishabh Dave
e6f3bf8ccd test_cephfs_shell: rename and rewrite _cephfs_shell()
Rename _cephfs_shell() to run_cephfs_shell_cmd() and add a default
client for run_cephfs_shell_cmd() since most of tests in this
testsuite will need only one client.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-09-13 10:44:35 +05:30
Rishabh Dave
e5f30052f9 test_cephfs_shell: copy humanize() from cephfs-shell
Copy the method named humanize from cephfs-shell so that output can be
compared. Unfortunately, importing this method isn't possible since the
dash in "cephfs-shell" leads to an syntax error.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-09-13 10:43:55 +05:30
Rishabh Dave
d94a42dc1b test_cephfs_shell: add a test for cd with arguments
Add a method to test that the cd command changes the current working
directory to the path passed as an argument to it.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-07-25 10:51:50 +05:30
Rishabh Dave
dee9ec1650 test_cephfs_shell: add a test for cd with no arguments
Add a method to test that the cd command changes the current working
directory to root when no argument is passed.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-07-25 10:51:50 +05:30
Rishabh Dave
70f22f69b5 test_cephfs_shell: group test methods
Move tests into different classes created on the basis of a shell
functionality within the testsuite. This arrangement allows running
tests related to only one functionality at a time.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-07-25 10:51:50 +05:30
Rishabh Dave
2a98e9cb31 test_cephfs_shell: add a new method to return script output
Add a new method that runs the given CephFS shell script on the given
mount and returns the output with whitespace removed.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-07-25 10:51:28 +05:30
Rishabh Dave
fef0180c93 test_cephfs_shell: allow running CephFS shell script
Add a method to test_cephfs_shell.py that allows running CephFS shell
script using option "-b" of cephfs-shell.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2019-07-25 10:51:11 +05:30