pycloudlib.ibm.cloud module

IBM Cloud type.

class pycloudlib.ibm.cloud.IBM(tag: str, timestamp_suffix: bool = True, config_file: Union[pathlib.Path, _io.StringIO, None] = None, *, resource_group: Optional[str] = None, vpc: Optional[str] = None, api_key: Optional[str] = None, region: Optional[str] = None, zone: Optional[str] = None)[source]

Bases: pycloudlib.cloud.BaseCloud

IBM Virtual Private Cloud Class.

__init__(tag: str, timestamp_suffix: bool = True, config_file: Union[pathlib.Path, _io.StringIO, None] = None, *, resource_group: Optional[str] = None, vpc: Optional[str] = None, api_key: Optional[str] = None, region: Optional[str] = None, zone: Optional[str] = None)[source]

Initialize the connection to IBM VPC.

Parameters:
  • tag – string used to name and tag resources with
  • timestamp_suffix – Append a timestamped suffix to the tag string.
  • config_file – path to pycloudlib configuration file
create_key_pair()

Create and set a ssh key pair for a cloud instance.

Returns:A tuple containing the public and private key created
daily_image(release: str, **kwargs) → str[source]

ID of the latest daily image for a particular release.

Parameters:release – The release to look for
Returns:A single string with the latest daily image ID for the specified release.
delete_image(image_id: str, **kwargs)[source]

Delete an image.

Parameters:
  • image_id – string, id of the image to delete
  • **kwargs – dictionary of other arguments to pass to delete_image
delete_key(name: str)[source]

Delete SSH key by name.

get_instance(instance_id: str, **kwargs) → pycloudlib.instance.BaseInstance[source]

Get an instance by id.

Parameters:instance_id
Returns:An instance object to use to manipulate the instance further.
get_or_create_vpc(name: str) → pycloudlib.ibm.instance.VPC[source]

Get a VPC by name or create it if not found.

image_serial(image_id)[source]

Find the image serial of the latest daily image for a particular release.

Parameters:image_id – string, Ubuntu image id
Returns:string, serial of latest image
launch(image_id: str, instance_type: str = 'bx2-2x8', user_data=None, wait: bool = True, *, name: Optional[str] = None, vpc: Optional[pycloudlib.ibm.instance.VPC] = None, **kwargs) → pycloudlib.instance.BaseInstance[source]

Launch an instance.

Parameters:
  • image_id – string, image ID to use for the instance
  • instance_type – string, type of instance to create
  • user_data – used by cloud-init to run custom scripts/configuration
  • wait – wait for instance to be live
  • name – instance name
  • vpc – VPC to allocate the instance in. If not given, the instance
  • be allocated in the zone's default VPC. (will) –
  • **kwargs – dictionary of other arguments to pass to launch
Returns:

An instance object to use to manipulate the instance further.

list_keys() → List[str][source]

List ssh key names present on the cloud for accessing instances.

Returns:A list of strings of key pair names accessible to the cloud.
released_image(release, *, arch: str = 'amd64', **kwargs)[source]

ID of the latest released image for a particular release.

Parameters:release – The release to look for
Returns:A single string with the latest released image ID for the specified release.
resource_group_id

Resource Group ID used to create new things under.

snapshot(instance: pycloudlib.ibm.instance.IBMInstance, clean: bool = True, **kwargs) → str[source]

Snapshot an instance and generate an image from it.

Parameters:
  • instance – Instance to snapshot
  • clean – run instance clean method before taking snapshot
Returns:

An image id

use_key(public_key_path, private_key_path=None, name=None)

Use an existing key.

Parameters:
  • public_key_path – path to the public key to upload
  • private_key_path – path to the private key
  • name – name to reference key by
vpc

Virtual Private Cloud.