diff --git a/builtin/providers/aws/import_aws_iam_user_test.go b/builtin/providers/aws/import_aws_iam_user_test.go new file mode 100644 index 0000000000..f6681f656c --- /dev/null +++ b/builtin/providers/aws/import_aws_iam_user_test.go @@ -0,0 +1,28 @@ +package aws + +import ( + "testing" + + "github.com/hashicorp/terraform/helper/resource" +) + +func TestAccAWSUser_importBasic(t *testing.T) { + resourceName := "aws_iam_user.user" + + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckAWSUserDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccAWSUserConfig, + }, + + resource.TestStep{ + ResourceName: resourceName, + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} diff --git a/builtin/providers/aws/resource_aws_iam_user.go b/builtin/providers/aws/resource_aws_iam_user.go index 99a12edf9c..30282031db 100644 --- a/builtin/providers/aws/resource_aws_iam_user.go +++ b/builtin/providers/aws/resource_aws_iam_user.go @@ -17,6 +17,9 @@ func resourceAwsIamUser() *schema.Resource { Read: resourceAwsIamUserRead, Update: resourceAwsIamUserUpdate, Delete: resourceAwsIamUserDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, Schema: map[string]*schema.Schema{ "arn": &schema.Schema{ @@ -64,14 +67,15 @@ func resourceAwsIamUserCreate(d *schema.ResourceData, meta interface{}) error { if err != nil { return fmt.Errorf("Error creating IAM User %s: %s", name, err) } + d.SetId(*createResp.User.UserName) return resourceAwsIamUserReadResult(d, createResp.User) } func resourceAwsIamUserRead(d *schema.ResourceData, meta interface{}) error { iamconn := meta.(*AWSClient).iamconn - name := d.Get("name").(string) + request := &iam.GetUserInput{ - UserName: aws.String(name), + UserName: aws.String(d.Id()), } getResp, err := iamconn.GetUser(request) @@ -87,7 +91,6 @@ func resourceAwsIamUserRead(d *schema.ResourceData, meta interface{}) error { } func resourceAwsIamUserReadResult(d *schema.ResourceData, user *iam.User) error { - d.SetId(*user.UserName) if err := d.Set("name", user.UserName); err != nil { return err }