Merge lp://staging/~wesley-wiedenmeier/curtin/partial-testing into lp://staging/~curtin-dev/curtin/trunk

Proposed by Wesley Wiedenmeier
Status: Work in progress
Proposed branch: lp://staging/~wesley-wiedenmeier/curtin/partial-testing
Merge into: lp://staging/~curtin-dev/curtin/trunk
Diff against target: 4195 lines (+3486/-164)
55 files modified
Makefile (+12/-0)
curtin/block/__init__.py (+18/-6)
curtin/commands/block_meta.py (+2/-1)
curtin/commands/curthooks.py (+21/-8)
curtin/commands/install.py (+15/-0)
curtin/reporter/events.py (+4/-9)
curtin/util.py (+12/-6)
doc/devel/README-storagetests.txt (+191/-0)
examples/storagetests/allindata.yaml (+222/-0)
examples/storagetests/basicdos.yaml (+63/-0)
examples/storagetests/bcache_basic.yaml (+52/-0)
examples/storagetests/bcache_double.yaml (+75/-0)
examples/storagetests/bcache_shared_cache.yaml (+71/-0)
examples/storagetests/crypt_basic.yaml (+43/-0)
examples/storagetests/diskonlydos.yaml (+8/-0)
examples/storagetests/diskonlygpt.yaml (+8/-0)
examples/storagetests/formats_on_lvm.yaml (+67/-0)
examples/storagetests/gpt_boot.yaml (+58/-0)
examples/storagetests/gpt_simple.yaml (+54/-0)
examples/storagetests/logical.yaml (+84/-0)
examples/storagetests/lvm.yaml (+51/-0)
examples/storagetests/lvm_mult_lvols_on_pvol.yaml (+74/-0)
examples/storagetests/lvm_multiple_vg.yaml (+64/-0)
examples/storagetests/lvm_with_dash.yaml (+50/-0)
examples/storagetests/mdadm.yaml (+59/-0)
examples/storagetests/mdadm_bcache.yaml (+135/-0)
examples/storagetests/mdadm_lvm.yaml (+112/-0)
examples/storagetests/whole_disk_btrfs_xfs.yaml (+19/-0)
examples/storagetests/whole_disk_ext.yaml (+27/-0)
examples/storagetests/whole_disk_fat.yaml (+27/-0)
examples/storagetests/whole_disk_swap.yaml (+11/-0)
tests/storagetest_runner/__init__.py (+471/-0)
tests/storagetest_runner/test_advanced_format.py (+43/-0)
tests/storagetest_runner/test_basic.py (+38/-0)
tests/storagetest_runner/test_nvme.py (+35/-0)
tests/storagetest_runner/test_scsi.py (+36/-0)
tests/storagetests/__init__.py (+261/-0)
tests/storagetests/test_bcache.py (+17/-0)
tests/storagetests/test_clear_holders.py (+105/-0)
tests/storagetests/test_complex.py (+17/-0)
tests/storagetests/test_disk_partitions.py (+21/-0)
tests/storagetests/test_format.py (+19/-0)
tests/storagetests/test_layers_on_mdadm.py (+21/-0)
tests/storagetests/test_lvm.py (+16/-0)
tests/storagetests/test_raid.py (+19/-0)
tests/storagetests/verifiers.py (+222/-0)
tests/unittests/test_reporter.py (+4/-8)
tests/vmtests/__init__.py (+87/-22)
tests/vmtests/image_sync.py (+1/-1)
tools/curtin-log-print (+152/-0)
tools/launch (+1/-1)
tools/report-webhook-logger (+0/-100)
tools/report_webhook_logger.py (+174/-0)
tools/run-pep8 (+6/-1)
tools/run-pyflakes (+11/-1)
To merge this branch: bzr merge lp://staging/~wesley-wiedenmeier/curtin/partial-testing
Reviewer Review Type Date Requested Status
Server Team CI bot continuous-integration Approve
curtin developers Pending
Review via email: mp+297958@code.staging.launchpad.net

Description of the change

Add storagetest test suite to isolate storage configuration

