docker: Version 0.5.1 subsubtest changes

*  Sub-subtests previously executed by stage (initialize,
   run_once, etc.) across all sub-subtests.  This
   is a bit counter-intuitive, but possibly useful in some
   situations.  It's likely a more common need for sub-
   subtesting to progress through each sub-subtest in turn,
   running all stages from one, then the next.  Since most
   existing tests were written with the former (by-stage)
   behavior, that mode is retained (renamed) as class
   dockertest.subtest.SubSubtestCallerSimultaneous.  The
   new (by-subtest) class takes over the old name
   dockertest.subtest.SubSubtestCaller.

*  Extended Subtest class with method to help with
   logging of arbitrary errors and tracebacks to
   the console (not the test logs).  This will aid
   in differentiating between Docker errors and
   harness errors.

*  Improve subtest and sub-subtest console logging.
   Now, when a sub-subtest raises anything derived
   from the Autotest base-exception, that subsubtest
   fails but the remaining subsubtests continue. However,
   when a subsubtest raise a non-autotest exception
   then the message logged to error log, and traceback
   is logged to debug log.  In the later case, the entire
   subtest will immediatly run ``cleanup()`` then fail.

*  Made image module method remove_image_by_image_obj()
   part of the general (abstract) interface.  Fixed
   issue where tag could be deleted even if image is
   used by container.

*  Due to complexities relating to autotest client
   module interfaces, removed the ability to
   filter sub-subtests with the --args value.

*  Many spelling, style, pylint, and pep8 cleanups.

Signed-off-by: Jiří Župka <jzupka@redhat.com>

*  To help hide the autotest.client.shared namespace
   from subtests, added AutotestError base class
   to xceptions module.  This allows other modules
   to distinguish between Python, Autotest, and
   dockertest exceptions.  Updated unittests
   and documentation config. to mock this
   exception.

*  To help keep input separated from output,
   we should treat the Subtest.config and
   SubSubtest.config dictionaries as read-only.
   For testing-use, we have private instance
   attributes (stuff and sub_stuff) but for
   SubtestCaller use, we cannot access them.
   Added class/instance-level attributes for
   the caller base classes to use internally
   while they control the "flow" of sub-subtests.

*  Updated subtest module to only reference/raise
   exception classes from the xceptions module.
   This helps us further distinguish between
   Autotest, Dockertest, and Python exceptions.

*  Updated use of DockerCommandError to properly
   satisfy all parent class parameters.  Changed
   DockerCommandError to DockerValueError in
   ``__init__`` for parameter value problems.

*  Updated docstrings across several dockertest
   modules.

*  Added message R0904 disable to run_pylint
   re "too few public methods on blah blah blah".
   There are some base classes and interface hiding
   classes that were needlessly raising this.

*  Reduced default docker command timeout to 300
   seconds.

*  Fixed bug with subsubtest configuration processing
   where defaults were overriding parent subtest
   config, insted of the other way around.

*  Fixed logic bug in OutputGood possibly causing
   it to throw python exception.

*  Fixed bug in run_signal test incorrect quoting
   of shell command to run inside docker causing
   test to hang outside of docker.

*  Lowered default test timeout to 600 seconds.

Signed-off-by: Chris Evich <cevich@redhat.com>
docker: Adds subtests...rmi test

*  Several sub-subtests to test various aspects of docker rmi command.

Signed-off-by: Jiří Župka <jzupka@redhat.com>

*  Trivial code & config. cleanup
*  Docstring / documentation Updates

Signed-off-by: Chris Evich <cevich@redhat.com>
subtests..rm tests for docker rm subcommand

* Added a subtest for running the 'rm' command on
  containers in various situations.

    *  SubSubtest rm container after it exits does not
       touch volume content.

    *  SubSubtest rm --force container causes it to
       exit and does not touch volume content

*  Extended containers.DockerContainersBase module with method
   to list containers by their long_id (cid)

*  Extended containers.DockerContainersCLI
   with method to kill containers using docker
   'kill' command.  By name or id.

*  Extended dockercmd.AsyncDockerCmd.wait()
   with a timeout value override.

*  Extended dockercmd.AsyncDockerCmd with exit_status property
   for convenience (i.e. caller isn't required to check cmdresult)

* Minor update on quickstart in docs.

* Put temporary workaround in for docker 'rm' command
  not accepting "SIG" on the front of a signal name.

Signed-off-by: Chris Evich <cevich@redhat.com>
subtests.docker_cli.stop: Add "docker stop" test

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
dockertest.containers: Add get_unique_name function

This function adds the possibility to get unique name for a new container.

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
Merge pull request #25 from cevich/rmi_test_0_5_1
dockertest.version_unittest: Pylint/pep8 fixes

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
dockertest.version: Pylint/pep8 fixes

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
dockertest.version: Lenghth of version string should be 3

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
dockertest.version_unittests: Add couple of unittests for version.py

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
dockertest.dockercmd_unittest: Add unittests for dockercmd

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
dockertest.dockercmd: Pylint/pep8 fixes

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
dockertest.output: Pylint/pep8 fixes

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
dockertest.output_unittests: Add unittests for output module

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
dockertest.networking: Pylint/pep8 fixes

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
dockertest.networking_unittests: Add unittests for networking

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
dockertest.images_unittests: Add couple of images unittests

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
dockertest.images: Pylint/pep8/python2.4 fixes

Couple of python/pep8 fixes plus one python 2.4 compatibility issue fix.

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
dockertest.containers: Pylint/pep8 fixes

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
dockertest.containers: Report multiple containers found error

It can be misleading to report "Container not found with name ..." when
multiple containers are present. This patch raises different error
for multiple or no containers.

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>