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.- 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!
- get_plan_slug() str[source]
Get server plan slug.
- Returns str:
Server plan slug. If non-existent, returns an empty string.
- rebuild(rebuild_schema: RebuildRequest) None[source]
Rebuild a Cherry Servers server.
WARNING: this a destructive action that will delete all of your data!
- 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:
- 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.
- spot_instance
Whether the server belongs the spot market.
- Type:
bool | None
- region
Region data.
- Type:
- state
Server state.
- Type:
str | None
- status
Server status.
- Type:
str
- bgp
BGP data.
- Type:
- plan
Plan data.
- Type:
- pricing
Pricing data.
- Type:
- 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:
- ip_addresses
Server IP address data.
- Type:
list[cherryservers_sdk_python.ips.IPModel] | None
- storage
Block storage data.
- 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.
- 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.
- 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