Project

General

Profile

Idea #9428

Updated by Brett Smith almost 8 years ago

Currently arv-keepdocker works by subprocessing the @docker@ CLI tool and parsing the output.    Port it to stop doing that, and instead use the docker-py module to talk to the Docker daemon directly over the REST API and get objects back. 

 Reasons to do this: 

 * The CLI has changed interfaces before in ways that break arv-keepdocker.    (e.g., #4196)    This would be more resilient. 
 * The client can specify which version of the API it wants to talk, making it even more resilient as Docker itself gets upgraded (which is often). 
 * IPC is always rickety.    This would be more resilient to different user environments and enable better error reporting. 
 * docker-py is maintained by the Docker team, and we already use it with no major isseus in dockercleaner, so it's a pretty safe dependency. 

 The Possible reasons not to do this: 

 * We want to rewrite it in Go instead. 

 If we decide to go ahead, the branch should only rewire arv-keepdocker internally.    You'll also need to declare the dependency in @setup.py@ and @run-build-packages.sh@.    No UI changes should be needed.

Back