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
-
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.
-