Merge pull request #8977 from sl1pm4t/b-gcs-storage-class
provider/google: Add support for GCS StorageClass
This commit is contained in:
commit
0edb68ef5a
|
@ -56,6 +56,13 @@ func resourceStorageBucket() *schema.Resource {
|
|||
Computed: true,
|
||||
},
|
||||
|
||||
"storage_class": &schema.Schema{
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
Default: "STANDARD",
|
||||
ForceNew: true,
|
||||
},
|
||||
|
||||
"website": &schema.Schema{
|
||||
Type: schema.TypeList,
|
||||
Optional: true,
|
||||
|
@ -91,6 +98,10 @@ func resourceStorageBucketCreate(d *schema.ResourceData, meta interface{}) error
|
|||
// Create a bucket, setting the acl, location and name.
|
||||
sb := &storage.Bucket{Name: bucket, Location: location}
|
||||
|
||||
if v, ok := d.GetOk("storage_class"); ok {
|
||||
sb.StorageClass = v.(string)
|
||||
}
|
||||
|
||||
if v, ok := d.GetOk("website"); ok {
|
||||
websites := v.([]interface{})
|
||||
|
||||
|
|
|
@ -59,6 +59,45 @@ func TestAccStorageCustomAttributes(t *testing.T) {
|
|||
})
|
||||
}
|
||||
|
||||
func TestAccStorageStorageClass(t *testing.T) {
|
||||
bucketName := fmt.Sprintf("tf-test-acc-bucket-%d", acctest.RandInt())
|
||||
|
||||
resource.Test(t, resource.TestCase{
|
||||
PreCheck: func() { testAccPreCheck(t) },
|
||||
Providers: testAccProviders,
|
||||
CheckDestroy: testAccGoogleStorageDestroy,
|
||||
Steps: []resource.TestStep{
|
||||
{
|
||||
Config: testGoogleStorageBucketsReaderStorageClass(bucketName, "STANDARD"),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckCloudStorageBucketExists(
|
||||
"google_storage_bucket.bucket", bucketName),
|
||||
resource.TestCheckResourceAttr(
|
||||
"google_storage_bucket.bucket", "storage_class", "STANDARD"),
|
||||
),
|
||||
},
|
||||
{
|
||||
Config: testGoogleStorageBucketsReaderStorageClass(bucketName, "NEARLINE"),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckCloudStorageBucketExists(
|
||||
"google_storage_bucket.bucket", bucketName),
|
||||
resource.TestCheckResourceAttr(
|
||||
"google_storage_bucket.bucket", "storage_class", "NEARLINE"),
|
||||
),
|
||||
},
|
||||
{
|
||||
Config: testGoogleStorageBucketsReaderStorageClass(bucketName, "DURABLE_REDUCED_AVAILABILITY"),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckCloudStorageBucketExists(
|
||||
"google_storage_bucket.bucket", bucketName),
|
||||
resource.TestCheckResourceAttr(
|
||||
"google_storage_bucket.bucket", "storage_class", "DURABLE_REDUCED_AVAILABILITY"),
|
||||
),
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
func TestAccStorageBucketUpdate(t *testing.T) {
|
||||
bucketName := fmt.Sprintf("tf-test-acl-bucket-%d", acctest.RandInt())
|
||||
|
||||
|
@ -226,3 +265,12 @@ resource "google_storage_bucket" "bucket" {
|
|||
}
|
||||
`, bucketName)
|
||||
}
|
||||
|
||||
func testGoogleStorageBucketsReaderStorageClass(bucketName string, storageClass string) string {
|
||||
return fmt.Sprintf(`
|
||||
resource "google_storage_bucket" "bucket" {
|
||||
name = "%s"
|
||||
storage_class = "%s"
|
||||
}
|
||||
`, bucketName, storageClass)
|
||||
}
|
||||
|
|
|
@ -48,6 +48,8 @@ to `google_storage_bucket_acl.predefined_acl`.
|
|||
* `project` - (Optional) The project in which the resource belongs. If it
|
||||
is not provided, the provider project is used.
|
||||
|
||||
* `storage_class` - (Optional) The [Storage Class](https://cloud.google.com/storage/docs/storage-classes) of the new bucket. Supported values include: `STANDARD`, `NEARLINE`, `DURABLE_REDUCED_AVAILABILITY`
|
||||
|
||||
* `website` - (Optional) Configuration if the bucket acts as a website.
|
||||
|
||||
The optional `website` block supports:
|
||||
|
|
Loading…
Reference in New Issue