From 43cb76eb57cec913ca20379b47e0e09061c2a24e Mon Sep 17 00:00:00 2001 From: Laure-di Date: Wed, 11 Jun 2025 16:59:28 +0200 Subject: [PATCH] fix(block): forceNew only if new size_in_gb is shreking --- internal/services/block/helpers_block.go | 2 +- .../testdata/volume-update-size.cassette.yaml | 1328 +++++++++++++++++ internal/services/block/volume.go | 4 +- internal/services/block/volume_test.go | 63 + 4 files changed, 1394 insertions(+), 3 deletions(-) create mode 100644 internal/services/block/testdata/volume-update-size.cassette.yaml diff --git a/internal/services/block/helpers_block.go b/internal/services/block/helpers_block.go index 5648275619..3d1e55518e 100644 --- a/internal/services/block/helpers_block.go +++ b/internal/services/block/helpers_block.go @@ -52,7 +52,7 @@ func customDiffCannotShrink(key string) schema.CustomizeDiffFunc { oldValue := oldValueI.(int) newValue := newValueI.(int) - return oldValue < newValue + return oldValue > newValue }) } diff --git a/internal/services/block/testdata/volume-update-size.cassette.yaml b/internal/services/block/testdata/volume-update-size.cassette.yaml new file mode 100644 index 0000000000..a6b74419bb --- /dev/null +++ b/internal/services/block/testdata/volume-update-size.cassette.yaml @@ -0,0 +1,1328 @@ +--- +version: 2 +interactions: + - id: 0 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 147 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: '{"name":"test-block-volume-basic","perf_iops":5000,"project_id":"d3520a52-2c75-4ba0-bda8-82dd087f07f2","from_empty":{"size":20000000000},"tags":[]}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 420 + uncompressed: false + body: '{"created_at":"2025-06-11T15:41:08.122240Z","id":"8c38fa15-4249-47c3-b4ea-ce379d4620dd","last_detached_at":null,"name":"test-block-volume-basic","parent_snapshot_id":null,"project_id":"d3520a52-2c75-4ba0-bda8-82dd087f07f2","references":[],"size":20000000000,"specs":{"class":"sbs","perf_iops":5000},"status":"creating","tags":[],"type":"sbs_5k","updated_at":"2025-06-11T15:41:08.122240Z","zone":"fr-par-1"}' + headers: + Content-Length: + - "420" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:08 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - e4567fc8-e4e0-4827-8a92-f36429226540 + status: 200 OK + code: 200 + duration: 196.356292ms + - id: 1 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/8c38fa15-4249-47c3-b4ea-ce379d4620dd + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 420 + uncompressed: false + body: '{"created_at":"2025-06-11T15:41:08.122240Z","id":"8c38fa15-4249-47c3-b4ea-ce379d4620dd","last_detached_at":null,"name":"test-block-volume-basic","parent_snapshot_id":null,"project_id":"d3520a52-2c75-4ba0-bda8-82dd087f07f2","references":[],"size":20000000000,"specs":{"class":"sbs","perf_iops":5000},"status":"creating","tags":[],"type":"sbs_5k","updated_at":"2025-06-11T15:41:08.122240Z","zone":"fr-par-1"}' + headers: + Content-Length: + - "420" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:08 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 225c3692-6394-4f3f-a515-64104eb08651 + status: 200 OK + code: 200 + duration: 45.777583ms + - id: 2 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/8c38fa15-4249-47c3-b4ea-ce379d4620dd + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 421 + uncompressed: false + body: '{"created_at":"2025-06-11T15:41:08.122240Z","id":"8c38fa15-4249-47c3-b4ea-ce379d4620dd","last_detached_at":null,"name":"test-block-volume-basic","parent_snapshot_id":null,"project_id":"d3520a52-2c75-4ba0-bda8-82dd087f07f2","references":[],"size":20000000000,"specs":{"class":"sbs","perf_iops":5000},"status":"available","tags":[],"type":"sbs_5k","updated_at":"2025-06-11T15:41:08.122240Z","zone":"fr-par-1"}' + headers: + Content-Length: + - "421" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:13 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 160f2096-3a27-4d84-9078-0e1c5d8da3a0 + status: 200 OK + code: 200 + duration: 39.973667ms + - id: 3 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/8c38fa15-4249-47c3-b4ea-ce379d4620dd + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 421 + uncompressed: false + body: '{"created_at":"2025-06-11T15:41:08.122240Z","id":"8c38fa15-4249-47c3-b4ea-ce379d4620dd","last_detached_at":null,"name":"test-block-volume-basic","parent_snapshot_id":null,"project_id":"d3520a52-2c75-4ba0-bda8-82dd087f07f2","references":[],"size":20000000000,"specs":{"class":"sbs","perf_iops":5000},"status":"available","tags":[],"type":"sbs_5k","updated_at":"2025-06-11T15:41:08.122240Z","zone":"fr-par-1"}' + headers: + Content-Length: + - "421" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:13 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 1625b59a-f6b7-4ff3-9ce3-678bda95d9eb + status: 200 OK + code: 200 + duration: 46.381208ms + - id: 4 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/8c38fa15-4249-47c3-b4ea-ce379d4620dd + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 421 + uncompressed: false + body: '{"created_at":"2025-06-11T15:41:08.122240Z","id":"8c38fa15-4249-47c3-b4ea-ce379d4620dd","last_detached_at":null,"name":"test-block-volume-basic","parent_snapshot_id":null,"project_id":"d3520a52-2c75-4ba0-bda8-82dd087f07f2","references":[],"size":20000000000,"specs":{"class":"sbs","perf_iops":5000},"status":"available","tags":[],"type":"sbs_5k","updated_at":"2025-06-11T15:41:08.122240Z","zone":"fr-par-1"}' + headers: + Content-Length: + - "421" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:13 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 4612891f-8117-4820-b3cf-13b7df942417 + status: 200 OK + code: 200 + duration: 57.095208ms + - id: 5 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/8c38fa15-4249-47c3-b4ea-ce379d4620dd + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 421 + uncompressed: false + body: '{"created_at":"2025-06-11T15:41:08.122240Z","id":"8c38fa15-4249-47c3-b4ea-ce379d4620dd","last_detached_at":null,"name":"test-block-volume-basic","parent_snapshot_id":null,"project_id":"d3520a52-2c75-4ba0-bda8-82dd087f07f2","references":[],"size":20000000000,"specs":{"class":"sbs","perf_iops":5000},"status":"available","tags":[],"type":"sbs_5k","updated_at":"2025-06-11T15:41:08.122240Z","zone":"fr-par-1"}' + headers: + Content-Length: + - "421" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:14 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - c32d5922-06ca-4384-84c0-ad3ec7eb9471 + status: 200 OK + code: 200 + duration: 38.505708ms + - id: 6 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/8c38fa15-4249-47c3-b4ea-ce379d4620dd + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 421 + uncompressed: false + body: '{"created_at":"2025-06-11T15:41:08.122240Z","id":"8c38fa15-4249-47c3-b4ea-ce379d4620dd","last_detached_at":null,"name":"test-block-volume-basic","parent_snapshot_id":null,"project_id":"d3520a52-2c75-4ba0-bda8-82dd087f07f2","references":[],"size":20000000000,"specs":{"class":"sbs","perf_iops":5000},"status":"available","tags":[],"type":"sbs_5k","updated_at":"2025-06-11T15:41:08.122240Z","zone":"fr-par-1"}' + headers: + Content-Length: + - "421" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:14 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 72f9f6ad-16b7-4a4c-87aa-e47908372558 + status: 200 OK + code: 200 + duration: 43.190916ms + - id: 7 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/8c38fa15-4249-47c3-b4ea-ce379d4620dd + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 421 + uncompressed: false + body: '{"created_at":"2025-06-11T15:41:08.122240Z","id":"8c38fa15-4249-47c3-b4ea-ce379d4620dd","last_detached_at":null,"name":"test-block-volume-basic","parent_snapshot_id":null,"project_id":"d3520a52-2c75-4ba0-bda8-82dd087f07f2","references":[],"size":20000000000,"specs":{"class":"sbs","perf_iops":5000},"status":"available","tags":[],"type":"sbs_5k","updated_at":"2025-06-11T15:41:08.122240Z","zone":"fr-par-1"}' + headers: + Content-Length: + - "421" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:15 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 112f2c44-3e54-44e2-91aa-a6ba9f06dbf4 + status: 200 OK + code: 200 + duration: 44.142333ms + - id: 8 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 20 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: '{"size":30000000000}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/8c38fa15-4249-47c3-b4ea-ce379d4620dd + method: PATCH + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 420 + uncompressed: false + body: '{"created_at":"2025-06-11T15:41:08.122240Z","id":"8c38fa15-4249-47c3-b4ea-ce379d4620dd","last_detached_at":null,"name":"test-block-volume-basic","parent_snapshot_id":null,"project_id":"d3520a52-2c75-4ba0-bda8-82dd087f07f2","references":[],"size":20000000000,"specs":{"class":"sbs","perf_iops":5000},"status":"updating","tags":[],"type":"sbs_5k","updated_at":"2025-06-11T15:41:08.122240Z","zone":"fr-par-1"}' + headers: + Content-Length: + - "420" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:15 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 0d14d684-0334-435a-8c14-0efcac46af48 + status: 200 OK + code: 200 + duration: 88.3195ms + - id: 9 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/8c38fa15-4249-47c3-b4ea-ce379d4620dd + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 420 + uncompressed: false + body: '{"created_at":"2025-06-11T15:41:08.122240Z","id":"8c38fa15-4249-47c3-b4ea-ce379d4620dd","last_detached_at":null,"name":"test-block-volume-basic","parent_snapshot_id":null,"project_id":"d3520a52-2c75-4ba0-bda8-82dd087f07f2","references":[],"size":20000000000,"specs":{"class":"sbs","perf_iops":5000},"status":"updating","tags":[],"type":"sbs_5k","updated_at":"2025-06-11T15:41:08.122240Z","zone":"fr-par-1"}' + headers: + Content-Length: + - "420" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:15 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 5539f787-f56a-4451-8733-658479535f58 + status: 200 OK + code: 200 + duration: 37.93625ms + - id: 10 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/8c38fa15-4249-47c3-b4ea-ce379d4620dd + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 421 + uncompressed: false + body: '{"created_at":"2025-06-11T15:41:08.122240Z","id":"8c38fa15-4249-47c3-b4ea-ce379d4620dd","last_detached_at":null,"name":"test-block-volume-basic","parent_snapshot_id":null,"project_id":"d3520a52-2c75-4ba0-bda8-82dd087f07f2","references":[],"size":30000000000,"specs":{"class":"sbs","perf_iops":5000},"status":"available","tags":[],"type":"sbs_5k","updated_at":"2025-06-11T15:41:15.874612Z","zone":"fr-par-1"}' + headers: + Content-Length: + - "421" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:20 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - a5bc8ed4-b257-4f96-932f-85e62eb59049 + status: 200 OK + code: 200 + duration: 43.680583ms + - id: 11 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/8c38fa15-4249-47c3-b4ea-ce379d4620dd + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 421 + uncompressed: false + body: '{"created_at":"2025-06-11T15:41:08.122240Z","id":"8c38fa15-4249-47c3-b4ea-ce379d4620dd","last_detached_at":null,"name":"test-block-volume-basic","parent_snapshot_id":null,"project_id":"d3520a52-2c75-4ba0-bda8-82dd087f07f2","references":[],"size":30000000000,"specs":{"class":"sbs","perf_iops":5000},"status":"available","tags":[],"type":"sbs_5k","updated_at":"2025-06-11T15:41:15.874612Z","zone":"fr-par-1"}' + headers: + Content-Length: + - "421" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:21 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 82aa69b8-0d83-4abc-81d1-52c9238ee0b0 + status: 200 OK + code: 200 + duration: 40.442125ms + - id: 12 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/8c38fa15-4249-47c3-b4ea-ce379d4620dd + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 421 + uncompressed: false + body: '{"created_at":"2025-06-11T15:41:08.122240Z","id":"8c38fa15-4249-47c3-b4ea-ce379d4620dd","last_detached_at":null,"name":"test-block-volume-basic","parent_snapshot_id":null,"project_id":"d3520a52-2c75-4ba0-bda8-82dd087f07f2","references":[],"size":30000000000,"specs":{"class":"sbs","perf_iops":5000},"status":"available","tags":[],"type":"sbs_5k","updated_at":"2025-06-11T15:41:15.874612Z","zone":"fr-par-1"}' + headers: + Content-Length: + - "421" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:21 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 60f7e9ac-557c-4510-97dc-fe64e43307be + status: 200 OK + code: 200 + duration: 51.041416ms + - id: 13 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/8c38fa15-4249-47c3-b4ea-ce379d4620dd + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 421 + uncompressed: false + body: '{"created_at":"2025-06-11T15:41:08.122240Z","id":"8c38fa15-4249-47c3-b4ea-ce379d4620dd","last_detached_at":null,"name":"test-block-volume-basic","parent_snapshot_id":null,"project_id":"d3520a52-2c75-4ba0-bda8-82dd087f07f2","references":[],"size":30000000000,"specs":{"class":"sbs","perf_iops":5000},"status":"available","tags":[],"type":"sbs_5k","updated_at":"2025-06-11T15:41:15.874612Z","zone":"fr-par-1"}' + headers: + Content-Length: + - "421" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:22 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 56364652-76c1-4fef-8960-ecf2a71592c3 + status: 200 OK + code: 200 + duration: 42.300459ms + - id: 14 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/8c38fa15-4249-47c3-b4ea-ce379d4620dd + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 421 + uncompressed: false + body: '{"created_at":"2025-06-11T15:41:08.122240Z","id":"8c38fa15-4249-47c3-b4ea-ce379d4620dd","last_detached_at":null,"name":"test-block-volume-basic","parent_snapshot_id":null,"project_id":"d3520a52-2c75-4ba0-bda8-82dd087f07f2","references":[],"size":30000000000,"specs":{"class":"sbs","perf_iops":5000},"status":"available","tags":[],"type":"sbs_5k","updated_at":"2025-06-11T15:41:15.874612Z","zone":"fr-par-1"}' + headers: + Content-Length: + - "421" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:23 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 7a77fa02-634a-4941-9c2b-2dd5de851678 + status: 200 OK + code: 200 + duration: 45.488209ms + - id: 15 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/8c38fa15-4249-47c3-b4ea-ce379d4620dd + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:23 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 3c4d2925-d989-43ba-adaf-f95607b8b4d6 + status: 204 No Content + code: 204 + duration: 67.490084ms + - id: 16 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/8c38fa15-4249-47c3-b4ea-ce379d4620dd + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 127 + uncompressed: false + body: '{"message":"resource is not found","resource":"volume","resource_id":"8c38fa15-4249-47c3-b4ea-ce379d4620dd","type":"not_found"}' + headers: + Content-Length: + - "127" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:23 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 35ce61b2-5302-4af5-b452-e89842d96755 + status: 404 Not Found + code: 404 + duration: 37.145375ms + - id: 17 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 147 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: '{"name":"test-block-volume-basic","perf_iops":5000,"project_id":"d3520a52-2c75-4ba0-bda8-82dd087f07f2","from_empty":{"size":20000000000},"tags":[]}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 420 + uncompressed: false + body: '{"created_at":"2025-06-11T15:41:23.684448Z","id":"c9d2b96f-e14b-4eb7-b5a7-7e310b0037fc","last_detached_at":null,"name":"test-block-volume-basic","parent_snapshot_id":null,"project_id":"d3520a52-2c75-4ba0-bda8-82dd087f07f2","references":[],"size":20000000000,"specs":{"class":"sbs","perf_iops":5000},"status":"creating","tags":[],"type":"sbs_5k","updated_at":"2025-06-11T15:41:23.684448Z","zone":"fr-par-1"}' + headers: + Content-Length: + - "420" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:23 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 9450f02e-80a7-4a9f-986f-350010b77ce7 + status: 200 OK + code: 200 + duration: 106.922958ms + - id: 18 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/c9d2b96f-e14b-4eb7-b5a7-7e310b0037fc + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 420 + uncompressed: false + body: '{"created_at":"2025-06-11T15:41:23.684448Z","id":"c9d2b96f-e14b-4eb7-b5a7-7e310b0037fc","last_detached_at":null,"name":"test-block-volume-basic","parent_snapshot_id":null,"project_id":"d3520a52-2c75-4ba0-bda8-82dd087f07f2","references":[],"size":20000000000,"specs":{"class":"sbs","perf_iops":5000},"status":"creating","tags":[],"type":"sbs_5k","updated_at":"2025-06-11T15:41:23.684448Z","zone":"fr-par-1"}' + headers: + Content-Length: + - "420" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:23 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 01b0ab62-ce63-4070-85ab-6187e1b8fa16 + status: 200 OK + code: 200 + duration: 46.108833ms + - id: 19 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/c9d2b96f-e14b-4eb7-b5a7-7e310b0037fc + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 421 + uncompressed: false + body: '{"created_at":"2025-06-11T15:41:23.684448Z","id":"c9d2b96f-e14b-4eb7-b5a7-7e310b0037fc","last_detached_at":null,"name":"test-block-volume-basic","parent_snapshot_id":null,"project_id":"d3520a52-2c75-4ba0-bda8-82dd087f07f2","references":[],"size":20000000000,"specs":{"class":"sbs","perf_iops":5000},"status":"available","tags":[],"type":"sbs_5k","updated_at":"2025-06-11T15:41:23.684448Z","zone":"fr-par-1"}' + headers: + Content-Length: + - "421" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:28 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - a0835b9d-bb43-4f25-9b06-b4a838daa32d + status: 200 OK + code: 200 + duration: 47.871208ms + - id: 20 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/c9d2b96f-e14b-4eb7-b5a7-7e310b0037fc + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 421 + uncompressed: false + body: '{"created_at":"2025-06-11T15:41:23.684448Z","id":"c9d2b96f-e14b-4eb7-b5a7-7e310b0037fc","last_detached_at":null,"name":"test-block-volume-basic","parent_snapshot_id":null,"project_id":"d3520a52-2c75-4ba0-bda8-82dd087f07f2","references":[],"size":20000000000,"specs":{"class":"sbs","perf_iops":5000},"status":"available","tags":[],"type":"sbs_5k","updated_at":"2025-06-11T15:41:23.684448Z","zone":"fr-par-1"}' + headers: + Content-Length: + - "421" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:28 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - cfe40e43-a553-4bd3-ab2f-6758b1560f20 + status: 200 OK + code: 200 + duration: 67.959ms + - id: 21 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/c9d2b96f-e14b-4eb7-b5a7-7e310b0037fc + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 421 + uncompressed: false + body: '{"created_at":"2025-06-11T15:41:23.684448Z","id":"c9d2b96f-e14b-4eb7-b5a7-7e310b0037fc","last_detached_at":null,"name":"test-block-volume-basic","parent_snapshot_id":null,"project_id":"d3520a52-2c75-4ba0-bda8-82dd087f07f2","references":[],"size":20000000000,"specs":{"class":"sbs","perf_iops":5000},"status":"available","tags":[],"type":"sbs_5k","updated_at":"2025-06-11T15:41:23.684448Z","zone":"fr-par-1"}' + headers: + Content-Length: + - "421" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:29 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 8cf588bf-28ed-431d-b589-276778ce34b1 + status: 200 OK + code: 200 + duration: 46.549917ms + - id: 22 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/c9d2b96f-e14b-4eb7-b5a7-7e310b0037fc + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 421 + uncompressed: false + body: '{"created_at":"2025-06-11T15:41:23.684448Z","id":"c9d2b96f-e14b-4eb7-b5a7-7e310b0037fc","last_detached_at":null,"name":"test-block-volume-basic","parent_snapshot_id":null,"project_id":"d3520a52-2c75-4ba0-bda8-82dd087f07f2","references":[],"size":20000000000,"specs":{"class":"sbs","perf_iops":5000},"status":"available","tags":[],"type":"sbs_5k","updated_at":"2025-06-11T15:41:23.684448Z","zone":"fr-par-1"}' + headers: + Content-Length: + - "421" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:29 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - cd6f967c-8d5a-4358-9237-39bf54d944ff + status: 200 OK + code: 200 + duration: 43.64075ms + - id: 23 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/c9d2b96f-e14b-4eb7-b5a7-7e310b0037fc + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 421 + uncompressed: false + body: '{"created_at":"2025-06-11T15:41:23.684448Z","id":"c9d2b96f-e14b-4eb7-b5a7-7e310b0037fc","last_detached_at":null,"name":"test-block-volume-basic","parent_snapshot_id":null,"project_id":"d3520a52-2c75-4ba0-bda8-82dd087f07f2","references":[],"size":20000000000,"specs":{"class":"sbs","perf_iops":5000},"status":"available","tags":[],"type":"sbs_5k","updated_at":"2025-06-11T15:41:23.684448Z","zone":"fr-par-1"}' + headers: + Content-Length: + - "421" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:30 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 332cfe33-3d94-4a07-bbe3-d4e1ac42796e + status: 200 OK + code: 200 + duration: 36.59325ms + - id: 24 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/c9d2b96f-e14b-4eb7-b5a7-7e310b0037fc + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:30 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 3fe77e62-2c9e-4252-85f7-f953d73d2f07 + status: 204 No Content + code: 204 + duration: 60.43175ms + - id: 25 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/c9d2b96f-e14b-4eb7-b5a7-7e310b0037fc + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 127 + uncompressed: false + body: '{"message":"resource is not found","resource":"volume","resource_id":"c9d2b96f-e14b-4eb7-b5a7-7e310b0037fc","type":"not_found"}' + headers: + Content-Length: + - "127" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:30 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 1bb020d2-ef87-44d2-ba5b-b83e949954fc + status: 404 Not Found + code: 404 + duration: 52.058834ms + - id: 26 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/block/v1alpha1/zones/fr-par-1/volumes/c9d2b96f-e14b-4eb7-b5a7-7e310b0037fc + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 127 + uncompressed: false + body: '{"message":"resource is not found","resource":"volume","resource_id":"c9d2b96f-e14b-4eb7-b5a7-7e310b0037fc","type":"not_found"}' + headers: + Content-Length: + - "127" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 11 Jun 2025 15:41:30 GMT + Server: + - Scaleway API Gateway (fr-par-2;edge02) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 1b378c97-de9e-48f8-b773-1eb74fbcef34 + status: 404 Not Found + code: 404 + duration: 54.749917ms diff --git a/internal/services/block/volume.go b/internal/services/block/volume.go index eba7260f87..86b6c02938 100644 --- a/internal/services/block/volume.go +++ b/internal/services/block/volume.go @@ -205,8 +205,8 @@ func ResourceBlockVolumeUpdate(ctx context.Context, d *schema.ResourceData, m in req.Name = types.ExpandUpdatedStringPtr(d.Get("name")) } - if d.HasChange("size") { - volumeSizeInBytes := scw.Size(uint64(d.Get("size").(int)) * gb) + if d.HasChange("size_in_gb") { + volumeSizeInBytes := scw.Size(uint64(d.Get("size_in_gb").(int)) * gb) req.Size = &volumeSizeInBytes } diff --git a/internal/services/block/volume_test.go b/internal/services/block/volume_test.go index 6e4b502336..e3196ebe74 100644 --- a/internal/services/block/volume_test.go +++ b/internal/services/block/volume_test.go @@ -37,6 +37,69 @@ func TestAccVolume_Basic(t *testing.T) { }) } +func TestAccVolume_UpdateSize(t *testing.T) { + tt := acctest.NewTestTools(t) + defer tt.Cleanup() + + var volumeID string + + resource.ParallelTest(t, resource.TestCase{ + PreCheck: func() { acctest.PreCheck(t) }, + ProviderFactories: tt.ProviderFactories, + CheckDestroy: blocktestfuncs.IsVolumeDestroyed(tt), + Steps: []resource.TestStep{ + { + Config: ` + resource scaleway_block_volume main { + name = "test-block-volume-basic" + iops = 5000 + size_in_gb = 20 + } + `, + Check: resource.ComposeTestCheckFunc( + blocktestfuncs.IsVolumePresent(tt, "scaleway_block_volume.main"), + acctest.CheckResourceAttrUUID("scaleway_block_volume.main", "id"), + resource.TestCheckResourceAttr("scaleway_block_volume.main", "name", "test-block-volume-basic"), + resource.TestCheckResourceAttr("scaleway_block_volume.main", "size_in_gb", "20"), + acctest.CheckResourceIDPersisted("scaleway_block_volume.main", &volumeID), + ), + }, + { + Config: ` + resource scaleway_block_volume main { + name = "test-block-volume-basic" + iops = 5000 + size_in_gb = 30 + } + `, + Check: resource.ComposeTestCheckFunc( + blocktestfuncs.IsVolumePresent(tt, "scaleway_block_volume.main"), + acctest.CheckResourceAttrUUID("scaleway_block_volume.main", "id"), + resource.TestCheckResourceAttr("scaleway_block_volume.main", "name", "test-block-volume-basic"), + resource.TestCheckResourceAttr("scaleway_block_volume.main", "size_in_gb", "30"), + acctest.CheckResourceIDPersisted("scaleway_block_volume.main", &volumeID), + ), + }, + { + Config: ` + resource scaleway_block_volume main { + name = "test-block-volume-basic" + iops = 5000 + size_in_gb = 20 + } + `, + Check: resource.ComposeTestCheckFunc( + blocktestfuncs.IsVolumePresent(tt, "scaleway_block_volume.main"), + acctest.CheckResourceAttrUUID("scaleway_block_volume.main", "id"), + resource.TestCheckResourceAttr("scaleway_block_volume.main", "name", "test-block-volume-basic"), + resource.TestCheckResourceAttr("scaleway_block_volume.main", "size_in_gb", "20"), + acctest.CheckResourceIDChanged("scaleway_block_volume.main", &volumeID), + ), + }, + }, + }) +} + func TestAccVolume_FromSnapshot(t *testing.T) { tt := acctest.NewTestTools(t) defer tt.Cleanup()