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.
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.
167 168 169 |
# File 'lib/google/cloud/spanner/backup.rb', line 167 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.
222 223 224 225 226 |
# File 'lib/google/cloud/spanner/backup.rb', line 222 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 => error @grpc.expire_time = expire_time_was raise error 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.
198 199 200 201 202 203 204 205 206 |
# File 'lib/google/cloud/spanner/backup.rb', line 198 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.
283 284 285 286 287 288 289 290 291 292 293 294 |
# File 'lib/google/cloud/spanner/backup.rb', line 283 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.
174 175 176 |
# File 'lib/google/cloud/spanner/backup.rb', line 174 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 |