To post a comment you must log in.
Revision history for this message
Wesley Wiedenmeier (wesley-wiedenmeier) wrote :

The storagetests are now at a point where they can be fully run and the results collected just using 'make run_storagetests'. The storagetest_runner uses the same general structure as vmtests so it shouldn't require any modifications of the test system other than adding it to the list of things to run.

The storagetest_runner generates a tarball of curtin and issues cloud-config scripts to the target image to retrieve and extract that tarball as it boots. The storagetests are then run, and use curtin.reporter to report success and failure to the test runner, as well as log files generated by block_meta while the test was running

Revision history for this message
Wesley Wiedenmeier (wesley-wiedenmeier) wrote :

I think that the storagetests and the storagetest_runner are ready for review now, this added a lot of verification for storage configuration and makes it easy to add quite a bit more. The test runner works pretty well, and I have managed to run all of the tests in about 2 hours with 4 proceses. I think that quite a bit of the time there was used waiting for apt-get on a bad internet connection. I haven't tried with a local repo mirror yet though.

There are still some outstanding issues running some of the actual test cases, but these will require bugfixes on curtin to correct. The test cases which cannot be run right now are disabled in the test suite, and can be enabled when the bugs they cause are fixed.

There are some other branches pending merge that this branch depends on, I will go through and make a list of those tomorrow.

I also added a doc to doc/devel/ about storagetests and storagetest_runner that was based on the doc for vmtests.

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Hi Wesley,

I just ran your branch to take a look and found some minor things I'd ask you if you consider them useful to add.

The json files - while being json and not intended for humans - would still be much more readable it they had some line breaks. Like what "python -m json.tool /tmp/foo/storage-events.json" gives me would be great.

Then in the log a few outputs seem not to go through LOG.
I have a few questions about some of them:

1. Parse storage tests reporting data and ensure that all tests passed ... ok
Should get a "2016-07-12 07:15:09,184 - vmtests - INFO -" prefix like the others IMHO.

2. 10.245.168.14 - - [12/Jul/2016 07:15:22] "GET /storagetest-reporting.json HTTP/1.1" 200 -
10.245.168.14 - - [12/Jul/2016 07:15:22] "GET /storagetest-disk-conf.json HTTP/1.1" 200 -
10.245.168.14 - - [12/Jul/2016 07:15:22] "GET /curtin.tar.xz HTTP/1.1" 200 -

What are thos actually doing, it is always the same text - Could be something like:
2016-07-12 07:15:09,184 - vmtests - INFO - fetching json reporting
2016-07-12 07:15:09,184 - vmtests - INFO - fetching json disk config
2016-07-12 07:15:09,184 - vmtests - INFO - fetching foo tarball

3. just after "10.245.168.14 - - [12/Jul/2016 07:15:22] "GET /curtin.tar.xz HTTP/1.1" 200 -" is the longest "wait" duration in the tests. There should be some sort of "doing the test now" or anything else that somebody looking at it knows what is taking the time. This doesn't have to be step 1,2,3,4,../20 - just after the "Booting target image" a short "running test XY now".

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Some comments when reading through the code

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

For a speed check I tried to see if it has issues going concurrently.
I think I didn't find the right way to call it - I tried:
rm -rf output/; CURTIN_VMTEST_KEEP_DATA_FAIL=all ./tools/jenkins-runner -vv --nologcapture --processes=10 --process-timeout=3600 tests/storagetest_runner/

I found that with this call the section following section tries to write an infinitely huge file:
Building tarball of curtin: /mnt/nvme/curtin-wesley/partial-testing

Wanted to let you know just in case that infinite write is a bug.

Later on I found this in the doc:
nosetests3 --processes=-1 tests/storagetest_runner

That gave me a stuck system - maybe too much cpus (6x2threads) and by that too much output?
In any case the output indenting was totally broken - I had to reset my console to scroll again.

That failed me then with errors, not sure if that is bad or just a wrong call - here is the log: http://paste.ubuntu.com/19157752/
I realized that since this first "hanging" processes -1 run all tests were failing this way now.
All on:
Traceback (most recent call last):
  File "/mnt/nvme/curtin-wesley/partial-testing/tests/storagetest_runner/__init__.py", line 385, in test_reported_results
    self.assertTrue(os.path.isfile(self.storage_log))
