pub struct Server {Show 36 fields
pub uuid: Uuid,
pub uuid_short: i32,
pub external_id: Option<CompactString>,
pub allocation: Option<ServerAllocation>,
pub destination_allocation_uuid: Option<Uuid>,
pub node: Fetchable<Node>,
pub destination_node: Option<Fetchable<Node>>,
pub owner: User,
pub egg: Box<NestEgg>,
pub nest: Box<Nest>,
pub backup_configuration: Option<Fetchable<BackupConfiguration>>,
pub status: Option<ServerStatus>,
pub suspended: bool,
pub name: CompactString,
pub description: Option<CompactString>,
pub memory: i64,
pub memory_overhead: i64,
pub swap: i64,
pub disk: i64,
pub io_weight: Option<i16>,
pub cpu: i32,
pub pinned_cpus: Vec<i16>,
pub startup: CompactString,
pub image: CompactString,
pub auto_kill: ServerConfigurationAutoKill,
pub auto_start_behavior: ServerAutoStartBehavior,
pub timezone: Option<CompactString>,
pub hugepages_passthrough_enabled: bool,
pub kvm_passthrough_enabled: bool,
pub allocation_limit: i32,
pub database_limit: i32,
pub backup_limit: i32,
pub schedule_limit: i32,
pub subuser_permissions: Option<Arc<Vec<CompactString>>>,
pub subuser_ignored_files: Option<Vec<CompactString>>,
pub created: NaiveDateTime,
/* private fields */
}Fields§
§uuid: Uuid§uuid_short: i32§external_id: Option<CompactString>§allocation: Option<ServerAllocation>§destination_allocation_uuid: Option<Uuid>§node: Fetchable<Node>§destination_node: Option<Fetchable<Node>>§owner: User§egg: Box<NestEgg>§nest: Box<Nest>§backup_configuration: Option<Fetchable<BackupConfiguration>>§status: Option<ServerStatus>§suspended: bool§name: CompactString§description: Option<CompactString>§memory: i64§memory_overhead: i64§swap: i64§disk: i64§io_weight: Option<i16>§cpu: i32§pinned_cpus: Vec<i16>§startup: CompactString§image: CompactString§auto_kill: ServerConfigurationAutoKill§auto_start_behavior: ServerAutoStartBehavior§timezone: Option<CompactString>§hugepages_passthrough_enabled: bool§kvm_passthrough_enabled: bool§allocation_limit: i32§database_limit: i32§backup_limit: i32§schedule_limit: i32§subuser_permissions: Option<Arc<Vec<CompactString>>>§subuser_ignored_files: Option<Vec<CompactString>>§created: NaiveDateTimeImplementations§
Source§impl Server
impl Server
pub async fn by_node_uuid_uuid( database: &Database, node_uuid: Uuid, uuid: Uuid, ) -> Result<Option<Self>, DatabaseError>
pub async fn by_external_id( database: &Database, external_id: &str, ) -> Result<Option<Self>, DatabaseError>
pub async fn by_identifier( database: &Database, identifier: &str, ) -> Result<Option<Self>, DatabaseError>
Sourcepub async fn by_user_identifier(
database: &Database,
user: &User,
identifier: &str,
) -> Result<Option<Self>, Error>
pub async fn by_user_identifier( database: &Database, user: &User, identifier: &str, ) -> Result<Option<Self>, Error>
Get a server by its identifier, ensuring the user has access to it.
Cached for 5 seconds.
pub async fn by_owner_uuid_with_pagination( database: &Database, owner_uuid: Uuid, page: i64, per_page: i64, search: Option<&str>, ) -> Result<Pagination<Self>, DatabaseError>
pub async fn by_user_uuid_server_order_with_pagination( database: &Database, owner_uuid: Uuid, server_order: &[Uuid], page: i64, per_page: i64, search: Option<&str>, ) -> Result<Pagination<Self>, DatabaseError>
pub async fn by_user_uuid_with_pagination( database: &Database, user_uuid: Uuid, page: i64, per_page: i64, search: Option<&str>, ) -> Result<Pagination<Self>, DatabaseError>
pub async fn all_uuids_by_node_uuid_user_uuid( database: &Database, node_uuid: Uuid, user_uuid: Uuid, ) -> Result<Vec<Uuid>, DatabaseError>
pub async fn by_not_user_uuid_with_pagination( database: &Database, user_uuid: Uuid, page: i64, per_page: i64, search: Option<&str>, ) -> Result<Pagination<Self>, DatabaseError>
pub async fn by_node_uuid_with_pagination( database: &Database, node_uuid: Uuid, page: i64, per_page: i64, search: Option<&str>, ) -> Result<Pagination<Self>, DatabaseError>
pub async fn by_node_uuid_transferring_with_pagination( database: &Database, node_uuid: Uuid, page: i64, per_page: i64, search: Option<&str>, ) -> Result<Pagination<Self>, DatabaseError>
pub async fn by_egg_uuid_with_pagination( database: &Database, egg_uuid: Uuid, page: i64, per_page: i64, search: Option<&str>, ) -> Result<Pagination<Self>, DatabaseError>
pub async fn by_backup_configuration_uuid_with_pagination( database: &Database, backup_configuration_uuid: Uuid, page: i64, per_page: i64, search: Option<&str>, ) -> Result<Pagination<Self>, DatabaseError>
pub async fn all_with_pagination( database: &Database, page: i64, per_page: i64, search: Option<&str>, ) -> Result<Pagination<Self>, DatabaseError>
pub async fn count_by_user_uuid(database: &Database, user_uuid: Uuid) -> i64
pub async fn count_by_node_uuid(database: &Database, node_uuid: Uuid) -> i64
pub async fn count_by_egg_uuid(database: &Database, egg_uuid: Uuid) -> i64
pub async fn sync(self, database: &Database) -> Result<(), Error>
Sourcepub async fn install(
&self,
state: &State,
truncate_directory: bool,
installation_script: Option<InstallationScript>,
) -> Result<(), Error>
pub async fn install( &self, state: &State, truncate_directory: bool, installation_script: Option<InstallationScript>, ) -> Result<(), Error>
Triggers a re-installation of the server on the node.
This will only work if the server is in a state that allows re-installation. (None status)
If this is not the case, a DisplayError will be returned.
Sourcepub async fn transfer(
self,
state: &State,
options: ServerTransferOptions,
) -> Result<(), Error>
pub async fn transfer( self, state: &State, options: ServerTransferOptions, ) -> Result<(), Error>
Triggers a transfer of the server to another node.
This will only work if the server is in a state that allows transferring. (None status)
If this is not the case, a DisplayError will be returned.
pub fn wings_permissions( &self, settings: &AppSettings, user: &User, ) -> Vec<&str>
pub fn wings_subuser_permissions<'a>( &self, settings: &AppSettings, subuser: &'a ServerSubuser, ) -> Vec<&'a str>
pub async fn backup_configuration( &self, database: &Database, ) -> Option<BackupConfiguration>
pub fn is_ignored(&mut self, path: impl AsRef<Path>, is_dir: bool) -> bool
pub async fn into_remote_api_object( self, database: &Database, ) -> Result<RemoteApiServer, Error>
pub async fn into_admin_api_object( self, database: &Database, storage_url_retriever: &StorageUrlRetriever<'_>, ) -> Result<AdminApiServer, Error>
pub async fn into_api_object( self, database: &Database, user: &User, ) -> Result<ApiServer, Error>
Trait Implementations§
Source§impl ByUuid for Server
impl ByUuid for Server
fn by_uuid<'life0, 'async_trait>(
database: &'life0 Database,
uuid: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Self, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn by_uuid_cached<'life0, 'async_trait>(
database: &'life0 Database,
uuid: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Self, Error>> + Send + 'async_trait>>where
Self: Send + 'async_trait,
'life0: 'async_trait,
fn by_uuid_optional<'life0, 'async_trait>(
database: &'life0 Database,
uuid: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<Self>, DatabaseError>> + Send + 'async_trait>>where
Self: Send + 'async_trait,
'life0: 'async_trait,
fn by_uuid_optional_cached<'life0, 'async_trait>(
database: &'life0 Database,
uuid: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<Self>, Error>> + Send + 'async_trait>>where
Self: Send + 'async_trait,
'life0: 'async_trait,
fn get_fetchable(uuid: Uuid) -> Fetchable<Self>
fn get_fetchable_from_row( row: &PgRow, column: impl AsRef<str>, ) -> Option<Fetchable<Self>>
Source§impl CreatableModel for Server
impl CreatableModel for Server
type CreateOptions<'a> = CreateServerOptions
type CreateResult = Server
fn get_create_handlers() -> &'static LazyLock<CreateListenerList<Self>>
fn create<'life0, 'life1, 'async_trait>(
state: &'life0 State,
options: Self::CreateOptions<'life1>,
) -> Pin<Box<dyn Future<Output = Result<Self, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn register_create_handler<'async_trait, F>(
priority: ListenerPriority,
callback: F,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
F: 'async_trait + for<'a> Fn(&'a mut Self::CreateOptions<'_>, &'a mut InsertQueryBuilder<'_>, &'a State, &'a mut Transaction<'_, Postgres>) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'a>> + Send + Sync + 'static,
Self: 'async_trait,
Source§fn blocking_register_create_handler<F: for<'a> Fn(&'a mut Self::CreateOptions<'_>, &'a mut InsertQueryBuilder<'_>, &'a State, &'a mut Transaction<'_, Postgres>) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'a>> + Send + Sync + 'static>(
priority: ListenerPriority,
callback: F,
)
fn blocking_register_create_handler<F: for<'a> Fn(&'a mut Self::CreateOptions<'_>, &'a mut InsertQueryBuilder<'_>, &'a State, &'a mut Transaction<'_, Postgres>) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'a>> + Send + Sync + 'static>( priority: ListenerPriority, callback: F, )
Warning Read more
fn run_create_handlers<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
options: &'life0 mut Self::CreateOptions<'life1>,
query_builder: &'life2 mut InsertQueryBuilder<'_>,
state: &'life3 State,
transaction: &'life4 mut Transaction<'life5, Postgres>,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
Source§impl DeletableModel for Server
impl DeletableModel for Server
type DeleteOptions = DeleteServerOptions
fn get_delete_handlers() -> &'static LazyLock<DeleteListenerList<Self>>
fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
state: &'life1 State,
options: Self::DeleteOptions,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn register_delete_handler<'async_trait, F>( priority: ListenerPriority, callback: F, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
Source§fn blocking_register_delete_handler<F: for<'a> Fn(&'a Self, &'a Self::DeleteOptions, &'a State, &'a mut Transaction<'_, Postgres>) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>> + Send + Sync + 'static>(
priority: ListenerPriority,
callback: F,
)
fn blocking_register_delete_handler<F: for<'a> Fn(&'a Self, &'a Self::DeleteOptions, &'a State, &'a mut Transaction<'_, Postgres>) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>> + Send + Sync + 'static>( priority: ListenerPriority, callback: F, )
Warning Read more
fn run_delete_handlers<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
options: &'life1 Self::DeleteOptions,
state: &'life2 State,
transaction: &'life3 mut Transaction<'life4, Postgres>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Source§impl<'de> Deserialize<'de> for Server
impl<'de> Deserialize<'de> for Server
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl EventEmittingModel for Server
impl EventEmittingModel for Server
type Event = ServerEvent
fn get_event_emitter() -> &'static EventEmitter<Self::Event>
fn register_event_handler<'async_trait, F, Fut>( listener: F, ) -> Pin<Box<dyn Future<Output = EventHandlerHandle> + Send + 'async_trait>>
Source§impl UpdatableModel for Server
impl UpdatableModel for Server
type UpdateOptions = UpdateServerOptions
fn get_update_handlers() -> &'static LazyLock<UpdateListenerList<Self>>
fn update<'life0, 'life1, 'async_trait>(
&'life0 mut self,
state: &'life1 State,
options: Self::UpdateOptions,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn register_update_handler<'async_trait, F>(
priority: ListenerPriority,
callback: F,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
F: 'async_trait + for<'a> Fn(&'a mut Self, &'a mut Self::UpdateOptions, &'a mut UpdateQueryBuilder<'_>, &'a State, &'a mut Transaction<'_, Postgres>) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'a>> + Send + Sync + 'static,
Self: 'async_trait,
Source§fn blocking_register_update_handler<F: for<'a> Fn(&'a mut Self, &'a mut Self::UpdateOptions, &'a mut UpdateQueryBuilder<'_>, &'a State, &'a mut Transaction<'_, Postgres>) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'a>> + Send + Sync + 'static>(
priority: ListenerPriority,
callback: F,
)
fn blocking_register_update_handler<F: for<'a> Fn(&'a mut Self, &'a mut Self::UpdateOptions, &'a mut UpdateQueryBuilder<'_>, &'a State, &'a mut Transaction<'_, Postgres>) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'a>> + Send + Sync + 'static>( priority: ListenerPriority, callback: F, )
Warning Read more
fn run_update_handlers<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 mut self,
options: &'life1 mut Self::UpdateOptions,
query_builder: &'life2 mut UpdateQueryBuilder<'_>,
state: &'life3 State,
transaction: &'life4 mut Transaction<'life5, Postgres>,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
Auto Trait Implementations§
impl Freeze for Server
impl RefUnwindSafe for Server
impl Send for Server
impl Sync for Server
impl Unpin for Server
impl UnwindSafe for Server
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Chain<T> for T
impl<T> Chain<T> for T
§impl<T> Classify for T
impl<T> Classify for T
type Classified = T
fn classify(self) -> T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Declassify for T
impl<T> Declassify for T
type Declassified = T
fn declassify(self) -> T
§impl<T> FromBase64 for Twhere
T: for<'de> Deserialize<'de>,
impl<T> FromBase64 for Twhere
T: for<'de> Deserialize<'de>,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more