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)
7async fn main() -> Result<(), Box<dyn Error>> {
8 tracing_subscriber::registry()
9 .with(fmt::layer().with_writer(std::io::stdout))
10 .with(EnvFilter::new(
11 std::env::var("RUST_LOG").unwrap_or_else(|_| "info".into()),
12 ))
13 .init();
14 let api_token = std::env::var("FLY_ORG_TOKEN").expect("FLY_ORG_TOKEN must be set");
15 let args: Vec<String> = std::env::args().collect();
16 let org_slug = &args
17 .get(1)
18 .expect("Usage: cargo run --example apps <org_slug>");
19
20 let app_name = "rusty-app";
21 let machine_id = "machine-name";
22 let app_image = "ubuntu:20.04";
23 let fly = FlyControl::new(api_token.to_string());
24
25 fly.apps.create(app_name, org_slug).await?;
26
27 // MACHINES
28 // create a machine
29 let response = fly
30 .machines
31 .create(
32 app_name,
33 machines::MachineRequest::new(
34 machines::MachineConfig::builder().image(app_image).build(),
35 Some(machine_id.to_string()),
36 Some(machines::MachineRegions::Iad),
37 ),
38 )
39 .await?;
40 info!("Created machine: {:?}", response.id);
41 let did = &response.id.unwrap();
42 let iid: &String = &response.instance_id.unwrap();
43
44 // wait for start state
45 fly.machines
46 .wait_for_machine_state(app_name, did, machines::MachineState::Started, None, None)
47 .await?;
48
49 // list machines
50 fly.machines.list(app_name).await?;
51
52 // stop/start machine
53 fly.machines.stop(app_name, did, iid).await?;
54 fly.machines.start(app_name, did).await?;
55
56 // list events/processes
57 let events = fly.machines.list_events(app_name, did).await?;
58 info!("Events: {:?}", events);
59 let processes = fly.machines.list_processes(app_name, did).await?;
60 info!("Processes: {:?}", processes);
61
62 // execute command
63 let resp = fly
64 .machines
65 .execute_command(
66 app_name,
67 did,
68 vec!["sh", "-c", "which echo && /bin/echo 'Hello, World!'"],
69 None,
70 )
71 .await?;
72 info!("Command response: {:?}", resp);
73
74 // restart/update machine
75 fly.machines.restart_machine(app_name, did, iid).await?;
76 fly.machines
77 .update_machine(
78 app_name,
79 did,
80 iid,
81 machines::MachineRequest::new(
82 machines::MachineConfig::builder().image(app_image).build(),
83 Some("foo".to_string()),
84 Some(machines::MachineRegions::Ams),
85 ),
86 )
87 .await?;
88
89 // delete machine/app
90 fly.machines.delete(app_name, did, true).await?;
91 fly.apps.delete(app_name, false).await?;
92
93 Ok(())
94}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