Commit 170145c5 authored by Doug's avatar Doug Committed by John DiSanti
Browse files

Update AutoScaling code example (#745)

* Removed unit tests from Auto Scaling code examples.

* Updated AutoScaling code example--reset args in separate function.
parent b88b2c35
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ vNext (Month Day, Year)
- :bug: Fix error when receiving `Cont` event from S3 SelectObjectContent (smithy-rs#736)
- :bug: Fix bug in event stream receiver that could cause the last events in the response stream to be lost when using S3 SelectObjectContent (smithy-rs#736)
- Updated Transcribe code example to take an audio file as a command-line option and added readme.
- Updated Auto Scaling code example to move operation from main to separate function; added readme.
- :tada: Add support for 6 new AWS services:
    - Wisdom
    - VoiceId
+17 −12
Original line number Diff line number Diff line
@@ -26,6 +26,22 @@ struct Opt {
    verbose: bool,
}

// Creates a group.
async fn create_group(client: &Client, name: &str, id: &str) -> Result<(), Error> {
    client
        .create_auto_scaling_group()
        .auto_scaling_group_name(name)
        .instance_id(id)
        .min_size(1)
        .max_size(5)
        .send()
        .await?;

    println!("Created AutoScaling group");

    Ok(())
}

/// Creates an Auto Scaling group in the Region.
/// # Arguments
///
@@ -49,7 +65,6 @@ async fn main() -> Result<(), Error> {
    let region_provider = RegionProviderChain::first_try(region.map(Region::new))
        .or_default_provider()
        .or_else(Region::new("us-west-2"));

    println!();

    if verbose {
@@ -67,15 +82,5 @@ async fn main() -> Result<(), Error> {
    let shared_config = aws_config::from_env().region(region_provider).load().await;
    let client = Client::new(&shared_config);

    client
        .create_auto_scaling_group()
        .auto_scaling_group_name(autoscaling_name)
        .instance_id(instance_id)
        .min_size(1)
        .max_size(5)
        .send()
        .await?;

    println!("Created AutoScaling group");
    Ok(())
    create_group(&client, &autoscaling_name, &instance_id).await
}
+16 −9
Original line number Diff line number Diff line
@@ -26,6 +26,20 @@ struct Opt {
    verbose: bool,
}

// Deletes a group.
async fn delete_group(client: &Client, name: &str, force: bool) -> Result<(), Error> {
    client
        .delete_auto_scaling_group()
        .auto_scaling_group_name(name)
        .set_force_delete(force.then(|| true))
        .send()
        .await?;

    println!("Deleted Auto Scaling group");

    Ok(())
}

/// Updates an Auto Scaling group in the Region to the specified maximum size.
/// # Arguments
///
@@ -49,6 +63,7 @@ async fn main() -> Result<(), Error> {
    let region_provider = RegionProviderChain::first_try(region.map(Region::new))
        .or_default_provider()
        .or_else(Region::new("us-west-2"));
    println!();

    println!();

@@ -66,13 +81,5 @@ async fn main() -> Result<(), Error> {
    let shared_config = aws_config::from_env().region(region_provider).load().await;
    let client = Client::new(&shared_config);

    client
        .delete_auto_scaling_group()
        .auto_scaling_group_name(autoscaling_name)
        .set_force_delete(force.then(|| true))
        .send()
        .await?;

    println!("Deleted Auto Scaling group");
    Ok(())
    delete_group(&client, &autoscaling_name, force).await
}
+28 −23
Original line number Diff line number Diff line
@@ -18,6 +18,33 @@ struct Opt {
    verbose: bool,
}

// Lists your groups.
async fn list_groups(client: &Client) -> Result<(), Error> {
    let resp = client.describe_auto_scaling_groups().send().await?;

    println!("Groups:");

    let groups = resp.auto_scaling_groups.unwrap_or_default();

    for group in &groups {
        println!(
            "  {}",
            group.auto_scaling_group_name.as_deref().unwrap_or_default()
        );
        println!(
            "  ARN:          {}",
            group.auto_scaling_group_arn.as_deref().unwrap_or_default()
        );
        println!("  Minimum size: {}", group.min_size.unwrap_or_default());
        println!("  Maximum size: {}", group.max_size.unwrap_or_default());
        println!();
    }

    println!("Found {} group(s)", groups.len());

    Ok(())
}

/// Lists your Amazon EC2 Auto Scaling groups in the Region.
/// # Arguments
///
@@ -34,7 +61,6 @@ async fn main() -> Result<(), Error> {
    let region_provider = RegionProviderChain::first_try(region.map(Region::new))
        .or_default_provider()
        .or_else(Region::new("us-west-2"));

    println!();

    if verbose {
@@ -50,26 +76,5 @@ async fn main() -> Result<(), Error> {
    let shared_config = aws_config::from_env().region(region_provider).load().await;
    let client = Client::new(&shared_config);

    let resp = client.describe_auto_scaling_groups().send().await?;

    println!("Groups:");

    let groups = resp.auto_scaling_groups.unwrap_or_default();

    for group in &groups {
        println!(
            "  {}",
            group.auto_scaling_group_name.as_deref().unwrap_or_default()
        );
        println!(
            "  ARN:          {}",
            group.auto_scaling_group_arn.as_deref().unwrap_or_default()
        );
        println!("  Minimum size: {}", group.min_size.unwrap_or_default());
        println!("  Maximum size: {}", group.max_size.unwrap_or_default());
        println!();
    }

    println!("Found {} group(s)", groups.len());
    Ok(())
    list_groups(&client).await
}
+15 −10
Original line number Diff line number Diff line
@@ -26,6 +26,20 @@ struct Opt {
    verbose: bool,
}

// Updates the size of a group.
async fn update_group(client: &Client, name: &str, size: i32) -> Result<(), Error> {
    client
        .update_auto_scaling_group()
        .auto_scaling_group_name(name)
        .max_size(size)
        .send()
        .await?;

    println!("Updated AutoScaling group");

    Ok(())
}

/// Updates an Auto Scaling group in the Region to a new maximum size.
/// # Arguments
///
@@ -49,7 +63,6 @@ async fn main() -> Result<(), Error> {
    let region_provider = RegionProviderChain::first_try(region.map(Region::new))
        .or_default_provider()
        .or_else(Region::new("us-west-2"));

    println!();

    if verbose {
@@ -66,13 +79,5 @@ async fn main() -> Result<(), Error> {
    let shared_config = aws_config::from_env().region(region_provider).load().await;
    let client = Client::new(&shared_config);

    client
        .update_auto_scaling_group()
        .auto_scaling_group_name(autoscaling_name)
        .max_size(max_size)
        .send()
        .await?;

    println!("Updated AutoScaling group");
    Ok(())
    update_group(&client, &autoscaling_name, max_size).await
}