Class: Nouvola::Divecloud

Inherits:
Object
  • Object
show all
Defined in:
lib/nouvola/divecloud.rb

Constant Summary collapse

BASE_PATH =
'https://divecloud.nouvola.com/api/v1/'

Instance Method Summary collapse

Constructor Details

#initialize(api_key, creds_pass = nil) ⇒ Divecloud

Returns a new instance of Divecloud.



5
6
7
8
# File 'lib/nouvola/divecloud.rb', line 5

def initialize(api_key, creds_pass = nil)
  @key = api_key
  @cred = creds_pass
end

Instance Method Details

#hook(plan_id, url) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/nouvola/divecloud.rb', line 38

def hook (plan_id, url)
  payload = {
    "event":"run_plan", 
    "resource_id":"#{plan_id}",
    "url":"#{url}"
  }
  @url = BASE_PATH+"/hooks"
  uri = URI.parse(@url)
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  request = Net::HTTP::Post.new(uri.request_uri)
  request['x-api'] = @key
  request['Content-Type'] = 'application/json'
  request.body = payload.to_json
  http.request(request)
end

#paramsObject



10
11
12
# File 'lib/nouvola/divecloud.rb', line 10

def params()
  parameters.to_a.map { |k,v| "#{k}=#{v}"}.join('&')  
end

#results(test_instance_id, options = nil) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/nouvola/divecloud.rb', line 26

def results (test_instance_id, options = nil)
  @url = BASE_PATH+"test_instances/#{test_instance_id}"
  uri = URI.parse(@url)
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  request = Net::HTTP::Get.new(uri.request_uri)
  request['x-api'] = @key
  if options.nil?
    http.request(request)
  end
end

#run(plan_id) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
# File 'lib/nouvola/divecloud.rb', line 14

def run(plan_id)
  url = BASE_PATH+"plans/#{plan_id}/run"
  uri = URI.parse(url)
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  request = Net::HTTP::Post.new(uri.request_uri)
  request['x-api'] = @key
  if @cred.nil?
    http.request(request)
  end
end