AssertionError: False is not true

Debugging gave me: "(qemu) qemu-system-x86_64: cannot set up guest memory 'pc.ram': Cannot allocate memory"
That likely also was my first hanging - but that could be fixed by freeing some up :-)
But I wonder if we need some sort of "is enough mem avail" prior to call qemu?

In the following retry it left me again with a good return code, but plenty of running qemu processes up.
That really needs some hardening.

Then I wanted to step down and did only:
nosetests3 --processes=2 tests/storagetest_runner
To check if it works at all.
I got the same console that gets misformatted after a while ending with
Ran 0 tests in 112.494s

Since all fails keep the logs around here the log file: http://paste.ubuntu.com/19158435/

TL;DR: concurrent execution needs some fixes and probably a bit hardening against shooting itself :-)

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

I ran checkers and found several of the following (no need to mark them all inline):

tests/storagetest_runner/__init__.py|101 col 16 warning| [unused-variable] Unused variable '_err' [python/pylint]

=> if really unused a _ would be even better.

tests/storagetest_runner/__init__.py|208 col 18 warning| [logging-format-interpolation] Use % formatting in logging functions and pass the % parameters as arguments

=> since log would format for you ...

I know pylint it is noisy and sometimes even disagrees with other checkers, but most of these are also only a search and replace away so probably worth to fix.

I'm not so sure about
tests/storagetests/__init__.py|186 col 16 warning| [unidiomatic-typecheck] Using type() instead of isinstance() for a typecheck. [python/pylint]

tests/storagetests/__init__.py|219 col 24 warning| [redefined-builtin] Redefining built-in 'type' [python/pylint]

I already complained about short names before, this is another example (there are more like mp, fp, e, ...)
tests/storagetests/__init__.py|224 col 13 warning| [invalid-name] Invalid variable name "d" [python/pylint]

A totally different one is:
tests/storagetests/verifiers.py|15 col 13 error| [no-member] Instance of 'BasicTests' has no 'assertIsNotNone' member [python/pylint]
That never is an issue so far, as all inheriting classes of e.g. BasicTests also inherit from class BaseStorageTest(unittest.TestCase). But to make sure the methods are in scope would it hurt letting the verifiers also derive from unittest.TestCase?

One that is probably worth for sure to avoid later issues:
tests/storagetests/__init__.py|82 col 31 warning| [redefined-outer-name] Redefining name 'reporter' from outer scope (line 2) [python/pylint]

Revision history for this message
Wesley Wiedenmeier (wesley-wiedenmeier) wrote :

Hey, thanks for looking through and reviewing, I'm reading through the diff comments atm, I'll reply inline.

Revision history for this message
Wesley Wiedenmeier (wesley-wiedenmeier) wrote :
Download full text (3.9 KiB)

> For a speed check I tried to see if it has issues going concurrently.
> I think I didn't find the right way to call it - I tried:
> rm -rf output/; CURTIN_VMTEST_KEEP_DATA_FAIL=all ./tools/jenkins-runner -vv
> --nologcapture --processes=10 --process-timeout=3600 tests/storagetest_runner/
>
> I found that with this call the section following section tries to write an
> infinitely huge file:
> Building tarball of curtin: /mnt/nvme/curtin-wesley/partial-testing
>
> Wanted to let you know just in case that infinite write is a bug.

Thanks for pointing that out, that's definintely a bug in how I generate the curtin tarball. I hadn't run before in the jenkins runner, because sparse files don't work right in my /home partition and I didn't want the tests writing huge files there, but yeah, the jenkins runner puts the curtin tmp dir inside the curtin dir being tested, so it would cause tar to try to include the tarball its generating in itself. I need to make the tests aware of what environment they're running in so they know to omit that directory.

> Later on I found this in the doc:
> nosetests3 --processes=-1 tests/storagetest_runner
>
> That gave me a stuck system - maybe too much cpus (6x2threads) and by that too
> much output?
> In any case the output indenting was totally broken - I had to reset my
> console to scroll again.

