Struct fly_sdk::machines::machine::MachineConfigBuilder
source · pub struct MachineConfigBuilder { /* private fields */ }Implementations§
source§impl MachineConfigBuilder
impl MachineConfigBuilder
pub fn new() -> Self
sourcepub fn image(self, image: &str) -> Self
pub fn image(self, image: &str) -> Self
Examples found in repository?
examples/machines.rs (line 34)
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
async fn main() -> Result<(), Box<dyn Error>> {
tracing_subscriber::registry()
.with(fmt::layer().with_writer(std::io::stdout))
.with(EnvFilter::new(
std::env::var("RUST_LOG").unwrap_or_else(|_| "info".into()),
))
.init();
let api_token = std::env::var("FLY_ORG_TOKEN").expect("FLY_ORG_TOKEN must be set");
let args: Vec<String> = std::env::args().collect();
let org_slug = &args
.get(1)
.expect("Usage: cargo run --example apps <org_slug>");
let app_name = "rusty-app";
let machine_id = "machine-name";
let app_image = "ubuntu:20.04";
let fly = FlyControl::new(api_token.to_string());
fly.apps.create(app_name, org_slug).await?;
// MACHINES
// create a machine
let response = fly
.machines
.create(
app_name,
machines::MachineRequest::new(
machines::MachineConfig::builder().image(app_image).build(),
Some(machine_id.to_string()),
Some(machines::MachineRegions::Iad),
),
)
.await?;
info!("Created machine: {:?}", response.id);
let did = &response.id.unwrap();
let iid: &String = &response.instance_id.unwrap();
// wait for start state
fly.machines
.wait_for_machine_state(app_name, did, machines::MachineState::Started, None, None)
.await?;
// list machines
fly.machines.list(app_name).await?;
// stop/start machine
fly.machines.stop(app_name, did, iid).await?;
fly.machines.start(app_name, did).await?;
// list events/processes
let events = fly.machines.list_events(app_name, did).await?;
info!("Events: {:?}", events);
let processes = fly.machines.list_processes(app_name, did).await?;
info!("Processes: {:?}", processes);
// execute command
let resp = fly
.machines
.execute_command(
app_name,
did,
vec!["sh", "-c", "which echo && /bin/echo 'Hello, World!'"],
None,
)
.await?;
info!("Command response: {:?}", resp);
// restart/update machine
fly.machines.restart_machine(app_name, did, iid).await?;
fly.machines
.update_machine(
app_name,
did,
iid,
machines::MachineRequest::new(
machines::MachineConfig::builder().image(app_image).build(),
Some("foo".to_string()),
Some(machines::MachineRegions::Ams),
),
)
.await?;
// delete machine/app
fly.machines.delete(app_name, did, true).await?;
fly.apps.delete(app_name, false).await?;
Ok(())
}pub fn auto_destroy(self, auto_destroy: bool) -> Self
pub fn restart_policy( self, policy: RestartPolicyEnum, max_retries: Option<u32>, gpu_bid_price: Option<f64>, ) -> Self
pub fn cpus(self, cpus: u64) -> Self
pub fn memory(self, memory_mb: u64) -> Self
pub fn cpu_kind(self, cpu_kind: CpuKind) -> Self
pub fn gpus(self, gpus: u64) -> Self
pub fn gpu_kind(self, gpu_kind: GpuKind) -> Self
pub fn checks(self, config: Checks) -> Self
pub fn dns(self, dns_config: DnsConfig) -> Self
pub fn add_env(self, key: &str, value: &str) -> Self
pub fn add_file(self, file_config: FileConfig) -> Self
pub fn init(self, init_config: InitConfig) -> Self
pub fn metrics(self, metrics_config: MetricsConfig) -> Self
pub fn add_mount(self, mount_config: MountConfig) -> Self
pub fn add_process(self, process_config: ProcessConfig) -> Self
pub fn schedule(self, schedule: &str) -> Self
pub fn add_service(self, service_config: ServiceConfig) -> Self
pub fn add_standby(self, standby: &str) -> Self
pub fn add_static(self, static_config: StaticConfig) -> Self
pub fn stop_config(self, stop_config: StopConfig) -> Self
sourcepub fn build(self) -> MachineConfig
pub fn build(self) -> MachineConfig
Examples found in repository?
examples/machines.rs (line 34)
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
async fn main() -> Result<(), Box<dyn Error>> {
tracing_subscriber::registry()
.with(fmt::layer().with_writer(std::io::stdout))
.with(EnvFilter::new(
std::env::var("RUST_LOG").unwrap_or_else(|_| "info".into()),
))
.init();
let api_token = std::env::var("FLY_ORG_TOKEN").expect("FLY_ORG_TOKEN must be set");
let args: Vec<String> = std::env::args().collect();
let org_slug = &args
.get(1)
.expect("Usage: cargo run --example apps <org_slug>");
let app_name = "rusty-app";
let machine_id = "machine-name";
let app_image = "ubuntu:20.04";
let fly = FlyControl::new(api_token.to_string());
fly.apps.create(app_name, org_slug).await?;
// MACHINES
// create a machine
let response = fly
.machines
.create(
app_name,
machines::MachineRequest::new(
machines::MachineConfig::builder().image(app_image).build(),
Some(machine_id.to_string()),
Some(machines::MachineRegions::Iad),
),
)
.await?;
info!("Created machine: {:?}", response.id);
let did = &response.id.unwrap();
let iid: &String = &response.instance_id.unwrap();
// wait for start state
fly.machines
.wait_for_machine_state(app_name, did, machines::MachineState::Started, None, None)
.await?;
// list machines
fly.machines.list(app_name).await?;
// stop/start machine
fly.machines.stop(app_name, did, iid).await?;
fly.machines.start(app_name, did).await?;
// list events/processes
let events = fly.machines.list_events(app_name, did).await?;
info!("Events: {:?}", events);
let processes = fly.machines.list_processes(app_name, did).await?;
info!("Processes: {:?}", processes);
// execute command
let resp = fly
.machines
.execute_command(
app_name,
did,
vec!["sh", "-c", "which echo && /bin/echo 'Hello, World!'"],
None,
)
.await?;
info!("Command response: {:?}", resp);
// restart/update machine
fly.machines.restart_machine(app_name, did, iid).await?;
fly.machines
.update_machine(
app_name,
did,
iid,
machines::MachineRequest::new(
machines::MachineConfig::builder().image(app_image).build(),
Some("foo".to_string()),
Some(machines::MachineRegions::Ams),
),
)
.await?;
// delete machine/app
fly.machines.delete(app_name, did, true).await?;
fly.apps.delete(app_name, false).await?;
Ok(())
}Auto Trait Implementations§
impl Freeze for MachineConfigBuilder
impl RefUnwindSafe for MachineConfigBuilder
impl Send for MachineConfigBuilder
impl Sync for MachineConfigBuilder
impl Unpin for MachineConfigBuilder
impl UnwindSafe for MachineConfigBuilder
Blanket Implementations§
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