class Google::Cloud::Spanner::Backup::Job
# Job
A resource representing the long-running, asynchronous processing of backup creation. The job can be refreshed to retrieve the backup object once the operation has been completed.
See {Google::Cloud::Spanner::Database#create_backup}
@see cloud.google.com/spanner/reference/rpc/google.longrunning#google.longrunning.Operation
Long-running Operation
@example
require "google/cloud/spanner" spanner = Google::Cloud::Spanner.new database = spanner.database "my-instance", "my-database" expire_time = Time.now + 36000 job = database.create_backup "my-backup", expire_time job.done? #=> false job.reload! # API call job.done? #=> true if job.error? status = job.error else backup = job.backup end
Attributes
@private The `Gapic::Operation` gRPC object.
@private The gRPC Service
object.
Public Class Methods
@private New Backup::Job
from a `Gapic::Operation` object.
# File lib/google/cloud/spanner/backup/job.rb, line 264 def self.from_grpc grpc, service new.tap do |job| job.instance_variable_set :@grpc, grpc job.instance_variable_set :@service, service end end
@private Creates a new Backup::Job
instance.
# File lib/google/cloud/spanner/backup/job.rb, line 65 def initialize @grpc = nil @service = nil end
Public Instance Methods
The backup is the object of the operation.
@return [Backup, nil] The backup, or
`nil` if the operation is not complete.
@example
require "google/cloud/spanner" spanner = Google::Cloud::Spanner.new database = spanner.database "my-instance", "my-database" expire_time = Time.now + 36000 job = database.create_backup "my-backup", expire_time job.done? #=> false job.reload! job.done? #=> true backup = job.backup
# File lib/google/cloud/spanner/backup/job.rb, line 90 def backup return nil unless done? return nil unless @grpc.grpc_op.result == :response Backup.from_grpc @grpc.results, service end
Cancel the backup job.
@example
require "google/cloud/spanner" spanner = Google::Cloud::Spanner.new database = spanner.database "my-instance", "my-database" expire_time = Time.now + 36000 job = database.create_backup "my-backup", expire_time job.done? #=> false job.cancel
# File lib/google/cloud/spanner/backup/job.rb, line 223 def cancel @grpc.cancel end
The operation canceled time.
@return [Time, nil]
# File lib/google/cloud/spanner/backup/job.rb, line 257 def cancel_time return nil unless @grpc.metadata.cancel_time Convert.timestamp_to_time @grpc.metadata.cancel_time end
Checks if the processing of the backup operation is complete.
@return [boolean] `true` when complete, `false` otherwise.
@example
require "google/cloud/spanner" spanner = Google::Cloud::Spanner.new database = spanner.database "my-instance", "my-database" expire_time = Time.now + 36000 job = database.create_backup "my-backup", expire_time job.done? #=> false
# File lib/google/cloud/spanner/backup/job.rb, line 112 def done? @grpc.done? end
The operation end time.
@return [Time, nil]
# File lib/google/cloud/spanner/backup/job.rb, line 248 def end_time return nil unless @grpc.metadata.progress.end_time Convert.timestamp_to_time @grpc.metadata.progress.end_time end
The status if the operation associated with this job produced an error.
@return [Google::Cloud::Spanner::Status, nil] A status object with
the status code and message, or `nil` if no error occurred.
@example
require "google/cloud/spanner" spanner = Google::Cloud::Spanner.new database = spanner.database "my-instance", "my-database" expire_time = Time.now + 36000 job = database.create_backup "my-backup", expire_time job.error? # true error = job.error
# File lib/google/cloud/spanner/backup/job.rb, line 156 def error return nil unless error? Google::Cloud::Spanner::Status.from_grpc @grpc.error end
Checks if the processing of the backup operation has errored.
@return [boolean] `true` when errored, `false` otherwise.
@example
require "google/cloud/spanner" spanner = Google::Cloud::Spanner.new database = spanner.database "my-instance", "my-database" expire_time = Time.now + 36000 job = database.create_backup "my-backup", expire_time job.error? #=> false
# File lib/google/cloud/spanner/backup/job.rb, line 132 def error? @grpc.error? end
The operation progress in percentage.
@return [Integer]
# File lib/google/cloud/spanner/backup/job.rb, line 231 def progress_percent @grpc.metadata.progress.progress_percent end
Reloads the job with current data from the long-running, asynchronous processing of a backup operation.
@return [Google::Cloud::Spanner::Backup::Job] The same job
instance.
@example
require "google/cloud/spanner" spanner = Google::Cloud::Spanner.new database = spanner.database "my-instance", "my-database" expire_time = Time.now + 36000 job = database.create_backup "my-backup", expire_time job.done? #=> false job.reload! # API call job.done? #=> true
# File lib/google/cloud/spanner/backup/job.rb, line 181 def reload! @grpc.reload! self end
The operation start time.
@return [Time, nil]
# File lib/google/cloud/spanner/backup/job.rb, line 239 def start_time return nil unless @grpc.metadata.progress.start_time Convert.timestamp_to_time @grpc.metadata.progress.start_time end
Reloads the job until the operation is complete. The delay between reloads will incrementally increase.
@example
require "google/cloud/spanner" spanner = Google::Cloud::Spanner.new database = spanner.database "my-instance", "my-database" expire_time = Time.now + 36000 job = database.create_backup "my-backup", expire_time job.done? #=> false job.wait_until_done! job.done? #=> true
# File lib/google/cloud/spanner/backup/job.rb, line 204 def wait_until_done! @grpc.wait_until_done! end