Yeah, I've seen the output get messed up too, but I think what is happening is just that the processes are racing to write to stdout and the data they're writing is getting corrupted somehow. I haven't tried with more than 4 processes at once, so there may be some bugs that occur in that case. I'll look through the log and try to see if I can figure out what was going wrong there.

> That failed me then with errors, not sure if that is bad or just a wrong call
> - here is the log: http://paste.ubuntu.com/19157752/
> I realized that since this first "hanging" processes -1 run all tests were
> failing this way now.
> All on:
> Traceback (most recent call last):
> File "/mnt/nvme/curtin-wesley/partial-
> testing/tests/storagetest_runner/__init__.py", line 385, in
> test_reported_results
> self.assertTrue(os.path.isfile(self.storage_log))
> AssertionError: False is not true
>
> Debugging gave me: "(qemu) qemu-system-x86_64: cannot set up guest memory
> 'pc.ram': Cannot allocate memory"
> That likely also was my first hanging - but that could be fixed by freeing
> some up :-)
> But I wonder if we need some sort of "is enough mem avail" prior to call qemu?

Yeah, the test runner eats up memory, not quite as much as the vmtests do while the target system tarball is being extracted in the vm though. A check would definitely be good, I'll look into how to write that.

Watching a vm trying to run from swap isn't fun :)

> In the following retry it left me again with a good return code, but plenty of
> running qemu processes up.
> That really needs some hardening.
>
> Then I wanted to step down and did only:
> nosetests3 --processes=2 tests/storagetest_runner
> To check if it works at all.
> I got the same console that gets misformatted after a while ending with
> Ran 0 tests in 112.494s
>
> Since all fails keep th...

Read more...

Revision history for this message
Wesley Wiedenmeier (wesley-wiedenmeier) wrote :

> Hi Wesley,
>
> I just ran your branch to take a look and found some minor things I'd ask you
> if you consider them useful to add.
>
> The json files - while being json and not intended for humans - would still be
> much more readable it they had some line breaks. Like what "python -m
> json.tool /tmp/foo/storage-events.json" gives me would be great.

Yeah, that makes sense. I'll switch it to use something like 'json.dump(... indent=4)'

> Then in the log a few outputs seem not to go through LOG.
> I have a few questions about some of them:
>
> 1. Parse storage tests reporting data and ensure that all tests passed ... ok
> Should get a "2016-07-12 07:15:09,184 - vmtests - INFO -" prefix like the
> others IMHO.

Oh, that's the docstring for the test function, I think that's just added to nosetests's output when running with '-vv'. It may be good to emit a message through LOG though and remove the docstring cause the times could be good for debugging.

> 2. 10.245.168.14 - - [12/Jul/2016 07:15:22] "GET /storagetest-reporting.json
> HTTP/1.1" 200 -
> 10.245.168.14 - - [12/Jul/2016 07:15:22] "GET /storagetest-disk-conf.json
> HTTP/1.1" 200 -
> 10.245.168.14 - - [12/Jul/2016 07:15:22] "GET /curtin.tar.xz HTTP/1.1" 200 -
>
> What are thos actually doing, it is always the same text - Could be something
> like:
> 2016-07-12 07:15:09,184 - vmtests - INFO - fetching json reporting
> 2016-07-12 07:15:09,184 - vmtests - INFO - fetching json disk config
> 2016-07-12 07:15:09,184 - vmtests - INFO - fetching foo tarball

I'm not sure if I can actually change that or not, those messages come from http.server, and I don't know if there is an interface in it to handle custom messages, I'll check in the source for it though.

> 3. just after "10.245.168.14 - - [12/Jul/2016 07:15:22] "GET /curtin.tar.xz
> HTTP/1.1" 200 -" is the longest "wait" duration in the tests. There should be
> some sort of "doing the test now" or anything else that somebody looking at it
> knows what is taking the time. This doesn't have to be step 1,2,3,4,../20 -
> just after the "Booting target image" a short "running test XY now".

