| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The DHT pass-through functionality was introduced in the Gluster
6, due to which the TCs were failing for Replicate, Disperse and
Arbiter volume types whenever the function to get hashrange was
called.
With this fix, first the Gluster version and later the volume
type will be checked before calling the function to get the
hashrange. If the Gluster version is greater than or equal to
6, the layout will not be checked for the pure AFR/Arbiter/EC
volumes.
About DHT pass-through option : The distribute xlator now skips
unnecessary checks and operations when the distribute count is one
for a volume, resulting in improved performance. Comes into play
when there is only 1 brick or it is a pure replicate or pure
disperse or pure arbiter volume.
Change-Id: I55634f495a54e3c9909b1e1c716990b9ee9834a3
Signed-off-by: sayaleeraut <saraut@redhat.com>
|
|
|
|
|
|
|
|
| |
Reboot cases are failing with timeout value,
therfore increasing the timeout value in function.
Change-Id: I262120e87d36b2d5cc7244b37d5f6e051c964f0f
Signed-off-by: Sri Vignesh <sselvan@redhat.com>
|
|
|
|
|
|
|
| |
Change-Id: I1eacfd74c730d28e36bb8f7e3a1f574edc3d13c7
Co-authored-by: Vitalii Koriakov <vkoriako@redhat.com>
Signed-off-by: Vitalii Koriakov <vkoriako@redhat.com>
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Testcase 1: Test entry transaction crash consistency : create
- Create IO
- Calculate arequal before creating snapshot
- Create snapshot
- Modify the data
- Stop the volume
- Restore snapshot
- Start the volume
- Get arequal after restoring snapshot
- Compare arequals
Testcase 2: Test entry transaction crash consistency : delete
- Create IO of 50 files
- Delete 20 files
- Calculate arequal before creating snapshot
- Create snapshot
- Delete 20 files more
- Stop the volume
- Restore snapshot
- Start the volume
- Get arequal after restoring snapshot
- Compare arequals
Testcase 3: Test entry transaction crash consistency : rename
- Create IO of 50 files
- Rename 20 files
- Calculate arequal before creating snapshot
- Create snapshot
- Rename 20 files more
- Stop the volume
- Restore snapshot
- Start the volume
- Get arequal after restoring snapshot
- Compare arequals
Change-Id: I7cb9182f91ae50c47d5ae9b3f8031413b2bbfbbf
Co-authored-by: Vitalii Koriakov <vkoriako@redhat.com>
Signed-off-by: Vitalii Koriakov <vkoriako@redhat.com>
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adding function collect_bricks_arequal() to lib_utils.py
to collect arequal-checksum on all the bricks of all the
nodes used to create a volume using the below command:
```
arequal-checksum -p <BrickPath> -i .glusterfs -i .landfill -i .trashcan
```
Usage:
```
>>> all_bricks = get_all_bricks(self.mnode, self.volname)
>>> ret, arequal = collect_bricks_arequal(all_bricks)
>>> ret
True
```
Change-Id: Id42615469be18d84e5691c982369634c436ed0cf
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Verifying the glusterfind functionality with deletion of files.
* Create a volume
* Create a session on the volume
* Create various files from mount point
* Perform glusterfind pre
* Perform glusterfind post
* Check the contents of outfile
* Modify the contents of the files from mount point
* Perform glusterfind pre
* Perform glusterfind post
* Check the contents of outfile
Files modified must be listed
Change-Id: Ie696e194364b2b86a7ceb5fb6e10066ecc669577
Signed-off-by: Vinayak Papnoi <vpapnoi@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There can be a case where due to a failed tearDown of a previous
test case, the snapshot creation might fail because of redundant
snapshot of the same name present.
This fix includes the changed snapshot names along with tearDown
for deleting the snapshots created in the test case
"test_snap_info_glusterd_restart.py".
Changing the names of the test case function to something
relevant to the test case.
Making use of the method "wait_for_glusterd_to_start" in places
where glusterd is restarted.
Change-Id: I6cb50dc84d306194b6bd363daf7ae0ebd6bb12ee
Signed-off-by: Vinayak Papnoi <vpapnoi@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There can be a case where due to a failed tearDown of a previous
test case, the snapshot creation might fail. This can happen when
a redundant snapshot with the same name is present.
This fix includes the changed snapshot names along with tearDown
for deleting the snapshots created in the test case
"test_snap_list_after_restart.py".
This fix also includes the method 'wait_for_glusterd_to_start'
where there is a restart of glusterd.
Adding a check for validation of snapshots using snapname.
Change-Id: If8b48a12bd067ad54dba742eeb88444beaf5f153
Signed-off-by: Vinayak Papnoi <vpapnoi@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The existing method does not have an option to use the volume name
to get the list of snapshots. Without the option to provide the
volume name, it is not possible to get the snapshots specific to a
volume.
With this fix, there is an addition of a kwarg 'volname' for the
method 'get_snap_list' with which the snapshots of a particular
volume can be listed. This option is necessary in some test cases
where the user needs to get the list of snapshots specific to a
particular volume.
This fix also includes a small typo error in the description of
a method.
Change-Id: Ib0aeaf417a37142ebe36847e27bcd60683f325e7
Signed-off-by: Vinayak Papnoi <vpapnoi@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>
|
|
|
|
|
|
|
|
|
|
|
| |
The method wait_for_peers_to_connect checks whether it's Arg
'servers' is a string. It should rather be checking if the arg is
a list and accordingly make the changes if required.
Changed the Arg 'servers' validation type from 'str' to 'list'.
Change-Id: I74ddb489cd286c1f2531af478f8811759173f01e
Signed-off-by: Vinayak Papnoi <vpapnoi@redhat.com>
|
|
|
|
|
|
|
| |
Change-Id: Id0cdda175865c84bef917211560acee8ea10fe7b
Co-authored-by: Vitalii Koriakov <vkoriako@redhat.com>
Signed-off-by: Vitalii Koriakov <vkoriako@redhat.com>
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
|
|
|
| |
The function will return the gluster version in float for the host
it is called on. It accepts the host IP as a parameter.
Change-Id: Icf48cf41031f0fa06cf3864e9215c5a960bb7c64
Signed-off-by: sayaleeraut <saraut@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
available space
Testcase:
- note the current available space on the mount
- create 1M file on the mount
- note the current available space on the mountpoint and compare
with space before creation
- remove the file
- note the current available space on the mountpoint and compare
with space before creation
Change-Id: Iff017039d1888d03f067ee2a9f26aff327bd4059
Co-authored-by: Vitalii Koriakov <vkoriako@redhat.com>
Signed-off-by: Vitalii Koriakov <vkoriako@redhat.com>
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Description: This test creates directories and subdirectories
and their copies at mount point and checks for layout and
directory information at all subvols.
Change-Id: Iabce046e7ce63c5428061bcefb98d06359dac8bd
Co-authored-by: Kartik_Burmee <kburmee@redhat.com>
Signed-off-by: Kartik_Burmee <kburmee@redhat.com>
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The test case 'test_256_snapshots.py' contains hard-coded commands
which can be run using the existing library functions from the
snap_ops.py library, such as:
* snap_create
* set_snap_config
This patch includes usage of appropriate functions in place of the
hard-coded commands along with various cosmetic changes.
Change-Id: I6da7444d903efd1be6582c8fea037a5c4fddc111
Signed-off-by: Vinayak Papnoi <vpapnoi@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Verify file/directory creation or deletion on volume
doesn't leave behind any broken symlinks on the bricks.
Steps:
1.Create 10 files and directories.
2.Check if broken symlinks are present on brick path.
3.Remove files and directories.
4.Check if broken symlinks are present on brick path.
Change-Id: If65a5eaa0fe0e1b96f002496744580e0ede5a4af
Co-authored-by: Sunil Kumar Acharya <sheggodu@redhat.com>
Signed-off-by: Sunil Kumar Acharya <sheggodu@redhat.com>
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
|
|
|
|
| |
library files
Moving waiters from testcase and adding it as function in library in gluster_init and peer_ops.
Change-Id: I5ab1e42a5a0366fadb399789da1c156d8d96ec18
Signed-off-by: Sri Vignesh <sselvan@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This addition is to aid the test cases which validate the existence
of snapshots under the '.snaps' directory. The existing method i.e.
'uss_list_snap' does not help in getting the list of snapshots
and instead just recursively performs 'ls' under the .snaps
directory.
This method will return a list of directory names present under
the '.snaps' directory.
Change-Id: I808131788df975ca243ac5721713492422af0ab8
Signed-off-by: Vinayak Papnoi <vpapnoi@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
'ExecutionError' must not be used inside the test case function.
Replacing 'ExecutionError' raised in test case function with
assert statements.
Changed the name of the snapshots being created to something
specific to the test case to avoid redundancy with the other
test cases.
Segregating the setUp and tearDown functions.
Adding the description for the test case function.
Changing the test case name for something specific to the
component (snapshot).
Fixing the typo errors and various cosmetic changes.
Change-Id: I24f271cdb7a180ecde8efa21185b4a8f807be203
Signed-off-by: Vinayak Papnoi <vpapnoi@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adding function is_broken_symlinks_present_on_bricks()
to brick_libs for checking if backend bricks have
broken symlinks or not.
Function added based on reviews on patch [1].
[1] https://review.gluster.org/#/c/glusto-tests/+/20460/8/tests/functional/bvt/test_verify_volume_sanity.py
Change-Id: I1b512702ab6bc629bcd967ff34ad7ecfddfc1af1
Signed-off-by: kshithijiyer <kshithij.ki@gmail.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>
|
|
|
|
|
| |
Change-Id: Idcc40442869cb3e44873625887409592d9e0710d
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
When quota limit is reached, if an add-brick followed by rebalance is
performed, then the previous quota limits should be honoured.
No new files should be created because the quota limits have reached.
Change-Id: I37da02ce292e6a7bc614cf888aac69ea109f84f5
Signed-off-by: Sanoj Unnikrishnan <sunnikri@redhat.com>
Co-authored-by: Sanoj Unnikrishnan <sunnikri@redhat.com>
Signed-off-by: Vinayak Papnoi <vpapnoi@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The library shared_storage_ops.py contains two functions which are
similar and do not serve a completely unique purpose. These functions
are "is_shared_volume_mounted" and "is_shared_volume_unmounted".
Here, the function "is_shared_volume_unmounted" needs to be removed
because any test case can be validated using assertion for the
function "is_shared_volume_mounted".
The function "disable_shared_storage" has an incorrect description.
This description has been changed with the fix.
There are minor cosmetic changes as well which have been fixed to make
the code lightweight.
Change-Id: I796831a95c205fef49a841eb14f5a15079f9a6b0
Signed-off-by: Vinayak Papnoi <vpapnoi@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Checking the status of snapshot informations
before and after restarting glusterd.
Test case:
1. Create volume
2. Create two snapshots with description
3. Check snapshot status informations with snapname,
volume name and without snap name/volname.
4. Restart glusterd on all nodes
5. Follow step3 again and validate snapshot
History of the patch:
The testcase was failing in CentOS-ci due to bug [1], However this
bug was defered for fix. Post updating the code with the workaround
mentioned below, it was observed that glusterd restart was failing
due to bug [2]. And now as the both the bugs are fixed this patch
is safe to merge.
Workaround:
Now the only possible workaround for this is to
modify the function get_snap_info_by_volname()
to not use --xml option and directly run the command which
will dump the output as string which can be directly
used in the testcase. This modification in the library function
will not impact any other testcase.
Links:
[1] https://bugzilla.redhat.com/show_bug.cgi?id=1590797
[2] https://bugzilla.redhat.com/show_bug.cgi?id=1782200
Change-Id: I26ac0aaa5f6c8849fd9de41f506d6d13fc55e166
Co-authored-by: srivickynesh <sselvan@redhat.com>
Signed-off-by: srivickynesh <sselvan@redhat.com>
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>
|
|
|
|
|
| |
Change-Id: I08fd627df3c099bc0c87d592c3f78bdc0ec9c7cc
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
| |
Change-Id: I33e75fe773ee26a2d205f5ebd29198968bfe6c59
Signed-off-by: ubansal <ubansal@redhat.com>
|
|
|
|
|
| |
Change-Id: I36949296607b09e66ce0a56029359481c0b76b8b
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
| |
Change-Id: I0c20652d598c198b58871724e354f2fe803c1243
Signed-off-by: Bala Konda Reddy M <bmekala@redhat.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: Ic0a5c1469e9951ee9b2472714004b05e2c5fdc94
Signed-off-by: Sri Vignesh <sselvan@redhat.com>
|
|
|
|
|
|
|
|
| |
Please refer to the commit message of the below patch:
https://review.gluster.org/#/c/glusto-tests/+/23902/
Change-Id: I1df0324dac2da5aad4064cc72ef77dcb5bf67e4f
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
|
|
|
| |
Please refer to the commit message of the below patch:
https://review.gluster.org/#/c/glusto-tests/+/23902/
Change-Id: Icf32bb20b7eaf2eabb07b59be813997a28872565
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
|
|
|
| |
Please refer to the commit message of the below patch:
https://review.gluster.org/#/c/glusto-tests/+/23902/
Change-Id: I0d2eeb978c6757d6d910ebfe21b07811bf74b80a
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Removing script_local_path as both script_local_path and
cls.script_upload_path hold the same values which makes
each script slow. This will help decrease the execution
time of the test suite.
PoC:
$cat test.py
a = ("/usr/share/glustolibs/io/scripts/"
"file_dir_ops.py")
b = ("/usr/share/glustolibs/io/scripts/"
"file_dir_ops.py")
$time python test.py
real 0m0.063s
user 0m0.039s
sys 0m0.019s
$cat test.py
a = ("/usr/share/glustolibs/io/scripts/"
"file_dir_ops.py")
$time python test.py
real 0m0.013s
user 0m0.009s
sys 0m0.003s
Code changes needed:
From:
script_local_path = ("/usr/share/glustolibs/io/scripts/"
"file_dir_ops.py")
cls.script_upload_path = ("/usr/share/glustolibs/io/scripts/"
"file_dir_ops.py")
ret = upload_scripts(cls.clients, script_local_path)
To:
cls.script_upload_path = ("/usr/share/glustolibs/io/scripts/"
"file_dir_ops.py")
ret = upload_scripts(cls.clients, cls.script_upload_path)
Change-Id: I7908b3b418bbc929b7cc3ff81e3675310eecdbeb
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adding a function upload_file_dir_ops() to upload file_dir_ops.py
to all clients. This is to remove the redundant code given below:
```
g.log.info("Upload io scripts to clients %s for running IO on "
"mounts", cls.clients)
cls.script_upload_path = ("/usr/share/glustolibs/io/scripts/"
"file_dir_ops.py")
ret = upload_scripts(cls.clients, cls.script_upload_path)
if not ret:
raise ExecutionError("Failed to upload IO scripts to clients %s" %
cls.clients)
g.log.info("Successfully uploaded IO scripts to clients %s",
cls.clients)
```
Change-Id: I28ca528bfbaea20139808b7af812559715a27022
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Adding the following check functions:
1. is_passwordless_ssh_configured() - To check if passwordless
ssh is configured or not between given nodes with a given user.
2. is_group_exists() - To check if group is present on servers
or not.
3. is_user_exists() - To check if a given user is present on
servers or not.
- Adding functionality to support both sync methods.
- Adding nonrootpass parameter to georep_prerequisites() as in
the previous logic the password for the non-root and the root
user were the same which might not always be the case.
- Fixing georep_config_get() and georep_config_set() to take
non-root user as well.
Change-Id: I8a42d48d56690040dd7f78d1fb919029c0d6e61d
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
| |
Change-Id: I2e85670e50e3dab8727295c34aa6ec4f1326c19d
Signed-off-by: Valerii Ponomarov <kiparis.kh@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
isinstance() was missing at some places due to which
variable type check for string was failing
in the following functions:
1.set_passwd()
2.group_add()
3.add_user()
Change-Id: Iafe47967f8d6df686c9ecdd6d87dac3c81bdb5db
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
|
|
|
| |
Changing tab to space in nfs_ganesha_client_setup.yml
playbook.
Change-Id: I87c8cacc87173b6b50ffc9b8e2927f0d04032d32
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix consists of following things:
- Add py2/3 compatibility
- Place imports into 3 different groups and reorder them alphabetically.
As it is written in the "pep8" [1].
[1] https://www.python.org/dev/peps/pep-0008/
Change-Id: Iad1c6c409d2711f8c9b2d929d29072953fd49d8e
Signed-off-by: Valerii Ponomarov <kiparis.kh@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Test case steps:
1. Set cluster.brick-multiplex to enabled.
2. Create and start 2 volumes of type 1x3 and 2x3.
3. Check if cluster.brick-multiplex is enabled.
4. Reset the cluster using "gluster v reset all".
5. Check if cluster.brick-multiplex is disabled.
6. Create a new volume of type 2x3.
7. Set cluster.brick-multiplex to enabled.
8. Stop and start all three volumes.
9. Check the if pids match and check if more
than one pids of glusterfsd is present.
Additional library fix:
Changing the command in check_brick_pid_matches_glusterfsd_pid()
as it won't work when brick-mux is enabled.
From:
cmd = ("ps -eaf | grep glusterfsd |
" "grep %s.%s | grep -v 'grep %s.%s'"
% (volname, brick_node, volname, brick_node))
To:
cmd = "pidof glusterfsd"
Change-Id: If7bdde13071732b176a0a2289635319571872e47
Co-authored-by: Vitalii Koriakov <vkoriako@redhat.com>
Signed-off-by: Vitalii Koriakov <vkoriako@redhat.com>
Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
|
|
|
|
| |
Change-Id: I1395e14d8d0aa0cc6097e51c64262fb481f36f05
Signed-off-by: Valerii Ponomarov <kiparis.kh@gmail.com>
|
|
|
|
|
| |
Change-Id: Ib414b8496ca65a48bbe42936e32a863c9c1072e4
Signed-off-by: Valerii Ponomarov <kiparis.kh@gmail.com>
|
|
|
|
|
| |
Change-Id: I44fe85519c8fd381064670e54dac8736107b0928
Signed-off-by: Valerii Ponomarov <kiparis.kh@gmail.com>
|
|
|
|
|
| |
Change-Id: Ic14be81f1cd42c470d2bb5c15505fc1bc168a393
Signed-off-by: Valerii Ponomarov <kiparis.kh@gmail.com>
|
|
|
|
|
| |
Change-Id: Ifad7d7f8e2e97bf327483b90dbf5a1cb855bc0dd
Signed-off-by: Valerii Ponomarov <kiparis.kh@gmail.com>
|
|
|
|
|
| |
Change-Id: I7a76e0c2e491caffd7ba1b648b47c4c6a687c89a
Signed-off-by: Valerii Ponomarov <kiparis.kh@gmail.com>
|