google-cloud-spanner 2.3.0 → 2.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -0
- data/lib/google/cloud/spanner/backup.rb +8 -0
- data/lib/google/cloud/spanner/database.rb +25 -3
- data/lib/google/cloud/spanner/database/backup_info.rb +12 -3
- data/lib/google/cloud/spanner/service.rb +3 -2
- data/lib/google/cloud/spanner/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f6bfbaef2aa9726c4f6546f22d9ad3da14cdd74f1d5704f0af88aaa197285af7
|
4
|
+
data.tar.gz: b21b4f7ce50132358a00b6d4f2723e2299b449edf7cdb50652263f3dc1e7a417
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b26a10becd37ce0527996754eb16f368635269144f584d5cf1c25f17285d280f847e58ca49ccd942fb7adff59779e2a63f5c90987f548786759a5b65b337e49
|
7
|
+
data.tar.gz: 4e46cc9fddeb100349f410c08ef2b7d21fe0f43f6368e5ee3d2e6231c4da4ed7eb781fafb795408fbfadaca29dbcefc2b55ef290ccd39eab74d953959f59838b
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,19 @@
|
|
1
1
|
# Release History
|
2
2
|
|
3
|
+
### 2.4.0 / 2021-02-18
|
4
|
+
|
5
|
+
#### Features
|
6
|
+
|
7
|
+
* Point In Time Recovery (PITR) ([#8169](https://www.github.com/googleapis/google-cloud-ruby/issues/8169))
|
8
|
+
* feat(spanner): support pitr-lite
|
9
|
+
* feature(spanner): adds test for throttled
|
10
|
+
* feat(spanner): adds version time to backup
|
11
|
+
* test(spanner): adds unit test for create backup
|
12
|
+
* feat(spanner): exposes version time in backup
|
13
|
+
* chore: fixes rubocop violations
|
14
|
+
* fix: addresses PR comments
|
15
|
+
* test: adds integration tests for pitr backup
|
16
|
+
|
3
17
|
### 2.3.0 / 2021-02-09
|
4
18
|
|
5
19
|
#### Features
|
@@ -160,6 +160,14 @@ module Google
|
|
160
160
|
raise error
|
161
161
|
end
|
162
162
|
|
163
|
+
##
|
164
|
+
# The timestamp when a consistent copy of the database for the backup was
|
165
|
+
# taken. The version time has microseconds granularity.
|
166
|
+
# @return [Time]
|
167
|
+
def version_time
|
168
|
+
Convert.timestamp_to_time @grpc.version_time
|
169
|
+
end
|
170
|
+
|
163
171
|
##
|
164
172
|
# Create time is approximately the time when the backup request was
|
165
173
|
# received.
|
@@ -85,6 +85,18 @@ module Google
|
|
85
85
|
@grpc.name.split("/")[5]
|
86
86
|
end
|
87
87
|
|
88
|
+
# The version retention period for a database.
|
89
|
+
# @return [String]
|
90
|
+
def version_retention_period
|
91
|
+
@grpc.version_retention_period
|
92
|
+
end
|
93
|
+
|
94
|
+
# The earliest available version time for a database.
|
95
|
+
# @return [Time]
|
96
|
+
def earliest_version_time
|
97
|
+
Convert.timestamp_to_time @grpc.earliest_version_time
|
98
|
+
end
|
99
|
+
|
88
100
|
##
|
89
101
|
# The full path for the database resource. Values are of the form
|
90
102
|
# `projects/<project_id>/instances/<instance_id>/databases/<database_id>`.
|
@@ -400,6 +412,11 @@ module Google
|
|
400
412
|
# 366 days from the time the request is received. Required.
|
401
413
|
# Once the `expire_time` has passed, Cloud Spanner will delete the
|
402
414
|
# backup and free the resources used by the backup. Required.
|
415
|
+
# @param [Time] version_time Specifies the time to have an externally
|
416
|
+
# consistent copy of the database. If no version time is specified,
|
417
|
+
# it will be automatically set to the backup create time. The version
|
418
|
+
# time can be as far in the past as specified by the database earliest
|
419
|
+
# version time. Optional.
|
403
420
|
# @return [Google::Cloud::Spanner::Backup::Job] The job representing
|
404
421
|
# the long-running, asynchronous processing of a backup create
|
405
422
|
# operation.
|
@@ -410,7 +427,11 @@ module Google
|
|
410
427
|
# spanner = Google::Cloud::Spanner.new
|
411
428
|
# database = spanner.database "my-instance", "my-database"
|
412
429
|
#
|
413
|
-
#
|
430
|
+
# backup_id = "my-backup"
|
431
|
+
# expire_time = Time.now + (24 * 60 * 60) # 1 day from now
|
432
|
+
# version_time = Time.now - (24 * 60 * 60) # 1 day ago (optional)
|
433
|
+
#
|
434
|
+
# job = database.create_backup backup_id, expire_time, version_time: version_time
|
414
435
|
#
|
415
436
|
# job.done? #=> false
|
416
437
|
# job.reload! # API call
|
@@ -422,13 +443,14 @@ module Google
|
|
422
443
|
# backup = job.backup
|
423
444
|
# end
|
424
445
|
#
|
425
|
-
def create_backup backup_id, expire_time
|
446
|
+
def create_backup backup_id, expire_time, version_time: nil
|
426
447
|
ensure_service!
|
427
448
|
grpc = service.create_backup \
|
428
449
|
instance_id,
|
429
450
|
database_id,
|
430
451
|
backup_id,
|
431
|
-
expire_time
|
452
|
+
expire_time,
|
453
|
+
version_time
|
432
454
|
Backup::Job.from_grpc grpc, service
|
433
455
|
end
|
434
456
|
|
@@ -84,14 +84,23 @@ module Google
|
|
84
84
|
end
|
85
85
|
|
86
86
|
##
|
87
|
-
# The
|
88
|
-
# `source_database` at the timestamp specified by `create_time`.
|
89
|
-
# received.
|
87
|
+
# The timestamp indicating the creation of the backup.
|
90
88
|
# @return [Time]
|
91
89
|
def create_time
|
92
90
|
Convert.timestamp_to_time @grpc.create_time
|
93
91
|
end
|
94
92
|
|
93
|
+
##
|
94
|
+
# The backup contains an externally consistent copy of
|
95
|
+
# `source_database` at the timestamp specified by
|
96
|
+
# the `version_time` received. If no `version_time` was
|
97
|
+
# given during the creation of the backup, the `version_time`
|
98
|
+
# will be the same as the `create_time`.
|
99
|
+
# @return [Time]
|
100
|
+
def version_time
|
101
|
+
Convert.timestamp_to_time @grpc.version_time
|
102
|
+
end
|
103
|
+
|
95
104
|
##
|
96
105
|
# @private Creates a new Database::BackupInfo instance from a
|
97
106
|
# `Google::Cloud::Spanner::Admin::Database::V1::BackupInfo`.
|
@@ -464,11 +464,12 @@ module Google
|
|
464
464
|
end
|
465
465
|
|
466
466
|
def create_backup instance_id, database_id, backup_id, expire_time,
|
467
|
-
call_options: nil
|
467
|
+
version_time, call_options: nil
|
468
468
|
opts = default_options call_options: call_options
|
469
469
|
backup = {
|
470
470
|
database: database_path(instance_id, database_id),
|
471
|
-
expire_time: expire_time
|
471
|
+
expire_time: expire_time,
|
472
|
+
version_time: version_time
|
472
473
|
}
|
473
474
|
request = {
|
474
475
|
parent: instance_path(instance_id),
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google-cloud-spanner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Moore
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2021-02-
|
12
|
+
date: 2021-02-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: google-cloud-core
|