Servers

class cherryservers_sdk_python.servers.Server(client: ServerClient, model: ServerModel)[source]

Cherry Servers Server resource.

This class represents an existing Cherry Servers resource and should only be initialized by ServerClient.

delete() None[source]

Delete Cherry Servers server resource.

property deployment_timeout: int

Deployment timeout in seconds.

enter_rescue_mode(rescue_mode_schema: EnterRescueModeRequest) None[source]

Put a Cherry Servers server into rescue mode.

Only for baremetal servers!

exit_rescue_mode() None[source]

Put a Cherry Servers server out of rescue mode.

get_id() int[source]

Get server ID.

get_plan_slug() str[source]

Get server plan slug.

Returns str:

Server plan slug. If non-existent, returns an empty string.

get_status() str[source]

Get server status.

power_off() None[source]

Power off Cherry Servers server.

power_on() None[source]

Power on Cherry Servers server.

reboot() None[source]

Reboot a Cherry Servers server.

rebuild(rebuild_schema: RebuildRequest) None[source]

Rebuild a Cherry Servers server.

WARNING: this a destructive action that will delete all of your data!

refresh() None[source]

Refresh the server.

Refreshes server model to match the actual state.

reset_bmc_password() None[source]

Reset server BMC password.

Only for baremetal servers!

update(update_schema: UpdateRequest) None[source]

Update Cherry Servers server resource.

class cherryservers_sdk_python.servers.ServerBGPRouteModel(*, subnet: str | None = None, active: bool | None = None, router: str | None = None, age: str | None = None, updated: str | None = None)[source]

Cherry Servers server BGP route model.

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

subnet

BGP route subnet.

Type:

str | None

active

Whether the BGP route is active.

Type:

bool | None

router

BGP router address.

Type:

str | None

age

BGP route age.

Type:

str | None

updated

Date of last update.

Type:

str | None

class cherryservers_sdk_python.servers.ServerBGPModel(*, enabled: bool | None = None, available: bool | None = None, status: str | None = None, routers: int | None = None, connected: int | None = None, limit: int | None = None, active: bool | None = None, routes: list[ServerBGPRouteModel] | None = None, updated: str | None = None)[source]

Cherry Servers server BGP model.

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

enabled

Whether BGP is enabled.

Type:

bool | None

available

Whether BGP is available.

Type:

bool | None

status

BGP status.

Type:

str | None

routers

BGP routers.

Type:

int | None

connected

BGP connections.

Type:

int | None

limit

BGP limit.

Type:

int | None

active

BGP active.

Type:

int | None

routes

BGP routes.

Type:

list[cherryservers_sdk_python.servers.ServerBGPRouteModel] | None

updated

Date of last update.

Type:

str | None

class cherryservers_sdk_python.servers.ServerDeployedImageModel(*, name: str | None = None, slug: str | None = None)[source]

Cherry Servers server deployed image model.

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

name

Full name of the deployed image.

Type:

str | None

slug

Slug of the deployed image name.

Type:

str | None

class cherryservers_sdk_python.servers.ServerBMCModel(*, password: str | None = None, user: str | None = None)[source]

Cherry Servers server BMC model.

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

password

Server BMC password. Scrubbed at 24 hours after creation.

Type:

str | None

user

Server BMC username. Scrubbed at 24 hours after creation.

Type:

str | None

class cherryservers_sdk_python.servers.ServerModel(*, id: int, name: str | None = None, href: str | None = None, bmc: ServerBMCModel | None = None, hostname: str | None = None, password: str | None = None, username: str | None = None, deployed_image: ServerDeployedImageModel | None = None, spot_instance: bool | None = None, region: RegionModel | None = None, state: str | None = None, status: str, bgp: ServerBGPModel | None = None, plan: PlanModel | None = None, pricing: PricingModel | None = None, ssh_keys: list[SSHKeyModel] | None = None, ip_addresses: list[IPModel] | None = None, storage: BlockStorageModel | None = None, tags: dict[str, str] | None = None, termination_date: str | None = None, created_at: str | None = None, traffic_used_bytes: int | None = None, project: ProjectModel | None = None)[source]

Cherry Servers server model.

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

id

Server ID.

Type:

int

name

Server name. Typically corresponds to plan name.

Type:

str | None

href

Server href.

Type:

str | None

bmc

Server BMC credential data. Only for baremetal servers. Scrubbed at 24 hours after creation.

Type:

cherryservers_sdk_python.servers.ServerBMCModel | None

hostname

Server hostname.

Type:

str | None

password

Server user password. Scrubbed 24 hours after creation.

Type:

str | None

username

Server user username. Scrubbed 24 hours after creation.

Type:

str | None

deployed_image

OS image data.

Type:

cherryservers_sdk_python.servers.ServerDeployedImageModel | None

spot_instance

Whether the server belongs the spot market.

Type:

bool | None

region

Region data.

Type:

cherryservers_sdk_python.regions.RegionModel | None

state

Server state.

Type:

str | None

status

Server status.

Type:

str

bgp

BGP data.

Type:

cherryservers_sdk_python.servers.ServerBGPModel | None

plan

Plan data.

Type:

cherryservers_sdk_python.plans.PlanModel | None

pricing

Pricing data.

Type:

cherryservers_sdk_python.plans.PricingModel | None

ssh_keys

SSH key data.

Type:

list[cherryservers_sdk_python.sshkeys.SSHKeyModel] | None

tags

User-defined server tags.

