diff --git a/builtin/providers/aws/import_aws_lambda_function_test.go b/builtin/providers/aws/import_aws_lambda_function_test.go new file mode 100644 index 000000000..3672c2e10 --- /dev/null +++ b/builtin/providers/aws/import_aws_lambda_function_test.go @@ -0,0 +1,81 @@ +package aws + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform/helper/acctest" + "github.com/hashicorp/terraform/helper/resource" +) + +func TestAccAWSLambdaFunction_importLocalFile(t *testing.T) { + resourceName := "aws_lambda_function.lambda_function_test" + + rName := fmt.Sprintf("tf_test_%s", acctest.RandString(5)) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckLambdaFunctionDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccAWSLambdaConfigBasic(rName), + }, + + resource.TestStep{ + ResourceName: resourceName, + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIgnore: []string{"filename"}, + }, + }, + }) +} + +func TestAccAWSLambdaFunction_importLocalFile_VPC(t *testing.T) { + resourceName := "aws_lambda_function.lambda_function_test" + + rName := fmt.Sprintf("tf_test_%s", acctest.RandString(5)) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckLambdaFunctionDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccAWSLambdaConfigWithVPC(rName), + }, + + resource.TestStep{ + ResourceName: resourceName, + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIgnore: []string{"filename"}, + }, + }, + }) +} + +func TestAccAWSLambdaFunction_importS3(t *testing.T) { + resourceName := "aws_lambda_function.lambda_function_s3test" + + rName := fmt.Sprintf("tf_test_%s", acctest.RandString(5)) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckLambdaFunctionDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccAWSLambdaConfigS3(rName), + }, + + resource.TestStep{ + ResourceName: resourceName, + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIgnore: []string{"s3_bucket", "s3_key"}, + }, + }, + }) +} diff --git a/builtin/providers/aws/resource_aws_lambda_function.go b/builtin/providers/aws/resource_aws_lambda_function.go index 4df10e948..dee086c6a 100644 --- a/builtin/providers/aws/resource_aws_lambda_function.go +++ b/builtin/providers/aws/resource_aws_lambda_function.go @@ -24,6 +24,13 @@ func resourceAwsLambdaFunction() *schema.Resource { Update: resourceAwsLambdaFunctionUpdate, Delete: resourceAwsLambdaFunctionDelete, + Importer: &schema.ResourceImporter{ + State: func(d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) { + d.Set("function_name", d.Id()) + return []*schema.ResourceData{d}, nil + }, + }, + Schema: map[string]*schema.Schema{ "filename": &schema.Schema{ Type: schema.TypeString,