Struct fly_sdk::machines::endpoints::MachineRequest
source · pub struct MachineRequest {
pub name: Option<String>,
pub config: MachineConfig,
pub region: Option<MachineRegions>,
pub lease_ttl: Option<u64>,
pub lsvd: Option<bool>,
pub skip_launch: Option<bool>,
pub skip_service_registration: Option<bool>,
}Fields§
§name: Option<String>§config: MachineConfig§region: Option<MachineRegions>§lease_ttl: Option<u64>§lsvd: Option<bool>§skip_launch: Option<bool>§skip_service_registration: Option<bool>Implementations§
source§impl MachineRequest
impl MachineRequest
sourcepub fn new(
config: MachineConfig,
name: Option<String>,
region: Option<MachineRegions>,
) -> Self
pub fn new( config: MachineConfig, name: Option<String>, region: Option<MachineRegions>, ) -> Self
Examples found in repository?
examples/machines.rs (lines 33-37)
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 with_lease_ttl(self, lease_ttl: u64) -> Self
pub fn with_lsvd(self, lsvd: bool) -> Self
pub fn with_skip_launch(self, skip_launch: bool) -> Self
pub fn with_skip_service_registration( self, skip_service_registration: bool, ) -> Self
pub fn to_json(&self) -> String
Trait Implementations§
source§impl Debug for MachineRequest
impl Debug for MachineRequest
source§impl<'de> Deserialize<'de> for MachineRequest
impl<'de> Deserialize<'de> for MachineRequest
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
Auto Trait Implementations§
impl Freeze for MachineRequest
impl RefUnwindSafe for MachineRequest
impl Send for MachineRequest
impl Sync for MachineRequest
impl Unpin for MachineRequest
impl UnwindSafe for MachineRequest
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