Sharing progress on python 3 work.

## 2 weeks ago
git checkout @{two.weeks.ago}
tox -e storage-py37
...
1448 passed, 103 skipped, 100 deselected, 322 xfailed, 236 warnings in 71.40 seconds

## Today
git checkout
tox -e storage-py37
...
1643 passed, 103 skipped, 100 deselected, 105 xfailed, 82 xpassed, 107 warnings in 79.72 seconds
Change:
passed: +195
skips: 0
xfail: -217
xpass: +107
warnings: -129

## XPASS

107 xpass are most likely easy fix, just remove the xfail() mark from the test or parameter.

Patches should not introduce new XPASS, you should remove all xfail() marks that a patch
fixes. To test that your patch do not introduce new XPASS, add this option to tox.ini:

[pytest]
xfail_strict = True

This converts XPASS to FAIL.

These modules need to be fixed:

$ egrep '^storage.+_test.py.+X' storage-py37.out 
storage/filevolume_test.py ...XXXxXXXXxXXX                               [ 19%]
storage/formatconverter_test.py XXXXXxxss                                [ 20%]
storage/merge_test.py XXXXXXxxxxXXxXxxxxxXxxxxxx                         [ 38%]
storage/nbd_test.py ssssssssssssX.                                       [ 49%]
storage/sd_manifest_test.py XXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx............ [ 65%]
storage/sdm_amend_volume_test.py xXxXxXxX                                [ 66%]
storage/sdm_copy_data_test.py xXXxxxxXXXXXxxxXXXxxXXxxXXx                [ 67%]
storage/sdm_merge_test.py xxxxXXX                                        [ 79%]
storage/sdm_update_volume_test.py xXxXxxXXxxXXxXxXxXxX.......            [ 81%]
storage/testlib_test.py xXXXxxXXXXXXXXxxxxxxxxxxxxxXxXxXxX..........     [ 87%]
storage/volume_metadata_test.py ..........................X............. [ 90%]


## xfail

We must fix these xfail before we can run OST. If we start running OST
we will waste days debugging OST. Debugging failing tests is 1000X times
faster.

$ egrep '^storage.+_test.py.+x' storage-py37.out
storage/blocksd_test.py ........x..........sssssssssss............       [  4%]
storage/blockvolume_test.py ...........xxxxxxxxx                         [  5%]
storage/fileutil_test.py ..xx....ss............................          [ 19%]
storage/filevolume_test.py ...XXXxXXXXxXXX                               [ 19%]
storage/formatconverter_test.py XXXXXxxss                                [ 20%]
storage/merge_test.py XXXXXXxxxxXXxXxxxxxXxxxxxx                         [ 38%]
storage/sd_manifest_test.py XXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx............ [ 65%]
storage/sdm_amend_volume_test.py xXxXxXxX                                [ 66%]
storage/sdm_copy_data_test.py xXXxxxxXXXXXxxxXXXxxXXxxXXx                [ 67%]
storage/sdm_merge_test.py xxxxXXX                                        [ 79%]
storage/sdm_update_volume_test.py xXxXxxXXxxXXxXxXxXxX.......            [ 81%]
storage/testlib_test.py xXXXxxXXXXXXXXxxxxxxxxxxxxxXxXxXxX..........     [ 87%]


## Skips

Skips should be used only when test cannot run on specific environment,
but I think we have some wrong skips that should have been xfail.

$ egrep '^storage.+_test.py.+s' storage-py37.out
storage/backends_test.py ss                                              [  2%]
storage/blockdev_test.py ssss....s                                       [  2%]
storage/blocksd_test.py ........x..........sssssssssss............       [  4%]
storage/devicemapper_test.py s.                                          [  9%]
storage/fileutil_test.py ..xx....ss............................          [ 19%]
storage/formatconverter_test.py XXXXXxxss                                [ 20%]
storage/loopback_test.py ssss                                            [ 31%]
storage/lvm_test.py ....................ssssssssssssssssssss             [ 33%]
storage/lvmfilter_test.py .....ss..........                              [ 35%]
storage/managedvolume_test.py ssssssssssssssssss....                     [ 36%]
storage/misc_test.py .................sssssssss...............ssss...... [ 41%]
storage/mount_test.py .........ss........ssssss                          [ 47%]
storage/nbd_test.py ssssssssssssX.                                       [ 49%]
storage/udev_multipath_test.py .......................s                  [ 88%]


## Warnings

See "warnings summary" in pytest output.

Looks less useful, report issues in packages we use instead of issues in our code.
But this may be an issue using old versions of packages.

See attached results created with:

tox -e storage-py37 > storage-py37.out 2>&1


Nir