Class: Daemon::Utils::CommandsServer::UNIXServerClient

Inherits:
Object
  • Object
show all
Defined in:
lib/onapp/engine/utils/commands_server/unix_server_client.rb

Instance Method Summary (collapse)

Constructor Details

- (UNIXServerClient) initialize(server)

Returns a new instance of UNIXServerClient



5
6
7
8
# File 'lib/onapp/engine/utils/commands_server/unix_server_client.rb', line 5

def initialize(server)
  @server = server
  @buffer = ""
end

Instance Method Details

- (Object) request(cmd)



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/onapp/engine/utils/commands_server/unix_server_client.rb', line 10

def request(cmd)
  cmd = cmd.gsub(/\r?\n/, "") + "\n"

  response = nil

  raise "#{@server} socket doesn't exist" unless File.exists?(@server)

  UNIXSocket.open(@server) do |socket|
    socket.write(cmd)

    until (response = @buffer.slice!(/(.*?)\r?\n/))
      @buffer << socket.recv(1024)
    end
  end

  JSON.parse(response) rescue response
ensure
  @buffer.clear
end