Class: Google::Cloud::Spanner::Backup
- Inherits:
-
Object
- Object
- Google::Cloud::Spanner::Backup
- Defined in:
- lib/google/cloud/spanner/backup.rb,
lib/google/cloud/spanner/backup/job.rb,
lib/google/cloud/spanner/backup/list.rb,
lib/google/cloud/spanner/backup/job/list.rb,
lib/google/cloud/spanner/backup/restore/job.rb
Overview
Backup
A backup is a representation of Cloud Spanner database backup.
See Instance#backups, Instance#backup, and Database#create_backup.
Defined Under Namespace
Instance Method Summary collapse
-
#backup_id ⇒ String
The unique identifier for the backup.
-
#create_time ⇒ Time
Create time is approximately the time when the backup request was received.
-
#creating? ⇒ Boolean
The backup is still being created.
-
#database_id ⇒ String
Name of the database from which this backup was created.
-
#delete ⇒ Boolean
Permanently deletes the backup.
-
#expire_time ⇒ Time
The expiration time of the backup, with microseconds granularity.
-
#expire_time=(time) ⇒ Object
Update backup expiration time.
-
#instance_id ⇒ String
The unique identifier for the instance.
-
#path ⇒ String
The full path for the backup.
-
#project_id ⇒ String
The unique identifier for the project.
-
#ready? ⇒ Boolean
The backup is created and can be used to restore a database.
-
#referencing_databases ⇒ Array<Google::Cloud::Spanner::Database>
The instances of the restored databases that reference the backup.
-
#restore(database_id, instance_id: nil) ⇒ Database
Restores deleted database from the backup.
-
#size_in_bytes ⇒ Integer
Size of the backup in bytes.
-
#state ⇒ Symbol
The current backup state.
-
#version_time ⇒ Time
The timestamp when a consistent copy of the database for the backup was taken.
Instance Method Details
#backup_id ⇒ String
The unique identifier for the backup.
80 81 82 |
# File 'lib/google/cloud/spanner/backup.rb', line 80 def backup_id @grpc.name.split("/")[5] end |
#create_time ⇒ Time
Create time is approximately the time when the backup request was received.
175 176 177 |
# File 'lib/google/cloud/spanner/backup.rb', line 175 def create_time Convert. @grpc.create_time end |
#creating? ⇒ Boolean
The backup is still being created. A backup is not yet available for the database restore operation.
111 112 113 |
# File 'lib/google/cloud/spanner/backup.rb', line 111 def creating? state == :CREATING end |
#database_id ⇒ String
Name of the database from which this backup was created.
87 88 89 |
# File 'lib/google/cloud/spanner/backup.rb', line 87 def database_id @grpc.database.split("/")[5] end |
#delete ⇒ Boolean
Permanently deletes the backup.
230 231 232 233 234 |
# File 'lib/google/cloud/spanner/backup.rb', line 230 def delete ensure_service! service.delete_backup instance_id, backup_id true end |
#expire_time ⇒ Time
The expiration time of the backup, with microseconds granularity.
125 126 127 |
# File 'lib/google/cloud/spanner/backup.rb', line 125 def expire_time Convert. @grpc.expire_time end |
#expire_time=(time) ⇒ Object
Update backup expiration time.
Set expiration time of the backup, with microseconds granularity
that must be at least 6 hours and at most 366 days from the time the
request is received. Once the expire_time has passed, Cloud Spanner
will delete the backup and free the resources used by the backup.
151 152 153 154 155 156 157 158 159 160 161 |
# File 'lib/google/cloud/spanner/backup.rb', line 151 def expire_time= time ensure_service! expire_time_was = @grpc.expire_time @grpc.expire_time = Convert. time update_mask = Google::Protobuf::FieldMask.new paths: ["expire_time"] @grpc = service.update_backup @grpc, update_mask rescue Google::Cloud::Error => e @grpc.expire_time = expire_time_was raise e end |
#instance_id ⇒ String
The unique identifier for the instance.
73 74 75 |
# File 'lib/google/cloud/spanner/backup.rb', line 73 def instance_id @grpc.name.split("/")[3] end |
#path ⇒ String
The full path for the backup. Values are of the form
projects/<project>/instances/<instance>/backups/<backup_id>.
95 96 97 |
# File 'lib/google/cloud/spanner/backup.rb', line 95 def path @grpc.name end |
#project_id ⇒ String
The unique identifier for the project.
66 67 68 |
# File 'lib/google/cloud/spanner/backup.rb', line 66 def project_id @grpc.name.split("/")[1] end |
#ready? ⇒ Boolean
The backup is created and can be used to restore a database.
118 119 120 |
# File 'lib/google/cloud/spanner/backup.rb', line 118 def ready? state == :READY end |
#referencing_databases ⇒ Array<Google::Cloud::Spanner::Database>
The instances of the restored databases that reference the backup.
Referencing databases may exist in different instances.
The existence of any referencing database prevents the backup from
being deleted. When a restored database from the backup enters the
READY state, the reference to the backup is removed.
206 207 208 209 210 211 212 213 214 |
# File 'lib/google/cloud/spanner/backup.rb', line 206 def referencing_databases ensure_service! @grpc.referencing_databases.map do |referencing_database| segments = referencing_database.split "/" database_grpc = service.get_database segments[3], segments[5] Database.from_grpc database_grpc, service end end |
#restore(database_id, instance_id: nil) ⇒ Database
Restores deleted database from the backup.
291 292 293 294 295 296 297 298 299 300 301 302 |
# File 'lib/google/cloud/spanner/backup.rb', line 291 def restore database_id, instance_id: nil ensure_service! instance_id ||= self.instance_id grpc = service.restore_database \ self.instance_id, backup_id, instance_id, database_id Restore::Job.from_grpc grpc, service end |
#size_in_bytes ⇒ Integer
Size of the backup in bytes.
182 183 184 |
# File 'lib/google/cloud/spanner/backup.rb', line 182 def size_in_bytes @grpc.size_bytes end |
#state ⇒ Symbol
The current backup state. Possible values are :CREATING and
:READY.
103 104 105 |
# File 'lib/google/cloud/spanner/backup.rb', line 103 def state @grpc.state end |
#version_time ⇒ Time
The timestamp when a consistent copy of the database for the backup was taken. The version time has microseconds granularity.
167 168 169 |
# File 'lib/google/cloud/spanner/backup.rb', line 167 def version_time Convert. @grpc.version_time end |