Yeah, it would definitely be nice to have a bit of debug there. I can add in optional logging to tools.report_webhook_logger to handle outputting events to stdio as well as the logfile when they're received, that should work okay

Revision history for this message
Wesley Wiedenmeier (wesley-wiedenmeier) wrote :
Download full text (3.6 KiB)

> I ran checkers and found several of the following (no need to mark them all
> inline):
>
> tests/storagetest_runner/__init__.py|101 col 16 warning| [unused-variable]
> Unused variable '_err' [python/pylint]
>
> => if really unused a _ would be even better.

Yeah, that makes sense. I just got in the habit of writing _err from block meta, but I should probably clean up some of the variable names there too. For the most part the err part of the util.subp return is never used.

> tests/storagetest_runner/__init__.py|208 col 18 warning| [logging-format-
> interpolation] Use % formatting in logging functions and pass the % parameters
> as arguments
>
> => since log would format for you ...
>
> I know pylint it is noisy and sometimes even disagrees with other checkers,
> but most of these are also only a search and replace away so probably worth to
> fix.

Yeah, I can use the old style format specifiers there, I'll switch that over.

> I'm not so sure about
> tests/storagetests/__init__.py|186 col 16 warning| [unidiomatic-typecheck]
> Using type() instead of isinstance() for a typecheck. [python/pylint]

Right yeah, I'll switch that, isinstance reads nicer.

> tests/storagetests/__init__.py|219 col 24 warning| [redefined-builtin]
> Redefining built-in 'type' [python/pylint]

Oh, yeah, that was for error type in __exit__, I'll rename that to 'etype'

> I already complained about short names before, this is another example (there
> are more like mp, fp, e, ...)
> tests/storagetests/__init__.py|224 col 13 warning| [invalid-name] Invalid
> variable name "d" [python/pylint]

Yeah, I think some of these are just trying to keep the line from going over 80, but some were probably in the list comprehensions, where the scope of the var is so limited it should be okay. I'll switch everything outside of comprehensions over to long names real quick, thanks for bringing that up.

>
> A totally different one is:
> tests/storagetests/verifiers.py|15 col 13 error| [no-member] Instance of
> 'BasicTests' has no 'assertIsNotNone' member [python/pylint]
> That never is an issue so far, as all inheriting classes of e.g. BasicTests
> also inherit from class BaseStorageTest(unittest.TestCase). But to make sure
> the methods are in scope would it hurt letting the verifiers also derive from
> unittest.TestCase?

I guess the verifiers could inherit from TestCase, but I think it may be cleaner for them not to, partly just because that would require '__test__ = False' in all of them to prevent nosetests3 from trying to run them as individual tests. Also, because the BaseStorageTest class overrides the TestCase.run() method, if the verifier classes were to inherit from TestCase and were listed as parents of the individual test classes after the BaseStorageTest, I think that the call to super() in BaseStorageTest.run() would mess up, but I'm not 100% sure there. I should probably do something like define an __init__ for the verifier classes that checks something like 'if not isinstance(self, TestCase)' and throws an error to make the verifiers unusable outside of the test classes.

> One that is probably worth for sure to avoid later issues:
> tests/storagetests/__init__.p...

Read more...

Revision history for this message
Wesley Wiedenmeier (wesley-wiedenmeier) wrote :

Replied to some of the inline commments

471. By Wesley Wiedenmeier

Fix typo in README-storagetests.txt

472. By Wesley Wiedenmeier

Merge in more recent revision of lp:~wesley-wiedenmeier/curtin/trusty-preserve
for cleaner handling of blkid failure in disk_handler preserve code on trusty

473. By Wesley Wiedenmeier

Use util.json_dumps instead of json.dumps for json formatting for storage tests
as it sets indentation levels nicely

474. By Wesley Wiedenmeier

replaced docstring in storagetest_runner.test_reporting_data with LOG.info
message to get a timestap on the output from it in nosetests

475. By Wesley Wiedenmeier

Cleanups based on pylint

476. By Wesley Wiedenmeier

In storagetest_runner, when building curtin tarball, exclude the 'output' dir
so that tar does not try to create a tarball recursively when using jenkins
runner

