class LogStash::Outputs::Swift::WriteContainerPermissionValidator
Attributes
logger[R]
Public Class Methods
new(logger)
click to toggle source
# File lib/logstash/outputs/swift/write_container_permission_validator.rb, line 12 def initialize(logger) @logger = logger end
Public Instance Methods
valid?(container_resource)
click to toggle source
# File lib/logstash/outputs/swift/write_container_permission_validator.rb, line 16 def valid?(container_resource) begin upload_test_file(container_resource) true rescue StandardError => e logger.error("Error validating bucket write permissions!", :message => e.message, :class => e.class.name, :backtrace => e.backtrace ) false end end
Private Instance Methods
upload_test_file(container_resource)
click to toggle source
# File lib/logstash/outputs/swift/write_container_permission_validator.rb, line 31 def upload_test_file(container_resource) generated_at = Time.now key = "logstash-programmatic-access-test-object-#{generated_at}" content = "Logstash permission check on #{generated_at}, by #{Socket.gethostname}" begin obj = container_resource.files.create(key: key, body: content) begin obj.destroy rescue # Try to remove the files on the remote bucket, # but don't raise any errors if that doesn't work. # since we only really need `putobject`. end end end