fog-google 1.22.0 → 1.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/integration-compute-core.yml +14 -5
- data/.github/workflows/integration-compute-instance_groups.yml +13 -4
- data/.github/workflows/integration-compute-loadbalancing.yml +13 -4
- data/.github/workflows/integration-compute-networking.yml +12 -4
- data/.github/workflows/integration-monitoring.yml +12 -4
- data/.github/workflows/integration-pubsub.yml +12 -4
- data/.github/workflows/integration-sql.yml +12 -4
- data/.github/workflows/integration-storage.yml +12 -4
- data/.github/workflows/stale.yml +1 -1
- data/.github/workflows/unit.yml +7 -2
- data/.ruby-version +1 -0
- data/CHANGELOG.md +41 -0
- data/README.md +2 -2
- data/examples/create_instance_and_attach_disk_later.rb +86 -0
- data/fog-google.gemspec +3 -3
- data/lib/fog/compute/google/models/addresses.rb +17 -8
- data/lib/fog/compute/google/models/disk_types.rb +17 -7
- data/lib/fog/compute/google/models/disks.rb +23 -8
- data/lib/fog/compute/google/models/firewalls.rb +11 -2
- data/lib/fog/compute/google/models/forwarding_rules.rb +16 -10
- data/lib/fog/compute/google/models/global_addresses.rb +11 -2
- data/lib/fog/compute/google/models/global_forwarding_rules.rb +11 -2
- data/lib/fog/compute/google/models/http_health_checks.rb +12 -3
- data/lib/fog/compute/google/models/images.rb +15 -8
- data/lib/fog/compute/google/models/instance_group_managers.rb +17 -9
- data/lib/fog/compute/google/models/instance_groups.rb +16 -8
- data/lib/fog/compute/google/models/instance_templates.rb +12 -3
- data/lib/fog/compute/google/models/machine_types.rb +17 -8
- data/lib/fog/compute/google/models/networks.rb +12 -3
- data/lib/fog/compute/google/models/operations.rb +22 -8
- data/lib/fog/compute/google/models/regions.rb +12 -3
- data/lib/fog/compute/google/models/routes.rb +12 -3
- data/lib/fog/compute/google/models/server.rb +3 -3
- data/lib/fog/compute/google/models/servers.rb +22 -8
- data/lib/fog/compute/google/models/ssl_certificates.rb +12 -3
- data/lib/fog/compute/google/models/subnetworks.rb +16 -8
- data/lib/fog/compute/google/models/target_http_proxies.rb +12 -3
- data/lib/fog/compute/google/models/target_https_proxies.rb +12 -3
- data/lib/fog/compute/google/models/target_instances.rb +16 -8
- data/lib/fog/compute/google/models/target_pools.rb +16 -8
- data/lib/fog/compute/google/models/url_maps.rb +12 -3
- data/lib/fog/compute/google/models/zones.rb +12 -3
- data/lib/fog/compute/google/requests/stop_server.rb +2 -2
- data/lib/fog/google/version.rb +1 -1
- data/test/helpers/integration_test_helper.rb +1 -1
- data/test/integration/compute/core_compute/test_servers.rb +86 -0
- data/test/integration/storage/test_objects.rb +1 -0
- data/test/unit/compute/test_common_collections.rb +1 -1
- data/test/unit/compute/test_common_models.rb +1 -1
- data/test/unit/compute/test_disk.rb +26 -0
- data/test/unit/compute/test_server.rb +1 -1
- data/test/unit/dns/test_common_collections.rb +1 -1
- data/test/unit/monitoring/test_comon_collections.rb +1 -1
- data/test/unit/pubsub/test_common_collections.rb +1 -1
- data/test/unit/sql/test_common_collections.rb +1 -1
- data/test/unit/storage/test_common_json_collections.rb +1 -1
- data/test/unit/storage/test_common_xml_collections.rb +1 -1
- data/test/unit/storage/test_json_requests.rb +1 -1
- data/test/unit/storage/test_xml_requests.rb +1 -1
- metadata +19 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 419c2fcd50b3c90ffe65c7a284bfc75479b1da059e0ea01b187a9f8f03721784
|
4
|
+
data.tar.gz: 470db0019a0de386752a1ca9c1a8cdb092e34037ef3e53a6a456a1ea033e6033
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: af159d5054ca5ceb4e391f8bbc019ad813c1e9163f11eeeb67dd3f57ccdfb157497d39451303210a7aa3e7b01f7295be937d445e97552f4fd8c9f1f42ca98c84
|
7
|
+
data.tar.gz: 00eb0b6200ad0fd56ea680e2dd1824548fe34d67da6e7469a872e27462281cf335f3aa23ede4956cea95433efa3e382c85c0ad60a732c0c96965b3830fac56f0
|
@@ -2,7 +2,7 @@
|
|
2
2
|
# is no need to run them if SQL code or deps haven't changed and you cannot
|
3
3
|
# trigger jobs based on file changes in the same workflow.
|
4
4
|
# See: https://github.com/actions/runner/issues/456
|
5
|
-
name: integration-tests-compute-
|
5
|
+
name: integration-tests-compute-core
|
6
6
|
|
7
7
|
on:
|
8
8
|
push:
|
@@ -10,7 +10,7 @@ on:
|
|
10
10
|
pull_request:
|
11
11
|
branches: [ master ]
|
12
12
|
types: [ assigned, opened, synchronize, reopened, labeled ]
|
13
|
-
# Only run
|
13
|
+
# Only run integration tests if relevant code or deps have changed
|
14
14
|
paths:
|
15
15
|
# Module-specific paths
|
16
16
|
- 'lib/fog/compute/**'
|
@@ -22,18 +22,27 @@ on:
|
|
22
22
|
- 'lib/fog/google.rb'
|
23
23
|
# Trigger workflow on version upgrade
|
24
24
|
- 'lib/fog/google/version.rb'
|
25
|
+
# Trigger when workflow itself is updated
|
26
|
+
- '.github/workflows/integration-compute-core.yml'
|
27
|
+
|
28
|
+
# Setting hard concurrency limit for the project due to cleanup
|
29
|
+
# TODO(fog-google#626): remove this once cleanup is fixed
|
30
|
+
concurrency:
|
31
|
+
group: ${{ github.workflow }}
|
32
|
+
cancel-in-progress: false
|
25
33
|
|
26
34
|
jobs:
|
27
35
|
test-compute:
|
28
|
-
runs-on:
|
36
|
+
runs-on: fog-arc-runner
|
29
37
|
strategy:
|
30
38
|
matrix:
|
31
|
-
ruby-version: [ '
|
39
|
+
ruby-version: [ '3.0', '3.1', '3.2' ]
|
32
40
|
# Integration tests from the same task cannot run in parallel yet due to cleanup
|
41
|
+
# TODO(fog-google#626): remove this once cleanup is fixed
|
33
42
|
max-parallel: 1
|
34
43
|
|
35
44
|
steps:
|
36
|
-
- uses: actions/checkout@
|
45
|
+
- uses: actions/checkout@v4
|
37
46
|
- name: Set up Ruby
|
38
47
|
uses: ruby/setup-ruby@v1
|
39
48
|
with:
|
@@ -10,7 +10,7 @@ on:
|
|
10
10
|
pull_request:
|
11
11
|
branches: [ master ]
|
12
12
|
types: [ assigned, opened, synchronize, reopened, labeled ]
|
13
|
-
# Only run
|
13
|
+
# Only run integration tests if relevant code or deps have changed
|
14
14
|
paths:
|
15
15
|
# Module-specific paths
|
16
16
|
- 'lib/fog/compute/**'
|
@@ -22,18 +22,27 @@ on:
|
|
22
22
|
- 'lib/fog/google.rb'
|
23
23
|
# Trigger workflow on version upgrade
|
24
24
|
- 'lib/fog/google/version.rb'
|
25
|
+
# Trigger when workflow itself is updated
|
26
|
+
- '.github/workflows/integration-compute-instance_groups.yml'
|
27
|
+
|
28
|
+
# Setting hard concurrency limit for the project due to cleanup
|
29
|
+
# TODO(fog-google#626): remove this once cleanup is fixed
|
30
|
+
concurrency:
|
31
|
+
group: ${{ github.workflow }}
|
32
|
+
cancel-in-progress: false
|
33
|
+
|
25
34
|
|
26
35
|
jobs:
|
27
36
|
test:
|
28
|
-
runs-on:
|
37
|
+
runs-on: fog-arc-runner
|
29
38
|
strategy:
|
30
39
|
matrix:
|
31
|
-
ruby-version: [ '
|
40
|
+
ruby-version: [ '3.0', '3.1', '3.2' ]
|
32
41
|
# Integration tests from the same task cannot run in parallel yet due to cleanup
|
33
42
|
max-parallel: 1
|
34
43
|
|
35
44
|
steps:
|
36
|
-
- uses: actions/checkout@
|
45
|
+
- uses: actions/checkout@v4
|
37
46
|
- name: Set up Ruby
|
38
47
|
uses: ruby/setup-ruby@v1
|
39
48
|
with:
|
@@ -10,7 +10,7 @@ on:
|
|
10
10
|
pull_request:
|
11
11
|
branches: [ master ]
|
12
12
|
types: [ assigned, opened, synchronize, reopened, labeled ]
|
13
|
-
# Only run
|
13
|
+
# Only run integration tests if relevant code or deps have changed
|
14
14
|
paths:
|
15
15
|
# Module-specific paths
|
16
16
|
- 'lib/fog/compute/**'
|
@@ -22,18 +22,27 @@ on:
|
|
22
22
|
- 'lib/fog/google.rb'
|
23
23
|
# Trigger workflow on version upgrade
|
24
24
|
- 'lib/fog/google/version.rb'
|
25
|
+
# Trigger when workflow itself is updated
|
26
|
+
- '.github/workflows/integration-compute-loadbalancing.yml'
|
27
|
+
|
28
|
+
# Setting hard concurrency limit for the project due to cleanup
|
29
|
+
# TODO(fog-google#626): remove this once cleanup is fixed
|
30
|
+
concurrency:
|
31
|
+
group: ${{ github.workflow }}
|
32
|
+
cancel-in-progress: false
|
33
|
+
|
25
34
|
|
26
35
|
jobs:
|
27
36
|
test:
|
28
|
-
runs-on:
|
37
|
+
runs-on: fog-arc-runner
|
29
38
|
strategy:
|
30
39
|
matrix:
|
31
|
-
ruby-version: [ '
|
40
|
+
ruby-version: [ '3.0', '3.1', '3.2' ]
|
32
41
|
# Integration tests from the same task cannot run in parallel yet due to cleanup
|
33
42
|
max-parallel: 1
|
34
43
|
|
35
44
|
steps:
|
36
|
-
- uses: actions/checkout@
|
45
|
+
- uses: actions/checkout@v4
|
37
46
|
- name: Set up Ruby
|
38
47
|
uses: ruby/setup-ruby@v1
|
39
48
|
with:
|
@@ -10,7 +10,7 @@ on:
|
|
10
10
|
pull_request:
|
11
11
|
branches: [ master ]
|
12
12
|
types: [ assigned, opened, synchronize, reopened, labeled ]
|
13
|
-
# Only run
|
13
|
+
# Only run integration tests if relevant code or deps have changed
|
14
14
|
paths:
|
15
15
|
# Module-specific paths
|
16
16
|
- 'lib/fog/compute/**'
|
@@ -22,18 +22,26 @@ on:
|
|
22
22
|
- 'lib/fog/google.rb'
|
23
23
|
# Trigger workflow on version upgrade
|
24
24
|
- 'lib/fog/google/version.rb'
|
25
|
+
# Trigger when workflow itself is updated
|
26
|
+
- '.github/workflows/integration-compute-networking.yml'
|
27
|
+
|
28
|
+
# Setting hard concurrency limit for the project due to cleanup
|
29
|
+
# TODO(fog-google#626): remove this once cleanup is fixed
|
30
|
+
concurrency:
|
31
|
+
group: ${{ github.workflow }}
|
32
|
+
cancel-in-progress: false
|
25
33
|
|
26
34
|
jobs:
|
27
35
|
test:
|
28
|
-
runs-on:
|
36
|
+
runs-on: fog-arc-runner
|
29
37
|
strategy:
|
30
38
|
matrix:
|
31
|
-
ruby-version: [ '
|
39
|
+
ruby-version: [ '3.0', '3.1', '3.2' ]
|
32
40
|
# Integration tests from the same task cannot run in parallel yet due to cleanup
|
33
41
|
max-parallel: 1
|
34
42
|
|
35
43
|
steps:
|
36
|
-
- uses: actions/checkout@
|
44
|
+
- uses: actions/checkout@v4
|
37
45
|
- name: Set up Ruby
|
38
46
|
uses: ruby/setup-ruby@v1
|
39
47
|
with:
|
@@ -10,7 +10,7 @@ on:
|
|
10
10
|
pull_request:
|
11
11
|
branches: [ master ]
|
12
12
|
types: [ assigned, opened, synchronize, reopened, labeled ]
|
13
|
-
# Only run
|
13
|
+
# Only run integration tests if relevant code or deps have changed
|
14
14
|
paths:
|
15
15
|
# Module-specific paths
|
16
16
|
- 'lib/fog/google/monitoring.rb'
|
@@ -23,18 +23,26 @@ on:
|
|
23
23
|
- 'lib/fog/google.rb'
|
24
24
|
# Trigger workflow on version upgrade
|
25
25
|
- 'lib/fog/google/version.rb'
|
26
|
+
# Trigger when workflow itself is updated
|
27
|
+
- '.github/workflows/integration-monitoring.yml'
|
28
|
+
|
29
|
+
# Setting hard concurrency limit for the project due to cleanup
|
30
|
+
# TODO(fog-google#626): remove this once cleanup is fixed
|
31
|
+
concurrency:
|
32
|
+
group: ${{ github.workflow }}
|
33
|
+
cancel-in-progress: false
|
26
34
|
|
27
35
|
jobs:
|
28
36
|
test:
|
29
|
-
runs-on:
|
37
|
+
runs-on: fog-arc-runner
|
30
38
|
strategy:
|
31
39
|
matrix:
|
32
|
-
ruby-version: [ '
|
40
|
+
ruby-version: [ '3.0', '3.1', '3.2' ]
|
33
41
|
# Integration tests from the same task cannot run in parallel yet due to cleanup
|
34
42
|
max-parallel: 1
|
35
43
|
|
36
44
|
steps:
|
37
|
-
- uses: actions/checkout@
|
45
|
+
- uses: actions/checkout@v4
|
38
46
|
- name: Set up Ruby
|
39
47
|
uses: ruby/setup-ruby@v1
|
40
48
|
with:
|
@@ -10,7 +10,7 @@ on:
|
|
10
10
|
pull_request:
|
11
11
|
branches: [ master ]
|
12
12
|
types: [ assigned, opened, synchronize, reopened, labeled ]
|
13
|
-
# Only run
|
13
|
+
# Only run integration tests if relevant code or deps have changed
|
14
14
|
paths:
|
15
15
|
# Module-specific paths
|
16
16
|
- 'lib/fog/google/pubsub.rb'
|
@@ -23,18 +23,26 @@ on:
|
|
23
23
|
- 'lib/fog/google.rb'
|
24
24
|
# Trigger workflow on version upgrade
|
25
25
|
- 'lib/fog/google/version.rb'
|
26
|
+
# Trigger when workflow itself is updated
|
27
|
+
- '.github/workflows/integration-pubsub.yml'
|
28
|
+
|
29
|
+
# Setting hard concurrency limit for the project due to cleanup
|
30
|
+
# TODO(fog-google#626): remove this once cleanup is fixed
|
31
|
+
concurrency:
|
32
|
+
group: ${{ github.workflow }}
|
33
|
+
cancel-in-progress: false
|
26
34
|
|
27
35
|
jobs:
|
28
36
|
test:
|
29
|
-
runs-on:
|
37
|
+
runs-on: fog-arc-runner
|
30
38
|
strategy:
|
31
39
|
matrix:
|
32
|
-
ruby-version: [ '
|
40
|
+
ruby-version: [ '3.0', '3.1', '3.2' ]
|
33
41
|
# Integration tests from the same task cannot run in parallel yet due to cleanup
|
34
42
|
max-parallel: 1
|
35
43
|
|
36
44
|
steps:
|
37
|
-
- uses: actions/checkout@
|
45
|
+
- uses: actions/checkout@v4
|
38
46
|
- name: Set up Ruby
|
39
47
|
uses: ruby/setup-ruby@v1
|
40
48
|
with:
|
@@ -10,7 +10,7 @@ on:
|
|
10
10
|
pull_request:
|
11
11
|
branches: [ master ]
|
12
12
|
types: [ assigned, opened, synchronize, reopened, labeled ]
|
13
|
-
# Only run
|
13
|
+
# Only run integration tests if relevant code or deps have changed
|
14
14
|
paths:
|
15
15
|
# Module-specific paths
|
16
16
|
- 'lib/fog/google/sql.rb'
|
@@ -23,18 +23,26 @@ on:
|
|
23
23
|
- 'lib/fog/google.rb'
|
24
24
|
# Trigger workflow on version upgrade
|
25
25
|
- 'lib/fog/google/version.rb'
|
26
|
+
# Trigger when workflow itself is updated
|
27
|
+
- '.github/workflows/integration-sql.yml'
|
28
|
+
|
29
|
+
# Setting hard concurrency limit for the project due to cleanup
|
30
|
+
# TODO(fog-google#626): remove this once cleanup is fixed
|
31
|
+
concurrency:
|
32
|
+
group: ${{ github.workflow }}
|
33
|
+
cancel-in-progress: false
|
26
34
|
|
27
35
|
jobs:
|
28
36
|
test:
|
29
|
-
runs-on:
|
37
|
+
runs-on: fog-arc-runner
|
30
38
|
strategy:
|
31
39
|
matrix:
|
32
|
-
ruby-version: [ '
|
40
|
+
ruby-version: [ '3.0', '3.1', '3.2' ]
|
33
41
|
# Integration tests from the same task cannot run in parallel yet due to cleanup
|
34
42
|
max-parallel: 1
|
35
43
|
|
36
44
|
steps:
|
37
|
-
- uses: actions/checkout@
|
45
|
+
- uses: actions/checkout@v4
|
38
46
|
- name: Set up Ruby
|
39
47
|
uses: ruby/setup-ruby@v1
|
40
48
|
with:
|
@@ -10,7 +10,7 @@ on:
|
|
10
10
|
pull_request:
|
11
11
|
branches: [ master ]
|
12
12
|
types: [ assigned, opened, synchronize, reopened, labeled ]
|
13
|
-
# Only run
|
13
|
+
# Only run integration tests if relevant code or deps have changed
|
14
14
|
paths:
|
15
15
|
# Module-specific paths
|
16
16
|
- 'lib/fog/google/storage.rb'
|
@@ -24,18 +24,26 @@ on:
|
|
24
24
|
- 'lib/fog/google.rb'
|
25
25
|
# Trigger workflow on version upgrade
|
26
26
|
- 'lib/fog/google/version.rb'
|
27
|
+
# Trigger when workflow itself is updated
|
28
|
+
- '.github/workflows/integration-storage.yml'
|
29
|
+
|
30
|
+
# Setting hard concurrency limit for the project due to cleanup
|
31
|
+
# TODO(fog-google#626): remove this once cleanup is fixed
|
32
|
+
concurrency:
|
33
|
+
group: ${{ github.workflow }}
|
34
|
+
cancel-in-progress: false
|
27
35
|
|
28
36
|
jobs:
|
29
37
|
test:
|
30
|
-
runs-on:
|
38
|
+
runs-on: fog-arc-runner
|
31
39
|
strategy:
|
32
40
|
matrix:
|
33
|
-
ruby-version: [ '
|
41
|
+
ruby-version: [ '3.0', '3.1', '3.2' ]
|
34
42
|
# Integration tests from the same task cannot run in parallel yet due to cleanup
|
35
43
|
max-parallel: 1
|
36
44
|
|
37
45
|
steps:
|
38
|
-
- uses: actions/checkout@
|
46
|
+
- uses: actions/checkout@v4
|
39
47
|
- name: Set up Ruby
|
40
48
|
uses: ruby/setup-ruby@v1
|
41
49
|
with:
|
data/.github/workflows/stale.yml
CHANGED
data/.github/workflows/unit.yml
CHANGED
@@ -6,15 +6,20 @@ on:
|
|
6
6
|
pull_request:
|
7
7
|
branches: [ master ]
|
8
8
|
|
9
|
+
# Cancel in-progress jobs of the same ref or run_id
|
10
|
+
concurrency:
|
11
|
+
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
|
12
|
+
cancel-in-progress: true
|
13
|
+
|
9
14
|
jobs:
|
10
15
|
test-unit:
|
11
16
|
runs-on: ubuntu-latest
|
12
17
|
strategy:
|
13
18
|
matrix:
|
14
|
-
ruby-version: ['
|
19
|
+
ruby-version: [ '3.0', '3.1', '3.2', 'head', 'truffleruby-head']
|
15
20
|
|
16
21
|
steps:
|
17
|
-
- uses: actions/checkout@
|
22
|
+
- uses: actions/checkout@v4
|
18
23
|
- name: Set up Ruby
|
19
24
|
uses: ruby/setup-ruby@v1
|
20
25
|
with:
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
3.2.2
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,47 @@ This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html
|
|
6
6
|
|
7
7
|
## Next
|
8
8
|
|
9
|
+
|
10
|
+
### User-facing
|
11
|
+
|
12
|
+
#### Added
|
13
|
+
|
14
|
+
- #613 Spruce up attaching and detaching disks on running servers [rchekaluk]
|
15
|
+
- #621 Added support for discard_local_ssd when stopping an instance [rchekaluk]
|
16
|
+
|
17
|
+
### Development changes
|
18
|
+
|
19
|
+
### Added
|
20
|
+
|
21
|
+
- #618 Deprecated Ruby-2.0 support [temikus]
|
22
|
+
- #624 Migrated the Integration tests to new ARC runners [temikus]
|
23
|
+
- #625 Fixed 'Ostruct' errors in storage tests [temikus]
|
24
|
+
- #627 Added concurrency groups to integration test workfows [temikus]
|
25
|
+
|
26
|
+
#### Fixed
|
27
|
+
|
28
|
+
- #604 Updated pry requirement from = 0.13.0 to = 0.14.2 [dependabot]
|
29
|
+
- #619 Updated google-cloud-env requirement from ~> 1.2 to >= 1.2, < 3.0 [dependabot]
|
30
|
+
- #620 Bump actions/stale from 8 to 9 [dependabot]
|
31
|
+
- #622 Updated fog-core requirement from < 2.3 to < 2.5 [dependabot]
|
32
|
+
|
33
|
+
## 1.23.0
|
34
|
+
|
35
|
+
### User-facing
|
36
|
+
|
37
|
+
#### Fixed
|
38
|
+
|
39
|
+
- #609 Fixed missing paging on all models [agrare]
|
40
|
+
- #608 Fixed `Fog::Compute::Google::Servers#all` paging [agrare]
|
41
|
+
|
42
|
+
### Development changes
|
43
|
+
|
44
|
+
#### Fixed
|
45
|
+
|
46
|
+
- #606 Use `Minitest::Test` instead of `MiniTest::Test` [chubchenko]
|
47
|
+
- #605 Bump actions/checkout from 3 to 4 [dependabot]
|
48
|
+
- #602 Bump actions/stale from 6 to 8 [dependabot]
|
49
|
+
|
9
50
|
## 1.22.0
|
10
51
|
|
11
52
|
### User-facing
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Fog::Google
|
2
2
|
|
3
|
-
[](http://badge.fury.io/rb/fog-google) [](http://badge.fury.io/rb/fog-google) [](https://github.com/fog/fog-google/actions/workflows/unit.yml) [](https://codecov.io/gh/fog/fog-google)  [](https://inch-ci.org/github/fog/fog-google)
|
4
4
|
|
5
5
|
The main maintainers for the Google sections are @icco, @Temikus and @plribeiro3000. Please send pull requests to them.
|
6
6
|
|
@@ -175,7 +175,7 @@ $ bundle exec pry
|
|
175
175
|
|
176
176
|
## Supported Ruby Versions
|
177
177
|
|
178
|
-
Fog-google is currently supported on Ruby
|
178
|
+
Fog-google is currently supported on Ruby 3.0+.
|
179
179
|
|
180
180
|
In general we support (and run our CI) for Ruby versions that are actively supported
|
181
181
|
by Ruby Core - that is, Ruby versions that are not end of life. Older versions of
|
@@ -0,0 +1,86 @@
|
|
1
|
+
# All examples presume that you have a ~/.fog credentials file set up.
|
2
|
+
# More info on it can be found here: http://fog.io/about/getting_started.html
|
3
|
+
|
4
|
+
require "bundler"
|
5
|
+
Bundler.require(:default, :development)
|
6
|
+
|
7
|
+
ZONE = "us-central1-f"
|
8
|
+
PROJECT = Fog.credentials[:google_project]
|
9
|
+
|
10
|
+
def example
|
11
|
+
p "Connecting to Google API"
|
12
|
+
connection = Fog::Compute.new(:provider => "Google")
|
13
|
+
|
14
|
+
p "Creating disk"
|
15
|
+
disk = connection.disks.create(
|
16
|
+
:name => "fog-smoke-test-#{Time.now.to_i}",
|
17
|
+
:size_gb => 10,
|
18
|
+
:zone => ZONE,
|
19
|
+
:source_image => "debian-11-bullseye-v20220920"
|
20
|
+
)
|
21
|
+
|
22
|
+
p "Creating a second disk"
|
23
|
+
attached_disk = connection.disks.create(
|
24
|
+
:name => "fog-smoke-test-#{Time.now.to_i}",
|
25
|
+
:size_gb => 10,
|
26
|
+
:zone => ZONE
|
27
|
+
)
|
28
|
+
|
29
|
+
p "Waiting for disks to be ready"
|
30
|
+
disk.wait_for { ready? }
|
31
|
+
attached_disk.wait_for { ready? }
|
32
|
+
|
33
|
+
p "Creating a server"
|
34
|
+
server = connection.servers.create(
|
35
|
+
:name => "fog-smoke-test-#{Time.now.to_i}",
|
36
|
+
:disks => [disk.attached_disk_obj(boot: true, auto_delete: true)],
|
37
|
+
:machine_type => "n1-standard-1",
|
38
|
+
:private_key_path => File.expand_path("~/.ssh/id_rsa"),
|
39
|
+
:public_key_path => File.expand_path("~/.ssh/id_rsa.pub"),
|
40
|
+
:zone => ZONE,
|
41
|
+
# Will be simplified, see https://github.com/fog/fog-google/issues/360
|
42
|
+
:network_interfaces => [{ :network => "global/networks/default",
|
43
|
+
:access_configs => [{
|
44
|
+
:name => "External NAT",
|
45
|
+
:type => "ONE_TO_ONE_NAT"
|
46
|
+
}] }],
|
47
|
+
:username => ENV["USER"]
|
48
|
+
)
|
49
|
+
|
50
|
+
p "Attach second disk to the running server"
|
51
|
+
device_name = "fog-smoke-test-device-#{Time.now.to_i}"
|
52
|
+
# See https://github.com/fog/fog-google/blob/master/lib/fog/compute/google/models/disk.rb#L75-L107
|
53
|
+
# See https://github.com/fog/fog-google/blob/master/lib/fog/compute/google/models/server.rb#L35-L50
|
54
|
+
config_hash = {
|
55
|
+
:device_name => device_name,
|
56
|
+
:source => "https://www.googleapis.com/compute/v1/projects/#{PROJECT}/zones/#{ZONE}/disks/#{attached_disk.name}"
|
57
|
+
}
|
58
|
+
raise "Could not attach second disk" unless connection.attach_disk(server.name, ZONE, config_hash)
|
59
|
+
|
60
|
+
p "Waiting for disk to be attached"
|
61
|
+
attached_disk.wait_for { ! users.nil? && users != []}
|
62
|
+
|
63
|
+
p "Detach second disk"
|
64
|
+
raise "Could not detach second disk" unless connection.detach_disk(server.name, ZONE, device_name)
|
65
|
+
|
66
|
+
p "Waiting for second disk to be detached"
|
67
|
+
attached_disk.wait_for { users.nil? || users == []}
|
68
|
+
|
69
|
+
p "Deleting server"
|
70
|
+
raise "Could not delete server." unless server.destroy
|
71
|
+
|
72
|
+
p "Destroying second disk"
|
73
|
+
raise "Could not delete second disk." unless attached_disk.destroy
|
74
|
+
|
75
|
+
p "Waiting for second disk to be destroyed"
|
76
|
+
begin
|
77
|
+
rc = attached_disk.wait_for { status.nil? || status == 'DELETING' }
|
78
|
+
|
79
|
+
rescue => e
|
80
|
+
if e.message !~ /not found/ && e.message !~ /notFound/
|
81
|
+
raise e
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
example
|
data/fog-google.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
# As of 0.1.1
|
21
21
|
spec.required_ruby_version = ">= 2.0"
|
22
22
|
|
23
|
-
spec.add_dependency "fog-core", "< 2.
|
23
|
+
spec.add_dependency "fog-core", "< 2.5"
|
24
24
|
spec.add_dependency "fog-json", "~> 1.2"
|
25
25
|
spec.add_dependency "fog-xml", "~> 0.1.0"
|
26
26
|
|
@@ -32,14 +32,14 @@ Gem::Specification.new do |spec|
|
|
32
32
|
spec.add_dependency "google-apis-pubsub_v1", "~> 0.30"
|
33
33
|
spec.add_dependency "google-apis-sqladmin_v1beta4", "~> 0.38"
|
34
34
|
|
35
|
-
spec.add_dependency "google-cloud-env", "
|
35
|
+
spec.add_dependency "google-cloud-env", ">= 1.2", "< 3.0"
|
36
36
|
|
37
37
|
spec.add_dependency "addressable", ">= 2.7.0"
|
38
38
|
|
39
39
|
# Debugger
|
40
40
|
# Locked because pry-byebug is broken with 13+
|
41
41
|
# see: https://github.com/deivid-rodriguez/pry-byebug/issues/343
|
42
|
-
spec.add_development_dependency "pry", "= 0.
|
42
|
+
spec.add_development_dependency "pry", "= 0.14.2"
|
43
43
|
|
44
44
|
# Testing gems
|
45
45
|
spec.add_development_dependency "retriable"
|
@@ -11,16 +11,25 @@ module Fog
|
|
11
11
|
:order_by => order_by,
|
12
12
|
:page_token => page_token
|
13
13
|
}
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
14
|
+
items = []
|
15
|
+
next_page_token = nil
|
16
|
+
loop do
|
17
|
+
if region
|
18
|
+
data = service.list_addresses(region, **opts)
|
19
|
+
next_items = data.items || []
|
20
|
+
items.concat(next_items)
|
21
|
+
next_page_token = data.next_page_token
|
22
|
+
else
|
23
|
+
data = service.list_aggregated_addresses(**opts)
|
24
|
+
data.items.each_value do |scoped_list|
|
25
|
+
items.concat(scoped_list.addresses) if scoped_list && scoped_list.addresses
|
26
|
+
end
|
27
|
+
next_page_token = data.next_page_token
|
21
28
|
end
|
29
|
+
break if next_page_token.nil? || next_page_token.empty?
|
30
|
+
opts[:page_token] = next_page_token
|
22
31
|
end
|
23
|
-
load(
|
32
|
+
load(items.map(&:to_h))
|
24
33
|
end
|
25
34
|
|
26
35
|
def get(identity, region = nil)
|
@@ -12,15 +12,25 @@ module Fog
|
|
12
12
|
:order_by => order_by,
|
13
13
|
:page_token => page_token
|
14
14
|
}
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
data.
|
15
|
+
items = []
|
16
|
+
next_page_token = nil
|
17
|
+
loop do
|
18
|
+
if zone
|
19
|
+
data = service.list_disk_types(zone, **opts)
|
20
|
+
next_items = data.items || []
|
21
|
+
items.concat(next_items)
|
22
|
+
next_page_token = data.next_page_token
|
23
|
+
else
|
24
|
+
data = service.list_aggregated_disk_types(**opts)
|
25
|
+
data.items.each_value do |scoped_lst|
|
26
|
+
items.concat(scoped_lst.disk_types) if scoped_lst && scoped_lst.disk_types
|
27
|
+
end
|
28
|
+
next_page_token = data.next_page_token
|
21
29
|
end
|
30
|
+
break if next_page_token.nil? || next_page_token.empty?
|
31
|
+
opts[:page_token] = next_page_token
|
22
32
|
end
|
23
|
-
load(
|
33
|
+
load(items.map(&:to_h))
|
24
34
|
end
|
25
35
|
|
26
36
|
def get(identity, zone = nil)
|