Class: OsCtld::SendReceive::Commands::Base
Instance Attribute Summary
#client, #client_handler, #id, #opts
Class Method Summary
collapse
Instance Method Summary
collapse
#call_cmd, #call_cmd!, #error, #error!, #execute, #handled, #indirect?, #initialize, #manipulate, #manipulation_holder, #ok, #progress, #request_stop, run, run!
Class Method Details
.handle(name) ⇒ Object
5
6
7
|
# File 'lib/osctld/send_receive/commands/base.rb', line 5
def self.handle(name)
SendReceive::Command.register(name, self)
end
|
Instance Method Details
#base_execute ⇒ Object
9
10
11
12
|
# File 'lib/osctld/send_receive/commands/base.rb', line 9
def base_execute
validate_protocol_version!
execute
end
|
#receive_pipeline_error(mbuffer_status, recv_status) ⇒ Object
31
32
33
34
35
36
|
# File 'lib/osctld/send_receive/commands/base.rb', line 31
def receive_pipeline_error(mbuffer_status, recv_status)
failures = []
failures << "mbuffer exited with #{mbuffer_status.exitstatus}" if mbuffer_status.exitstatus != 0
failures << "zfs recv exited with #{recv_status.exitstatus}" if recv_status.exitstatus != 0
"unable to receive stream, #{failures.join(' and ')}"
end
|
#validate_protocol_version! ⇒ Object
#validate_send_log_protocol!(ct) ⇒ Object
22
23
24
25
26
27
28
29
|
# File 'lib/osctld/send_receive/commands/base.rb', line 22
def validate_send_log_protocol!(ct)
return if ct.send_log&.protocol_version == opts[:protocol_version]
error!(
'send/receive protocol version mismatch, ' \
"request=#{opts[:protocol_version]} log=#{ct.send_log&.protocol_version.inspect}"
)
end
|