Container Base API

class libcloud.container.base.ContainerDriver(key, secret=None, secure=True, host=None, port=None, **kwargs)[source]

A base ContainerDriver class to derive from

This class is always subclassed by a specific driver.

Parameters:
  • key (str) – API key or username to used (required)
  • secret (str) – Secret password to be used (required)
  • secure (bool) – Whether to use HTTPS or HTTP. Note: Some providers only support HTTPS, and it is on by default.
  • host (str) – Override hostname used for connections.
  • port (int) – Override port used for connections.
Returns:

None

connectionCls

alias of libcloud.common.base.ConnectionUserAndKey

create_cluster(name, location=None)[source]

Create a container cluster

Parameters:
  • name (str) – The name of the cluster
  • location (ClusterLocation) – The location to create the cluster in
Return type:

ContainerCluster

deploy_container(name, image, cluster=None, parameters=None, start=True)[source]

Deploy an installed container image

Parameters:
  • name (str) – The name of the new container
  • image (ContainerImage) – The container image to deploy
  • cluster (ContainerCluster) – The cluster to deploy to, None is default
  • parameters (str) – Container Image parameters
  • start (bool) – Start the container on deployment
Return type:

Container

destroy_cluster(cluster)[source]

Delete a cluster

Returns:True if the destroy was successful, otherwise False.
Return type:bool
destroy_container(container)[source]

Destroy a deployed container

Parameters:container (Container) – The container to destroy
Return type:bool
get_cluster(id)[source]

Get a cluster by ID

Parameters:id (str) – The ID of the cluster to get
Return type:ContainerCluster
get_container(id)[source]

Get a container by ID

Parameters:id (str) – The ID of the container to get
Return type:Container
install_image(path)[source]

Install a container image from a remote path.

Parameters:path (str) – Path to the container image
Return type:ContainerImage
list_clusters(location=None)[source]

Get a list of potential locations to deploy clusters into

Parameters:location (ClusterLocation) – The location to search in
Return type:list of ContainerCluster
list_containers(image=None, cluster=None)[source]

List the deployed container images

Parameters:
Return type:

list of Container

list_images()[source]

List the installed container images

Return type:list of ContainerImage
list_locations()[source]

Get a list of potential locations to deploy clusters into

Return type:list of ClusterLocation
restart_container(container)[source]

Restart a deployed container

Parameters:container (Container) – The container to restart
Return type:Container
start_container(container)[source]

Start a deployed container

Parameters:container (Container) – The container to start
Return type:Container
stop_container(container)[source]

Stop a deployed container

Parameters:container (Container) – The container to stop
Return type:Container
supports_clusters = False

Whether the driver supports containers being deployed into clusters

class libcloud.container.base.Container(id, name, image, state, ip_addresses, driver, extra=None, created_at=None)[source]

Container.

Parameters:
  • id (str) – Container id.
  • name (str) – The name of the container.
  • image (ContainerImage) – The image this container was deployed using.
  • state (libcloud.container.types.ContainerState) – The state of the container, e.g. running
  • ip_addresses (list of str) – A list of IP addresses for this container
  • driver (ContainerDriver) – ContainerDriver instance.
  • extra (dict) – (optional) Extra attributes (driver specific).
class libcloud.container.base.ContainerImage(id, name, path, version, driver, extra=None)[source]

Container Image.

Parameters:
  • id (str) – Container Image id.
  • name (str) – The name of the image.
  • path (str) – The path to the image
  • version (str) – The version of the image
  • driver (ContainerDriver) – ContainerDriver instance.
  • extra (dict) – (optional) Extra attributes (driver specific).
class libcloud.container.base.ContainerCluster(id, name, driver, extra=None)[source]

A cluster group for containers

Parameters:
  • id (str) – Container Image id.
  • name (str) – The name of the image.
  • driver (ContainerDriver) – ContainerDriver instance.
  • extra (dict) – (optional) Extra attributes (driver specific).
class libcloud.container.base.ClusterLocation(id, name, country, driver)[source]

A physical location where clusters can be.

>>> from libcloud.container.drivers.dummy import DummyContainerDriver
>>> driver = DummyContainerDriver(0)
>>> location = driver.list_locations()[0]
>>> location.country
'US'
Parameters:
  • id (str) – Location ID.
  • name (str) – Location name.
  • country (str) – Location country.
  • driver (ContainerDriver) – Driver this location belongs to.