canic_core/api/lifecycle/
nonroot.rs1use crate::{
2 config::schema::ConfigModel,
3 dto::{
4 abi::v1::CanisterInitPayload, env::EnvBootstrapArgs,
5 fleet_subnet_root::FleetSubnetWasmStoreInitArgs,
6 },
7 ids::{CanisterRole, ManagedCanisterBinding},
8 lifecycle,
9};
10
11pub struct LifecycleApi;
16
17impl LifecycleApi {
18 pub fn managed_binding() -> Result<ManagedCanisterBinding, crate::dto::error::Error> {
20 crate::ops::runtime::env::EnvOps::managed_binding().map_err(Into::into)
21 }
22
23 pub fn init_nonroot_canister_before_bootstrap(
24 role: CanisterRole,
25 payload: CanisterInitPayload,
26 application_init_args: Option<Vec<u8>>,
27 config: ConfigModel,
28 config_source: &str,
29 config_path: &str,
30 ) {
31 lifecycle::init::nonroot::init_nonroot_canister_before_bootstrap(
32 role,
33 payload,
34 application_init_args,
35 config,
36 config_source,
37 config_path,
38 );
39 }
40
41 pub fn init_wasm_store_before_bootstrap(
42 input: FleetSubnetWasmStoreInitArgs,
43 config: ConfigModel,
44 config_source: &str,
45 config_path: &str,
46 ) {
47 lifecycle::init::nonroot::init_wasm_store_before_bootstrap(
48 input,
49 config,
50 config_source,
51 config_path,
52 );
53 }
54
55 pub fn schedule_init_nonroot_bootstrap() {
56 lifecycle::init::nonroot::schedule_init_nonroot_bootstrap();
57 }
58
59 pub fn init_local_nonroot_canister_before_bootstrap(
60 role: CanisterRole,
61 env: EnvBootstrapArgs,
62 config: ConfigModel,
63 config_source: &str,
64 config_path: &str,
65 ) {
66 lifecycle::init::nonroot::init_local_nonroot_canister_before_bootstrap(
67 role,
68 env,
69 config,
70 config_source,
71 config_path,
72 );
73 }
74
75 #[must_use]
76 pub fn post_upgrade_nonroot_canister_before_bootstrap(
77 role: CanisterRole,
78 config: ConfigModel,
79 config_source: &str,
80 config_path: &str,
81 ) -> bool {
82 lifecycle::upgrade::nonroot::post_upgrade_nonroot_canister_before_bootstrap(
83 role,
84 config,
85 config_source,
86 config_path,
87 )
88 }
89
90 pub fn schedule_post_upgrade_nonroot_bootstrap() {
91 lifecycle::upgrade::nonroot::schedule_post_upgrade_nonroot_bootstrap();
92 }
93
94 #[must_use]
95 pub fn post_upgrade_local_nonroot_canister_before_bootstrap(
96 role: CanisterRole,
97 config: ConfigModel,
98 config_source: &str,
99 config_path: &str,
100 ) -> bool {
101 lifecycle::upgrade::nonroot::post_upgrade_local_nonroot_canister_before_bootstrap(
102 role,
103 config,
104 config_source,
105 config_path,
106 )
107 }
108}