Struct fly_sdk::machines::machine::MachineConfig
source · pub struct MachineConfig {Show 18 fields
pub image: String,
pub guest: Option<GuestConfig>,
pub auto_destroy: Option<bool>,
pub init: Option<InitConfig>,
pub env: Option<HashMap<String, String>>,
pub processes: Option<Vec<ProcessConfig>>,
pub mounts: Option<Vec<MountConfig>>,
pub restart: Option<RestartPolicy>,
pub checks: Option<Checks>,
pub dns: Option<DnsConfig>,
pub files: Option<Vec<FileConfig>>,
pub metadata: Option<HashMap<String, String>>,
pub metrics: Option<MetricsConfig>,
pub schedule: Option<String>,
pub services: Option<Vec<ServiceConfig>>,
pub standbys: Option<Vec<String>>,
pub statics: Option<Vec<StaticConfig>>,
pub stop_config: Option<StopConfig>,
}Fields§
§image: String§guest: Option<GuestConfig>§auto_destroy: Option<bool>§init: Option<InitConfig>§env: Option<HashMap<String, String>>§processes: Option<Vec<ProcessConfig>>§mounts: Option<Vec<MountConfig>>§restart: Option<RestartPolicy>§checks: Option<Checks>§dns: Option<DnsConfig>§files: Option<Vec<FileConfig>>§metadata: Option<HashMap<String, String>>§metrics: Option<MetricsConfig>§schedule: Option<String>§services: Option<Vec<ServiceConfig>>§standbys: Option<Vec<String>>§statics: Option<Vec<StaticConfig>>§stop_config: Option<StopConfig>Implementations§
source§impl MachineConfig
impl MachineConfig
sourcepub fn builder() -> MachineConfigBuilder
pub fn builder() -> MachineConfigBuilder
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 new( image: String, auto_destroy: Option<bool>, guest: Option<GuestConfig>, restart: Option<RestartPolicy>, env: Option<HashMap<String, String>>, processes: Option<Vec<ProcessConfig>>, mounts: Option<Vec<MountConfig>>, checks: Option<Checks>, dns: Option<DnsConfig>, files: Option<Vec<FileConfig>>, init: Option<InitConfig>, metrics: Option<MetricsConfig>, schedule: Option<String>, services: Option<Vec<ServiceConfig>>, standbys: Option<Vec<String>>, statics: Option<Vec<StaticConfig>>, stop_config: Option<StopConfig>, ) -> Self
Trait Implementations§
source§impl Debug for MachineConfig
impl Debug for MachineConfig
source§impl Default for MachineConfig
impl Default for MachineConfig
source§impl<'de> Deserialize<'de> for MachineConfig
impl<'de> Deserialize<'de> for MachineConfig
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 MachineConfig
impl RefUnwindSafe for MachineConfig
impl Send for MachineConfig
impl Sync for MachineConfig
impl Unpin for MachineConfig
impl UnwindSafe for MachineConfig
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