| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
1. The volume mount has to be done via VIP for nfs_ganesha.
2. Add steps to handle ganesha setup and teardown.
Change-Id: I2e33d30118502b71ca9ca4821ef633ba4bd5fa10
Signed-off-by: Pranav <prprakas@redhat.com>
|
|
|
|
|
| |
Change-Id: I5ad55be92b3acaa605e66de246ce7d40bcec6d5b
Signed-off-by: Arthy Loganathan <aloganat@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Scenarios added:
----------------
Test case:
1. Create a volume, start it and mount it.
2. Start I/O from mount point.
3. Check if there are any memory leaks and OOM killers.
Test case:
1. Create a volume, start it and mount it.
2. Set features.cache-invalidation to ON.
3. Start I/O from mount point.
4. Run gluster volume heal command in a loop
5. Check if there are any memory leaks and OOM killers on servers.
Design change:
--------------
- self.id() is moved into test class as it was hitting bound
errors in the original logic.
- Logic changed for checking leaks fuse.
- Fixed breakage in methods where ever needed.
Change-Id: Icb600d833d0c08636b6002abb489342ea1f946d7
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
========
Currently we don't have a memory and cpu leak
testing framework which blocks automation development
of all testcases around memory and CPU leaks.
To solve this problem we need the libraries for:
1. Logging memory and CPU utilization
2. Checking for OOM killer on gluster processes
3. Checking for memory leaks
4. Checking for cpu usage spikes
5. Wrapper functions in base class to make development easy
6. Compute statistics of usage
Detailed description:
=====================
We have already added script to log CPU and memory
usage through patch [1]. In this patch we would be
using patch [1] and building logic to process the
CSV files generated by the script which would
help us to achieve the following:
1. Checking if there are memory leaks or CPU spikes
2. Computing statistics of memory and CPU usage
Function sets added:
~~~~~~~~~~~~~~~~~~~~
Set 1 - Functions to perfrom logging using script
-------------------------------------------------
Public functions:
1. check_upload_memory_and_cpu_logger_script()
2. log_memory_and_cpu_usage_on_servers()
3. log_memory_and_cpu_usage_on_clients()
4. log_memory_and_cpu_usage_on_cluster()
5. wait_for_logging_processes_to_stop()
6. kill_all_logging_processes()
Private functions to support public functions:
1. _start_logging_processes()
2. _process_wait_flag_append()
Set 2 - Functions to check for OOM killers
------------------------------------------
Public functions:
1. check_for_oom_killers_on_servers()
2. check_for_oom_killers_on_clients()
Private functions to support public functions:
1. _check_for_oom_killers()
Set 3 - Functions to check for memory leaks
-------------------------------------------
Public functions:
1. check_for_memory_leaks_in_glusterd()
2. check_for_memory_leaks_in_glusterfs()
3. check_for_memory_leaks_in_glusterfsd()
4. check_for_memory_leaks_in_glusterfs_fuse()
Private functions to support public functions:
1. _perform_three_point_check_for_memory_leak()
Set 4 - Functions to check for cpu usage spikes
-----------------------------------------------
Public functions:
1. check_for_cpu_usage_spikes_on_glusterd()
2. check_for_cpu_usage_spikes_on_glusterfs()
3. check_for_cpu_usage_spikes_on_glusterfsd()
4. check_for_cpu_usage_spikes_on_glusterfs_fuse()
Private functions to support public functions:
1. _check_for_cpu_usage_spikes()
Set 7 - Functions to calculate stats
------------------------------------
Public functions:
1. compute_data_usage_stats_on_servers()
2. compute_data_usage_stats_on_clients()
Private functions to support public functions:
1. _get_min_max_mean_median()
2. _compute_min_max_mean_median()
Set 6 - Wrapper functions added to base class
---------------------------------------------
1. start_memory_and_cpu_usage_logging()
2. compute_and_print_usage_stats()
3. check_for_memory_leaks_and_oom_kills_on_servers()
4. check_for_memory_leaks_and_oom_kills_on_clients()
5. check_for_cpu_usage_spikes_on_servers()
6. check_for_cpu_spikes_on_clients()
Set 7 - Other generic functions
-------------------------------
Public functions:
1. create_dataframe_from_csv()
Third party libraries added to glusto-tests through
patch:
1. Numpy(It is being used in file_dir_ops.py but it's
installed on clients and not on management node.)
2. Pandas
3. Statistics
How do I use it in my testcase?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For example if we take the testcase to Check the server side
memory leak with fuse mount, we would need to perfrom the
below steps:
1. Create Disperse volumes
2. Fuse mount on the client
3. Start creating files in 1000's in parallel with
3. Create directories in 1000's in parallel
4. Do linux untar and wait for completion
5. Watch the memory usage on the server side and check for the OOM killers.
Here steps 1-4 would be as usual, for step five what we need
to do would be after step 2 we would need to start logging memory usage
with the below code:
```
proc_dict = cls.start_memory_and_cpu_usage_logging()
assertIsNotNone(proc_dict, <Error message>)
```
Once step 4 is complete we would need to wait for the logging process
to stop with the below code:
```
ret = wait_for_logging_processes_to_stop(proc_dict, cluster=True)
assertTrue(ret, <Error message>)
```
And lastly to check for memory leaks and OOM killers we would need use
the below code:
```
ret = cls.check_for_memory_leaks_and_oom_kills_on_servers()
assertTrue(ret, 'Memory leaks or OOM killer found')
```
NOTE:
Interval and count of function start_memory_and_cpu_usage_logging()
and gain of check_for_memory_leaks_and_oom_kills_on_servers() would
need tweaking on a case by case scenario.
Links:
======
[1] https://review.gluster.org/#/c/glusto-tests/+/24659/
Change-Id: Ib617fae102b8280723e54d0a38f77791558f5658
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
NFS-Ganesha Tests inherits 'NfsGaneshaClusterSetupClass' whereas
the other tests inherits 'GlusterBaseClass'. This causes a cyclic
dependency when trying to run other modules with Nfs-Ganesha.
Fix:
1. Move the Nfs-Ganesha dependencies to GlusterBaseClass
2. Modify the Nfs-Ganesha tests to inherit from GlusterBaseClass
3. Remove setup_nfs_ganesha method call from existing Ganesha tests
as its invoked by default from GlusterBaseClass.SetUpClass
Change-Id: I1e382fdb2b29585c097dfd0fea0b45edafb6442b
Signed-off-by: Pranav <prprakas@redhat.com>
|
|
|
|
|
|
| |
Fixes: https://github.com/gluster/glusto-tests/issues/21
Change-Id: I08115a2c11d657cdcb0ab0cc4fe9be697c947a8f
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Tier libraries are not used across test cases and due to checks
across brick_libs.py and volume_libs.py, performance of regular
test cases(time taken for execution) is getting degraded.
One more factor to remove Tier libraries across glusto-tests
is, the functionality is deprecated.
Change-Id: Ie56955800515b2ff5bb3b55debaad0fd88b5ab5e
Signed-off-by: Bala Konda Reddy M <bala12352@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
In the present logic gluster_shared_storage
gets deleted in the force cleanup, this
causes nfs-ganesha testcases to fail.
Fix:
Add logic to check is shared_storage is enabled
if enabled skip:
1. Peer cleanup and peer probe
2. Deleting gluster_shared_storage vol files
Change-Id: I5219491e081bd36dd40342262eaba540ccf00f51
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
Patch [1] and [2] sent to glusterfs
where changes are made to glusterd.service.in
to not allow glusterd restart for more than 6 times
within an hour, due this glusterd restarts
present in testcases may fail as there is no way
to figure out when we reach the 6 restart limit.
Fix:
Add code to check if glusterd restart has failed
if true then call reset_failed_glusterd(), and redo
the restart.
Links:
[1] https://review.gluster.org/#/c/glusterfs/+/23751/
[2] https://review.gluster.org/#/c/glusterfs/+/23970/
Change-Id: I041a019f9a8757d8fead00302e6bbcd6563dc74e
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adding library function reset_failed_glusterd()
and modifying scratch_cleanup() to use
reset_failed_glusterd(). This is needed
because of patch [1] and [2] sent to glusterfs
where changes are made to glusterd.service.in
to not allow glusterd restart for more than 6 times
within an hour.
Links:
[1] https://review.gluster.org/#/c/glusterfs/+/23751/
[2] https://review.gluster.org/#/c/glusterfs/+/23970/
Change-Id: I25f982517420f20f11a610e8a68afc71f3b7f2a9
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
Currently setup_volume in volume_libs.py and gluster_base_class.py
are to create volume and start it. There are tests, where only
volume_create is required and if the test has to run on all volume
types. Any contributor have to do all the validations which are
already implemented in setup_volume and classmethod of setup volume
in the gluster_base_class to their test.
Solution:
Added a parameter in the setup_volume() function "create_only" by
default it is false, unless specified this paramter setup_volume
will work as it is.
similarly, have added a parameter in classmethod of setup_volume
in gluster_base_class.py "only_volume_create", here also defaults
to false unless specified.
Note: After calling "setup_volume() -> volume_stop" is not same as
just "volume_create()" in the actual test.
Change-Id: I76cde1b668b3afcac41dd882c2a376cb6fac88a3
Signed-off-by: Bala Konda Reddy M <bala12352@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
Below command to 'pkill pidof glusterd' is not
right, as it is not getting the pidof glusterd.
eg:
cmd = "pkill pidof glusterd"
ret, out ,err = g.run("10.20.30.40", cmd, "root")
>>> ret, out, err
(2, '', "pkill: only one pattern can be provided\n
Try `pkill --help' for more information.\n")
Here command is failing.
Solution:
Added `pidof glusterd` which will get proper
glusterd pid and kill the stale pid after
glusterd stop failed.
cmd = "pkill `pidof glusterd`"
ret, out ,err = g.run("10.20.30.40", cmd, "root")
>>> ret, out, err
(1, '', '')
Note: The ret value is 1, as it is tried on a machine
where glusterd is running. The purpose of the fix is
to get the proper pid.
Change-Id: Iacba3712852b9d16546ced9a4c071c62182fe385
Signed-off-by: Bala Konda Reddy M <bala12352@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
While performing scratch clenaup, observerd
posix health checkers warnings once the glusterd is
started as shown below
[2020-05-05 12:19:10.633623] M [MSGID: 113075]
[posix-helpers.c:2194:posix_health_check_thread_proc]
0-testvol_distributed-dispersed-posix: health-check
failed, going down
Solution:
In scartch cleanup, once the glusterd is stopped,
and runtime socket file removed for glusterd daemon,
there are stale glusterfsd present on few the
machines. Adding a step to get glusterfsd processes
if any and using kill_process method killing the stale
glusterfsd processes and continuing with the existing
procedure. Once the glusterd is started won't see any
posix health checkers.
Change-Id: Ib3e9492ec029b5c9efd1c07b4badc779375a66d6
Signed-off-by: Bala Konda Reddy M <bala12352@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
Add docleanup and docleanupclass in baseclass,
which will call the function fresh_setup_cleanup,
will cleanup the nodes to fresh setup if it is
set to true or whenever the testcase fails.
Change-Id: I951ff59cc3959ede5580348b7f93b57683880a23
Signed-off-by: Sri Vignesh <sselvan@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
Due to patch [1], the framework broke and
was failing for all the testcases with the below
backtrace:
```
> mount_dict['server'] = cls.snode
E AttributeError: type object 'VolumeAccessibilityTests_cplex_replicated_glusterf'
has no attribute 'snode'
```
Solution:
This was becasue mnode_slave was accidentally written as snode. And
cls.geo_rep_info wasn't a safe condition operator hence changed it
to cls.slaves.
Testcase results with patch:
test_cvt.py::TestGlusterHealSanity_cplex_replicated_glusterfs::test_self_heal_when_io_in_progress PASSED
test_cvt.py::TestGlusterExpandVolumeSanity_cplex_distributed-dispersed_glusterfs::test_expanding_volume_when_io_in_progress PASSED
test_cvt.py::TestGlusterHealSanity_cplex_dispersed_glusterfs::test_self_heal_when_io_in_progress PASSED
test_cvt.py::TestGlusterExpandVolumeSanity_cplex_distributed_nfs::test_expanding_volume_when_io_in_progress PASSED
test_cvt.py::TestQuotaSanity_cplex_replicated_nfs::test_quota_enable_disable_enable_when_io_in_progress PASSED
test_cvt.py::TestSnapshotSanity_cplex_distributed-dispersed_glusterfs::test_snapshot_basic_commands_when_io_in_progress PASSED
test_cvt.py::TestGlusterReplaceBrickSanity_cplex_distributed-replicated_glusterfs::test_replace_brick_when_io_in_progress PASSED
test_cvt.py::TestQuotaSanity_cplex_distributed_nfs::test_quota_enable_disable_enable_when_io_in_progress PASSED
test_cvt.py::TestGlusterExpandVolumeSanity_cplex_dispersed_glusterfs::test_expanding_volume_when_io_in_progress PASSED
test_cvt.py::TestGlusterShrinkVolumeSanity_cplex_distributed-dispersed_glusterfs::test_shrinking_volume_when_io_in_progress PASSED
test_cvt.py::TestGlusterExpandVolumeSanity_cplex_dispersed_nfs::test_expanding_volume_when_io_in_progress PASSED
test_cvt.py::TestGlusterShrinkVolumeSanity_cplex_distributed_glusterfs::test_shrinking_volume_when_io_in_progress PASSED
test_cvt.py::TestGlusterExpandVolumeSanity_cplex_distributed_glusterfs::test_expanding_volume_when_io_in_progress PASSED
test_cvt.py::TestQuotaSanity_cplex_dispersed_nfs::test_quota_enable_disable_enable_when_io_in_progress PASSED
test_cvt.py::TestSnapshotSanity_cplex_distributed-replicated_glusterfs::test_snapshot_basic_commands_when_io_in_progress PASSED
test_cvt.py::TestSnapshotSanity_cplex_dispersed_glusterfs::test_snapshot_basic_commands_when_io_in_progress PASSED
test_cvt.py::TestQuotaSanity_cplex_distributed-replicated_glusterfs::test_quota_enable_disable_enable_when_io_in_progress PASSED
test_cvt.py::TestSnapshotSanity_cplex_replicated_glusterfs::test_snapshot_basic_commands_when_io_in_progress PASSED
test_cvt.py::TestGlusterShrinkVolumeSanity_cplex_distributed-dispersed_nfs::test_shrinking_volume_when_io_in_progress PASSED
test_cvt.py::TestGlusterShrinkVolumeSanity_cplex_distributed_nfs::test_shrinking_volume_when_io_in_progress PASSED
links:
[1] https://review.gluster.org/#/c/glusto-tests/+/24029/
Change-Id: If7b329e232ab61df9f9d38f5491c58693336dd48
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adding the code for the following:
1.Adding function setup_master_and_slave_volumes() to geo_rep_libs.
2.Adding variables for master_mounts, slave_mounts, master_volume
and slave_volume to gluster_base_class.py
3.Adding class class method
setup_and_mount_geo_rep_master_and_slave_volumes to
gluster_base_class.py.
Change-Id: Ic8ae1cb1c8b5719d4774996c3e9e978551414b44
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
|
|
|
| |
Add steps to include bring offline bricks to online and
volume reset in case of failure scenarios
Change-Id: I9bdadd8a80ded81cf7cb4e324a18321400bfcc4c
Signed-off-by: Sri Vignesh <sselvan@redhat.com>
|
|
|
|
|
|
|
|
| |
Added library to cleanup lv created after snapshot clone and made
modifications with cleanup.
Change-Id: I71a437bf99eac1170895510475ddb30748771672
Signed-off-by: Sri Vignesh <sselvan@redhat.com>
|
|
|
|
|
|
|
|
| |
Fixing keyerror introduced in the patch:
https://review.gluster.org/#/c/glusto-tests/+/23967/
Change-Id: Ib44678fe46df5090b1586b09b47d3046c4dc6f9b
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adding params in gluster_base_class.py to store value
of root user's password and non-root user's name, group
and password. sync_method will be mentioned inside the
testcase as there are testcases which are only specific
to one of the sync type and it doesn't make sense to add
it in the config file. Instead we'll write testcase as shown
below:
```
class georeptestcase(baseclass):
run_chmod_with_changelog_crawl(sync_type):
# Steps of the testcase
test_chmod_with_changelog_crawl_rsync():
# Calling function with rsync as sync_type.
run_chmod_with_changelog_crawl('rsync')
test_chmod_with_changelog_crawl_tarssh():
# Calling function with tarssh as sync_type.
run_chmod_with_changelog_crawl('tarssh')
```
Change-Id: Ie65f542e76bfbee89ac2914bdcd086e1bd08dfdb
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use 'list' object type in comparisons instead of 'str'
Because it is differently treated in py2 and py3.
Example:
In py2 isinstance(u'foo', str) is False
In py3 isinstance(u'foo', str) is True
Change-Id: I7663d42494bf59d74550ff4897379d35cc357db4
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
One of the recent changes [1] broke volume cleanup logic
which is located in base class.
Fix it by proper handling of the cleanup function results
where '0' return code is 'success' and not 'failure'
as it was considered in that change.
[1] 6cd137615aec29dade5b41975fcbdae06852cf53
Change-Id: I674493369202ceabc6983fae0b3834e3b0708bf1
Signed-off-by: Valerii Ponomarov <kiparis.kh@gmail.com>
|
|
|
|
|
| |
Change-Id: I0d405afb3ed84ae8a67f7c2e6a303063096f490c
Signed-off-by: Sri Vignesh <sselvan@redhat.com>
|
|
|
|
|
| |
Change-Id: I8b8aad4c3e4a2ad924478f1842498289323b7098
Signed-off-by: Valerii Ponomarov <kiparis.kh@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Adding the default configurations for arbiter and
distributed- arbiter volume types, as it was missing from the
gluster_base_class.py.
Adding Arbiter and Distributed arbiter configuration in the
glusto_tests_config.yml
Change-Id: Ic078505975ff1a1171a4bc6ee6ad2c67f0fb45f1
Signed-off-by: sayaleeraut <saraut@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Following changes were implemented:
- Delete unused imports and place used ones in the alphabetical order.
Imports are splitted into 3 groups: built-ins, third-parties and
local modules/libs.
- Make changes to support py3 in addition to py2.
- Minimize number of code lines keeping the same behaviour and improving
readability.
- Add possibility to get 'bound' (cls) methods using 'get_super_method'
staticmethod from base class. Before it was possible to call only
unbound (self) methods.
- Update 'test_add_brick.py' module as PoC for running base class bound
methods in both - py2 and py3. Now this module py2/3 compatible.
Change-Id: I1b66b3a91084b2487c26bec8763ab2b4e12ac482
Signed-off-by: Valerii Ponomarov <kiparis.kh@gmail.com>
|
|
|
|
|
|
|
|
|
| |
For following reasons:
- It is unused.
- It is not compatible with py3.
Signed-off-by: Valerii Ponomarov <kiparis.kh@gmail.com>
Change-Id: Ied6373c398406ffd08d7673892fde89ec6e04fe2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Lots of test classes are wrapped by the 'runs_on' decorator.
This decorator replaces original test class with it's copy where
parent class is original test class if we use py3.
Such situation leads to the impossibility to use following approach in
py3:
super(SomeClass, some_class_instance).some_method()
And, the above approach is py2/3 compatible approach for calling
parent class's methods.
The problem we face is that we fall into the unexpected recursion here.
So, add 'get_super_method' to the base class, which detects such
situation and returns proper method of a proper parent class.
Also, fix test class located at 'glusterd/test_peer_status.py' module
to have proof of concept.
With this change 'test_peer_probe_status' test case becomes completely
py2/3 compatible.
Example of new method usage:
@runs_on([['distributed'], ['glusterfs']])
class TestDecoratedClass(GlusterBaseClass):
...
def setUp(self):
self.get_super_method(self, 'setUp')()
...
This approach must be used instead of existing calls of 'im_func'
function if we want to support both at once - python2 and python3.
Signed-off-by: Valerii Ponomarov <kiparis.kh@gmail.com>
Change-Id: I23f4462b64f9d4dd90812273f08fb756d073ab76
|
|
|
|
|
|
|
|
| |
Dict attribute called "iteritems()" is not supported in the py3.
So, replace it's usage with another similar attr called "items()".
Change-Id: I130b7f67f0a2d5da5ed6c3d792f5ff024ba148f4
Signed-off-by: Valerii Ponomarov <kiparis.kh@gmail.com>
|
|
|
|
|
|
|
| |
Added new config file for georep
Change-Id: I544ee35f8cd6a2f2ed744f72caa28fa4fd63e5b3
Signed-off-by: Roch-elle <rallan@redhat.com>
|
|
|
|
|
| |
Change-Id: I2acf835a4cf7301c64c4c8a9423f78672cdf9aa4
Signed-off-by: Vitalii Koriakov <vkoriako@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add the base class for gluster-block which includes functions that
helps in automating the test cases on client and target side.
These functions will help in block creation, block discovery,
login on the client, getting mpath, mounting the block, logout.
The teardown function will take care of unmounting
blocks, logging out and block deletion and volume cleanup.
The .yml file for block should be like: Example
gluster_block_args_info:
volname: testvol #Should be same as volume name in glusterfs config fle
servers: #Server names should be same as names in glusterfs config file
- 192.168.100.163
- 192.168.100.192
size: 2GiB
ha: 3
auth: enable
prealloc:
num_of_blocks: 2 #Number of blocks to be created with this configuration
ring-buffer: 16
blockname: block_testing #Base name of the blocks to be created.
Change-Id: I8cd354fc991cd21c542cfd7f03399cc23c9f7917
Signed-off-by: Bhumika Goyal <bgoyal@redhat.com>
|
|
|
|
|
|
| |
This reverts commit 2d425798657a725e02d63ff631c5b87187ea4ca4.
Change-Id: I388fe7ff11e28e027fe9006512e35ec57ff10d9c
|
|
|
|
| |
Change-Id: I1310b9da1262b06e77a621831d599cd4077c31ed
|
|
|
|
|
|
| |
Needs to be done for cases where we don't use runs_on
Change-Id: I0d5b424621706842fb1a8cccb17c653c6dcff72d
|
|
|
|
|
|
|
| |
mount_type is 'glusterfs'
Change-Id: I00f0b5edfea0e09381d1404a0cfd16396a8fbde9
Signed-off-by: ShwethaHP <spandura@redhat.com>
|
|
|
|
|
|
|
|
| |
Replace all the time.sleep() instances with
wait_for_volume_process_to_be_online function
Change-Id: Id7e34979f811bd85f7475748406803026741a3a8
Signed-off-by: ShwethaHP <spandura@redhat.com>
|
|
|
|
|
|
|
|
|
| |
volume type configuration is defined in the config file.
Providing an option in config file to create volume with 'force' option.
Change-Id: Ifeac20685f0949f7573257f30f05df6f79ce1dbd
Signed-off-by: ShwethaHP <spandura@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. setup_volume
2. mount_volume
3. setup_volume_and_mount
4. cleanup_volume
5. unmount_volume
6. unmount_and_cleanup_volume
These are added as static methods to give the test developer the
flexibility to call the setup/cleanup's or any other function
from any where in the testclass which inherits GlusterBaseClass
Also, this will remove the need for GlusterVolumeBaseClass and
hence removing the hardcoding of creattion of volume, mouting
in setUpClass of GlusterVolumeBaseClass.
This will also help in writing new baseclasses for example:
Block which can have class funcitons specific to block
and inherit all the functions from GlusterBaseClass
Change-Id: I3f0709af75e5bb242d265d04ada3a747c155211d
Signed-off-by: ShwethaHP <spandura@redhat.com>
|
|
|
|
|
|
|
| |
specified
Change-Id: Icb47d923860bbd2c1c70d2f7c23965a5368afa52
Signed-off-by: Arthy Loganathan <aloganat@redhat.com>
|
|
|
|
|
|
|
|
| |
Mounting of a volume will not always be distributed volume. Providing a option to mount a local
volume as well.
Change-Id: Iadbb596fba7e2a5fa4ba3ba53967961a70d00c8c
Signed-off-by: ShwethaHP <spandura@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
as 'smb share',
'nfs-ganesha export' in the config yml. Reading the configs in the gluster_base_class and
setting those configs when exporting the volumes as 'smb share' or 'nfs-ganesha export'.
recommended options when exporting volume as 'smb share':
group: "metadata-cache"
cache-samba-metadata: "on"
Change-Id: I86a118c7015eaedd849a0f6e8b613605df5b6c32
Signed-off-by: ShwethaHP <spandura@redhat.com>
|
|
|
|
|
|
|
|
|
| |
gluster_base_class.py: fix error by adding check to ensure gluster entry exists
when no gluster object defined in config file
setup.py: version up to 0.21
Change-Id: I37001673c03a32571b78bbd32489fc1992333d73
Signed-off-by: Jonathan Holloway <jholloway@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Providing a section in the config file to set volume options that can be
applicable to any volume type created. The glusterbase class also reads
the volume_options if provided in config file and set it on all the
volumes being created. These volume options will be overwritten if there
are any volume options specified while defining the volumes under 'volumes'
section.
Change-Id: I0003312251b4f8b151c9ba5c71d1b6a8884cc85e
Signed-off-by: ShwethaHP <spandura@redhat.com>
|
|
|
|
|
| |
Change-Id: If16daf6a0633c4ea30f7fb91b919d2ec42d0ff62
Signed-off-by: ShwethaHP <spandura@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
under gluster in the config file. Currently the config file
has the options under gluster tag. Hence making the
appropriate changes in the runs_on to parse the options
correctly.
Change-Id: Iec95d1884b13c349a36c4324b571a1c0f23c930a
Signed-off-by: ShwethaHP <spandura@redhat.com>
|
|
|
|
|
| |
Change-Id: Iaceb22cd5b2fe920c9cdc6d110d26939e26e5ffe
Signed-off-by: Arthy Loganathan <aloganat@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1) glusterbaseclass:
- Making changes in glusterbaseclass to not necessarily have volume_type
and mount_type.
2) volume_libs:
- setup_volume don't have to export the volume. It just creates starts
and setup's any operation on the volume.
- Moved the sharing/exporting the volume to BaseClass
3) Renaming samba_ops to samba_libs to have better naming practice.
4) Adding nfs_ganesha_libs for any nfs related helper functions
5) Adding a new vvt case which creates, deteles, creates the volume.
Change-Id: I238c349df7165d669d3bc7234d97845dba2f51a6
Signed-off-by: Shwetha Panduranga <spandura@redhat.com>
|
|
|
|
|
|
|
|
|
| |
The setup should never raise an assert failure in a test. Only tests
should fail an assert. If an essential test setup doesn't work, we
should be raising custom exceptions instead.
Change-Id: I6d5cce448132b71b6fde3a39fef894be8b1216d3
Signed-off-by: Nigel Babu <nigelb@redhat.com>
|
|
|
|
|
| |
Change-Id: Ibdd092118d3bb912716c46fd278ef3c680a6e742
Signed-off-by: Nigel Babu <nigelb@redhat.com>
|