Class: Cloud66::Utils::Server
- Inherits:
-
Object
- Object
- Cloud66::Utils::Server
- Includes:
- HTTParty
- Defined in:
- lib/cloud66_agent/utils/server.rb
Class Method Summary collapse
- .build_content(data = nil) ⇒ Object
- .do_request(verb, url, content) ⇒ Object
- .process(response) ⇒ Object
- .send_address(data) ⇒ Object
- .send_configure(data) ⇒ Object
- .send_fail2ban(data) ⇒ Object
- .send_job_end(job_uid, data) ⇒ Object
- .send_job_start(job_uid) ⇒ Object
- .send_message(data) ⇒ Object
- .send_pulse ⇒ Object
- .send_vitals(data) ⇒ Object
Class Method Details
.build_content(data = nil) ⇒ Object
80 81 82 83 84 85 86 87 88 89 |
# File 'lib/cloud66_agent/utils/server.rb', line 80 def self.build_content(data = nil) time = Time.now.utc.to_i hash = Digest::SHA1.hexdigest("#{$config.api_key}#{$config.secret_key}#{time}").downcase if data.nil? content = { :headers => { 'api-key' => $config.api_key, 'hash' => hash, 'time' => time.to_s } } else content = { :headers => { 'api-key' => $config.api_key, 'hash' => hash, 'time' => time.to_s, 'Content-Type' => 'application/json' }, :body => { data: data }.to_json } end content end |
.do_request(verb, url, content) ⇒ Object
72 73 74 75 76 77 78 |
# File 'lib/cloud66_agent/utils/server.rb', line 72 def self.do_request(verb, url, content) $logger.debug "Sending (#{verb}) request..." $logger.debug "Request url: #{url}" $logger.debug "Request content: #{content}" base_uri $config.api_url self.send verb, url, content end |
.process(response) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/cloud66_agent/utils/server.rb', line 48 def self.process(response) $logger.debug "Received response!" if response.code != 200 $logger.debug "Response code: #{response.code}" $logger.debug "Response body: #{response.body}" raise response.body else parsed_response = response.parsed_response unless parsed_response['ok'] if parsed_response['shut_down'] $config.disabled = true $config.save exit 86 elsif parsed_response.has_key?('error') raise parsed_response['error'] else raise "unidentified error" end end $logger.debug "Parsed response: #{parsed_response}" parsed_response['data'] end end |
.send_address(data) ⇒ Object
21 22 23 |
# File 'lib/cloud66_agent/utils/server.rb', line 21 def self.send_address(data) process(do_request(:post, "/server/#{$config.agent_uid}/address.json", build_content(data))) end |
.send_configure(data) ⇒ Object
13 14 15 |
# File 'lib/cloud66_agent/utils/server.rb', line 13 def self.send_configure(data) process(do_request(:post, '/server/configure.json', build_content(data))) end |
.send_fail2ban(data) ⇒ Object
37 38 39 |
# File 'lib/cloud66_agent/utils/server.rb', line 37 def self.send_fail2ban(data) process(do_request(:post, "/server/#{$config.agent_uid}/fail2ban.json", build_content(data))) end |
.send_job_end(job_uid, data) ⇒ Object
33 34 35 |
# File 'lib/cloud66_agent/utils/server.rb', line 33 def self.send_job_end(job_uid, data) process(do_request(:post, "/job/#{job_uid}/end.json", build_content(data))) end |
.send_job_start(job_uid) ⇒ Object
29 30 31 |
# File 'lib/cloud66_agent/utils/server.rb', line 29 def self.send_job_start(job_uid) process(do_request(:get, "/job/#{job_uid}/start.json", build_content)) end |
.send_message(data) ⇒ Object
41 42 43 44 |
# File 'lib/cloud66_agent/utils/server.rb', line 41 def self.(data) #puts data process(do_request(:post, "/server/#{$config.agent_uid}/message.json", build_content(data))) end |
.send_pulse ⇒ Object
17 18 19 |
# File 'lib/cloud66_agent/utils/server.rb', line 17 def self.send_pulse process(do_request(:get, "/server/#{$config.agent_uid}/pulse.json", build_content)) end |
.send_vitals(data) ⇒ Object
25 26 27 |
# File 'lib/cloud66_agent/utils/server.rb', line 25 def self.send_vitals(data) process(do_request(:post, "/server/#{$config.agent_uid}/vitals.json", build_content(data))) end |