pycloudlib.instance module

Base class for all instances to provide consistent set of functions.

class pycloudlib.instance.BaseInstance(key_pair)[source]

Bases: abc.ABC

Base instance object.

__init__(key_pair)[source]

Set up instance.

add_network_interface() → str[source]

Add nic to running instance.

clean()[source]

Clean an instance to make it look prestine.

This will clean out specifically the cloud-init files and system logs.

console_log()[source]

Return the instance console log.

Raises NotImplementedError if the cloud does not support fetching the console log for this instance.

delete(wait=True)[source]

Delete the instance.

Parameters:wait – wait for instance to be deleted
execute(command, stdin=None, description=None, *, use_sudo=False, **kwargs)[source]

Execute command in instance, recording output, error and exit code.

Assumes functional networking and execution with the target filesystem being available at /.

Parameters:
  • command – the command to execute as root inside the image. If command is a string, then it will be executed as: [‘sh’, ‘-c’, command]
  • stdin – bytes content for standard in
  • description – purpose of command
  • use_sudo – boolean to run the command as sudo
Returns:

Result object

Raises SSHException if there are any problem with the ssh connection

install(packages)[source]

Install specific packages.

Parameters:packages – string or list of package(s) to install
Returns:result from install
ip

Return IP address of instance.

name

Return instance name.

pull_file(remote_path, local_path)[source]

Copy file at ‘remote_path’, from instance to ‘local_path’.

Parameters:
  • remote_path – path on remote instance
  • local_path – local path

Raises SSHException if there are any problem with the ssh connection

push_file(local_path, remote_path)[source]

Copy file at ‘local_path’ to instance at ‘remote_path’.

Parameters:
  • local_path – local path
  • remote_path – path on remote instance

Raises SSHException if there are any problem with the ssh connection

remove_network_interface(ip_address: str)[source]

Remove nic from running instance.

restart(wait=True, **kwargs)[source]

Restart an instance.

run_script(script, description=None)[source]

Run script in target and return stdout.

Parameters:
  • script – script contents
  • description – purpose of script
Returns:

result from script execution

Raises SSHException if there are any problem with the ssh connection

shutdown(wait=True, **kwargs)[source]

Shutdown the instance.

Parameters:wait – wait for the instance to shutdown
start(wait=True)[source]

Start the instance.

Parameters:wait – wait for the instance to start.
update()[source]

Run apt-get update/upgrade on instance.

Returns:result from upgrade
wait()[source]

Wait for instance to be up and cloud-init to be complete.

wait_for_delete()[source]

Wait for instance to be deleted.

wait_for_stop()[source]

Wait for instance stop.