Revision history for this message
Wesley Wiedenmeier (wesley-wiedenmeier) wrote :

I just pushed some cleanup for the comments posted. Not everything's been addressed yet, but the rest I'll get to tomorrow.

Just so it doesn't get lost, the diff comments are on revision 470.

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
477. By Wesley Wiedenmeier

Supress server.SimpleHTTPRequestHandler logging messages

478. By Wesley Wiedenmeier

some cleanup in block based on diff comments

479. By Wesley Wiedenmeier

Re merge from lp:~wesley-wiedenmeier/curtin/curtin-fix-sysfs-partition-data to
pull in cleaner variable handling

480. By Wesley Wiedenmeier

better handling of test_py_ver in storagetest_runner.gen_user_data

481. By Wesley Wiedenmeier

sp

482. By Wesley Wiedenmeier

Updated storagetest_runner documentation with complete list of environment
variables used in vmtests that are still applicable to storagetest_runner

483. By Wesley Wiedenmeier

Wait until enough memory is available before starting tests

 - tools/launch: in Usage() state that --mem arg is in Mb not Kb, as this is
   what qemu takes as input
 - vmtests/__init__.py:
   - add the function stall_if_not_enough_memory()
     this function gets free memory from /proc/meminfo and if less than what is
     required, delays then tries again up to a configurable maximum amount of
     time until enough memory is available to start the tests. if the maximum
     amount of delay time is reached and there still is not enough memory
     available it raises an error that stops the vmtest
   - add environment configuration variables CURTIN_VMTEST_INSTANCE_MEMORY and
     CURTIN_VMTEST_MEMORY_MAX_STALL to control how much memory to allocate to
     the test vm and how long to wait until there is enough memory available
   - for both the tools/launch and tools/xkvm command, specify how much memory
     qemu should use based on the value of CURTIN_VMTEST_INSTANCE_MEMORY
 - storagetest_runner/__init__.py: use the stall_if_not_enough_memory()
   function from vmtests and specify how much memory used based on the vmtest
   environment variable

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
484. By Wesley Wiedenmeier

Add trusty test interactive

485. By Wesley Wiedenmeier

Enable dos logical/extended pattitioning test

486. By Wesley Wiedenmeier

Enable trusty storagetest_runner instances as lp: #1596384 only occurs under
really heavy loads on a system without enough resources to run the tests
properly, and should not affect the test server

487. By Wesley Wiedenmeier

Instead of parsing /proc/meminfo for vmtests.stall_if_not_enough_memory, use
'free -m'

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Scott Moser (smoser) wrote :

i really like the goal here.
some comments inline.

488. By Wesley Wiedenmeier

Remove -w flag from free cmd in stall_if_not_enough_memory

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Wesley Wiedenmeier (wesley-wiedenmeier) wrote :

Thanks for reviewing. I went through and replied to the diff comments, I'll get most of them handled soon, one or two may take a bit longer. Just so they aren't lost because of future commits, the diff comments are at: r487

489. By Wesley Wiedenmeier

Merge from lp:~wesley-wiedenmeier/curtin/trusty-preserve to get better
formatting of log messages in disk_handler without using \

490. By Wesley Wiedenmeier

Use encode=False rather than .decode() in image sync output

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
491. By Wesley Wiedenmeier

renamed some of the storagetests configs with non descriptive names

492. By Wesley Wiedenmeier

In storagetest_runner, don't use make to start tests, use nosetests directly,
to avoid having to install make

493. By Wesley Wiedenmeier

Remove encoding from util.json_dumps as it isn't actually needed anywhere
where util.json_dumps is used

494. By Wesley Wiedenmeier

Fixed call to util.json_dumps

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
495. By Wesley Wiedenmeier

Removed vmtests.stall_if_not_enough memory and associated varialbes and
documentation, as it has been moved into another branch to merge separately

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
497. By Wesley Wiedenmeier

Merge from trunk to resole conflict

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Wesley Wiedenmeier (wesley-wiedenmeier) wrote :
Download full text (4.4 KiB)

