WIP First draft of FVP post commands

The reason for doing this at all is that the FVP binaries can produce
trace files. To extract these files, you'll need to have access to run
commands to upload them from the docker container.

Some key notes of this implementation:
 * instead of directly using "docker run" on the model binary, the
container is forked (defaultly uses sleep infinity) and then model
binary is run using exec. This is because the FVP will often only flush
to file once it is stopped, but we need to keep the container up
afterwards.
 * To be useful, introducing a mechanism of putting URLs into a LAVA
result after certain commands, though this is a bit fiddly and ugly in
the definition.
 * LAVA will kill the FVP model for you via sending a Ctrl+C instead of
simply killing the docker exec process. This is needed to forward the
signal into the model binary. This is needed as trace files are only flushed
on exit.
 * Need to check a lot for regressions and checking this doesn't break
any other use cases.
 * need to make this more robust.
 * definitely want pointers on how to better structure this

Change-Id: I11043065d4221b7732a25a3e91b73a58a11f00ea
16 jobs for fvp_file_upload in 5 minutes and 16 seconds (queued for 1 second)
latest
Status Job ID Name Coverage
  Test
failed #113517
amd64
dispatcher-debian-10

00:02:33

failed #113519
amd64
dispatcher-debian-11

00:02:56

passed #113518
amd64
server-debian-10

00:03:07

passed #113520
amd64
server-debian-11

00:05:15

 
  Analyze
skipped #113521
amd64-dind allowed to fail
bandit-sast
skipped #113522
amd64
black
skipped #113523
amd64
code_quality
skipped #113528
amd64
codespell
skipped #113524
amd64
coverage
skipped #113525
amd64
dockerfiles
skipped #113527
amd64
pylint
skipped #113526
amd64
schemas
 
  Build
skipped #113530
amd64
debian/10
skipped #113529
amd64
doc
skipped #113531
amd64-dind
docker-amd64-dispatcher
skipped #113532
amd64-dind
docker-amd64-server
 
Name Stage Failure
failed
dispatcher-debian-11 Test

-- Docs: https://docs.pytest.org/en/latest/warnings.html
---------- generated xml file: /builds/deanbirch/lava/dispatcher.xml -----------
======== 1 failed, 453 passed, 6 skipped, 28 warnings in 123.34 seconds ========
Uploading artifacts for failed job
Uploading artifacts...
WARNING: coordinator.xml: no matching files
ERROR: No files to upload
ERROR: Job failed: exit code 1
failed
dispatcher-debian-10 Test
    .decode('unicode-escape')

-- Docs: https://docs.pytest.org/en/latest/warnings.html
======== 1 failed, 456 passed, 3 skipped, 29 warnings in 126.79 seconds ========
Uploading artifacts for failed job
Uploading artifacts...
WARNING: coordinator.xml: no matching files
ERROR: No files to upload
ERROR: Job failed: exit code 1