Type:

dict[str, str] | None

termination_date

Server termination date.

Type:

str | None

created_at

Server deployment date.

Type:

str | None

traffic_used_bytes

Server traffic usage.

Type:

int | None

project

Project data.

Type:

cherryservers_sdk_python.projects.ProjectModel | None

ip_addresses

Server IP address data.

Type:

list[cherryservers_sdk_python.ips.IPModel] | None

storage

Block storage data.

Type:

cherryservers_sdk_python.block_storages.BlockStorageModel | None

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

Cherry Servers server client.

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

Example

facade = cherryservers_sdk_python.facade.CherryApiFacade(token="my-token")

# Get server by id.
server = facade.servers.get_by_id(123456)

# List all project servers.
print("List of all project servers:")
for server in facade.servers.get_by_project(123456):
    print(server.get_model())

# Create a server.
creation_req = cherryservers_sdk_python.servers.CreationRequest(
    region="LT-Siauliai", plan="B1-1-1gb-20s-shared"
)
server = facade.servers.create(creation_req, project_id=217727)

# Update server.
update_req = cherryservers_sdk_python.servers.UpdateRequest(
    name="test", hostname="test", tags={"env": "test"}, bgp=True
)
server.update(update_req)

# Delete server.
server.delete()
create(creation_schema: CreationRequest, project_id: int, *, wait_for_active: bool = True, deployment_timeout: int = 1800) Server[source]

Create a new server.

delete(server_id: int) None[source]

Delete server by ID.

enter_rescue_mode(server_id: int, rescue_mode_schema: EnterRescueModeRequest, *, wait_for_active: bool = True, deployment_timeout: int = 1800) Server[source]

Put server into rescue mode.

Only for baremetal servers!

exit_rescue_mode(server_id: int, *, wait_for_active: bool = True, deployment_timeout: int = 1800) Server[source]

Put server out of rescue mode.

get_by_id(server_id: int) Server[source]

Retrieve a server by ID.

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

Retrieve all servers that belong to a specified project.

power_off(server_id: int, *, wait_for_active: bool = True, deployment_timeout: int = 1800) Server[source]

Power off server by ID.

power_on(server_id: int, *, wait_for_active: bool = True, deployment_timeout: int = 1800) Server[source]

Power on server by ID.

reboot(server_id: int, *, wait_for_active: bool = True, deployment_timeout: int = 1800) Server[source]

Reboot server by ID.

rebuild(server_id: int, rebuild_schema: RebuildRequest, *, wait_for_active: bool = True, deployment_timeout: int = 1800) Server[source]

Rebuild server.

WARNING: this a destructive action that will delete all of your data.

reset_bmc_password(server_id: int) Server[source]

Reset server BMC password.

Only for baremetal servers!

update(server_id: int, update_schema: UpdateRequest) Server[source]

Update server by ID.

class cherryservers_sdk_python.servers.CreationRequest(*, plan: str, image: str | None = None, os_partition_size: int | None = None, region: str, hostname: str | None = None, ssh_keys: set[int] | None = None, ip_addresses: set[str] | None = None, user_data: str | None = None, tags: dict[str, str] | None = None, spot_market: bool = False, storage_id: int | None = None, cycle: str | None = 'hourly')[source]

Cherry Servers server creation request schema.

plan

Plan slug. Required.

Type:

str

image

Image slug.

Type:

str | None

os_partition_size

OS partition size.

Type:

int | None

region

Region slug. Required.

Type:

str

hostname

Server hostname.

Type:

str | None

ssh_keys

IDs of SSH keys that will be added to the server.

Type:

Set[int] | None

ip_addresses

IDs of extra IP addresses that will be attached to the server.

Type:

Set[str] | None

user_data

Base64 encoded user-data blob. Either a bash or cloud-config script.

Type:

str | None

tags

User-defined server tags.

Type:

dict[str, str] | None

spot_market

Whether the server should be a spot instance. Defaults to False.

Type:

bool

storage_id

ID of the EBS that will be attached to the server.

Type:

int | None

cycle

Billing cycle slug. Defaults to ‘hourly’.

Type:

str | None

class cherryservers_sdk_python.servers.UpdateRequest(*, name: str | None = None, hostname: str | None = None, tags: dict[str, str] | None = None, bgp: bool | None = None)[source]

Cherry Servers server update request schema.

name

Server name.

Type:

str | None

hostname

Server hostname.

Type:

str | None

tags

User-defined server tags.

Type:

dict[str, str] | None

bgp

Whether the server should have BGP enabled.

Type:

bool | None

class cherryservers_sdk_python.servers.EnterRescueModeRequest(*, type: str = 'enter-rescue-mode', password: str)[source]

Cherry Servers server enter rescue mode request schema.

password

The password that the server will have while in rescue mode. Required.

Type:

str

class cherryservers_sdk_python.servers.RebuildRequest(*, type: str = 'rebuild', image: str, hostname: str, password: str, ssh_keys: set[int] | None = None, user_data: str | None = None, os_partition_size: int | None = None)[source]

Cherry Servers server rebuild request schema.

image

Image slug.

Type:

str

hostname

Server hostname. Required.

Type:

str

password

Server root user password. Required

Type:

str

ssh_keys

IDs of SSH keys that will be added to the server.

Type:

Set[int] | None

user_data

Base64 encoded user-data blob. Either a bash or cloud-config script.

Type:

str | None

os_partition_size

OS partition size in GB.

Type:

int | None