There are some branches that have already been merged into
this branch because they were neccessary for getting
storagetests working at all. Most of them are bug fixes,
except trunk.add-web-reporter-to-vmtests, which introduces
report_webhook_logger.CaptureReporting, to retrieve curtin
reporting from a test environment.

In addition, several bugs have already been found using the
current test configs for storagetests. Branches exist to
handle most of these. Those branches have not been merged
into this one, but once they have merged into trunk I can
enable the storagetests that reproduce those bugs.

Already Merged Branches:
lp:~wesley-wiedenmeier/curtin/trunk.add-web-reporter-to-vmtests
    merge into: lp:~raharper/curtin/trunk.add-web-reporter-to-vmtests
    reason: improvements to original logic for
            CaptureReporting and get_lan_ip, makes it
            possible to use tests with reporting in
            parallel by getting port number to bind to
            dynamically and uses ifconfig instead of
            'ip address' to get local lan ip in vmtests
lp:~raharper/curtin/trunk.add-web-reporter-to-vmtests
    merge into: lp:curtin
    reason: during vmtests, capture reporting events from
            curtin and verify that the events are recieved
            and properly formatted
lp:~wesley-wiedenmeier/curtin/curtin-fix-sysfs-partition-data
    merge info: lp:curtin
    reason: the block.sysfs_partition_data function is
            useful, and is used in storagetests, but the
            old implementation was only able to operate on
            the path to whole disks, not to give
            information about a single partition
lp:~wesley-wiedenmeier/curtin/trusty-preserve
    merge into: lp:curtin
    reason: fix handling of disk preservation on
            trusty/precise where blkid may not work
            correctly for virtio disks and some other
            special disks
lp:~wesley-wiedenmeier/curtin/1598310
    merge into: lp:curtin
    reason: (LP: 1598310) The current implementation of
            block.get_blockdev_sector_size fails when
            running on a path for which lsblk may give
            multiple results, such as a disk with
            partitions on it or a dos extended partition.
            This branch fixes this and adds unittests
lp:~wesley-wiedenmeier/curtin/1597522
    merge into: lp:curtin
    reason: (LP: 1597522) A fix that went into trunk a
            while ago as a work around for a bug in
            mkfs.vfat added a '-s' flag to partitioning
            commands, but did so on all filesystem
            commands, not just vfat ones. Some tools,
            like mkfs.ext4 silently ignored it, but it
            caused other tools, such as mkfs.xfs to fail
            and mkfs.btrfs to try to create a filesystem
            assuming the underlying disk had 1 byte blocks.
            This branch fixes that, and adds it to vmtests

Bugs found by storagetests fixed so far:
  - (LP: 1597522) Curtin passes -s flag to all mkfs cmds,
                  not just vfat
    lp:~wesley-wiedenmeier/curtin/1597522
        Already merged into partial-testing, but not
        in trunk
  - (LP: 1592962) U...

Read more...

498. By Wesley Wiedenmeier

Remove test_cciss from storagetest_runner, as it isn't properly reproducing the
cciss issue

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
499. By Wesley Wiedenmeier

Merge from trunk for tox env fix

500. By Wesley Wiedenmeier

Fix incorrectly named conf file

501. By Wesley Wiedenmeier

Added more challenging test of handling weird lvm names to test_clear_holders

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
502. By Wesley Wiedenmeier

Merge from trunk

503. By Wesley Wiedenmeier

Fix config file lvm_mult_lvols_on_pvol

504. By Wesley Wiedenmeier

Fix disk id for lvm_mult_lvols_on_pvol.yaml

505. By Wesley Wiedenmeier

Fixed disk id in expected_holders for mult_lvols_on_pvol.yaml

506. By Wesley Wiedenmeier

Merge from trunk

507. By Wesley Wiedenmeier

Merge from trunk

508. By Wesley Wiedenmeier

Removed ntfs test conf as creating ntfs volume writes ~10G of data and slows
tests down too much

509. By Wesley Wiedenmeier

Removed reference to ntfs test conf file in test_format

510. By Wesley Wiedenmeier

