class StackAgent::Instance

Attributes

instance_token[RW]

Public Class Methods

new(instance_token = nil) click to toggle source
# File lib/stack-agent/instance.rb, line 8
def initialize(instance_token = nil)
  self.instance_token = instance_token
end
stacks() click to toggle source
# File lib/stack-agent/instance.rb, line 51
def self.stacks
  config = StackAgent.configuration
  url = "#{config.api_host}/v1/apps/#{config.app_token}/stacks"
  response = RestClient::Resource.new(url, verify_ssl: OpenSSL::SSL::VERIFY_NONE).get
  JSON.parse(response.body)
end

Public Instance Methods

register() click to toggle source
# File lib/stack-agent/instance.rb, line 12
def register
  config = StackAgent.configuration

  return false unless config.app_token && config.name && config.uri

  url = "#{config.api_host}/v1/apps/#{config.app_token}/stacks"

  data = {
    group: config.group,
    name: config.name,
    uri: config.uri
  }

  begin
    response = RestClient::Resource.new(url, verify_ssl: OpenSSL::SSL::VERIFY_NONE).post(data)
    return self.instance_token = JSON.parse(response.body)['id']
  rescue RestClient::BadRequest => ex
    false
  end
end
registered?() click to toggle source
# File lib/stack-agent/instance.rb, line 47
def registered?
  instance_token != nil
end
unregister() click to toggle source
# File lib/stack-agent/instance.rb, line 33
def unregister
  return false unless registered?

  config = StackAgent.configuration
  url = "#{config.api_host}/v1/apps/#{config.app_token}/stacks/#{instance_token}"

  begin
    RestClient::Resource.new(url, verify_ssl: OpenSSL::SSL::VERIFY_NONE).delete
    true
  rescue RestClient::BadRequest => ex
    false
  end
end