Block storages

class cherryservers_sdk_python.block_storages.BlockStorage(client: C, model: T)[source]

Cherry Servers block storage resource.

This class represents an existing Cherry Servers resource and should only be initialized by BlockStorageClient. Additional configuration is required. Refer to https://docs.cherryservers.com/knowledge/elastic-block-storage-linux.

attach(attach_schema: AttachRequest) None[source]

Attach Cherry Servers block storage resource to server.

Block storage volumes can only be attached to baremetal servers.

delete() None[source]

Delete Cherry Servers block storage resource.

detach() None[source]

Detach Cherry Servers block storage resource from server.

get_id() int[source]

Get resource ID.

get_size() int[source]

Get block storage size.

refresh() None[source]

Refresh Cherry Servers block storage resource.

update(update_schema: UpdateRequest) None[source]

Update Cherry Servers block storage resource.

WARNING: increasing storage size will change its ID!

class cherryservers_sdk_python.block_storages.BlockStorageModel(*, id: int, name: str | None = None, href: str | None = None, size: int, allow_edit_size: bool | None = None, unit: str | None = None, attached_to: AttachedServerModel | None = None, vlan_id: str | None = None, vlan_ip: str | None = None, initiator: str | None = None, discovery_ip: str | None = None, region: RegionModel | None = None)[source]

Cherry Servers Elastic Block Storage model.

This model is frozen by default, since it represents an actual Cherry Servers EBS resource state.

id

EBS ID.

Type:

int

name

EBS name.

Type:

str | None

href

EBS href.

Type:

str | None

size

EBS size.

Type:

int

allow_edit_size

Whether size can be edited.

Type:

bool | None

unit

Size measurement unit.

Type:

str | None

attached_to

EBS attached server data.

Type:

cherryservers_sdk_python.ips.AttachedServerModel | None

vlan_id

EBS VLAN ID.

Type:

str | None

vlan_ip

EBS VLAN IP address.

Type:

str | None

initiator

EBS initiator.

Type:

str | None

discovery_ip

EBS discovery IP address.

Type:

str | None

region

Region data.

Type:

cherryservers_sdk_python.regions.RegionModel | None

class cherryservers_sdk_python.block_storages.BlockStorageClient(api_client: _client.CherryApiClient, request_timeout: int = 120)[source]

Cherry Servers block storage client.

Manage Cherry Servers block storage resources. This class should typically be initialized by cherryservers_sdk_python.facade.CherryApiFacade.

Example

# Get storage by ID.
storage = facade.block_storages.get_by_id(123456)

# List all project storages.
print("List of all project storages:")
for storage in facade.block_storages.list_by_project(123456):
    print(storage.get_model())

# Create a storage.
creation_req = cherryservers_sdk_python.block_storages.CreationRequest(
    region="LT-Siauliai", size=1
)
storage = facade.block_storages.create(creation_req, project_id=123456)

# Update storage.
update_req = cherryservers_sdk_python.block_storages.UpdateRequest(
    description="updated", size=2
)
storage.update(update_req)

# Attach storage.
attach_req = cherryservers_sdk_python.block_storages.AttachRequest(
    attach_to=123456
)
storage.attach(attach_req)

# Detach storage.
storage.detach()

# Delete storage.
storage.delete()
attach(storage_id: int, attach_schema: AttachRequest) BlockStorage[source]

Attach block storage to server.

create(creation_schema: CreationRequest, project_id: int) BlockStorage[source]

Create a new block storage.

delete(storage_id: int) None[source]

Delete block storage.

detach(storage_id: int) BlockStorage[source]

Detach block storage from server.

get_by_id(storage_id: int) BlockStorage[source]

Retrieve a block storage by ID.

list_by_project(project_id: int) list[BlockStorage][source]

Retrieve all block storages that belong to a specified project.

update(storage_id: int, update_schema: UpdateRequest) BlockStorage[source]

Update block storage.

WARNING: increasing storage size will change its ID!

class cherryservers_sdk_python.block_storages.CreationRequest(*, region: str, size: int, description: str | None = None)[source]

Cherry Servers block storage creation request schema.

region

Region slug. Required.

Type:

str

size

Block storage size in GB. Required.

Type:

int

description

Block storage description.

Type:

str | None

class cherryservers_sdk_python.block_storages.UpdateRequest(*, size: int | None = None, description: str | None = None)[source]

Cherry Servers block storage update request schema.

size

Block storage size in GB. Storage size cannot be reduced.

Type:

int | None

description

Block storage description.

Type:

str | None

class cherryservers_sdk_python.block_storages.AttachRequest(*, attach_to: int)[source]

Cherry Servers block storage server attachment request schema.

attach_to

ID of the server, to which the storage will be attached.

Type:

int