Creating a Client¶
The Client
class acts as the means of communicating with a BugZoo
server over via its RESTlike API. The client provides a uniform interface
for accessing and interacting with the bugs, tools and containers running
on the server.
A Client
instance may be created to establish a connection to
a given server, as shown below. Note that the server needn’t be local;
Client
can be used to connect to remote BugZoo servers (that may be
hosted on a cloud compute platform, such as Amazon EC2, for instance).
import bugzoo
url = "http://127.0.0.1:6060"
client = bugzoo.Client(url)
Client
instances can be used to access the resources provided by a
BugZoo server (i.e., bugs, containers, and tools). The bugs
property
exposes a BugManager
, which provides access to the bugs registered
on the server. The containers
property exposes a
ContainerManager
, which can be used to create, destroy, and interact
with containers on the server. The files
property exposes a
FilesManager
, which provides a simple interface for manipulating
container file systems (i.e., reading and writing files) and copying files
between the host and container.
API Reference¶
-
class
Client
[source]¶ -
__init__
(base_url: str = None, *, timeout_connection: int = 30) → None[source]¶ Constructs a new client for communicating with a BugZoo server.
- Parameters
base_url – the base URL of the BugZoo server.
timeout_connection – the maximum number of seconds to wait whilst attempting to connect to the server before declaring the connection to have failed.
- Raises
ConnectionFailure – if a connection to the server could not be established within the timeout window.
-
bugs
→ BugManager¶ Provides access to the historical bugs that are registered with the server. Can be used to install, download, and uninstall registered bugs, or to dynamically register new bugs with the server.
-
containers
→ ContainerManager¶ Provides access to the containers running on the server. Can be used to execute tests (as well as arbitrary shell commands), build from source code, apply patches, compute coverage, and more.
-
files
→ FileManager¶ Provides access to the file systems used by running containers. Can be used to read from and write to files in containers, and to copy data between the host machine and a given container.
-