In test_clear_holders, use block.sys_block_path instead of no longer extant
block_meta.block_find_sysfs_path

511. By Wesley Wiedenmeier

Fixed up whole_disk_fat conf file (10G disk was too large to make a fat16
filesystem, so use vfat instead) and enabled fat conf file, as bug now fixed in
trunk

512. By Wesley Wiedenmeier

Add lots of 'wipe: superblock'

513. By Wesley Wiedenmeier

Merge from trunk

514. By Wesley Wiedenmeier

Get list of test deps from curtin.deps in storagetest_runner

515. By Wesley Wiedenmeier

Disable logical.yaml as it causes parted bug on advanced format disks

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Needs Fixing (continuous-integration)
516. By Wesley Wiedenmeier

Merge from trunk to bring in test fix

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
517. By Wesley Wiedenmeier

Remove tests on Wily as it is no longer supported

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
518. By Wesley Wiedenmeier

Remove all test references to reiserfs as not supported

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
519. By Wesley Wiedenmeier

For lvm_mult_lvols_on_pvol.yaml, replace dos extended/logical partitioning with
gpt, as the dos logical partitioning causes problems on advanced format disks
sometimes. This allows lvm handling to be tested even though dos
extended/logical has to be disabled

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
520. By Wesley Wiedenmeier

Merge from trunk

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
521. By Wesley Wiedenmeier

Remove accidental duplicate wipe statement in mdadm.yaml

522. By Wesley Wiedenmeier

Remove unneeded partitions in mdadm.yaml

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
523. By Wesley Wiedenmeier

Sleep for a second after running bcache verification to make a kernel panic
when unregistering the bcache device during the start of the next test

524. By Wesley Wiedenmeier

Merge from trunk to pull in unittest fixes

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
525. By Wesley Wiedenmeier

Added a dmcrypt clear_holders test, but disabled

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
526. By Wesley Wiedenmeier

Fix crypt_basic.yaml

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
527. By Wesley Wiedenmeier

Add allindata.yaml as a clear_holders test

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
528. By Wesley Wiedenmeier

Fix expected holders for allindata.yaml

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
529. By Wesley Wiedenmeier

remove expected_holders for backing to volgroup1 in allindata.yaml as it i snot
always possible to predict which logical partition is on each md device

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
530. By Wesley Wiedenmeier

Merge from trunk to disable tests for wily as it is EOL

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
531. By Wesley Wiedenmeier

Merge from trunk

532. By Wesley Wiedenmeier

Merge in updates to storagetests.test_clear_holders from
lp:~wesley-wiedenmeier/curtin/clear-holders-storagetests

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
533. By Wesley Wiedenmeier

Merge from trunk to pull optionally ignoring errors in mdadm.mdadm_assemble

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Scott Moser (smoser) wrote :

I've marked this work in progress.
Ryan and I discussed this some, it is valuable, and we'd like to runt his, but at this point the branch probably needs rework to merge from trunk...
so just categorizing as work-in-progress.

Unmerged revisions

533. By Wesley Wiedenmeier

Merge from trunk to pull optionally ignoring errors in mdadm.mdadm_assemble

532. By Wesley Wiedenmeier

Merge in updates to storagetests.test_clear_holders from
lp:~wesley-wiedenmeier/curtin/clear-holders-storagetests

531. By Wesley Wiedenmeier

Merge from trunk

530. By Wesley Wiedenmeier

Merge from trunk to disable tests for wily as it is EOL

529. By Wesley Wiedenmeier

remove expected_holders for backing to volgroup1 in allindata.yaml as it i snot
always possible to predict which logical partition is on each md device

528. By Wesley Wiedenmeier

Fix expected holders for allindata.yaml

527. By Wesley Wiedenmeier

Add allindata.yaml as a clear_holders test

526. By Wesley Wiedenmeier

Fix crypt_basic.yaml

525. By Wesley Wiedenmeier

Added a dmcrypt clear_holders test, but disabled

524. By Wesley Wiedenmeier

Merge from trunk to pull in unittest fixes

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.

Subscribers

People subscribed via source and target branches